2016-05-11 6 views
0

Ich habe password_hash ($ pwd, PASSWORD_BCRYPT) verwendet, um einen Hash zu erstellen und in der Benutzertabelle zu speichern. Es wird für die Login-Verifizierung verwendet.Verwenden des gleichen Passwort-Hash für die Kontoaktivierung

Da Hashing ist eine Einweg-Funktion, Meine Frage ist, kann ich den gleichen Hash wie der Account Verifikationscode in der Aktivierungs-E-Mail an den Benutzer senden. Wird die Sicherheit beeinträchtigt, da der Hashwert das Kennwort nicht enthält.

Antwort

0

Ja, es würde die Sicherheit gefährden, da ein Angreifer mit Zugriff auf das E-Mail-Konto (entweder momentan oder zu einem späteren Zeitpunkt, wenn die E-Mail nie gelöscht wird) einen Kennwort-Erratungsangriff auf den Hash ausführen könnte.

Wenn es besser wäre, einen 128-Bit-Schlüssel mit einem CSPRNG zu generieren, kann dies dem Benutzer per E-Mail zugesendet werden. Auf der Serverseite möchten Sie dies mithilfe von SHA-2 für den Speicher hashen, da auf diese Weise ein Angreifer Konten, die keine gültigen E-Mail-Adressen haben, nicht aktivieren kann, wenn Ihre Aktivierungstabellendaten jemals verfügbar waren. Beachten Sie, dass für automatisch generierte Schlüssel dieser Stärke kein Salz benötigt wird.

Dieser Ansatz ist ziemlich einfach und mindert das Risiko beim direkten Senden des Kennwort-Hash.

Verwandte Themen