it-swarm.com.de

Was sind empfohlene Mechanismen zum Zurücksetzen von Passwörtern?

Alle,

Ich entwickle eine kleine, nicht kommerzielle Web-App. Ich versuche zu entscheiden, wie ich einem Benutzer helfen kann, der möglicherweise sein Passwort verloren hat. Ich brauche einen Mechanismus, der in der Reihenfolge der Priorität lautet:
1) Benutzerfreundlich;
2) Sicher;
3) Einfache Skalierbarkeit über mehrere Regionen hinweg (d. H. Ortsunabhängig - also zum Beispiel kein SMS).

3
JDelage

Ein alternativer Ansatz:

  1. Lassen Sie den Benutzer die E-Mail-Adresse angeben, die er bei der Registrierung verwendet hat

  2. Stellen Sie sicher, dass die E-Mail-Adresse tatsächlich zu einem Konto gehört. Wenn dies nicht der Fall ist, melden Sie einen Fehler.

  3. Senden Sie eine E-Mail an diese E-Mail-Adresse mit ...

    • ... ein neues Passwort, das automatisch generiert wird (Wörterbuchwörter sind besser als zufällige Zeichen) und nach einer festgelegten Zeitspanne abläuft (sagen wir 24 Stunden)

    • ... eine Nachricht, dass dieses neue Passwort als Anfrage von Ihrer Website gesendet wurde und dass diese E-Mail ignoriert werden muss

    • ... die URL, die sie besuchen müssen, um sich mit ihrem neuen Passwort erneut anzumelden (stellen Sie sicher, dass diese Seite mit dem temporären Passwort und nicht mit ihrem tatsächlichen Passwort validiert wird)

  4. Bringen Sie sie nach der ersten Anmeldung auf eine Seite, auf der sie ihr Passwort auf ein Passwort aktualisieren müssen, an das sie sich erinnern werden (Sie können ihnen ihr tatsächliches Passwort nicht anzeigen, weil Sie es gehackt haben, oder?)

2
John Conde

Meine Standardarbeitsweise:

Fordern Sie zunächst den Benutzer zur Eingabe seiner E-Mail-Adresse oder seines Anmeldenamens auf. Wenn die Informationen nicht gefunden werden, ist es Nice, um dem Benutzer mitzuteilen, dass die Adresse gefälscht ist, aber dies kann auch dazu beitragen, diese Informationen brutal zu erzwingen. In Systemen, in denen Login- und E-Mail-Adresse nicht identisch sind, ist es möglicherweise benutzerfreundlicher, nach entweder auf derselben Seite zu fragen, als sie auf verschiedene Seiten aufzuteilen.

Zweitens erstellen Sie ein eindeutiges Token und ordnen es dem Konto zu. Senden Sie eine E-Mail an die E-Mail-Adresse des Benutzers, die einen Link enthält, der dieses Token in die URL integriert und das Abrufen des Kontos mit einem Klick ermöglicht.

Drittens, wenn die URL mit dem Token besucht wird, fordern Sie den Benutzer zur Eingabe seines neuen Passworts auf. Stellen Sie sicher, dass das Formular "Senden" auch das Token enthält. Ändern Sie das Kennwort des Benutzers in den neuen gewünschten Wert und machen Sie das Token ungültig.

Eine Variation, die ich gesehen habe, fügt auch ein zweites Token in die Mail ein, das auf der resultierenden Seite zum Zurücksetzen des Passworts eingegeben werden muss.

Sie sollten das Token auch nach einer angemessenen Zeit (z. B. 48 Stunden) ungültig machen.

Sie werden hier feststellen, dass es an Passworterinnerungen oder Sicherheitsfragen mangelt. Wenn das E-Mail-Konto des Benutzers kompromittiert wurde, kann ein potenziell böswilliger Benutzer Konten hijacken. Dies ist nicht Ihr Problem zu lösen. Sie könnten eine Art Sicherheitsfrage hinzufügen, aber bevor Sie dies tun, denken Sie an das letzte Mal, als Sie mit einer dieser Fragen konfrontiert wurden, und erinnern Sie sich, wie schmerzhaft sie am hinteren Ende sind.

Wenn Ihr System die Anmeldung des Benutzers von mehreren Stellen aus zulässt (besser!), Sollten Sie sicherstellen, dass die Token, die Sie verwenden, um dies zuzulassen, an die E-Mail-Adresse und das Kennwort des Benutzers gebunden sind. Dadurch wird der Benutzer von allen anderen Standorten abgemeldet, wenn sich eine dieser Änderungen ergibt.

1
Charles