Lekce 1.5

Hesla, úniky dat a správce hesel

Jak server ukládá hesla, co se stane, když jeho databáze unikne, proč je opakované heslo horší než slabé a jak pomůže správce hesel a passkey.

Útoky na hesla

Útočník, který získal databázi hashů, je nemůže převést zpátky na hesla. Může jen hádat: vezme kandidáta na heslo, spočítá jeho hash a porovná ho se získaným hashem z útoku. Útoky se od sebe liší hlavně tím, v jakém pořadí kandidáty zkouší a je generuje.

Hrubá síla

Útok hrubou silou (brute force) zkouší postupně všechny kombinace: aaaa, aaab, aaac a tak dál. Počet kombinací spočítáme jako velikost abecedy umocněnou na délku hesla. Heslo z osmi malých písmen má tedy 26⁸ kombinací, což je zhruba 200 miliard.

Zní to jako hodně, jenže jedna herní grafická karta spočítá u SHA-256 řádově deset miliard hashů za sekundu. Při takové rychlosti vypadá hrubá síla takhle:

Heslo Kombinací Vyzkoušení všech trvá
8 malých písmen 2 · 10¹¹ 21 sekund
8 znaků (písmena, číslice, symboly) 6 · 10¹⁵ 7 dní
12 malých písmen 1 · 10¹⁷ 110 dní
16 malých písmen 4 · 10²² 140 000 let

Všimněme si, že délka přidává víc než pestrost znaků. Dvanáct obyčejných malých písmen vydrží mnohem déle než osm znaků všeho druhu.

U pomalé funkce jako bcrypt zvládne stejná karta jen tisíce pokusů za sekundu a všechny časy v tabulce se zhruba milionkrát prodlouží. Jak web hesla ukládá, ale zvenčí nepoznáte, takže je rozumné počítat s horší variantou.

Slovníkový útok

Lidé si hesla nevybírají náhodně a slovníkový útok toho využívá. Nejdřív zkouší skutečná hesla z dřívějších úniků, třeba ze seznamu rockyou.txt, a jejich obvyklé obměny: velké první písmeno, číslo na konci, rok narození, @ místo a.

Heslo Petr1985! má velké písmeno, číslici i symbol, a stejně padne během pár sekund. Je postavené přesně podle vzoru, který útočník zkouší jako první. Pravidla typu „aspoň jedno velké písmeno, číslice a symbol“ tak dělají heslo silným jen na pohled.

Heslová fráze

Silné heslo je dlouhé a náhodné. Nejlíp se takové heslo pamatuje jako heslová fráze (passphrase), tedy několik náhodně vybraných slov za sebou, třeba kolo-brambora-sever-lampa.

Slova ale musí vybrat generátor. Když se losují ze slovníku o 7 776 slovech, dají čtyři slova asi 4 · 10¹⁵ kombinací a pět slov 3 · 10¹⁹. Při deseti miliardách pokusů za sekundu to jsou čtyři dny, respektive devadesát let pro heslo s jedním slovem navíc.

Pozor

Verš z oblíbené písničky nebo citát heslovou frází není. Slova v něm nevybrala náhoda a takové věty bývají ve slovnících útočníků taky.

Bonus

Zjistěte, proč má slovník metody Diceware právě 7 776 slov a co to má společného s hrací kostkou.