2009-09-20 3 views
11

Ist es besser, wenn ein Benutzer sein Passwort vergisst, um sein Passwort zurücksetzen zu lassen oder einfach das verlorene Passwort zurückzusenden?Ist es besser, das Passwort zurückzusetzen oder das vergessene Passwort zurückzusenden?

+0

Werfen Sie einen Blick auf: http://stackoverflow.com/questions/647514/what-ist-the-best-way-to-implement-2-way-encryption-with-php – Jacco

+8

sollten Sie nicht haben Original-Passwort in erster Linie, es muss unwiederbringlich Hashed sein. – Stann

Antwort

1

Das Zurücksetzen des Kennworts ist sicherer, da Dritte das versendete Kennwort abfangen können.

Edit: Mit Reset, ich nehme an, Sie meinen das übliche Muster des Sendens des Benutzers ein Token, mit dem der Benutzer ein neues Passwort definieren kann. Natürlich, wenn Sie nur ein neues Passwort erstellen und es in der Mail senden, ist es genauso unsicher wie nur das ursprüngliche Passwort zu senden. Das Token sollte natürlich nur einmal nutzbar sein, sonst ist es genauso gut wie ein Passwort.

Nur hier die Gefahr, dass ein Dritter fängt den Token und ändern das Passwort vor der Benutzer tut. Dies ist ein geringeres Risiko als das Senden des Passworts, da ein abgefangenes Passwort nützlich ist, solange das Passwort verwendet wird, während das Token nur einmal nützlich ist. und Sie werden feststellen, ob jemand das Token verwendet hat.

Beachten Sie, dass das größte Risiko wahrscheinlich nicht der E-Mail-Verkehr ist, sondern jemand, der später Ihre E-Mails durchsucht oder in Ihr Webmail-Konto eingreift. Es ist also wirklich schlimm, in Ihrem Postfach noch gültige Kennwörter zu haben.

+2

Also, wie wird der Benutzer das Reset-Passwort erhalten, da das Mailing unsicher ist? :) – Zed

+0

@Zed: sende einen Link an den Benutzer, der einen zufälligen Single-Use-Wert enthält (an den du dich erinnerst), so dass du, wenn er darauf klickst, sein Passwort zurücksetzen und ihm ein neues schicken kannst (über https). –

+1

@Greg: Das ist der Punkt. Es besteht kein Unterschied zwischen dem Versenden eines "zufälligen Passworts" oder eines "zufälligen Wertes, den der Benutzer verwenden kann ...". Sie verwenden beide zur zeitweiligen Identifizierung des Benutzers. Dritte können beide manipulieren. – Zed

40

Wenn Sie das Kennwort vergessen haben, bedeutet dies, dass Sie sie im Nur-Text-Format oder verschlüsselt in Zwei-Wege-Verschlüsselung aufbewahren, was nicht sicher ist.

würde ich folgende Wordpress-Mechanismus vorschlagen, das Kennwort für Reseting:

  1. einen Link mit der Bestätigung der Passwort senden zurückgesetzt
  2. Folgen Bestätigung Link zu der Seite die zufälliges Passwort generieren würde und senden an den Benutzer
  3. Lassen Sie Benutzer mit neuem Passwort anmelden und ändern Sie es zu etwas besser Erinnerung.
+0

Ich dachte daran, ein Reset-Passwort zu senden, obwohl es für den Benutzer einfacher scheint, ihnen dort altes Passwort zurück zu schicken. –

+2

Wenn überhaupt, ist es eine Frage des Vertrauens - möchten Sie wirklich, dass die Administratoren jeder Website, die Sie verwenden, wissen, welche Kennwörter Sie wählen? Sicher, im Idealfall würden die Leute für jede Site unterschiedliche Passwörter verwenden, aber nur wenige tun das tatsächlich - es ist zu mühsam. – Amber

+6

