Sichere Möglichkeiten, das Passwort zurückzusetzen oder ein altes Passwort zu vergeben

8

Was ist der sicherste Weg, vergessene Passwörter / Passwort-Resets zu behandeln? Soll ich das Passwort an den Benutzer senden? Wenn ja, zwingen Sie sie dann, es zurückzusetzen? Oder lässt du sie sofort zurücksetzen (ohne eine E-Mail zu senden) und benötigst weitere Informationen, um zu verifizieren, dass es sich um sie handelt? Oder gibt es eine bessere Methode?

    
Josh Curren 01.03.2010, 23:23
quelle

3 Antworten

14

Sie können das Passwort nicht an den Benutzer senden, weil Sie es nicht wissen. Du hast es "hashed" von etwas wie PBKDF2 oder bcrypt für die Speicherung anwenden, oder?

Wenn Sie das Passwort zurücksetzen, ohne es mit dem Kontoinhaber zu bestätigen, kann ein Angreifer dem Inhaber den Zugriff auf sein Konto verweigern, zumindest bis er seine E-Mail-Adresse überprüft, indem er die E-Mail-Adresse des Opfers anfordert. p>

Eine Methode, die für viele Anwendungen sicher genug ist, besteht darin, einen Link an den Kontoinhaber zu senden, der eine große, zufällig generierte Nummer enthält. Dieser Token sollte nur für eine begrenzte Zeit gültig sein. Wenn der Besitzer sein Passwort zurücksetzen möchte, klickt er auf den Link und dies authentifiziert sie als Kontoinhaber. Der Kontoinhaber kann dann ein neues Passwort festlegen.

    
erickson 01.03.2010, 23:27
quelle
5

Sie sollten keine Passwörter per E-Mail senden. Hier ist ein Schritt für Schritt Prozess, den ich verwendet habe:

  1. Geben Sie Benutzern eine Option zum Zurücksetzen des Passworts.
  2. Diese Option speichert ein eindeutiges Token für einen Benutzer. Das Token läuft schließlich ab (Stunden, Tage oder Tage).
  3. Ein Link wird an den Benutzer gesendet, der das Token enthält.
  4. Der Nutzer klickt auf den Link per E-Mail.
  5. Wenn das Token existiert und nicht abgelaufen ist , lädt der Link ein neues Passwortformular. Wenn nicht , laden Sie nicht das neue Passwort-Formular.
  6. Sobald der Benutzer ein neues Passwort festgelegt hat, löschen Sie das Token und senden Sie ihm eine Bestätigungs-E-Mail.

Bis das neue Passwort gesetzt ist, sollte das alte Passwort aktiv bleiben. Vergessen Sie nicht, die Passwörter zu hacken und zu salzen!

    
simeonwillbanks 01.03.2010 23:48
quelle
0

Ich nehme an, Sie werden es programmatisch machen? Oder ist es eine Frage für Server Fault?

Eine Möglichkeit besteht darin, einen Link zum E-Mail-Konto des Benutzers zu senden. Er / sie klickt auf den Link und wird zu Ihrem sicheren Webformular weitergeleitet, wo sie das Passwort zurücksetzen.

Senden Sie das Passwort NICHT an den Benutzer

    
AFD 01.03.2010 23:27
quelle