SEBEOBRANA PROTI HACKERŮM | ||
Obětmi nikdy nekončící války hackerů s tvůrci počítačových systémů jsou uživatelé. Nejlevnějším prostředkem jejich sebeobrany by mohly být zabezpečovací programy. V současných operačních systémech se po přihlášení uživatele automaticky provádí posloupnost akcí, popsaná v určeném příkazovém souboru - scénáři připojení. Jednou z těchto akcí by mohlo být doplňující ověření totožnosti uživatele řízené zabezpečovacím programem. Ten by, v případě nesprávné odpovědi nebo reakce, relaci předčasně ukončil. Pro danou relaci by ovšem musely být splněny tyto podmínky:
Zhruba před deseti lety vyšel článek [1]. S použitím právě
zavedeného termínu lze jeho hlavní myšlenku vyjádřit takto: Zabezpečovací program by měl kontrolovat, spíš než znalost dalšího
hesla (password), znalost algoritmu (passalgorithm).
"Nabídněte svou odměnu tomu, kdo nám může vnuknout, jak
obelstít chytrost ďáblů, jichž jsou tyto lesy plny ... ," říká
zvěd v románu Jamese F. Coopera Poslední mohykán, ale Haskettův
článek byl několikrát kritizován. Z diskuse s kritiky zůstala nezodpovězena otázka: Existuje dostatečný počet algoritmů, které se
snadno pamatují i provádí zpaměti a přitom jsou jen ztěží odhalitelné ze vstupních a výstupních hodnot? Haskett žádný příklad takového algoritmu neuvedl; dnes už ověřovací algoritmy téměř nikdo
nevymýšlí a málokterý operační systém použití zabezpečovacích
programů (a tím i ověřovacích algoritmů) vůbec podporuje. Zámek, od kterého mají všichni klíčÚloha, kterou budeme v dalším výkladu řešit, je vymezena už následujícími definicemi:Uživatel lokální sítě je člověk, kterému opravdu záleží na jeho datech a je ochoten udělat cokoliv, aby se nikdo jiný nepřipojil k systému pod jeho login jménem. Používá jen určité pracovní stanice, z nichž každou může obsadit, kdy se mu zlíbí. Z pohledu uživatele jsou tyto pracovní stanice umístěny buď v bezpeč né (B) nebo nebezpečné (N) zóně. V N - zóně nelze zachovat tajemství. Bez ohledu na to, zda to je nebo není už dnes možné, tu neoprávněná osoba může získat heslo a identifikační kartu, okamžitě odhalit ověřovací algoritmus a dokonce "okopírovat" a později věrně napodobit podpis, hlas, geometrii ruky atd. uživatele. V B - zóně je odpozorování hesla atd. vyloučeno. Vyloučeny jsou i pokusy připojit se v nepřítomnosti uživatele k systému pod jeho login jménem. Metoda ověření totožnosti by měla odpovídat podmínkám připojení uživatele k systému. Ale jakou metodu má použít uživatel, který obvykle pracuje v B-zóně a jen občas se má připojit k systému z N-zóny? Připomíná to jednu známou pohádku: Vlk chce sežrat kůzlátka, ale bojí se kozy. Koza opouštějící své děti se s nimi nemůže domluvit na nějakém hesle nebo algoritmu. Kůzlata jsou totiž známá tím, že vždycky vlkovi prozradí, co má ještě udělat, aby si ho mohla splést se svou maminkou. Proto jim koza o vlkovi říká: "Je to padouch , který se umí přetvařovat, ale podle hlasu a černých pracek ho lehce poznáte". Jenže vlk s hlasem zjemnělým křídou a tlapou namaskovanou pekařem a mlyná řem (takoví už jsou lidé) nakonec otevření dveří opravdu dosáhne. Návrat kozy popisují Jacob a Wilhelm Grimmové takto: Hledala děti, nikde nebyly. Volala je pořadě jménem, žádné neodpovědělo. Až když vyslovila jméno nejmladšího kozlíčka, zaslechla jemný hlásek: " Maminko, jsem v hodinách . " Dalo se nějak této hrůze zabránit? Vlk a sedm kůzlátek II
"Neměli jsme se stěhovat," povzdechla si koza. Očekávala
ticho a klid v útulné lesní chaloupce a zatím? Přes den se od nedalekého města ozývalo hučení děl a práskání mušket a v noci trápil kůzlátka kašel. A jakoby toho nebylo dost, za chaloupkou objevila stopy vlka.
"Konečně je stará pryč," zavrčel vlk, sáhl pod pařez a vytáhl připravené rekvizity. Za okamžik už pajdal se zdviženou prackou k chaloupce. Strčil do dveří - neotevřely se. Zaklepal. Ve městě zazněl zvon. Koza přestala sbírat listí; udiveně se
podívala do nůše a pak na slunce. Střelba v dálce postupně
utichala. K chaloupce kráčel vlk a z tlamy mu kapaly sliny. Když se koza vrátila, seděl vlk ještě přede dveřmi. Jejím rohům sice o vlásek unikl, ale pod kopcem vběhl přímo před ustupující vojáky. A ti jej chytili a vzali sebou. Časoprostorový zámek
Jak bychom tedy poradili uživateli, který se má občas připojit k lokální počítačové síti z N-zóny?
Na první pohled tu o nic nového nejde. Vždyť už v knize Time - sharing computer systems (vydané před čtvrt stoletím) píše M. V. Wilkes, že přístup k systému je možné řídit heslem a omezením určitých uživatelů na používání určitých ovládacích pultů jen v určité době. Podobně i v systému Novell NetWare verze 3.11 může privilegovaná osoba jinému uživateli (a za podmínek popsaných v [2, s. 264-265, 274] i sama sobě) předepsat, které pracovní stanice a kdy smí používat. Postup připojení privilegovaného uživatele z N-zóny by se provedl pomocí příkazu SYSTIME (krok 1a), a utilitou SYSCON (krok 1b a 2). Ale za prvé, i "nejméně" privilegovaná osoba (správce svého vlastního účtu) si pak může volit kontrolní hodnoty libovolně, bez ohledu na omezení nastavená správcem systému. A za druhé, bezpečnost neprivilegovaného uživatele je touto možností ovlivněna asi tolik, jako bezpečnost kůzlat vyhlášením zákazu vycházení v určité dny a v určité (půl)hodiny v týdnu.
V systému NetWare 3.11 lze zabránit už provedení určitého
scénáře připojení volbou /Script v příkazu LOGIN. Ale kdyby operační systém obsahoval prostředky podporující tvorbu a používání
zabezpečovacích programů, mohli bychom oba nedostatky snadno odstranit. Protože zabezpečovací program by přišel ke slovu až po
přihlášení uživatele, nemohl by uživatel sám překročit omezení
nastavená správcem systému. Jednou vytvořené programy, zabezpečovací a dialogový (pro změnu kontrolních hodnot), by přitom mohl
používat i neprivilegovaný uživatel.
Poznámky rozdělují jeho text do čtyř částí. První příkaz (Odkud. = 0) způsobí, že v dalším průběhu provádění programu má každý prvek pole Odkud, kterému nebyla přiřazena jiná hodnota, hodnotu 0 (nepravda). Část Adresy pracovních stanic usnadĺuje uživateli nastavení kontrolních hodnot. Složitá adresa (protokol IPX) se ztotožní s krátkým a snadno zapamatovatelným jménem. V našem příkladě jména M27A, M27B označují adresy pracovních stanic v B-zóně (v kanceláři uživatele - v místnosti číslo 27). Zkratka NZ označuje adresu stanice v N-zóně. V části Nastavení kontrolních hodnot se proměnné Od_kdy přiřadí datum a čas, kdy nejdříve se může uživatel připojit. Pro snadnost porovnání je datum a čas zapsán ve formátu rrrr/mm/dd hh:mm, kde hh=00..23. O funkci NTIME (použité dále v programu) předpokládáme, že vrací datum a čas připojení právě v tomto formátu. Prvkům pole Odkud, jejichž indexy jsou adresami pracovních stanic, ze kterých je dovoleno se připojit, se přiřadí hodnota 1 (pravda). Díky možnosti používat v programech jazyka REXX asociativní pole je pak snadné určit, zda adresa pracovní stanice patří nebo nepatří do seznamu povolených adres. Právě úpravami této části programu "nastavuje" uživatel kontrolní hodnoty v systému. Vlastní kontrola je řízena stejnojmennou částí programu. O použité funkci NADR předpokládáme, že vrací adresu místa připojení. Pokud datum a čas připojení není menší než Od_kdy a zároveň prvek pole Odkud, určený adresou místa připojení, má hodnotu pravda, zobrazí se uživateli příkazem say jednorázově použitelné "heslo systému" (něco málo navíc - jednoduchá obrana proti programu, který se vydává za login proceduru). V opačném případě se relace ukončí.
Podobný dynamicky nastavitelný časoprostorový zámek může doplňovat ochranu heslem v reálnějších situacích typu "pro dnešek
toho mám dost" nebo "odjíždím na čtrnáct dní na dovolenou" nebo
v případě, když místo B-zóny uvažujeme "polobezpečnou" zónu, ve
které je sice vyloučeno odpozorování hesla atd., ale nevylučují
se pokusy o připojení v nepřítomnosti uživatele. Vzdušné zámky?Známé případy (Willi Hacker, Velký červ v Internetu) ukázaly, že zdaleka ne každý uživatel je člověk, kterému opravdu záleží na jeho datech ... Pro login jméno "abc" volí uživatelé nej častěji hesla "abc", "cba" nebo "abcabc" (F.T.Gramp, R. Morris). Proto se metody ověření totožnosti uživatele tím, co zná právě on, nepovažují za příliš bezpečné. Ale ani v tomto ohledu nejsou všichni lidé stejní. Vhodnost nebo nevhodnost nějaké metody závisí především na podmínkách, za kterých se uživatel přihlašuje k systému. Změna podmínek by tedy měla vést ke změně metody. Protože tyto podmínky zná nejlépe sám uživatel, měl by to být on, kdo vybere nebo navrhne metodu, která je právě nejvhodnější. A je-li zároveň programátor?
Snad se mi podařilo naznačit, že alespoň v některých případech mohou být zabezpečovací programy nejlevnějším prostředkem implementace takové metody. Kdyby byly i prostředkem pro uživatele snadno (tj. bez úpravy systémových modulů) dostupným, a to záleží na tvůrcích počítačových systémů, pak by vymýšlení obranných bariér mohlo být pro mnohé stejně zajímavou činností, jakou je dnes pro některé jejich překonávání. Literatura
|
změněno 19. července 2001
Copyright © 1998-2001 Vladimír Zábrodský