UMĚNÍ
VYBÍRAT A SKRÝVAT
  Bernardo: Kdo je?
Fernando: Dřív ty se prozraď. Stůj a heslo!
W. Shakespeare: Hamlet
 

část I: jak uhodnout heslo

    

Nikdo by je nepoužíval, kdyby měl ovšem na výběr. Jsou součástí lidského života zřejmě od nepaměti. Jsou tím, co nevidíme, o čem nikdy nemluvíme; ovlivňují naši psychiku. Hesla - ne jedno heslo, ale spousta hesel; a také číselné kódy. Jak je rozumně vybrat? Jak si je zapamatovat? Jak se zbavit strachu z jejich zapomenutí? Jak na ty nepotřebné zapomenout? Jak s nimi vlastně žít?

    Hledat v literatuře (tištěné nebo elektronické) odpověď už na první položenou otázku znamená tápat ve spoustě doporučení - mnohdy se navzájem vyvracejí; mnohdy kopíruje jedno druhé. Některé z nich představuje a posuzuje první díl tohoto článku. Je návodem pro kritické hodnocení technik vytváření hesel ve vlastní praxi.

    Pro tvůrce, výrobce, provozovatele systémů jsou rady jak navrhnout, implementovat a používat ověření totožnosti heslem shrnuty už v studii [DoD]. Druhý díl článku má podobný cíl, je však určen uživatelům. Popisuje rozumnou metodu vytváření hesel, s ní související zásady jejich užívání i potřebné implementační detaily.

    Nejprve uvedu systémově a technicky nezávislé předpoklady, ze kterých jsem ve svých úvahách vycházel, společně se symboly, termíny a vzorci, které budu v dalším výkladu používat.

Uživatelské jméno, heslo a profil uživatele

    Uživatel se přihlašuje do počítačového systému pod uživatelským jménem U a svou totožnost prokazuje zapsáním a odesláním určitého řetězce znaků - hesla h. Heslo psané na klávesnici se na displeji nezobrazuje. Až na výjimky nepředpokládám omezení na délku hesla ani na výběr znaků, z nichž může být sestaveno. V příkladech hesel budu používat 108 znakovou abecedu malých i velkých písmen české abecedy, číslic a 16 speciálních znaků:

. , ! | _ - + * : / \ # @ & < >

    V systému je unikátním jménem U označen popis práv uživatele na prostředky systému - jeho uživatelský profil (user profile, user account). Pracuje-li uživatel s více profily, můžeme termíny uživatelské jméno, heslo uživatele zaměnit termíny jméno profilu, heslo profilu. Uživatelské jméno a prvotní heslo určuje obvykle správce systému. Uživatel musí prvotní heslo změnit při prvním přihlášení do systému; později pak může svoje heslo kdykoliv sám zvolit a změnit. Ve shodě s [DoD] považujeme hodnotu U za veřejně známou.

Útok přihlášením a útok výpočtem

    Při uložení do paměti počítače a při přenosu po síti se místo h použije h' = J(h), kde J je jednocestná transformace. Z hodnoty h' není možné v rozumném čase odvodit hodnotu h. Protivník může heslo zjistit pouze tak, že zvolí hodnotu k kandidáta na heslo a:

       · přihlásí se pod uživatelským jménem U s "heslem" k - útok přihlášením;

       · vypočte J(k) a porovná h' s J(k) - útok výpočtem.

Jestliže je v prvním případě jeho pokus o přihlášení úspěšný nebo v druhém případě h' = J(k), pak k = h a protivník heslo odhalil.

Poznámka 1.: Mimo h mohou být vstupem transformace i jiné hodnoty - momentální čas, pseudonáhodně zvolený řetězec znaků, atd. V autentizačním protokolu se může přenášet, jako hodnota h', zpráva zašifrovaná nebo dešifrovaná heslem h jako klíčem. Tak je tomu například v systému Kerberos.

Poznámka 2.: Program spuštěný na počítači, který je připojen do sítě, může monitorovat hodnoty U, h' a může provádět útok přihlášením. Program, jehož vstupními daty jsou hodnoty U, h', může provádět útok výpočtem. Protivník nemusí umět víc, než spustit převzatý program. V textu použitá slovní spojení protivník vypočte, zná, prozkoumá, získá apod. mohou mít i tento význam.

Předpoklad posouzení metod

    Jako měřítko pro posouzení metod vytváření hesel jsem zvolil odolnost metody proti útoku určité intenzity. Intenzitou tu rozumím počet kandidátů na heslo otestovaných za jeden den. Předpokládám, že protivník ví, jaká metoda byla pro vytvoření hesla použita, nezná však samotné heslo. Co mě vedlo k tomuto zásadnímu předpokladu?

