Slovníkové útoky a útok silou

Možnost mohutné paralelizace na internetu má své výhody i nevýhody. Jednou z obtěžujících záležitostí jsou sítě automatů (zombie), které testují počítače a snaží se je napadnout. Tento článek se věnuje hlavně útoku hrubou silou na přihlašovací mechanismy.

- stále stejně stupidní a pro uživatele obtížná činnost, tedy hledání nechráněných počítačů a automatizovaný útok. Utok na známou zranitelnost nejenom v těchto mechanismech, je na nechráněném počítači je vždy fatalní. Proto tyto sítě v mém osobním hodnocení zaujímají první místo jako důvod pro instalaci firewallu. Samotná instalace například Windows XP znamená stažení cca 400MB záplat, kterou ovšem při průměrném čase 20 minut do napadení nestihnete (tento interval pomalu klesá). Někteří provideři patrně tyto automaty blokují, jiní ne, takže při připojení přes určité providery jsem se s touto aktivitou nesetkal vůbec.
- útok na známou zranitelnost u chráněného systému. Pokud nejsou implementovány určité mechanismy ochrany a monitorování, je počítač napadnut a kompromitován. Bohužel zde neexistuje dokonala prevence.
- útoky hrubou silou a slovníkové útoky na známé služby. Při vhodném nastavení systému a dodržování základních pravidel lze tyto "testy" odpočítat do věčných lovišť.
- cílený útok - doufám, že nemáte na svém počítači archívy všech tajných služeb. Pak by bylo nejspolehlivější ochranou před útokem po internetu vzít jedny velké nůžky a udělat cvak .... Každý systém má chyby, je jen otázkou času kdy a kdo je najde.

Utok hrubou silou
Utok hrubou silou spočívá v pokusech o přihlášení, kde se jako heslo zkoušejí všechny možné kombinace znaků.
Slovníkový útok
Slovníkový útok spočívá v pokusech o přihlášení, kde se jako hesla posílají slova ze slovníku. Díky určitým charakteristikám člověk tíhne k jednoduchým heslům, jménům, telefoním číslům, datům narození, ale třeba i jménům oblíbených románových postav atd.
Utok přenesením
Většina uživatelů a správců opakuje základní chybu, tzn. používají identické heslo k různým systémům. V takovém okamžiku lze využít útoku hrubou silou nebo metod sociálního inženýrství a vylákat z dotyčného člověka nějaké heslo. Je velice pravděpodobné, že to samé heslo používá i pro jiné účely a následně lze kompromitovat další systémy. Na druhou stranu, pamatovat si řádově desítky hesel a pravidelně je měnit zavání heslovým fašismem (viz níže), ale řešením této situace mohou být "Password managers" (správci hesel, uchovávají hesla v šifrované podobě) nebo metody jako "Single sign-on".
Heslový fašismus
Obrana proti odhalení hesla dovedena ad absurdum, ve výsledku kontraproduktivní. Pro příklad, vynucení změn každý měsíc, heslo obsahující malá a velká písmena, číslice a speciální znaky o minimální délce 8 znaků, které nemá souvislost s nějakým známým slovem .... to je realita. Výsledek je jediný, heslo je často nalepené na monitoru a správce má nejvíce práce s jeho změnami. Uživatelé jsou zmatení .... a práce stojí.

