it-swarm.com.de

Wie kann ich dem Benutzer mitteilen, dass seine Anmeldeinformationen falsch sind?

Wenn ein Benutzer falsche Daten in ein Anmeldeformular eingegeben hat, ist es besser, ihm Folgendes mitzuteilen:

  • Der von Ihnen eingegebene Benutzername oder das Passwort ist ungültig.

oder

  • Der von Ihnen eingegebene Benutzername ist ungültig (für ungültige Benutzernamen)
  • Das eingegebene Passwort ist ungültig (für gültige Benutzernamen, aber ungültige Passwörter).

Der erste Ansatz "könnte" sicherer sein, da ein Angreifer nicht bestätigen kann, ob der Benutzername/die E-Mail-Adresse gültig ist. Gleichzeitig kann der Benutzer frustriert sein, wenn er sich nicht an die E-Mail-Adresse oder den Benutzernamen erinnern kann, mit denen er sich angemeldet hat.

Der zweite Ansatz ist deutlich benutzerfreundlicher, aber ein Angreifer kann herausfinden, was ein gültiger Benutzername/eine gültige E-Mail-Adresse ist, und dann einen Angriff starten, um das Kennwort zu erraten.

Einige Beispiele:

  • Amazon: There was an error with your E-Mail/Password combination. Please try again.
  • Heisse Mail: That Windows Live ID doesn't exist. Enter a different ID or get a new one. und That password is incorrect. Try again.

Wie soll ich diese Fehler anzeigen?

63
F21

Sie müssen mit der ersten Option gehen (geben an, dass der "Benutzername oder das Passwort ungültig ist"), und dies hat nichts mit Sicherheit zu tun.

Angenommen, ich verwende normalerweise JohnGB als Benutzernamen, aber in Ihrem Dienst hat jemand anderes diesen Benutzernamen, sodass ich stattdessen JohnGB123 verwende. Angenommen, ich habe dann meinen Benutzernamen vergessen und JohnGB als Benutzernamen eingegeben, aber mein korrektes Passwort verwendet.

Ist das ein korrektes Passwort und ein falscher Benutzername oder ein korrekter Benutzername und ein falsches Passwort?

Es gibt keinen korrekten Benutzernamen ohne das passende Passwort und kein korrektes Passwort ohne den passenden Benutzernamen. Benutzernamen und Passwörter stellen nur dann etwas dar, wenn sie in Kombination verwendet werden.

76
JohnGB

Ich werde einige Ratschläge von einem Sicherheit Standpunkt + UX geben. Ich würde keines für das andere opfern. Nimm beide.

  1. Ihre Frage enthält eine wichtige Frage zu sicheren Praktiken. Die Best Practice aus Sicherheitsgründen besteht darin, nicht zu identifizieren, welcher Eintrag ungültig war, und eine allgemeine Antwort zu erhalten. Fragen wir, was Google tun würde, und nehmen wir Google Mail als Beispiel: Sie haben das Endeenter image description here

  2. Sie können nicht auf Ihr Konto zugreifen? Link, Google Mail wird Ihnen schließlich mitteilen, dass dieses Konto nicht existiert:

enter image description here

Letztendlich liegt es an Ihnen, ob Sie dies tun möchten oder nicht. Aus Sicherheitsgründen können Angreifer damit beginnen, die gültigen Benutzernamen in Ihrer Anwendung zu erfassen. Unter dem Gesichtspunkt der Benutzerfreundlichkeit haben Sie gerade jemandem geholfen, herauszufinden, welche der unzähligen E-Mail-Adressen er in Ihrem Konto verwendet hat, und können sich schneller anmelden.

Wer sagt dir, ob ein Name existiert?

  • Twitter
  • Heisse Mail
  • Google Mail

Am sichersten ist es, dem Benutzer Folgendes mitzuteilen: "Wenn eine gültige E-Mail-Adresse eingegeben wurde, wurden Anweisungen zum Zurücksetzen Ihres Passworts gesendet."

Der Benutzername wird dadurch nicht angezeigt. Ihre erste Option ist also definitiv sicherer.

Unter dem Gesichtspunkt der Benutzerfreundlichkeit können Sie definitiv mehrere Methoden angeben, um zu versuchen, wieder in das Konto zu gelangen, ( sich mit Twitter, Google Mail, Facebook anmelden ... dafür gibt es APIs).