1. Řada autorů, po té co doporučí určitou metodu, nabádá: Zkopírujte tento text a pověste jej u každého terminálu nebo PC. Kterákoliv z publikovaných idejí se může stát natolik populární, že ji budou používat tisíce lidí na celém světě a proto k ní přihlédne i protivník.
2. A. Kerckhoffs v knize La Cryptographie militaire požadoval již na konci minulého století, aby odhalení šifrovacího systému (analogicky ... aby znalost metody vytváření hesel) nezpůsobovalo problémy korespondentům (analogicky ... nevedla k snadnému odhalení hesla). V současné kryptologii je samozřejmostí předpoklad, že protivník zná použitou metodu a snaží se už "jen" zjistit používaný klíč.
3. Věřím v nekonečnou rozmanitost schopností lidského ducha a připouštím tedy, že uživatel může vymyslet vlastní metodu a že ji může dokázat udržet v naprosté tajnosti. Tatáž víra mě však nutně přivádí k představě protivníka třeba na druhém konci světa, který k výběru kandidátů na heslo použije právě tuto metodu. V síti sítí, jakou je Internet, je už dnes možné, aby o odhalení mého hesla usilovaly tisíce protivníků z celého světa.

Počet hesel vytvořených metodou

    Označme symbolem M množinu všech m hesel vytvořených jistou metodou. Z pohledu protivníka může být jako heslo vybrán kterýkoliv prvek množiny M se stejnou pravděpodobností 1 / m.

Poznámka: Není rozhodující, zda heslo je opravdu vybráno, např. z nějakého slovníku, encyklopedie, souboru, nebo vytvořeno, sestaveno pomocí určitého algoritmu (podle jistých pravidel atd.). V dalším textu používám v této souvislosti slovesa vybrat, vytvořit a sestavit jako synonyma.

    Jsou-li hesla vytvořena zřetězením tří prvků tak, že první prvek patří do i-prvkové, druhý do j-prvkové a třetí do k-prvkové množiny, pak pro tuto metodu je

m = i . j . k.

Důsledek: Jestliže jako metodu vytváření hesel zvolíme zřetězení právě d prvků i-prvkové množiny, pak počet hesel délky d je

m = id.

Pravděpodobnost odhalení hesla a stupně intenzity útoku

    Nechť za jeden den je otestováno maximálně n kandidátů z počtu m hesel. Číslo n nazveme intenzitou útoku. Po x dnech nemůže být prozkoumáno více jak g = n . x hesel. Pro g <= m uvádí [DoD] vzorec na výpočet pravděpodobnosti P odhalení hesla po x dnech útoku


P = g / m = n . x / m.          (1)

    Podle hodnoty n budu rozlišovat tyto stupně intenzity útoku:

  • 0. n = 0. Žádný útok.
  • 1. n = 10. Příkladem je útok přihlášením v síti, ve které je možné jen 10 chybných pokusů o přihlášení s určitým uživatelským jménem. Jedenáctý pokus v jednom dni způsobí poplach správci systému a operátorům; uživatelský profil se znepřístupní a uvolnit jej může jen správce systému (intruder detect).
  • 2. n = 20 000. Příkladem je útok přihlášením pomocí modemu uvedený v [DoD].
  • 3. n = 106. Prvním příkladem je útok přihlášením v lokální síti typu Ethernet s rychlostí přenosu dat 10Mb/s, prováděný programem, který běží na PC (podrobnosti jsou popsány v [Somarsoft]). Protože při znalosti uživatelských jmen by mohl protivník znemožnit práci právoplatným uživatelům, není počet možných přihlášení omezen jako v předchozím příkladě. Lze však prodlužovat dobu odezvy serveru při nesprávně zadaném hesle a tak zachovat hodnotu n konstantní bez ohledu na výkonnost "útočícího" počítače nebo použitý síťový protokol. Hodnota n odpovídá dvanácti pokusům za sekundu. Podle doporučení [DoD] by maximální počet neúspěšných pokusů o přihlášení měl být od 1 do 60 za minutu.
        Druhým příkladem je hodnota intenzity útoku výpočtem pro určitou aplikaci (PGP), předpokládaná R. T. Williamsem.
  • 4. n = 6 . 1011. O této hodnotě intenzity útoku výpočtem se zmiňuje J. B. Madsen. Program běžící na superpočítači CM5 otestuje za sekundu 7 milionů kandidátů na heslo. Aby mohl protivník takto zaútočit, musí mít k dispozici hodnotu h' a odpovídající programové a technické vybavení. U některých systémů je hodnota h' veřejně přístupná; v lokální síti může protivník zjistit hodnotu h' analyzátorem paketů; někdy stačí k získání h' nepozornost obsluhy serveru, která někde zapomene výpis operační paměti, obsahující dvojice hodnot U, h'.
  • 5. n = 1015. Multiútok přihlášením i výpočtem. V síti sítí, jakou je Internet, může o odhalení hesla usilovat paralelně tisíce protivníků z celého světa a někteří z nich mohou využívat paralelně tisíce počítačů z celého světa. Uvedená hodnota n odpovídá efektivně provedenému útoku výpočtem 1666 superpočítačů CM5.

