it-swarm-eu.dev

Ist das Senden eines Passworts an eine Benutzer-E-Mail sicher?

Wie sicher ist das Senden von Passwörtern per E-Mail an einen Benutzer, da E-Mails nicht durch HTTPS gesichert sind.

Was ist der beste Weg, um es zu sichern? Soll ich Verschlüsselung verwenden?

102
user310291

Sie sollten niemals Passwörter im Klartext senden, noch sollten Sie sie im Klartext speichern. Sie sollten sie mit einem langsamen kryptografischen Einweg-Hash wie bcrypt oder PBKDF2 hashen. Wenn ein Benutzer sein Passwort vergisst, bieten Sie ihm die Funktion "Passwort zurücksetzen" an, mit der ein einmaliger Link zum Zurücksetzen an sein Konto gesendet wird.

Ein Schema wie das folgende ist vernünftig:

  • Hash alle Passwörter mit ein Salz plus bcrypt/PBKDF2. Siehe meine Argumentation hier . (EDIT, März 2019: benutze Argon2 )
  • Überprüfen Sie die Hashes beim Anmelden.
  • Wenn ein Benutzer sein Kennwort vergisst, senden Sie ihm einen sicheren einmaligen Reset-Link mit einem zufällig generierten Reset-Token, das in der Datenbank gespeichert ist. Das Token muss eindeutig und geheim sein, also hashen Sie das Token in der Datenbank und vergleichen Sie es, wenn der Link verwendet wird.
  • Erzwingen Sie, dass ein Token nur zum Zurücksetzen des Kennworts des Benutzers verwendet werden kann, der es angefordert hat.
  • Sobald das Token verwendet wurde, muss es aus der Datenbank gelöscht werden und darf nicht mehr verwendet werden.
  • Lassen Sie alle kennwortäquivalenten Token, einschließlich der zurückgesetzten Token, nach kurzer Zeit ablaufen, z. 48 Stunden. Dies verhindert, dass ein Angreifer zu einem späteren Zeitpunkt nicht verwendete Token ausnutzt.
  • Zeigen Sie sofort ein Formular an, damit der Benutzer ein neues Kennwort festlegen kann. Verwenden Sie keine temporär zufällig generierten Passwörter!
  • Tun Sie dies alles über SSL.

Ich empfehle dringend, Der endgültige Leitfaden zur formularbasierten Website-Authentifizierung durchzulesen, um eine vollständige Reihe von Richtlinien zum Erstellen sicherer Anmeldesysteme zu erhalten.

156
Polynomial

E-Mail ist nicht sicher. Das Senden eines Passworts per E-Mail ist daher ein Sicherheitsrisiko. Um das Risiko zu verringern, können Sie (in einigen Situationen) festlegen, dass das per E-Mail gesendete Kennwort ein Einmalkennwort ist, das dem Benutzer nur die Möglichkeit eröffnet, ein eigenes neues Kennwort auszuwählen.

Dies ist, was gute Systeme tun, bei denen ich mein Passwort für diese Website vergessen habe: Der Benutzer klickt auf die Schaltfläche "Verdammt, ich habe mein Passwort vergessen", und es wird eine E-Mail gesendet, die eine URL enthält (mit HTTPS) ), die eine zufällige Sitzungskennung einbettet und auf eine Seite verweist, auf der der Benutzer ein neues Kennwort auswählen kann. Die URL is das "Einmalpasswort". Mit diesem Schema können Sie zumindest von der Serverseite aus wissen, wann die URL verwendet wurde.

Wenn Sie eine Verschlüsselung durchführen können richtig, dh wenn Sie eine OpenPGP- oder S/MIME-Nachricht senden können, die mit dem öffentlichen Schlüssel des Benutzers verschlüsselt ist, dann hat der Benutzer hat ein privates/öffentliches Schlüsselpaar : Warum sollten Sie in diesem Fall überhaupt Passwörter verwenden?

42
Thomas Pornin

Es ist eine schlechte Praxis, Passwörter an den Benutzer zu senden, da dies bedeuten würde, dass Sie eine Klartextkopie des Benutzerpassworts haben.

Ich kann mir keinen guten Grund dafür vorstellen. Es gibt andere sicherere Wege, um das zu erreichen, was benötigt wird.

Für eine allgemeine Antwort in Bezug auf die E-Mail-Sicherheit empfehle ich Ihnen, den Link this zu lesen, der einige gute Informationen enthält.

Wenn Sie vertrauliche Informationen per E-Mail senden MÜSSEN, verwenden Sie ein Schema wie PGP oder andere Verschlüsselungstechniken, um die Daten zu sichern.

22
user10211

Wenn Sie das 'eindeutige Passwort' haben, das Sie zuerst senden müssen (abgesehen vom Registrierungsprozess), machen Sie es falsch. Speichern Sie niemals das Klartext-Passwort! Viele Unternehmen wie Sony Music und dergleichen wurden in letzter Zeit verbrannt. Lassen Sie mich Ihnen sagen, dass die Verbraucher nicht glücklich sind.

4
Vaughan Hilts

In Anlehnung an die vorherigen Beiträge ist E-Mail sicherlich nicht sicher und Sie sollten niemals vertrauliche Daten , insbesondere Passwörter, per E-Mail versenden. Vor allem, weil sie nicht verschlüsselt sind und im Klartext gefunden werden, ist es für jeden extrem einfach, sich in Ihre E-Mails zu hacken und über das öffentliche Netzwerk auf diese zuzugreifen.

Wenn Sie oder Ihr Kunde Probleme haben, sich Ihre Passwörter zu merken, sollten Sie einen sicheren Passwort-Manager verwenden. Dies ist eine Website, auf der eine Liste Ihrer Passwörter in einem vollständig verschlüsselten Tresor gespeichert ist. Gute sind KeePass oder LastPass.

Wenn Sie ein Unternehmen sind, das versucht, Kunden erneut ihr Kennwort zu senden, sollten Sicherheitsfragen eingerichtet sein, die die Kunden bei der erstmaligen Erstellung ihres Kontos beantworten. Auf diese Weise können sie, wenn sie es vergessen, auf einen Link klicken, der sie sendet, um diese Fragen richtig zu beantworten und ihr Passwort zurückzusetzen.

Nach Ihrem eigenen Wissen ist dies ein informativer Blog, der sich für die Verschlüsselung einsetzt und vor der Verwendung bestimmter Passwörter warnt http://www.ziptr.com/blog-last-4-digits-ssn-password = von Ziptr.

3
Katie Campbell