Každý rok vyjde žebříček nejpoužívanějších hesel a každý rok se v něm objeví něco jako Password1! nebo Heslo123!. Je to trochu absurdní — na papíře tahle hesla splňují úplně všechno, co po nás weby chtějí. Velké písmeno, malé písmeno, číslo, speciální znak, osm a víc znaků. Formulář se zeleně zatrhne a řekne "silné heslo". A přesto je to jedno z prvních hesel, které zkusí jakýkoliv útočný nástroj.
Problém je v tom, že kontrola typu "má to velké písmeno?" neřeší to nejdůležitější — jestli je heslo předvídatelné. Útočníci dneska netestují náhodné kombinace znaků, testují slovníky milionů skutečně použitých hesel z uniklých databází. A "Heslo123!" tam je, protože si ho zvolily tisíce lidí přede mnou i před tebou — je to nejpřirozenější způsob, jak splnit pravidla formuláře s nejmenší námahou.
Co teda skutečně dělá heslo silné
Není to složitost jednotlivých znaků, je to entropie — kolik možností musí útočník reálně projít, než uhodne. Náhodná posloupnost 16 znaků z velkého prostoru možností (písmena, čísla, symboly) má entropii v řádu stovek bitů. Slovníkové heslo se speciálním znakem na konci má entropii v řádu jednotek bitů navíc oproti základnímu slovu — útočník ho prostě zkusí jako variantu.
V generátoru hesel v aplikaci proto neukazujeme jen "je to dost dlouhé", ale rovnou skutečný odhad, jak dlouho by trvalo heslo prolomit hrubou silou. U náhodně vygenerovaného 20znakového hesla to vychází na miliony let. U "Heslo123!" na necelou sekundu.
Praktická rada, ne teorie
Nemusíš si pamatovat žádné z toho. Přesně proto správce hesel existuje — vymyslí ti unikátní náhodné heslo pro každý web a aplikace si ho pamatuje za tebe. Ty si musíš pamatovat jen jedno jediné heslo, to hlavní k aplikaci samotné. A do toho už investuj čas — klidně celou větu, kterou si spojíš s nějakou vzpomínkou, ne "Heslo123!".