Doba trvanlivosti hesla

    Existují systémy, ve kterých se heslo přenáší v otevřené podobě. Pokud provozovatel nevyloučí monitorování sítě, pak v tomto případě klademe definitoricky hodnotu n rovnu nekonečnu.
    Dokument [DoD] upozorňuje, že bychom neměli používat heslo déle než rok (tj. T <= 365).
    Pro dané hodnoty m, n lze ze vztahu (1) určit dobu T trvanlivosti hesla jako počet dní užívání hesla během nichž pravděpodobnost odhalení P nepřevýší určitou požadovanou hodnotu:


T = 0 pro n = nekonečno;
T = min(365, P . m / n) pro 0 < n < nekonečno;          (2)
T = 365 pro n = 0.

Stupeň odolnosti metody

    Řekneme, že metoda vytváření hesel odolá útoku intenzity n při daném P, vyjde-li ve vzorci (2) T = 365.
    Označme ns hodnotu intenzity útoku stupně s. O metodě vytváření hesel řekneme, že je metodou stupně odolnosti s, jestliže P = 10-3 a s je největší číslo, pro které tato metoda odolá útoku intenzity ns.

Poznámka: V literatuře se obvykle uvažuje hodnota P rovna 10-3, např. v klasické práci L. J. Hoffmana Modern Methods for Computer Security and Privacy (Prentice-Hall Inc., Engelwood Cliffs, New Jersey 1977). V [DoD] je v jednom z příkladů P = 10-6 a pro důležité profily se doporučuje dokonce P = 10-20. Tentýž dokument však v příkladech nepředpokládá útok vyššího stupně než 2. Vyčíslíme-li hodnotu m ze vztahu m = T . ns / P pro zadané s = 3, 4, 5; P = 10-3 a T = 365, vyjde nám po řadě 3.65 . 1011, 2.19 . 1017, 3.65 . 1020. Při takových hodnotách m, T = 365 a útoku 2. stupně (n = 20 000) bude podle (1) pravděpodobnost odhalení hesla rovna postupně hodnotám 2 . 10-5, 3.3 . 10-11, 2 . 10-14.

Dostačující počet hesel a dostačující délka hesla

    Jak velká musí být hodnota m, aby metoda charakterizovaná tímto číslem měla stupeň odolnosti s? Takovou hodnotu nazveme dostačujícím počtem hesel pro stupeň odolnosti s. Je rovna alespoň


m = 365 . ns / 10-3 = 365000 . ns          (3)

Tabulka 1. ukazuje, jaká hodnota m je dostačující pro stupeň odolnosti s = 1, 2, ..., 5.

Tabulka 1. Dostačující počet hesel pro daný stupeň odolnosti
stupeň 1 2 3 4 5
m 3.65 . 106 7.3 . 109 3.65 . 1011 2.19 . 1017 3.65 . 1020

         Jestliže jako metodu vytváření hesla délky d (d >= 1) zvolíme zřetězení právě d prvků i-prvkové množiny, pak dostačující délka d hesla pro stupeň odolnosti s, je nejmenší přirozené číslo splňující nerovnost:


d >= (log365 + logns + 3) / logi           (4)

kde log označuje logaritmus, jehož základem je číslo 10.

Důkaz: Dosadíme-li m = id do rovnice m = 365 . ns / 10-3, vyjde nám id = 365 . ns . 103. Tato rovnice znamená totéž co d = logi(365 . ns . 103) = logi365 + logins + logi103 = (log365 / logi) + (logns / logi) + (3 / logi) = (log365 + logns + 3) / logi.

Odhad hodnoty n ve vlastní praxi

    Jakou maximální hodnotu n mám uvažovat v systému, který používám? Kdyby byl vyloučen útok výpočtem, pak by tato hodnota byla rovna maximálnímu počtu "beztrestných" pokusů o přihlášení za den. V případě útoku výpočtem závisí hodnota n jak na použité technice tak i na algoritmické složitosti výpočtu transformace J. Jak ji odpovědně odhadnout?

