Já doufám, že jsem to jen špatně pochopil, protože jestli ne, tak celá tahle zpráva je jeden velký argumentační faul.
Ve zkratce, zkoumalo se porovnávání hashe nových uživatelských jmén a hesel s databází těch, které unikly někdy dříve, je to tak?
1) Ty dříve uniklé údaje ale nevypovídají zcela přesně o kvalitě hesel, protože získání dat mohlo proběhnout mnoha různými způsoby od nabourání bezpečnosti na straně poskytovatele služby, přes nějaké pasti typu man in the middle po chybu na straně uživatele a jeho nedbalost. To, že nějaké heslo se dostalo do databáze uniklých údajů neznamená automatický špatnou kvalitu hesla, protože to heslo mohlo uniknout z mnoha různých důvodů a ne všechny ty důvody znamenají, že heslo bylo špatné/slabé.
2) Lepší studijní výsledky neznamenají nutně chytřejší lidi.
3) Předchozí dva logické fauly jsou zkombinovány do třetího "prstovýcucu", že chytřejší lidé nemají lepší hesla, protože jejich hashe se procentuálně stejně často shodují s databází uniklých hesel jako je tomu u obecné populace.
Teď si trošku zaspekuluji já.
- Co kdyby hypoteticky třeba byly hesla chytřejších lidí (pro jednoduchost nebudu nyní uvažovat způsob zjišťováni "chytrosti") kompromitovaná kvůli nedostatečné bezpečnosti na straně poskytovatele služby, ale hesla samotná by přitom splňovala všechny znaky pro dobré/silné heslo.
- Co kdyby byly hesla obecné populace kompromitovaná proto, že byla příliš jednoduchá/slabá a byla například uhodnuta slovníkovým útokem.
- Dejme tomu, že hesla obou skupin by se proto ocitla ve zmíněné databázi, ale obě skupiny by tam byly z různých důvodů. Pokud se pak hashe obou typů hesel při porovnávání opakují se stejnou pravděpodobností, znamená to spíše, že obě skupiny používají kompromitovaná hesla s podobnou pravděpodobností, ale rozhodně to nevypovídá o používání stejně špatných hesel oběma skupinami, protože ta hesla byla kompromitovaná z jiných důvodů. V tomto příkladu jsem se úmyslně omezil jen na jednoduché modelové případy a rozhodně jsem nevyčerpal všechny modelové možnosti, pouze jsem chtěl načrtnout nelogičnost odvozování závěrů, které jsou ve zprávě prezentované.
Studie jako je tahle jsou silně manipulativní, zaměňují závislosti a korelace a ještě k tomu nesprávně identifikují skupiny populace. Výsledkem je pak uměle vytvořený konstrukt, který tvrdí výsledky v závislosti na tom, jak šikovně to dokáže pojmout ten který řečník. Neboli, jako v tom vtipu, účetní se zeptá, jak to má vyjít a toho výsledku pak dosáhne.
Na 1) nezáleží, protože password reuse. Prostě použili stejné heslo na školní účet jako někde jinde, kde to heslo uniklo. A podle nových standardů NIST jsou všechna uniklá hesla (i pokud to bude 50 znaků dlouhý výstup z /dev/random) automaticky slabá, protože je někdo mohl přidat do slovníku pro slovníkový útok.
Ta studia hodnotila kvalitu hesel podle aktuálního standardu NIST, nijak to nezapírá a neschovává a správička to jasně zmiňuje. Nemusíte souhlasit s tím, jak ten standard vypadá, ale to nic nemění na výsledku studie a její (ne)kvalitě.
Ad 1) Jak už bylo napsáno, každé heslo použité více než jednou je slabé, protože to heslo může znát minimálně provozovatel dané služby. A když to heslo bylo v nějakém úniku, evidentně už někde použité bylo, evidentně ho někdo mohl znát, a evidentně ho někdo zná, když je v té databázi hesel. Pokud byste chtěl argumentovat tím, co když se náhodou silným heslem trefím do uniklého hesla – to je extrémně málo pravděpodobné.
Řekněme, že máme konečný počet hesel m^(2*n)/2. Máme p uživatelů a q služeb, co používají. Tj. v jednom okamžiku p*q hesel. Jaká je pravděpodobnost kolize?
Pokud navíc máme DB úniků hesel, která se plní rychlostí r(t), dostaneme pro počet použitelných hesel m^(2*n)/2-r(t). Jak se změní situace za 20 let, pokud teď je v databázi úniků 5% možných hesel a plní se rychlostí x hesel týdně?
Princip hesel spočívá v tom, že se dají rychle ověřit, ale nedají se uhodnout zkoušením možných variant. Se zvyšujícím se výpočetním výkonem tedy musí růst množina možných hesel – neplatí tedy, že by počet hesel byl konečný. Že musí růst množina možných hesel, nebo-li že se musí hesla prodlužovat, je nepříjemné, ale plyne to z toho požadavku, že hesla musí být odolná proti útoku hrubou silou. Proto taky hesla nebude možné používat věčně, a už dnes přecházíme od hesel, která si uživatel pamatuje, k heslům, která má uložená ve správci hesel. Mimochodem, velikost databáze použitých hesel nemá smysl řešit – z množiny použitelných hesel odebírá směšně málo případů oproti tomu, co z ní odebírá hrubý výkon počítačů. Za použitelnou entropii hesla můžeme považovat třeba 50 bitů, to byste v té databázi použitých hesel musel mít 140 tisíc hesel na každého člověka na planetě.
Bavíme se samozřejmě o heslech, u kterých má útočník možnost zkoušet varianty dle libosti. Hesla, jejichž ověřování je možné nějak omezovat (např. PIN platební karty) jsou jiný případ.