Zní to jako protimluv: aplikace ti řekne "tohle heslo je v seznamu uniklých", ale zároveň heslo nikdy neopustí tvůj prohlížeč. Jak aplikace porovná něco, co nikdy nevidí?
Technika, která se jmenuje k-anonymita
Aplikace spočítá hash tvého hesla lokálně, v prohlížeči, a na server pošle jen prvních pár znaků toho hashe — ne celý, a rozhodně ne heslo samotné. Server (konkrétně veřejná databáze Have I Been Pwned) vrátí seznam všech hashů, co těmi znaky začínají — často stovky různých. Aplikace pak lokálně, opět jen u tebe v prohlížeči, zkontroluje, jestli je mezi nimi přesně ten tvůj.
Proč je tenhle detail důležitý
Server, se kterým aplikace komunikuje, se nikdy nedozví, jaké heslo přesně kontroluješ — dostane jen neúplný fragment, který odpovídá stovkám různých hesel najednou. Nejde tedy zpětně vysledovat, čí heslo to je ani jaké přesně je.
Co dělat, když aplikace najde shodu
Pokud aplikace označí heslo jako uniklé, znamená to, že už je součástí veřejně dostupných databází používaných při útocích typu credential stuffing. Změň ho — ideálně za jedinečné, aplikací vygenerované, které nikde jinde nepoužíváš.