it-swarm.com.de

Ist es sicher, das Passwort während der Registrierung des Kontos anhand der HIBP Pwned Passwords-API zu überprüfen?

Der Benutzer registriert ein Konto in einer Web-App. Passwörter werden gesalzen und gehasht. Aber ist es sicher, das Passwort mit dem HIBP Pwned Passwords API zu vergleichen, bevor es gesalzen und gehasht wird? Natürlich verwendet die App TLS.

Wenn das Passwort bei einem Verstoß gefunden wird, dürfen Sie kein Konto registrieren. Wenn das Passwort nicht verletzt wurde, salzen Sie es und speichern Sie es in einer Datenbank.

Gleiches gilt, wenn das Passwort geändert wird.

39
Bitenieks

Wurde ich pwned? ermöglicht es jedem, die vollständige Datenbank herunterzuladen, um die Überprüfungen lokal durchzuführen.

Wenn dies keine Option ist, ist die Verwendung der API sicher, da k-anonimity verwendet wird, mit der Sie die Prüfung durchführen können, ohne das vollständige Kennwort/den Hash zu übertragen.

60
Benoit Esnard

Wenn der Betreiber der Pwned Passwords-API böswillig ist (oder der Dienst von einer böswilligen Person gehackt wird oder jemand Ihre Kommunikation abfängt), kann er über bestimmte Passwörter lügen (nur eine Teilmenge der Passwörter zurückgeben, die er für diesen Hash kennt) Die Anfrage kam von, identifizieren Sie die Website, die zu dieser ID gehört, identifizieren Sie das Konto (z. B. basierend auf der Erstellungszeit) und testen Sie es mit den Passwörtern, über die es gelogen hat, um eine angemessene Chance auf eine Kontokompromittierung zu erhalten.

Dies ist ein ziemlich unwahrscheinliches Szenario (der Eigentümer der API ist ein seriöser Sicherheitsexperte, die Liste der bekannten Hashes ist öffentlich, und es wäre schwierig, diese Art von Angriff auszuführen, ohne entdeckt zu werden). Dies hängt also davon ab, wie risikoavers Sie sind . Wenn Sie ein Diskussionsforum betreiben, ist die Verwendung der API auf jeden Fall eine gute Idee. Wenn Sie eine E-Bank betreiben, vielleicht nicht so sehr.

Das Herunterladen der Datenbank und das lokale Durchführen der Überprüfungen ist natürlich sicherer, aber angesichts der Größe keine triviale Aufgabe.

13
Tgr

Wie gefragt, nein.

Bei der Veröffentlichung dieser Antwort wird gefragt, ob es sicher ist, ein Passwort "vor dem Salzen und Hashing" zu senden, was im Klartext bedeutet. Sie sollten niemals ein Passwort im Klartext an einen Dritten senden (der zweite Partei ist möglicherweise in Ordnung, wenn Sie sich gerade anmelden). Selbst das Hashing des Passworts reicht nicht aus, da ein Rainbow Table verwendet werden kann, um das Passwort nachzuschlagen. Dies ist der Grund, warum ich ich sah jemanden (Hashing und), der jedes einzelne Passwort in einer KeePass-Datenbank an HIBP schickte sofort darauf aufmerksam machte.

Wie andere Antworten gezeigt haben, gibt es eine neue Version von HIBP, die k-Anonymität enthält (siehe diesen Link und die anderen Antworten für weitere Informationen). Dies gibt jedoch immer noch einige Informationen über die Passwörter (an HIBP und jeden potenziellen MITM Angreifer preis. Das Weitergeben von einige Informationen ist bei weitem nicht so schlimm wie das Durchsickern des gesamten Passworts, aber dennoch sollten Sie sich Sorgen machen. Was Sie wirklich wollen, ist, dass Ihre Passwörter sicher, nicht anonym .

Wenn Sie sicherstellen möchten, dass bei der Überprüfung keine Informationen zu Ihren Kennwörtern verloren gehen, müssen Sie letztendlich die gesamte Datenbank der pwned-Kennwörter herunterladen und Ihr Kennwort lokal hashen und überprüfen (in diesem Fall). auf dem Server, weil niemand die gesamte Datenbank herunterladen möchte, nur um ein Konto zu erstellen). Speichern Sie nur nicht das Kennwort oder den Hash, den Sie mit der Datenbank vergleichen, sondern nur den gesalzenen Hash in Ihrer eigentlichen Kennwortdatenbank.

12
NH.