... systém je tak bezpečný, že uživatelé si budou moci vytvořit jediné heslo a nebudou ho už muset nikdy měnit(citát v článku D. van Kirka Bezpečnost sítí LAN, Computerworld, č. 5 1993). Kdyby to byla pravda, mohli bychom na nebezpečí útoku výpočtem zapomenout. Je systém, který používám, tak bezpečný?

... zatím nebyla nalezena prakticky užitečná funkce, která by byla dokazatelně jednocestná (O. Grošek, Š. Porubský: Šifrovanie, Grada, Praha 1992). I když bude tvůrce, dodavatel, provozovatel tvrdit, že systém je tak bezpečný, nemusí to být pravda.

Testy na počítači ukázaly, že Velký červ v Internetu prováděl transformaci hesla více než 9krát rychleji než standardní verze (Seeley D.: Password Cracking: A Game of Wits, CACM, č. 6 1989). I když budu mít dostatek informací o transformaci J, je nebezpečné, uvažuji-li o mezních možnostech protivníka, vycházet ze současných odhadů složitosti jejího výpočtu.

     Při odpovědné volbě by hodnota n měla kompenzovat všechnu naši nevědomost. Proto jsem vybral, jako intenzitu útoku čtvrtého stupně, vůbec největší hodnotu n, se kterou jsem se v literatuře setkal. Proto v tomto článku pokládám za rozumnou takovou metodu výběru hesla, bez ohledu na používanou transformaci J, která odolá útoku ještě 1666krát intenzívnějšímu (útoku 5. stupně). Srovnejme tuto hodnotu s nejrozsáhlejším multiútokem, který byl dosud proveden. Podle zprávy v časopise Computerworld (č. 26 1997, str. 1) se na odhalení jednoho 56 bitového klíče z 7.2 . 1016 možných podílelo 78000 počítačů. Po čtyřech měsících intenzívních výpočtů a otestování 1.7 . 1016 kandidátů byl klíč nalezen a odměna vypsaná firmou RSA mohla být vyplacena. Intenzita útoku efektivně spolupracujících počítačů, z nichž každý prozkoumával jen určité množství klíčů, měla hodnotu n = 1.7 . 1016 / 120 = 1.4 . 1014.

Louskání hesel

    Odhalování hesel se nazývá louskání, podle původního anglického termínu pro tuto činnost crack - rozbít, rozlousknout. Odhalení hesla umožňuje protivníkovi:
  • Pozměnit, zničit, získat data uživatele nebo data, která byla uživateli svěřena do správy (data - elektronické peníze, data - důležité a/nebo cenné informace, důvěrná data).
  • Využít zdroje počítačového systému: procesor a operační paměť, například pro útok výpočtem; diskovou paměť, například pro uložení "překladového slovníku" výsledek transformace - heslo.
  • Předstírat, že je právoplatný uživatel, a provádět různé elektronické činy od žertovných přes nechutné až po kriminální.

    Následující příklad útoku výpočtem je v krocích 1 - 4 inspirován programem Velký červ v Internetu:

  • 1. krok - Získání U, h' a co nejvíce informací o uživateli.
  • 2. krok - Test zda heslem není prázdný řetězec, U, U zřetězeno s U, U zapsáno: pozpátku; velkými nebo malými písmeny; se znakem na začátku nebo na konci; ...
  • 3. krok - Test zda heslem není některé z často volených hesel. Příklady z [Madsen]: SECRET, qwerty, mastermind, wiseguy, astrid90, 8jacks, idjjdi, MartiN, Olerne, kotobuki (japonsky štěstí). V předem připraveném slovníku dvojic J(k), k se hledá J(k) = h'.
  • 4. krok - Kandidáti na heslo se vybírají z určitého seznamu, podle jistých pravidel, jisté metody. Pro každého kandidáta k se vypočte J(k) a testuje se, jestli platí J(k) = h'.
  • 5. krok (tkzv. útok hrubou silou) - Podobně jako v kroku 4 se systematicky testují všechna možná hesla; případné omezení na délku hesla a na použité znaky v hesle definuje systém nebo jeho provozovatel. Kandidáty na heslo je možné vybírat v lexikografickém pořadí nebo náhodně (za předpokladu, že výběr dvou stejných kandidátů je vzhledem k obrovskému počtu možných hesel velmi málo pravděpodobný).