Lesen Sie diesen Artikel im Smashing Magazine, in dem die vielen Ansätze für Anmeldeformulare beschrieben werden:

http://uxdesign.smashingmagazine.com/2011/08/22/new-approaches-to-designing-login-forms/

Um es zusammenzufassen: Ein Benutzer ist möglicherweise frustriert, dass er sich nicht erinnern kann, welche E-Mail er verwendet hat. Ein Benutzer verliert jegliches Vertrauen in Sie, wenn sein Konto gehackt wird, weil ux die Sicherheit übertrumpft.

Ich hoffe das hilft Erics, ich bin wirklich neugierig, welche Lösung du am Ende wählst.

Einige technische Sicherheitsaspekte: Um mehr über die Aufzählung und die damit verbundene reale Gefahr zu erfahren:

Es kann auch hilfreich sein, mehr über die Sicherheit vergessener Passwörter in diesem OWASP-Spickzettel zu erfahren: https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet

Es enthält Best Practices für Geschäftsanwendungen, ist aber auch nützlich, um dies zu berücksichtigen. http://www.gnucitizen.org/blog/username-enumeration-vulnerabilities/

34
mustefa

Die Antwort hängt aus mehreren Gründen stark vom System ab. Ein gültiger Punkt wird angesprochen, wenn Sie sagen, dass Sie nicht wissen können, ob sie den "richtigen" Benutzernamen haben, wenn sie nicht das richtige Passwort haben. John gibt beispielsweise an, dass er möglicherweise versucht, auf den falschen John zuzugreifen. Es gibt jedoch mehrere Situationen, in denen es mir helfen kann, mir mitzuteilen, dass der Benutzername vorhanden ist.

Der Benutzername existiert nicht: Es gibt keinen nicht sicherheitsrelevanten Grund, dies Ihrem Benutzer nicht mitzuteilen! In diesem Fall tatsächlich wissen, dass der Benutzername falsch ist, nicht das Passwort oder die Kombination aus Benutzername und Passwort. Es macht keinen Sinn, einen Benutzer wütend tippen zu lassen, um sich bei einem nicht vorhandenen Konto anzumelden, es sei denn, er ist ein Bot/böswilliger Agent. Sie können auch in diesem Fall hilfreich etwas wie "Versuchen Sie sich zu registrieren? Klicken Sie hier ..." anbieten, falls der Benutzer wirklich kein Konto hat und ein Konto erstellen muss.

Mein Benutzername/Login ist meine E-Mail-Adresse: Wenn nicht jemand anderes meine E-Mail-Adresse gestohlen hat, können Sie davon ausgehen, dass der Benutzer seine E-Mail-Adresse richtig eingegeben hat und nicht verwirrt ist. Im Gegensatz zum Benutzernamen-System, bei dem Namen wie Bob und John sofort übernommen werden, sind in einem E-Mail-basierten Anmeldesystem die von Personen bevorzugten Anmeldeinformationen immer verfügbar, da nur sie haben Zugriff darauf In einem gut gestalteten System da nur die Person, die die Kontrolle über die E-Mail hat, die Erstellung eines Kontos für diesen Prozess abschließen kann.

Mein Login ist eine OpenID: Gleiche Gründe wie oben. Niemand sonst hätte mein Login ohne Zugriff auf meine Anmeldeinformationen verwenden können. Mit dem Aufkommen von OpenIDs und der Beliebtheit der E-Mail-basierten Anmeldung müssen sich viele Benutzer keine Sorgen mehr machen, ob ich mich hier als John453453 oder stattdessen als John543553 angemeldet habe.

Trotzdem ist die Meldung "Falsches Passwort" nicht hilfreich. Sie können nicht feststellen, ob dieses Passwort für den Benutzer falsch oder richtig ist, nur ob es für den eingegebenen Benutzernamen falsch oder richtig ist. Ein System mit drei Nachrichten ist wahrscheinlich am hilfreichsten:
1: Erfolgreiche Anmeldung! (Passwort und Benutzername korrekt).
2: Benutzername existiert nicht! Versuchen Sie sich zu registrieren? (Benutzername nicht "korrekt"/vorhanden)
3: Passwort/Benutzername falsch. (Passwort und Benutzername stimmen nicht überein. Betonen Sie, dass das Passwort hier falsch ist, da die meisten Leute ihr Passwort falsch eingeben, nicht ihren Benutzernamen.)

