it-swarm.com.de

Passwort vergessen und anzeigen, ob Konto existiert

Wenn Sie also auf diesen Link zum vergessenen Passwort klicken und Ihre E-Mail-Adresse eingeben, scheinen Websites (und andere Programmierer, mit denen ich gesprochen habe) eine von zwei Denkweisen zu sein.

  • Benachrichtigen Sie den Benutzer, ob die E-Mail-Adresse mit einer in der Datenbank übereinstimmt, und geben Sie auf dieser Grundlage an, ob eine E-Mail zum Zurücksetzen des Kennworts festgelegt wurde oder nicht.
  • Antworten Sie sofort mit "E-Mail gesendet" oder "Wenn dieser Benutzer vorhanden ist, haben wir Ihnen eine E-Mail zum Zurücksetzen des Kennworts gesendet", unabhängig davon, ob eine Übereinstimmung aufgetreten ist oder eine E-Mail gesendet wurde. Dies geschieht (anscheinend) aus Sicherheitsgründen.

Ich habe letzteres selbst implementiert und fand es im Allgemeinen ärgerlich bei den Benutzern aufgrund von;

  1. Wenn ein Benutzer seine E-Mail-Adresse falsch eingibt, wird ihm mitgeteilt, dass eine E-Mail gesendet wird, er erhält jedoch nie eine.
  2. Wenn sie eine andere E-Mail-Adresse als die eingegeben haben, bei der sie sich registriert haben, erhalten sie erneut keine E-Mail.
  3. Eine Kombination der oben genannten Optionen kann zu mehreren Versuchen führen, jedoch nicht zum Erhalt einer E-Mail zum Zurücksetzen des Kennworts, was zum Aufgeben führt.

Bei der Untersuchung beliebter Websites, die das zweite Szenario verwenden, habe ich festgestellt, dass beim Versuch, ein Konto bei diesen Websites zu registrieren, bei denen die eingegebene E-Mail-Adresse mit einem vorhandenen Konto übereinstimmt, der Typ "Diese E-Mail-Adresse wird bereits verwendet oder ist nicht verfügbar" verwendet wird Nachricht wird trotzdem angezeigt.

Welche Vorteile ergeben sich nicht daraus, ob eine E-Mail zum Zurücksetzen des Passworts mit einem Konto übereinstimmt, und wie sind diese Vorteile, wenn bei der Registrierung die Offenlegung von E-Mail-Übereinstimmungen erforderlich ist?

23

Es gibt manchmal einen Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit.

Wenn es für Sie oder Ihre Benutzer wichtig ist, dass andere Personen nicht wissen, dass sie die Website verwenden, ist Ihre zweite Wahl die beste.

Sie können jederzeit eine E-Mail an eine Adresse senden, die in Ihrem System nicht vorhanden ist, z. B. "Jemand hat ein Zurücksetzen des Kennworts für diese Adresse angefordert, diese befindet sich jedoch nicht in unserem System." Damit ist Ihre zweite Beschwerde erledigt.

Fügen Sie auf der Bestätigungsseite einen Link hinzu, um das Zurücksetzen des Kennworts erneut durchzuführen. Hoffentlich geben sie die E-Mail beim nächsten Mal korrekt ein.

Entscheiden Sie also, ob das Vermeiden der Benutzeraufzählung wichtiger ist als die gelegentlich falsch eingegebene E-Mail-Adresse.

Welche Vorteile ergeben sich nicht, wenn eine E-Mail zum Zurücksetzen des Kennworts mit einem Konto übereinstimmt?

Sie geben oder bestätigen einem Angreifer keine Liste der E-Mail-Adressen der Benutzer und lassen andere Personen nicht wissen, dass ein bestimmter Benutzer Ihre Website verwendet. Wenn es um Kätzchen geht, wen interessiert das dann? Wenn es sich um eine Bank oder eine außereheliche Affäre handelt, ist dies wichtig.

Wie sind diese Vorteile, wenn bei der Registrierung E-Mail-Übereinstimmungen angezeigt werden müssen?

Wer sagt, dass die Registrierung dies erfordert? Machen Sie dasselbe für die Registrierung. E-Mail-Adresse anfordern, Link "Schritt 2" senden oder "Jemand hat eine Registrierung auf unserer Website angefordert, aber diese Adresse ist bereits registriert" -E-Mails.

13
Neil McGuigan