Křehká hesla pro Lyu

    Píseň pro Lyu je název povídky G. R. R. Martina, ve které vystupují Nadaní, kteří čtou lidi (tj. myšlenky lidí). Lya nemohla dokonce ani hrát hazardní hry, protože její talent byl příliš velký. Pokud bychom chtěli, aby heslo zůstalo naším tajemstvím, nemohli bychom se přihlašovat v její přítomnosti.
    Jestliže se nám bude někdo dívat při zadávání hesla na prsty, dokáže heslo odpozorovat? Práce jako [Madsen] a [MOLO] doporučují ztížit odpozorování takovým heslem, které by se dalo napsat co nejrychleji, co nejvíce prsty, bez nutnosti pohlédnout na klávesnici. Z podrobnějších úvah na toto téma mě vyléčili J. Lukášek a V. Žák už v únoru roku 1989. Nevěřil jsem jim, že dokáží odpozorovat moje tehdejší heslo MIDZBIL (Midžbil je jméno vydřího samečka v románu G. Maxwella Jasná voda vůkol), které jsem dovedl napsat opravdu rychle. Určili je po jediném pozorování tak, že jeden sledoval při psaní mou pravou a druhý levou ruku.
    Pro Lyu jsou všechna hesla křehká - ověření totožnosti heslem nemůžeme použít v přítomnosti jiné osoby. Do takových míst bychom si museli smluvit schůzku s autentizačním serverem; museli bychom obsadit zvolený terminál nebo klientskou stanici před smluveným časem a pak bychom se mohli přihlásit bez uvedení hesla (podrobnosti uvádím v článku Sebeobrana proti hackerům, Softwarové noviny, č. 10 1994). Nebo použít jinou, ovšem dražší, metodu ověření totožnosti.
    Počítač uživatele by měl být zabezpečen proti úpravám (například klávesnice), které by mohly vést k získání hesla. Pracoviště uživatele by dokonce mělo být stíněno, aby text psaný na klávesnici nemohl být snímán zařízením umístěným mimo budovu (tempest attack).

Co je tak špatného na ověření heslem?

    Použití hesel je nejvíce zatracovaná metoda ověření totožnosti uživatele (ovšem, zároveň nejužívanější, protože je nejlevnější). Když heslo nikomu neřeknu, nemám je nikde napsané a je vyloučeno zachycení hesla při jeho zadávání (odpozorováním - dalekohledem i mikrokamerou, infiltračním programem, "odposlechem" klávesnice nebo jejími úpravami, analyzátorem paketů, přenosem lidské myšlenky prostorem bez hmotného zprostředkování od jednoho mozku k jinému, jak píší J. Bergier a L. Pauwels v Jitru kouzelníků), co je na této metodě vlastně tak špatného?
    Při přihlašování se mi někdy stane, že heslo napíšu na místo, kde má být uvedeno uživatelské jméno, nebo za ně. Místo hvězdiček nebo blikajícího kurzoru se pak na displeji ukáže heslo v celé své kráse. Odešlu-li takový řetězec znaků systému, uloží se do souboru chybových zpráv (audit journal) jako neexistující uživatelské jméno. V roce 1993 jsem měl možnost jeden takový soubor prostudovat. Svoje hesla v něm představilo 186 nechtěných respondentů. Jako heslo mohli volit libovolnou kombinaci velkých písmen latinské abecedy a číslic v délce 4 až 8 znaků, ne však své uživatelské jméno. A jaká hesla vybrali? 25krát svoje křestní jméno (průměrná délka hesla ve znacích 4.16); 18krát hovorovou podobu svého křestního jména (průměrná délka křestního jména 6.6, hesla 4.4); 17krát zřetězení svých iniciál s rokem svého narození; 6krát první 4 znaky svého příjmení (při průměrné délce příjmení 8.3); 5krát název aplikace; 5krát označení pracoviště; 3krát své příjmení a 3krát svoje křestní jméno napsané pozpátku (při průměrné délce hesla 4.6). V případě 44% uživatelů by bylo možné odhalit jejich heslo po ne více jak deseti pokusech o přihlášení.

Hesla jak pro schránku na zavazadla

    Stojím na nádraží před schránkou na zavazadla a mám nastavit svoje heslo. Nemám-li možnost si je poznamenat, pak z obavy, že heslo zapomenu, vyberu něco takového, jako je jméno z rodiny, kódy z dokladů nebo jiné osobní údaje. Počítačový systém není schránka na zavazadla a přece spousta lidí na celém světě volí hesla právě takovým způsobem. Čím více o uživateli protivník ví, tím spíše může odhalit jeho heslo, vybrané jak pro schránku na zavazadla. A nepotřebuje k tomu více než 20 - 30 pokusů o přihlášení.

