Lehce zlomitelná hesla (II)

Aleš Padrta
Computerworld, 20. května 2011

Minulý díl byl věnován útoku hrubou silou a také jeho vylepšené verzi. Tento přístup však vždy vyžaduje mnoho výpočetního výkonu a zcela ignoruje fakt, že hesla si lidé zpravidla vymýšlejí sami a výsledek jejich úsilí rozhodně není náhodný řetězec znaků.

Není tedy třeba prohledávat celý prostor, ale pouze část, ve které se lidmi volená hesla vyskytují. Analýzou běžných myšlenkových pochodů nebo zvyklostí uživatelů tak lze v průměru zajistit menší počet pokusů nutných pro uhodnutí hesla. Navíc lze tímto způsobem pokrýt i ta, která by útok hrubou silou zdolával příliš dlouho.

Slovníkový útok

Jednoduchou metodou je takzvaný slovníkový útok, který spočívá v postupném zkoušení hesel definovaných v příslušném seznamu.

Jak už samotný název napovídá, prapůvodní seznam sestával z běžných slov daného jazyka, protože uživatelé nebyli příliš kreativní a jako hesla si zpravidla volili běžná podstatná jména, tj. názvy předmětů, osobní jména, názvy měst a dalších míst, jména slavných osobností, pojmy z komixového a filmového světa, pojmy z mýtů a legend, termíny ze sportu, všeobecně známé zkratky, jména planet a podobně. Nicméně slovníky jsou v průběhu času rozšiřovány o další položky, zpravidla na základě známých uniklých hesel. Jelikož je cílem mít slovník s co nejpravděpodobnějšími hesly, je z tohoto hlediska vítán každý únik velkého množství uživatelských dat (např. Z již několikrát zmiňované sociální sítě RockYou), která lze statisticky zpracovat.

Přínos statistiky je nejlépe vidět z tabulky, ve které jsou uvedeny počty známých hesel potřebné k prolomení daného počtu (resp. procenta) hesel v sociální síti RockYou. Například se znalostí správných 92 hesel je útočník schopen získat přístup ke každému desátému účtu, a to na pouhé cca tři miliardy pokusů (v nejhorším případě statisticky stačí polovina). V minulém díle tohoto seriálu bylo operováno s rychlostí 10 milionů otestovaných hesel za sekundu, tj. příslušných jeden a půl miliardy pokusů by bylo hotovo během pěti minut.

Statistika pro sociální síť RockYou
VELIKOST SLOVNÍKUPOČET PROLOMENÝCH HESEL
135 % 1 626 909
92 10 % 3 260 339
249 15 % 4 923 112
512 20 % 6 520 678
929 25 % 8 150 847
9 438 50 % 16 301 694
59 181 75 % 24 452 541

Pro zajímavost, nejčastěji používané heslo je 123456. Mezi uživateli RockYou jej použilo 290 729 (0,9 %) uživatelů a i v dalších statistikách se drží na předních příčkách. Tedy je-li potřeba rychle získat libovolný účet, je vhodné začít s ním. Ve druhé tabulce jsou pak uvedena nejčastější hesla a příslušný počet uživatelů, kteří je použili.

Hybridní útok

Uživatelé se v průběhu času naučili volit si silnější hesla, resp. K tomu většinou byli donuceni technickými opatřeními na straně poskytovatele služeb.

Deset nejčastěji používaných
hesel v sociální síti RockYou
# HESLO POČET POUŽITÍ
1 123456 290 729
2 12345 79 076
3 123456789 76 789
4 password 59 462
5 iloveyou 49 952
6 princess 33 291
7 1234567 21 725
8 12345678 20 553
9 abc123 16 648
10 nicole 16 227

Většinou však pouze modifikují svůj oblíbený výraz tak, aby splnil podmínky vyžadované příslušným systémem. Typicky se jedná o minimální délku hesla a počet různých skupin znaků. I na takové případy jsou však lamači hesel připraveni – stačí vědět, jaké změny uživatelé provádějí, a každé heslo ze slovníku vyzkoušet také s těmito modifikacemi. Jde v podstatě o kombinaci slovníkového útoku a útoku hrubou silou, a proto se někdy označuje též jako hybridní.

