Domnivam se tedy, ze stav, kdy je sluzba takrka absolutne odolna proti ztrate funkcnosti je spise vyjimecny a takovych aplikaci je v soucasne dobe minimum nikoli jen proto, ze teprve vznikaji, ale proto, ze v pripade mnoha sluzeb nelze "gnutella princip" vubec pouzit. A konecne, ani gnutella neni celosvetova nenapadnutelna sit - zejmena neni prilis dobre odolna proti utoku statni moci, pokud se takova moc k utoku odhodla. To je ale na trochu delsi samostatne povidani - a tento clanek nam i s diskusi uz pomerne rychle ujizdi do archivu starsich clanku ...
Zbyva posledni zpusob - rozeznat uziti sluzby od zneuziti sluzby. Bez toho, ze bych byl schopen sve tvrzeni dokazat rikam, ze tento problem neni plne algoritmizovatelny - to znamena, ze se nepodari najit jasny algoritmus, ktery by nad prichazejici zadosti o poskytnuti sluzby dokazal jednoznacne rozhodnout, zda jde o uziti nebo o zneuziti - a to ani v pripade, ze bude mit kompletni stavovou informaci o vsech minulych vyrizenych zadostech. DoS utoku se tedy muzeme branit pouze heuristicky a tedy s nikoli zajistenou uspesnosti.
Pokud jde o utok necileny proti konkretni organizaci ci sluzbe, pak muze pomoci proste - sluzbu zajistuje vice ruznych stroju, pricemz uzivatele jsou na ne smerovani podle urciteho algoritmu. Takovyto princip "zaloznich" ci "konkurujicich si" stroju je zatim jednoduse realizovatelny pouze pro SMTP a to pomoci MX zaznamu v DNS. Obecny mechanismus, pouzitelny pro prakticky veskere sluzby je sice jiz take na svete (SRV zaznam v DNS), zatim vsak neni v praxi pouzivan, protoze na jeho pouzivani nejsou pripraveny "resolver" knihovny. Ani tento mechanismus vsak neresi smerovany utok proti konkretni sluzbe nebo organizaci, protoze utocnik si samozrejme najde vsechny dostupne servery a utocit bude proti vsem.
Dalsim zajimavym mechanismem by mohlo byt teritorialni rozdeleni kdy pozadavky prichazejici z urcite oblasti vyrizuje konkretni skupina serveru, kdezto dotaz odjinud jina. Tim bychom dosahli toho, ze DoS utok z jedne oblasti by narusil poskytovani sluzby pouze do teto oblasti. Bohuzel, nejprve by ale muselo byt prijato opatreni, ktere by zabranovalo falsovat identitu (napr. IP adresu) tazatele a muselo by take (a to celosvetove) dojit k zmenam v DNS systemu (aby cloveku z urcite oblasti podaval jine informace nez cloveku odjinud).
Zakladni obranou proti DoS utokum tak stale zustava brutalni sila - priste mit tolik a tak dobre vybavenych serveru, aby k vycerpani zdroju nemohlo tojit nijak lehce. A krome toho se muzeme branit proti kazdemu konkretnimu DoS utoku, obvykle ale az pote, co byl nekde (uspesne) pouzit. Znovu tedy jde o obranu silou, v tomto pripade je vsak "silou" velice schopny spravce systemu.
DoS utoky vsak podle meho nazoru zustanou (na Internetu v soucasnem slova smyslu) nikdy nerozhodnutou bitvou sestavajicich se z bitev v pretlacovani "kdo je chytrejsi". To samozrejme nerika, ze si nemame pokouset branit - a nektere zpusoby obrany jsem zde nabidnul k diskusi, jine jiste doplni nekdo dalsi.
Mozna premyslim o daleko obecnejsim informacne - vyhledavacim systemu a tim vznikaji rozpory - takovyhle system se bude opravdu pomerne slozite distribuovat - ledaze by se skutecne pouzil model "DNS" - ten muze byt distribuovany vice mene proto, ze kazda databaze (BIND) zaroven obsahuje logiku pro vyrizovani dotazu (i kdyz treba jen systemem odkazu na jiny BIND). Vratime-li se ale zpet k nasemu systemu zjistime, ze logika vyrizovani dotazu je velice komplikovana nato, aby bylo ucelne mit ji na kazde databazi. Budou tedy existovat "pristupove dotazovaci body", ktere jsou navzajem plne zamenne, ktere mohou dotazy vyrizovat pomoci libovolne databazove struktury, vcetne distribuovane a ty (nikoli klient) budou plne vyrizovat jak a kde ziskaji informace pro vyrizeni dotazu.
V teto casti oz vlastne spise reaguji na Michala a p. Zajicka - panove, kdyz to naformuluji takto, odstranil jsem rozpor o tom, zda databaze muze nebo nemuze byt distribuovana ?
Pro diskutovane ucely tedu nehledame distribuovanou databazi, spise potrebujeme databaze replikovanou - takove, kde kazda kopie je identicka a kazdy stroj ma plnou funkci. Popravde receno, kdyz se mluvi o "datovem centru", nenapadlo me, ze by se mluvilo o jednotlivem pocitaci ve fyzickem slova smyslu, ale prave o jednom logickem centru, ktere muze byt realizovano v mnoha fyzickych kopiich.
Kazdy balik software by mohl mit dve slozky (indexovaci a vyhledavaci). Pokud by se system dokazal transparentne vyrovnat s navazanim spojeni (multicasting?) v pripade padu komunikacnich partneru, mohl by mit kazdy altavistu na svem WWW serveru :-)))