Hesla jak do stráže

    Aineiás Taktikos v díle O obraně měst (4. st. před n. l.) radil římským vojákům vydávat hesla do stráže snadná pro zapamatování a svým významem co možná nejbližší zamýšlené akci.
    V příběhu s původním názvem Little Green Men hádá agentka Scullyová heslo agenta Muldera. Dabing nám představuje její pokusy českými slovy "strašidelný", "Amanta", "nevěřím" (třetí je správně). Seriál je americký a jeho tvůrci toho vědí o typickém výběru hesla hodně. Scullyová zná Muldera, ví čeho se týkají data chráněná heslem, a tak na displeji Mulderova notebooku můžeme číst její tipy: SPOOKY, AMANTHA, TRUSTNO1.
    Spousta lidí na celém světě volí heslo jak do stráže: snadno zapamatovatelná vlastní a místní jména, slova související s náplní práce, se zájmy a koníčky. Programy na odhalování hesel proto zkouší slova z určitého seznamu, navíc každé slovo psané pozpátku, se speciálním znakem nebo číslem na konci nebo na začátku, místo třetího znaku, místo pátého znaku, s velkými písmeny v určitých pozicích, bez samohlásek. Tyto programy pracují se seznamy, které obsahují kromě často volených hesel a slov ze slovníků všech živých i mrtvých jazyků a encyklopedií také různé zkratky, často užívané vzory na klávesnici (QWERTY, FRED), výrobní značky a názvy výrobků, URL adresy, názvy uměleckých děl, vědecké a technické termíny, značky a schémata, jména postav z bible, Shakespearových děl, science-fiction atd. atd. Mohou tedy obsahovat i "slova" 302-75M-12P (typ lupenkové pilky), SVT137273 (lokomotiva z roku 1938), F-sS.O-d (báseň E. A. Poa), WMLJIATC (prvních 8 velkých písmen uspořádaných podle čitelnosti B. E. Roethleinem), DXXI-XXIV/5;AVII-IX/4-6 (ploutevní vzorec cichlidky rvavé). Sjednocení všech takových seznamů budu označovat jako Seznam. Nemusí být uložen na jediném místě a nemusí existovat celý v elektronické podobě. V případě sítě sítí jakou je Internet mohou o odhalení mého hesla usilovat současně protivníci z Afganistanu, Albánie, Alžíru, Arménie, ..., vedlejší kanceláře ... Mým protivníkem může být akvarista, který bude hledat kandidáty na heslo v oblasti svého zájmu, biolog, který je bude hledat v oblasti své profese, nebo také cyklista, diskžokej, entomolog, filatelista, geolog, heraldik, chemik, ..., zeteolog (řecké slovo zeteo znamená zjistím si to sám) ...
    Práce s počítačem není strážní služba a přece spousta lidí na celém světě volí hesla jak do stráže. Doba trvanlivosti hesla vybraného z milionu hesel - českých slov včetně tvarů - je 100 dnů při útoku 1. stupně.

Šokující nesmysly

M. Müller napsal, že člověk žije tři životy: veřejný, který vidí celý svět; domácí, který znají jen jeho známí a vnitřní, o němž ví jen on sám. Ať jste nebo nejste světově proslulí (výrok byl o lidech slavných), jedna věc je o vás obvykle známá všem dalším uživatelům sítě - vaše uživatelské jméno. Neodvozujte z něho svoje heslo žádným seberafinovanějším způsobem. Čím více informací o vás bude v síti dostupných (osobní údaje, životopis, zájmy), tím snadněji bude možné uhádnout heslo z nich odvozené. Hesla jak pro schránku na zavazadla jsou vzata především z veřejného života, hesla jak do stráže především z domácího. Už jsem psal o tom, že po čase se naše heslo objeví jako nesprávné jméno uživatele v nějakém souboru. Nevolte proto jako heslo nic z vašeho vnitřního života. Podaří-li se protivníkovi takové heslo odhalit, může uživateli uškodit, aniž by je vůbec musel neoprávněně použít v počítačovém systému. Proto odmítám i doporučení [Ward] volit jako heslo krátkou větu - šokující nesmysl, něco příšerně sprostého, rasistického apod. I když si takové heslo uživatel snadno zapamatuje a navíc jej donutí, aby intuitivně převzal zásady správného užívání hesla - nikam je nezapisoval, nikomu je neříkal, postaral se o to, aby při přihlašování neměl nikoho za zády ...

Snadno zapamatovatelná hesla

Aby se heslo nemuselo nikdy nikam zapisovat, vychází většina autorů z předpokladu, že má být snadno zapamatovatelné. Z předchozího výkladu navíc plyne požadavek, aby nebylo snadno odvoditelné z uživatelského jména nebo osobních údajů uživatele a nevyskytovalo se v Seznamu. Cílem této kapitoly je představit několik takových metod.