Následující modifikace slovníkových výrazů mohou pomoci zlomit řadu hesel:

  1. první písmeno výrazu je převedeno na velké,
  2. všechna písmena jsou převedena na velká,
  3. výraz je přepsán pozpátku,
  4. náhrada znaků za vizuálně podobné číslice (např. O-0, i-1, z-2, S-$ apod.),
  5. náhrada diakritických znaků za odpovídající číslici (např. ě-2, š-3 atd.),
  6. dvě a tři písmena výrazu jsou převedena na velká, větší počet nebývá praktický kvůli počtu kombinací,
  7. opakování výrazu dvakrát za sebou,
  8. řetězení dvou pojmů ze slovníků oddělených oddělovačem (mezera, tečka, hvězdička apod.),
  9. připojení prefixu nebo sufixu, přičemž jsou připojovány běžně používané řetězce jako 1, 123, abc, 69, 4u apod.

Modifikovaná hesla nejsou ukládána ve slovníku, protože by byl příliš velký, a jsou generována během zkoušení.

Poměrně zajímavou možností je nepoužívat jako základ seznam existujících slov, ale generovat všechna (rozumně) vyslovitelná slova v daném jazyce s definovaným počtem slabik. Tato myšlenka vychází ze skutečnosti, že vše, co se dá vyslovit, si lidská paměť lépe pamatuje. A uživatelé si chtějí své heslo pamatovat nebo jsou k tomu alespoň přesvědčováni.

Dále někteří uživatelé používají tzv. klávesnicové vzory. Jde o posloupnost písmen, jejichž odpovídající klávesy tvoří na klávesnici nějaký geometrický obrazec, nejčastěji úsečky (qwertz, yxcv apod.) a čtyřúhelníky (např. qwsa). Tyto výrazy jsou ve slovnících také často obsaženy.

Využití dostupných informací

Pokud jsou o uživatelích, jejichž heslo je lámáno, známy další informace, mohou být využity při konstrukci pravděpodobných hesel.

Uživatelé si totiž nejlépe pamatují informace, které se týkají jich samých, jejich blízkých nebo předmětu jejich zájmu, a často je používají jako základ svého hesla. Zdrojem takovýchto informací mohou být v dnešní době například sociální sítě. Následně lze ze slovníku vybrat pravděpodobnější výrazy a vyzkoušet je dříve než jiné včetně různých modifikací. Automatické zpracování takovýchto informací je však svízelné a je výhodné hlavně při zájmu o konkrétní účet.

Poměrně lehce získatelné údaje, jako jsou uživatelské jméno, občanské jméno a příjmení, lze automaticky využít pro vygenerování relativně často používaných, uživatelsky závislých, a tedy ve slovníku nepodchycených výrazů. Například pro uživatele Aleše Padrtu s uživatelským jménem apadrta je vhodné vygenerovat následující základní výrazy: apadrta (tj. stejné jako uživatelské jméno), alespadrta, padrtaales, alesales, padrtapadrta, apapapap (několikrát se opakující se iniciály) apod.

Dalším vodítkem může být znalost příslušné služby. Mnoho uživatelů si zvolí heslo odvozené od charakteru služby (např. poštovní schránka – heslo obsahuje výraz email, připojení k bezdrátové síti – internet, sociální síť – Rock You apod.)

Doporučení

Heslo, které má odolat slovníkovému útoku, by nemělo být uhodnutelné výše naznačeným postupem. Nicméně uživatel naráží na problém, že jím zvolený výraz nemusí v jeho jazyce nic znamenat, ale v jiném jazyce půjde o běžné slovo nebo alespoň o mytologickou bytost. A bude se tedy v některém slovníku nacházet.

Při odstranění tohoto nedostatku musí asistovat příslušný systém již při vytváření hesla. Prakticky má tři možnosti – vnutit uživateli silné hes lo, snažit se prolomit hesla svých uživatelů a o těch slabých je informovat nebo ho už při zadávání porovnat se slovníkem a upozornit na problém. Nicméně existuje i postup, jak si zvolit bezpečné a zapamatovatelné heslo, který bude nastíněn v příštím díle seriálu.

O autorovi

Aleš Padrta
Autor je řešitelem aktivity Cesnet CSIRT sdružení Cesnet.

další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz