Pwned Passwords v2: Dienst zum Finden geknackter Passwörter verbessert Privacy

Steffen Weber 32 Kommentare
Pwned Passwords v2: Dienst zum Finden geknackter Passwörter verbessert Privacy
Bild: Pwned Passwords

Mit der Web-App „Pwned Passwords“ lässt sich herausfinden, ob ein Passwort in einem Datenleck veröffentlicht wurde und deshalb nicht mehr genutzt werden sollte. In der neuen Version 2 wurde eine entscheidende Verbesserung eingebaut: die Abfrage ist jetzt ohne Preisgabe der SHA1-Prüfsumme des Passworts möglich.

Immer wieder kommt es vor, dass Passwörter in Folge eines Datenlecks an die Öffentlichkeit gelangen. Der Sicherheitsexperte Troy Hunt sammelt diese Passwörter und stellt die Web-App Pwned Passwords bereit, anhand der man prüfen kann, ob ein Passwort Teil eines Datenlecks war und folglich besser nicht mehr verwendet werden sollte.

Pwned Passwords v2 sorgt für mehr Datenschutz

Schon die erste Version der Web-App übermittelte das eingegebene Passwort nicht im Klartext an den Server, sondern nur dessen clientseitig per JavaScript berechnete SHA1-Prüfsumme. Der Server schlug diese SHA1-Prüfsumme dann in einer mehrere Gigabyte großen Datenbank nach, die im Voraus berechnete SHA1-Prüfsummen von mehreren hundert Millionen entwendeten Passwörtern enthält. Dem Nutzer wurde daraufhin angezeigt, ob das eingegebene Passwort Teil eines Datenlecks war oder nicht.

Zumindest theoretisch hätte der Server aber zu jeder gespeicherten SHA1-Prüfsumme das zugehörige Klartext-Passwort kennen können – schließlich wurden die SHA1-Prüfsummen zuvor anhand der entwendeten Klartext-Passwörter berechnet. Der Server hätte also loggen können, welche IP-Adresse wann welches ihm zuvor bereits bekannte Klartext-Passwort getestet hat.

Der neuen Version 2 der Web-App muss man weniger Vertrauen entgegen bringen. Anstatt die vollständige SHA1-Prüfsumme an den Server zu senden, werden nur die ersten 5 Zeichen übertragen. Der Server antwortet mit einer Liste aller ihm bekannten SHA1-Prüfsummen, die mit diesen 5 Zeichen beginnen (und weil diese ersten 5 Zeichen immer gleich wären schneidet er sie bei den Listeneinträgen ab, d.h. die enthalten nur die Zeichen 6–40 der SHA1-Prüfsumme). Der Test, ob sich darunter die SHA1-Prüfsumme des eingegebenen Passworts befindet, erfolgt clientseitig per JavaScript. Der Server könnte somit allenfalls noch loggen, welches von mehreren hundert in Frage kommenden Passwörtern ein Client eingegeben hat (K-Anonymität).

Lokale Berechnung der Prüfsumme und manuelle API-Abfrage

Wer mit den in neue Browser eingebauten Entwickler-Tools den Netzwerkverkehr der Web-App Pwned Passwords zwischen Client und Server loggt, der sieht, dass zum Beispiel bei Eingabe des Passworts „zweiundvierzig“ (die SHA1-Prüfsumme dieser Zeichenkette lautet „62157BB6E08744CB896D6383BAD5D9F1A1C32F3D“) die API-URL https://api.pwnedpasswords.com/range/62157 aufgerufen wird, deren aktuell 472 Zeilen lange Antwort die Zeile „BB6E08744CB896D6383BAD5D9F1A1C32F3D:32“ enthält. Das im Beispiel genutzte Passwort „zweiundvierzig“ wurde also schon 32 Mal in Datenlecks gefunden und ist somit wie erwartet keine gute Wahl.

Wer nicht darauf vertrauen möchte, dass die Web-App das Passwort tatsächlich nicht im Klartext an den Server sendet, der kann die SHA1-Prüfsumme lokal berechnen – unter Linux und macOS geht das mittels echo -n "zweiundvierzig" | sha1sum – und die ersten fünf Zeichen der SHA1-Prüfsumme in die oben genannte API-URL kopieren (eventuell vorhandene Kleinbuchstaben müssen durch Großbuchstaben ersetzt werden, ansonsten liefert das API eine Fehlermeldung).

Alternative für Jedermann

Wer nicht wie beschrieben die Sicherheit einzelner Passwörter in Erfahrung bringen möchte, sondern ob ein Account mal Teil eines Datenlecks war, der kann stattdessen auf der Startseite von Have I Been Pwned seine E-Mail-Adresse angeben und erhält daraufhin eine entsprechende Liste gehackter Websites, auf denen man einen Account hat(te). Falls man das dort genutzte Passwort auch sonstwo verwendet, dann sollte man es als verbrannt betrachten und überall ändern.

Tipp: Passwortmanager

Unabhängig davon ist eine der wichtigsten Regeln zum Verbessern der Account-Sicherheit, dass man nicht auf mehreren Websites dasselbe Passwort nutzt. Sonst sind durch ein Datenleck auf nur einer dieser Websites auch die Accounts auf den anderen Websites gefährdet. Da man sich dutzende oder hunderte Passwörter schlecht merken kann, bieten sich folglich Passwortmanager an. Man merkt sich dann nur noch ein besonders sicheres (also insbesondere langes) Master-Passwort. Die mit diesem Master-Passwort verschlüsselten Website-Passwörter können dann automatisch generierte lange Zeichenfolgen sein, nach denen man sich die Suche in „Pwned Passwords“ sparen kann.