Iniciály a datum narození I a II

     B. B. Madron navrhuje tvořit heslo takto: Vezmou se iniciály a datum narození nějaké osoby, kterou by s uživatelem nikdo nespojoval; číslo měsíce se zřetězí s iniciálami a posledními dvěma čísly roku.
    Měsíců je dvanáct; první a druhá iniciála může být vybrána z 34 písmen; třetí iniciála může, ale nemusí být uvedena (tj. celkem 35 možností). Počet hesel tedy nemůže být větší než 12 . 34 . 34 . 35 . 100 = 4.9 . 107.     M. Brown radí vytvořit heslo zřetězením iniciál se speciálním symbolem nebo číslem a letopočtem (m = 34 . 34 . 35 . 26 . 2000 = 2.1 . 109).
    Iniciály a datum narození I a II jsou metody stupně odolnosti 1.

Nový jazyk

Heslo nepatřící do Seznamu se můžeme pokusit najít mezi znakovými řetězci, které se podobají slovům nějakého, pro snadné zapamatování nejlépe mateřského, jazyka. Inspirace z literatury: V povídce Nedělní zepelín od W. Saroyana používají chlapci vymyšlenou řeč, ve které se například dobrý den řekne palka eskos. Inspirace ze života: Můj syn, když začínal mluvit, používal zajímavá slova jako ápotoč pro autobus a okoaňk pro sněhuláka.
    V Seznamu nebudou záměrně chybně vytvořená slova. Současným užitím zdrobnění a zveličení vznikne třeba zvířátisko; nesmyslným přechýlením plejbojka a nesprávným přechýlením soudkyňka. Jazykověda říká, že se nová slova tvoří odvozením (předponou a příponou), složením slovních základů, zkracováním, překrucováním a křížením. Složením můžeme vytvořit z řeckého plexis úder a českého heslo nové slovo plexiheslo - nerozbitné, nerozlousknutelné heslo. Našim cílem ovšem není předjímat vytvoření slov, která teprve obohatí náš jazyk. Následují dva tipy na algoritmizaci tvorby nových slov. V prvním se sestavují z kusů existujících slov; ve druhém ze souhlásek a samohlásek podle zadaného schématu.

Slovní salát

     V. L. Levi píše v knize Já a my o poslední etapě schizofrenického myšlení, která se projevuje slovním salátem - z integrálu a krematoria pak vznikne kremigrál. Inspirativní příklady slovního salátu můžeme nalézt v překladech literárních děl: pampeliška a vlk dá pampevlka Ch. Morgensterna; kolčava a lasice dá kolčavici a kolasici A. A. Milneho. Uvedu jen jeden z možných algoritmů pro vytvoření slovního salátu. Ve slovníku, jako je Slovník jazyka českého od F. Trávníčka (Slovanské nakladatelství, Praha 1952), vybereme náhodně dvě slova; z prvního vezmeme (například) začáteční tři písmena a zaměníme jimi první tři písmena druhého slova. Příklady, které mi náhodně vyšly: toč- a horopis dá točopis; bab- a horizont dá babizont. V tomto případě nemám dost podkladů pro přesnější určení hodnoty m. Odhadl jsem ji shora takto: Kdyby všech "přípon" po odtržení prvních tří znaků bylo 38000 (u slov začínajících písmeny A, B je jich v Trávníčkově slovníku asi 1000) a kdyby první tři písmena byla zvolena libovolně s výjimkou prvního, které nesmí být ěýů, pak by počet hesel byl 38 . 41 . 41 . 38000 = 2.4 . 109. Stupeň odolnosti tohoto slovního salátu je jedna.

Poznámka: Kromě Leviho mluví o podobném způsobu tvorby slov ústy Valihracha i L. Carroll (pseudonym matematika Ch. L. Dodgsona) v knize Alenka v kraji divů a za zrcadlem. Nazývá jej slovní kufřík a právě s jeho pomocí je vytvořena báseň Tlachapoud (Je svačvečer. Lysperzní jezeleni se vírně vrtáčejí ...) a představte si, Paželv se učil příhodopis. Tentýž princip tvorby slov označují autoři Jitra kouzelníků jako Kreysslerův verbalismus. Použil jsem Leviho termín, protože vystihuje náhodnost spojení jak částí slov tak i slabik nebo jednotlivých písmen, jehož výsledek připomíná slovo jazyka.