Case Insensitive (CI) - není rozdíl mezi malými a velkými písmeny, celkem 26 znaků
Case Sensitive (CS) - je rozdíl mezi malými a velkými písmeny, celkem 52 znaků
Numbers (N) - čísla, celkem 10 znaků
Special characters (S) - speciální znaky, celkem 33 znaků
Počet kombinací
Počet znakůCICI,NCI,N,SCSCS,NCS,N,S
1263669526295
23256302346132618914495
326007140523942210037820138415
414950589058645012707255578453183545
565780376992112385132598960647100257940519
623023019477921198774722035852061474519869107785
76578008347680107889724813378456049179615211050084695
815622753026034083614536727525381503381098545121550931645
Tyto čísla samy o sobě nic neříkají, jenom jaké množství kombinací může skrývat určitá sada znaků. Zajímavěji tyto údaje začnou vystupovat v časovém měřítku. To, jestli někdo odzkouší 1, 10 nebo 100 hesel za vteřinu a těch 100 se mi již zdá hodně. Technologicky je podle mého možné kontrolovat jedno až deset hesel.
Při zjišťování hesla hrubou silou je možné testovat například u šifrovaných dat (word dokumenty, komprimované archívy atd.) až milióny hesel za vteřinu. Naštěstí přihlašovací mechanismy nejsou tak rychlé.
Časový údajDélka ve vteřinách
1 minuta60
1 hodina3600
1 den86400
1 týden604800
1 měsíc2592000
1 rok~31557600
Z tohoto vyplývá:
- prohledávání celého prostoru 8 znakového hesla, kde mohou být malá a velká písmena, speciální znaky a čísla by při rychlosti 1 test za vteřinu znamenalo 38 století
- při zvýšení rychlosti na 1000 testů za vteřinu a prohledávání celého prostoru 8 znakového hesla vychází doba okolo tří let
- s 50% pravděpodobností najdu heslo v první polovině množiny bez ohledu na její třídění, to znamená 1,5 roku

Zjednodušeně z toho vyplývá. Použít při osmi znakovém hesle tříměsíční periodu platnosti a nutnost změny hesla mi připadá rozumné a zároveň zde je dostatečná míra rezervy.

Jako jedna z metod útoku se z těchto důvodů používá slovníkový útok. Vybírají se zde nejčastěji používaná slova, protože kombinace u slovníkových metod jsou ještě smrtelnějí. Na světě existuje zhruba 7000 jazyků a dialektů. Tyto jazyky obsahují určité množství slov, u angličtiny například výkladové slovníky uvádějí okolo 500 000, ale odhad je okolo 1 000 000. Podobná situace je i v češtině a rozhodně i v dalších jazycích. Naneštěstí množství slov a jazyková zásoba člověka jsou absolutně odlišné údaje. Z těchto důvodů jsou výběry pro slovníkové útoky značně omezené a musí odpovídat nejpoužívanějším slovům. Proto je zde jediné doporučení, vyhýbat se častým spojením slov, jménům, značkám ... Situaci zde mírně zpestřuje počítačová komunita, která ráda zaměňuje písmena čísly, popřípadě používá slang. Autoři slovníkových metod z nich jistě mají radost.
Z tohoto vyplývá:
- Prohledat prostor 1 000 000 slov při jednom testu za vteřinu znamená zhruba 2 týdny práce.
- Prohledat prostor všech 7 000 jazyků je záležitost zhruba na 130 let
- Prohledat prostor všech možných kombinací slov je prakticky nemožné
Zjednodušeně z toho vyplývá. Jako obrana proti slovníkovému útoku používat hesla netvořená samostatnými slovy, ale kombinace slov z několika jazyků, vytvářet překlepy nebo nepoužívat slova vůbec (použít generovaná hesla). Jako heslo je tak možné použít "Emma have mysu", coz je nejenom gramaticky nesprávné, ve dvou jazycích (pro Cechy je ale volba anglictiny, nemciny, rustiny ci francouzstiny logická), ale mimo použití tří slov to zdvihá počet kombinací na neuveřitelné hodnoty a pravděpodobnost odhalení hesla klesá na minimum. .

Pro další informace doporučuji starší článek p. Vondrušky na téma Klíče a hesla( doporučení pro začátečníky), Crypto-World 3/2006, str.2-6

Ochrana SSH proti útokům hrubou silou
Ochrana authentizačního mechanismu proti útokům hrubou silou
Stavový filtr a ochrana proti útokům hrubou silou

Powered by Drupal - Design by artinet