6
Ben Brocka

Ich denke, die Sicherheit ist kein Problem, es sei denn, es handelt sich um eine Website zur Penisvergrößerung, auf der Benutzer gerne diskret sind, wenn sie Mitglied sind. Auf den meisten Websites, die Option 2 auswählen, können Sie weiterhin ein Kennwort per E-Mail wiederherstellen und dann wissen lassen, ob in der Datenbank kein solcher Benutzername vorhanden ist ...

Vom Hacking-Standpunkt aus bietet es keinen großen Vorteil, wenn das System antwortet, dass ein Benutzername vorhanden ist. Angemessene Systeme lassen ohnehin nicht zu viele Versuche zu. Ein Hacker kann also höchstens eine Bestätigung für eine bekannte E-Mail/einen bekannten Benutzernamen erhalten, die er zu hacken versucht. Wenn jemand ein direktes Ziel ist, ist sein Benutzername/seine E-Mail-Adresse wahrscheinlich bereits bekannt.

Viele Menschen verwenden auf allen Websites dieselbe E-Mail-Adresse und/oder denselben Benutzernamen. Grundsätzlich verfügt jeder Administrator einer dieser Websites bereits über diese so genannten vertraulichen Informationen. Niemand scheint ein Problem damit zu haben, denn die Stärke liegt im Passwort, nicht im Benutzernamen.

5
Assaf Lavie

Wenn Sie über Sicherheitsprobleme besorgt sind, sollten Sie nicht zwischen dem falschen Benutzernamen und dem falschen Passwort unterscheiden.

Das heißt, wenn Sie zwei Felder in einer anderen als einer Anmeldeseite hätten und eines davon falsch wäre, wäre es nicht hilfreich, wenn die Fehlermeldung lautet: "Eines dieser beiden Felder ist falsch, aber ich werde Ihnen nicht sagen, welches einer." Während der Benutzername und das Passwort als Paar validiert werden müssen, ist es viel wahrscheinlicher, dass das Passwort falsch ist als der Benutzername, da das Passwortfeld normalerweise so konfiguriert ist, dass Sie nicht sehen können, was Sie eingeben.

5
user246

Verwenden Sie beide: Die erste Option für die ersten Versuche und nach 5 aufeinanderfolgenden fehlgeschlagenen Versuchen wechseln Sie zur zweiten Option.

Auf diese Weise behalten Sie die Benutzerfreundlichkeit für die Mehrheit der Benutzer bei, aber es erschwert die Arbeit des Hackers erheblich: Nach 5 Fehlern muss er seine Cookies zurücksetzen und seine IP ändern oder die korrekten Anmeldeinformationen in nur 5 vorläufigen (hoch) herausfinden unwahrscheinlich). Zu diesem Zeitpunkt würden die meisten "Angreifer" aufgeben und wenn er entschlossen und geschickt genug ist, wird er die Brute-Force-Strategie wahrscheinlich sowieso verwerfen.

5
Knu

Ich stimme JohnGB zu:

Ich bin oft frustriert von Websites, die mir sagen, dass "Benutzername oder Passwort falsch sind". Aber die obige Antwort von JohnGB macht Sinn.

Nur um eine meiner Hauptfrustrationen hinzuzufügen, ist die Tatsache, dass E-Mail und Benutzername oft nicht unterschieden werden. Zum Beispiel eine Site, auf der ich nach meiner E-Mail-Adresse oder meinem Benutzernamen frage, aber das eröffnet plötzlich viel mehr Möglichkeiten. Manchmal ändern sie auch die Terminologie während des Registrierungsprozesses!

Sei genau und konsequent. Wenn Sie eine E-Mail als Login anfordern, stellen Sie sicher, dass Sie sie immer als E-Mail bezeichnen! und umgekehrt.

3
Sheff

Wir hatten eine ähnliche Diskussion über die beste Option für unsere Website. Letztendlich hängt es von der Art Ihrer Website und der Sicherheitsstufe ab, die Sie Ihren Benutzern bieten möchten. Wir betreiben eine Baustelle, und letztendlich wollten wir uns für den Amazon-Ansatz entscheiden, weil wir die zusätzliche Sicherheitsebene für unsere Benutzer wollten.

1
dg3a