Hláskové schéma

     Vynecháme-li salát ze slabik, z trojic a dvojic písmen, můžeme přistoupit k metodě ze studie [MOLO]. Heslo se vytvoří tak, že náhodně vybraná souhláska je následována jednou až dvěma náhodně vybranými samohláskami až do celkové délky hesla 8 znaků. Tímto způsobem vzniknou hesla sedmi hláskových schémat baabaaba, ..., babababa (kde a označuje samohlásku a b souhlásku). [MOLO] tvrdí, že takto vytvořená hesla se snadno vyslovují a tedy i snadno pamatují. Zkusil jsem vytvořit hesla podle hláskových schémat babaabab a babababa. Při použití latinské abecedy mně vyšlo JILUEHIM a VIJABYDI. Počet hesel je závislý na použité abecedě. V případě latinky mají slova podle hláskových schémat stupeň odolnosti 1 (m = 3 . 203 . 65 + 4 . 204 . 64 = 1 . 109).

     Taková podivná jména, že se našinec až zamyslet musí (J. a W. Grimmové.) Heslo nemá patřit do Seznamu, ale jakou mohu mít jistotu, že slova JILUEHIM a VIJABYDI nejsou obsažena např. ve spisovném slovníku jazyka svahilského? V materiálu [UCLA] je uveden tip na tvorbu dobrých hesel - zapsat slova ne jak se píší, ale jak se vyslovují (R2-D2 je v českém vydání knihy G. Lucase Hvězdné války Artoo Detoo). Bylo by snadné upravit program odhalování hesel tak, aby pro každé slovo ze slovníku zkusil i jeho zápis podle výslovnosti. Ale českého čtenáře bude mnohem více šokovat příklad takto utvořeného "dobrého" hesla, kterým je - fotograf.
    Největším protivníkem jakékoliv metody vytváření nových slov jsou tisíce firem na celém světě, které se snaží nalézt novou obchodní značku nebo označení svého výrobku a tak stále rozšiřují počet slov v Seznamu. O možnosti algoritmizace a o využití výpočetní techniky v této oblasti píše už C. J. Werkman v knize Trade Marks (J. H. De Bussy, Amsterdam 1974). Je dobré si uvědomit, že moje heslo může být podrobeno zkoumání, zda se v Seznamu nenalézá, zatímco já nemohu podobný úplný test před volbou určitého řetězce za heslo nikdy provést.

Dvě slova spojená speciálním symbolem

     Mnoho studií (za všechny viz [MOLO]) považuje za jednu z nejlepších metod spojení dvou krátkých slov číslicí nebo speciálním znakem. Heslem však nesmí být sonet-mlčení, protože tak se jmenuje jedna z básní E. A. Poa, ale ani dobré!pivo ani jsme1tu, jak se v literatuře často uvádí. Slova by neměla souviset ani s uživatelem ani sama se sebou.
    

    Podle [DoD] je například v angličtině 23300 slov sestavených ze 4 až 6 písmen. Uvažujeme-li 26 čísel a speciálních znaků, pak bude m = 23300 . 26 . 23300 = 1.4 . 1010. Tato metoda má stupeň odolnosti 2. Doba trvanlivosti hesla při útoku 3. stupně je 14 dnů.

Shrnutí

    Cílem tohoto dílu bylo ukázat, jak hodnotit vlastní nebo z praxe či z literatury převzaté metody vytváření hesel. Praktické použití principu "Odolnost metody je dána počtem hesel metodou vytvořených", jsem vyzkoušel na několika příkladech. Výsledky mohu shrnout takto:
     Volba křestního jména apod., hesla jak pro schránku na zavazadla, hesla jak do stráže mají stupeň odolnosti nula. První dvě nejsou prakticky použitelné. Vybírají-li se hesla jak do stráže z dostatečně velké množiny, mohou odolat, po nepříliš dlouhou dobu vzhledem ke své trvanlivosti, jen útoku 1. stupně. Iniciály a datum narození I a II, uvedený příklad slovního salátu, hláskové schéma mají stupeň odolnosti 1; není bezpečné použít je v případech, kdy protivník může otestovat za den desetitisíce až statisíce kandidátů na heslo. Dvě slova spojená speciálním symbolem je metoda se stupněm odolnosti 2; příliš slabá při útoku intenzity řádově milionu pokusů o odhalení za den.

     I když nebudeme vědět nic o možnostech protivníka, je zřejmé, že příklad metody odolávající útoku výpočtem dosud nebyl uveden.

část II: Jak zvolit heslo

Literatura

Zvýrazněné odkazy byly dostupné 17. listopadu 1999

Obálka časopisu SWN  

Článek Umění vybírat a skrývat byl publikován jako COVER STORY v červnovém čísle časopisu Softwarové noviny z roku 1998 a v elektronické podobě je uveden také na CD, které vyšlo v dubnu 1999 společně s jubilejním 100. vydáním časopisu Softwarové noviny. Obrázek titulní strany, převzatý z tohoto CD, ukazuje, jak můj článek ovlivnil výtvarníka obálky časopisu.

 

hlavní stránka identifikace a autentizace rexx akvašneci zrakové klamy mail

změněno 19. července 2001
Copyright © 1998-2001 Vladimír Zábrodský