So checkst du, ob Nutzer sich mit geleakten Passwörtern registrieren wollen

Beschützt eure Nutzer vor unsicheren Passwörtern. (Foto: Shutterstock)
Beschütze deine Nutzer. Wer sich mit einem in einer Datenpanne geleaktem Passwort registriert, geht ein hohes Sicherheitsrisiko ein. Als Betreiber von Internetseiten, Apps oder anderen Diensten kannst du verschlüsselt überprüfen, ob sich ein eingegebenes Passwort bei der Registrierung darunter befindet. 550 Millionen solcher Passwörter tummeln sich bereits in der Datenbank von Have I Been Pwned.
Passend dazu: Wurde mein Account gehackt? Diese Websites sagen es dir
So überprüft ihr ein Passwort
Es gibt mehrere Möglichkeiten die Passwörter zu überprüfen. Have I Been Pwned stellt dafür eine kostenlose RESTful-API zur Verfügung. Der muss ein SHA-1-Hash des gewünschten Passwortes geschickt werden. Have I Been Pwned gleicht den Hash nun mit den intern gespeicherten Passwörtern ab und gibt in einer entsprechenden Antwort an, ob ein identischer Hash gefunden wurde oder nicht. Für einen möglichst geringen Aufwand gibt es für PHP sogar eine leicht nutzbare Hilfsfunktion. So kann mit sehr geringem Aufruf der gewünschte Abgleich durchgeführt werden:
switch(password_exposed('UnsicheresPasswort')) {
case PasswordStatus::EXPOSED:
// Passwort wurde geleakt.
break;
case PasswordStatus::NOT_EXPOSED:
// Passwort wurde nicht geleakt.
break;
case PasswordStatus::UNKNOWN:
// Durch einen API-Fehler konnte das Passwort nicht abgeglichen werden.
break;
}
Wer mit einer anderen Programmiersprache arbeiten will, kann natürlich auch direkt auf die RESTful-API zugreifen. Bei Sicherheitsbedenken liefert die Schnittstelle auch eine Range-Abfrage. Dafür werden lediglich die ersten fünf Zeichen des SHA-1-Hash gesendet. Als Antwort erhaltet ihr eine Passwort-Hash-Liste, welche alle den Präfix eurer geschickten Zeichenkette beinhalten. Dabei wird der von euch geschickte Präfix nicht wieder mit zurückgegeben, sondern lediglich der jeweilige Suffix – also der Teil nach euren fünf Zeichen. Nun müsst ihr euren rausgeschickten Hash mit der erhaltenen Liste abgleichen. Stimmt eines der Hashs mit dem eures Nutzers überein, so wurde das entsprechende Passwort in einer vergangenen Datenpanne geleakt. Als Reaktion empfiehlt es sich, dem Nutzer eine Warnmeldung auszugeben oder die Verwendung des gewählten Passwortes komplett zu verbieten.
Lies dazu auch: So unsicher sind deutsche Passwörter: Das sind die Beliebtesten in 2018
550 Millionen Passwörter können manuell heruntergeladen werden
Wer den Umweg über eine externe API und einen fremden Server aus Sicherheits- oder Datenschutz-Gründen nicht gehen will, hat außerdem die Möglichkeit, sich die Hash-Liste manuell herunterzuladen und auf dem eigenen Server abzuspeichern. Dann kann die Überprüfung der Passwörter ohne Bedenken auf dem eigenen Server durchgeführt werden. Dabei stehen zwei Sortierungen zur Auswahl: Nach Verbreitung der Passwörter und nach alphabetischer Sortierung. Je nach Version ladet ihr euch jedoch eine rund zehn bis elf Gigabyte große Datei herunter. Auch ist der Programmieraufwand größer und die Passwortliste sollte in regelmäßigen Abständen aktualisiert werden. Dafür bleiben die Passwörter aber auf eurem eigenen Server.
Ganz ehrlich, geht’s noch? Ich leite doch keine Mail-Passwort-Kombinationen an Dritte weiter! Wie können nur alle Nachrichtenportale, den Jungs beim Aufbau einer riesigen Brut-Force-Datenbank helfen. Von T3N hätte ich doch einen kritischeren Umgang mit dem Thema erwartet.
Hallo Martin,
ich würde dich bitten, den Artikel noch einmal genauer zu lesen. Es geht hier nicht darum Mail-Passwort-Kombinationen an Dritte zu schicken! Es wird lediglich ein Passwort, komplett unabhängig von anderen personenbezogenen Daten, gegengecheckt. Dabei wird natürlich nicht das Klartext-Passwort gesendet, sondern ein SHA-1-Hash! Auch können lediglich nur die ersten 5 Zeichen des Hashs geschickt werden. Damit kann weder auf das eigentliche Passwort geschlossen werden, geschweige denn mit einem bestimmten Nutzer in Verbindung gebracht werden!
Viele Grüße und ein schönes Wochenende,
Andreas
Vor dem Lesen des Artikels hatte ich die Absicht von Martin geteilt, aber nach dem Lesen verstehe ich seine Haltung gar nicht. Es sind je nach Sicherheitsbedürfnis drei Stufen möglich.
Die mittlere Stufe ist doch eine perfekte Lösung. Man darf nicht vergessen, das die Info „Wer fragt“ nach dem Passwort Hash nicht irrelevant ist. Damit scheidet Variante 1 völlig aus.