Fügen Sie der Antwort von Eimantas nur ein kleines bisschen hinzu. Aus Sicherheitsgründen sollte der Server das Kennwort eines Benutzers niemals im Nur-Text-Format speichern. Es sollte das unidirektionale verschlüsselte Passwort speichern. Bei einer Benutzeranmeldung sollte der Client das Passwort mit javescript verschlüsseln und die verschlüsselte Zeichenfolge an den Server senden. Das ist ein bisschen wie die Unix-Anmeldung funktioniert. Häufig verwendet ein Benutzer dasselbe Passwort für verschiedene Websites. Wenn Sie es im Klartext behalten, erhalten Sie Zugriff auf alle. Als Benutzer würde ich mir darüber große Sorgen machen. – user172818

17

Sie sollten nicht in der Lage sein, das Kennwort an erster Stelle zurückzusenden. Die beste Möglichkeit besteht darin, ein zufälliges Einmal-Passwort zu generieren und an die registrierte E-Mail-Adresse des Benutzers zu senden.

Sie können Sicherheitsfragen (wie "Ihr erster Hund Name") und andere Mystizismus bereitstellen, aber ich glaube, dass Benutzer dazu neigen, Antworten auf diese mehr als ihre Passwörter zu vergessen, Sie zurück auf Platz eins bringen.

+1

Wenn Sie (in) Sicherheitsfragen verwenden, dürfen sie NICHT als Backup-Passwort behandelt werden, sondern nur als Gatekeeper für den Zugang zu einem Passwort-Reset-Mechanismus.Sonst wird dein E-Mail-Konto geknackt, wenn jemand die Highschool aufsucht, auf der du warst, und es als Antwort für "Wo hast du deinen Ehepartner getroffen?" (wie Sarah Palin letztes Jahr). –

+0

Es ist jedoch wichtig, ein zufälliges Passwort nur nach einer anfänglichen Bestätigungs-E-Mail zu senden. Wenn Sie dies vermissen, kann eine böswillige Person auf die Schaltfläche "Anfrage-Passwort" klicken und Ihre E-Mail-Adresse eingeben, wodurch Ihr Konto nicht erreichbar ist. Wenn Sie sich mit Ihrem ursprünglichen Passwort anmelden möchten, ohne zuerst die E-Mail zu überprüfen, führt dies zu einem Anmeldefehler. Dies ist eine schlechte Benutzererfahrung und ärgerlich. Diese Technik, die von einem Bot-Skript verwendet wird, kann einen Denial-of-Service für jede bekannte E-Mail-Adresse unter Verwendung des Dienstes ausführen. – DEAD10CC

7

Viele Benutzer verwenden dasselbe Kennwort für viele Websites. Um die Privatsphäre der Leute zu respektieren, wird empfohlen, Kennwörter immer einseitig verschlüsselt mit Hash-Funktionen wie SHA-256 oder MD5 zu speichern. Aber Sie sollten sie nicht ohne zusätzliches Salz verwenden, da Wörterbuchangriffe einfach auf diese Passwörter durchgeführt werden können. Der Schutz der Privatsphäre der Benutzer ist die Grundlage für eine vertrauensvolle Beziehung zwischen Ihnen und Ihren Kunden.

Ich empfehle auch die von Eimantes erwähnte Passwort-Reset-Mechanismus. Die Bestätigungs-E-Mail-Nachricht ist die Hauptaufgabe in diesem Prozess. Lassen Sie den Benutzer seine Anfrage zum Zurücksetzen des Passworts immer bestätigen, um zu verhindern, dass falsche Anfragen zu einem Konto führen, auf das nicht zugegriffen werden kann.

Anstatt ein zufälliges Passwort zu berechnen, können Sie den Benutzer auf eine Seite weiterleiten, auf der er ein neues Passwort eingeben kann.

Beachten Sie auch, dass das Senden von Kennwörtern über HTTP ohne SSL sehr unsicher ist, insbesondere in öffentlichen Netzwerken wie Wlan Hotspots. Sehen Sie sich die Methoden zur Nachrichtenauthentifizierung wie HMAC in Kombination mit Diffie-Hellman-Key-Exchange an. Oder zumindest eine zusätzliche Hash + Salt-Funktion bei der Anmeldung verwenden.

+2

SHA-256 und MD5 sind zu schnell um sicher zu sein. Überprüfen Sie BCrypt oder PBKDF2. –

Verwandte Themen