Het hergebruiken van wachtwoorden is extreem problematisch. Het is triest dat mensen niet op de hoogte zijn van de risico's voor hun account en gegevens. Aanvallers gebruiken e-mailadressen en wachtwoorden van eerdere datalekken en proberen toegang te krijgen tot andere websites. Wachtwoordmanagers die willekeurige wachtwoorden genereren zijn een perfecte maatregel tegen dergelijke aanvallen, ze genereren willekeurige wachtwoorden voor elke website. Maar wat te doen met al die oude wachtwoorden? We hebben net een nieuwe functie uitgebracht waarmee gebruikers hun wachtwoorden kunnen controleren tegen een enorme database met behulp van haveibeenpwned.com. Met dit nieuwe gereedschap in ons arsenaal is het mogelijk wachtwoorden te controleren tegen een dataset van bijna 5 miljard accounts met wachtwoorden.
De Pwned Passwords-service werd gecreëerd in augustus 2017 nadat NIST richtlijnen had uitgebracht waarin specifiek werd aanbevolen dat door gebruikers verstrekte wachtwoorden worden gecontroleerd op bestaande datalekken. De reden voor dit advies en suggesties over hoe toepassingen deze gegevens kunnen gebruiken, wordt in detail beschreven in de blogpost getiteld Introducing 306 Million Freely Downloadable Pwned Passwords. In februari 2018 werd versie 2 van de service uitgebracht met meer dan een half miljard wachtwoorden, elk nu ook met een telling van hoe vaak ze zijn blootgesteld.
Een korte video die een beter gevoel geeft voor hoe het werkt. De API toont de voortgang van de analyse. Omdat het een gratis dienst is, respecteren wij de throttling en willen we geen schade veroorzaken, dus beperken we de aanvragen tot één aanvraag per 1.5 seconden.
In een eerste stap worden alle geheimen met jouw wachtwoorden van de server gedownload. In een tweede stap wordt elk geheim in jouw browser gedecrypt voordat er een sha1-hash van het wachtwoord wordt aangemaakt. Sha1-hashes zijn 160 bits lang (40 tekens in hex). De sha1-hash wordt opgesplitst in een prefix (5 hex-tekens) en een suffix (35 hex-tekens). De prefix wordt naar de haveibeenpwned.com API gestuurd, welke de database controleert en een lijst met suffixen retourneert. De cliënt vergelijkt de suffix van het wachtwoord met de lijst van ontvangen suffixen en markeert het wachtwoord als gecompromitteerd of niet. Dit is een efficiënte manier om de wachtwoorddatabase te raadplegen zonder daadwerkelijk het wachtwoord (of zwakke afgeleiden) te versturen en staat bekend als k-anonimisering.