Ponowne używanie haseł jest niezwykle problematyczne. Smutne jest to, że ludzie nie zdają sobie sprawy z zagrożeń związanych z ich kontem i danymi. Atakujący korzystają z adresów e-mail i haseł z wcześniejszych naruszeń, aby uzyskać dostęp do innych stron internetowych. Menedżery haseł, które generują losowe hasła są doskonałym środkiem przeciwdziałania tym atakom, generując losowe hasła dla każdej strony. Ale co z wszystkimi starymi hasłami? Właśnie wprowadziliśmy nową funkcję, pozwalającą użytkownikom sprawdzać swoje hasła w ogromnej bazie danych za pomocą haveibeenpwned.com. Dzięki temu nowemu narzędziu możemy sprawdzać hasła w zbiorze danych zawierającym prawie 5 miliardów kont z hasłami.
Usługa Pwned Passwords została stworzona w sierpniu 2017 r. po tym, jak NIST wydał wytyczne zalecające sprawdzanie haseł dostarczonych przez użytkowników w istniejących naruszeniach bezpieczeństwa danych. Uzasadnienie tej porady i sugestie dotyczące wykorzystania tych danych przez aplikacje zostały szczegółowo opisane w wpisie na blogu zatytułowanym Wprowadzenie do 306 milionów haseł do swobodnego pobrania z Pwned Passwords. W lutym 2018 r. wydano wersję 2 usługi z ponad pół miliardem haseł, z których każde zawiera teraz również licznik pokazujący, ile razy zostały ujawnione.
(Źródło: https://haveibeenpwned.com/Passwords)
Krótki filmik dający lepsze pojęcie o tym, jak to działa. API pokazuje postęp analizy. Jako że jest to darmowa usługa, przestrzegamy limitów i nie chcemy wyrządzać szkody, więc zapytania są ograniczone do jednego zapytania na 1,5 sekundy.
W pierwszym kroku wszystkie tajne informacje zawierające Twoje hasła są pobierane z serwera. W drugim kroku każde tajne hasło jest deszyfrowane w Twojej przeglądarce przed wygenerowaniem hashu sha1 hasła. Hash sha1 ma długość 160 bitów (40 znaków w systemie szesnastkowym). Hash sha1 jest rozdzielany na prefiks (5 znaków szesnastkowych) i sufiks (35 znaków szesnastkowych). Prefiks jest wysyłany do API haveibeenpwned.com, które sprawdza swoją bazę danych i zwraca listę sufiksów. Klient porównuje sufiks hasła z listą sufiksów, które otrzymał i oznacza hasło jako naruszone lub nie. Jest to efektywny sposób zapytania bazy danych haseł bez faktycznego wysyłania samego hasła (lub jego słabych pochodnych) i jest znany jako k-anonimizacja.