Als Grundierung müssen wir uns also überlegen, was ein Angreifer tatsächlich tun kann, wenn Sie das Vorhandensein einer E-Mail auf Ihrem System auf leicht zugängliche Weise bestätigen/ablehnen. Dies ist ein mögliches Szenario:

  • Ein Angreifer hat Zugriff auf eine Datenbank mit gefährdeten E-Mail-Adressen und Kennwörtern erhalten. (d. h. sie können sich in jede E-Mail dieses Benutzers einloggen)
  • Sie möchten Zugriff auf einige Konten Ihrer Benutzer in Ihrem Dienst erhalten.
  • Ihr Dienst bestätigt oder verweigert, ob ein Konto mit einer E-Mail-Adresse vorhanden ist.

In diesem Fall können sie einfach alle E-Mails, die sie in ihrer Datenbank haben, anhand Ihrer Funktion zum Zurücksetzen des Kennworts testen, die zurückgegebenen Ergebnisse sammeln und sich bei diesen E-Mails anmelden und dem Link zum Zurücksetzen des Kennworts folgen, wenn Sie bestätigt haben, dass eine dieser E-Mails vorhanden ist.

Wenn es einfach genug ist, den Anmeldevorgang zu verfolgen, können Sie zu Recht davon ausgehen, dass das undurchsichtige Zurücksetzen des Kennworts keine zusätzliche Sicherheit bietet. Sie können den oben genannten Angriff einfach auf der Anmeldeseite anstelle der Seite zum Zurücksetzen des Kennworts ausführen.

Einige Möglichkeiten, wie ich dies abmildern kann, sind:

  • Erzwingen Sie, dass Benutzer sich entweder mit einem Benutzernamen anmelden oder ihnen bei der Registrierung einen Benutzernamen zuweisen, und veranlassen Sie sie, diesen fortan anstelle ihrer E-Mail-Adresse zu verwenden.
  • Erlauben Sie ihnen nicht, sich anzumelden, bis sie auf die E-Mail-Bestätigung geklickt haben. Wenn jemand versucht, sich mit einer bereits registrierten E-Mail anzumelden, sagen Sie einfach "Wir haben eine Bestätigungs-E-Mail an Ihre E-Mail-Adresse gesendet, klicken Sie darauf, um sich anzumelden".
  • Versuchen Sie, eine Art Anti-Brute-Force-Methode auf Seiten zu implementieren, die das Vorhandensein einer E-Mail-Adresse bestätigen/verweigern können, z. B. eine CAPTCHA.

Wie bereits erwähnt, wirken sich beide relativ erheblich auf die Benutzerfreundlichkeit aus. Sicherheit ist wie immer ein Kompromiss zwischen Praktikabilität und Paranoia.

2
Nic Barker

Die bisherigen Antworten sind gut, aber es ist wichtig zu beachten, dass es aus Sicht der Profilerstellung egal ist, ob ich nicht in ihr Konto komme, aber das Wissen, dass sie einen Dienst nutzen, reicht aus, um eine Situation sozial zu gestalten Ich überwache ihre sozialen Feeds auf mögliche Passwörter (Haustiere, Kinder, Autos usw.).

Abgesehen davon wäre es bei der Benutzeranmeldung ein schlechter UX-Schritt (oder zumindest ein Minenfeld), dem Benutzer zu erklären, dass die E-Mail-Adresse möglicherweise bereits verwendet wird oder nicht. Sie könnten sich eine funky Logik einfallen lassen, mit der sie ein Konto neu erstellen und ihnen per E-Mail sagen können: "Hey, es sieht so aus, als hätten Sie bereits ein Konto", aber das ist klobig und ehrlich gesagt eine Zeitverschwendung für den Benutzer. Gleiches gilt für eine Anmeldeseite - "ungültiger Benutzer/Pass" für entweder mit oder ohne Konto ist eine gute Angewohnheit ... aber wenn die Registrierungsseite diese Informationen frei gibt UND Sie das Risiko eingehen, dass Benutzer verärgert werden, wenn sie glauben, dass sie dies tun Ich habe mich angemeldet, aber noch nicht.

Persönlich versuche ich, OpenID so weit wie möglich für webbasierte Dienste zu verwenden, um zu verhindern, dass dieses Szenario überhaupt auftritt. Wir haben heutzutage alle ein Google/Facebook/Twitter-Konto ...

2
ScottMcGready