Jak silné musí být heslo

Co entropie v bitech vlastně měří, proč délka poráží změť symbolů, kolik vás stojí opakované používání hesla a kam patří přístupové fráze a správci hesel.

U účtu, o který byste neradi přišli, použijte náhodně vygenerované heslo o nejméně 16 znacích, nebo přístupovou frázi z nejméně 5 náhodně vybraných slov, a použijte ji přesně na jednom webu. To je 65 až 95 bitů entropie, pohodlně mimo dosah hrubé síly, a ta část „na jednom webu“ je důležitější než síla. Níže je zdůvodnění těch čísel.

Entropie v bitech

Entropie měří, z kolika stejně pravděpodobných možností bylo heslo vylosováno, a to jako mocninu dvou. 40 bitů entropie znamená jednu z 2^40 možností, tedy zhruba z bilionu, a každý další bit zdvojnásobuje práci s uhodnutím. Vzorec zní bity = délka x log2(velikost znakové sady), takže malá písmena mají hodnotu 4,7 bitu za znak, písmena a číslice 5,95, celé tisknutelné ASCII 6,57 a slovo ze seznamu 7776 slov 12,9:

HesloEntropie
8 malých písmen38 bitů
12 písmen a číslic71 bitů
12 znaků, celé ASCII79 bitů
16 písmen a číslic95 bitů
5 náhodných slov65 bitů
6 náhodných slov78 bitů

Tahle matematika platí jen tehdy, když heslo vzešlo ze skutečně náhodného procesu. Tr0ub4dor&3 je 11 znaků z 95znakové sady, což vzorec ohodnotí na 72 bitů, jenže je to slovníkové slovo s předvídatelnými záměnami a nástroj na lámání hesel se k němu dostane mnohem dřív. Entropie popisuje generátor, ne řetězec.

Co si za ty bity koupíte

Rychlost hádání závisí na tom, jak web heslo uložil. Proti živému přihlašovacímu formuláři s omezením rychlosti má útočník pár pokusů za hodinu. Proti ukradené databázi to závisí na hashi: rychlý hash jako MD5 nebo SHA-1 lze na běžném grafickém hardwaru zkoušet obrovským tempem, zatímco hash navržený přímo na hesla, jako bcrypt nebo Argon2, je pomalejší o mnoho řádů.

Níže je nejhorší případ, rychlý nesolený hash při předpokládaných deseti miliardách pokusů za sekundu. Ukazuje, jak prudce se křivka ohýbá, a není to měření:

EntropieČas na vyčerpání celého prostoru
40 bitůZhruba dvě minuty
50 bitůZhruba den
60 bitůNěkolik let
70 bitůNěkolik tisíc let
80 bitůMiliony let

V průměru útočník uspěje za polovinu toho času. Praktický výklad: pod 50 bitů to proti offline útoku nemá velkou cenu, 60 až 70 bitů na většinu věcí stačí a 80 bitů a víc zůstane pohodlných.

Délka poráží změť symbolů

Vezměte si dvanáctiznakové heslo z písmen a číslic (71 bitů). Přidáním interpunkce, tedy rozšířením sady z 62 na 95 znaků, se dostanete na 79 bitů. Přidáním dvou dalších písmen nebo číslic se místo toho dostanete na 83. Každý znak navíc vynásobí prohledávaný prostor celou abecedou, zatímco rozšíření abecedy přidá jen asi 0,6 bitu na každý znak, který už jste měli. Délka vyhrává a vyhrává dál.

Pravidla o složení („musí obsahovat velké písmeno, číslici a symbol“) tlačí lidi do úzké skupiny vzorců: velké písmeno na začátku, číslice a vykřičník na konci. Nástroje na lámání hesel zkoušejí tyto transformace jako první. To je jeden z důvodů, proč se směrnice NIST k digitální identitě odklonily od pravidel o složení a od vynucených pravidelných změn ve prospěch délky a kontroly proti seznamům hesel z už známých úniků.

Skutečným rizikem je opakované používání

Skoro nikomu není účet kompromitován hrubou silou. Co se děje ve skutečnosti, je credential stuffing: prolomí se slabý web, zveřejní se dvojice e-mail a heslo a automatizované nástroje zkoušejí každou dvojici proti stovkám dalších služeb. Pokud jste u e-mailu použili stejné heslo jako na prolomeném fóru, na jeho síle nezáleží. Bylo předáno, ne uhodnuto.

Phishing funguje stejně: třicetiznakové heslo napsané do přesvědčivě falešné přihlašovací stránky má přesně stejnou cenu jako password1. Takže v pořadí podle důležitosti:

  1. Na každém webu jiné heslo.
  2. Dvoufaktorové ověření na všem důležitém, především u e-mailu, protože přes něj vede cesta k resetu všeho ostatního.
  3. Dost velká délka na to, aby bylo offline lámání beznadějné.

Přístupové fráze

Přístupová fráze je několik slov náhodně vybraných ze seznamu, například harvest-cobalt-mural-drift-plinth. Při 12,9 bitu na slovo dá pět slov 65 bitů a šest 78.

Fungovat to bude za dvou podmínek. Slova musí být vybraná náhodně, kostkou nebo softwarem, ne vámi. A síla plyne z počtu slov, ne z oddělovače ani z jednoho velkého písmene: text písně nebo citát nemají entropii skoro žádnou, protože pocházejí z malého okruhu toho, co lidé říkají.

Přístupové fráze se vyplatí u těch pár hesel, která píšete zpaměti: přihlášení do zařízení, hlavní heslo správce hesel, šifrování disku.

Kam patří správce hesel

Správce hesel promění „vymyslet a zapamatovat si 200 jedinečných hesel“ na „zapamatovat si jednu dlouhou přístupovou frázi“. Generuje řetězce s vysokou entropií a vyplňuje je na správné doméně, což otupuje phishing, protože na zaměnitelně vypadající adrese heslo nevyplní.

Soustřeďuje riziko, což je skutečná námitka a přesto lepší volba: jeden trezor za dlouhou přístupovou frází a druhým faktorem je lepší než jedno heslo sdílené přes desítky webů neznámé kvality.

Poznámka k hashování

Hashování je druhá strana přihlášení. Dobře postavená služba ukládá solený hash ze záměrně pomalého algoritmu, nikdy samotné heslo, takže únik hned nevydá otevřený text. Univerzální hashe jako SHA-256 jsou stavěné na rychlost, což z nich dělá vynikající nástroj na kontrolní součty souborů a špatnou volbu pro ukládání hesel. Zahashovat si vlastní heslo, aby „bylo silnější“, nepřinese nic: výsledek je stejně těžko uhodnutelný jako vstup, ne víc.