Wir sind kürzlich zu einer besseren Strategie zum Speichern von Passwörtern übergegangen, mit all den guten Dingen:
- Passwörter werden nach dem Durchlaufen von bCrypt gespeichert
- Der Benutzer erhält bei der Kontoerstellung einen Aktivierungslink, um den Besitz der Adresse zu bestätigen
- Passwort ohne Sicherheitsfrage vergessen, ein Link wird an ihre E-Mail gesendet.
- Der Link läuft nach 24 Stunden ab. Ab diesem Zeitpunkt müssen sie einen neuen anfordern.
- Wenn das Konto von unseren Mitarbeitern erstellt wird, wird eine E-Mail mit einem zufälligen sicheren Passwort gesendet. Beim Anmelden muss der Benutzer es auf etwas zurücksetzen, das wir nicht kennen und das bCrypt'd ist.
Dies entspricht der "Best-Practice", aber dies hat unsere Anzahl an Supportanfragen von regulären Benutzern, die dies alles nicht verstehen, erheblich erhöht. Sie möchten sich nur anmelden.
Wir erhalten häufig Anfragen von Benutzern, die sich beschweren über:
- Falsches Passwort (von dem, das sie zurücksetzen müssen, wird es häufig mit einem Leerzeichen am Ende eingefügt). Sie sagen uns, was sie verwenden, aber wir können ihnen nicht sagen, wie ihr aktuelles Passwort lautet.
- Sie sagen, dass sie die von uns gesendete E-Mail nicht erhalten (Aktivierung, Zurücksetzen usw.). Dies ist häufig nicht der Fall. Nach eingehender Fehlerbehebung haben wir normalerweise festgestellt, dass sie einen Tippfehler in der E-Mail gemacht haben, dass sie nicht das richtige E-Mail-Konto überprüft haben oder dass es einfach in den Spam-Ordner verschoben wurde.
Wir können es natürlich nicht für sie versuchen, da wir das Passwort nicht haben. Wir protokollieren die fehlgeschlagenen Versuche, löschen aber auch das verwendete Kennwort, da es wahrscheinlich das Kennwort ist, das für ein anderes Konto verwendet wird, und wir wollten es nicht in einer Nur-Text-Protokolldatei speichern. Dies lässt uns so ziemlich nichts, was ihnen helfen könnte, wenn sie Probleme melden.
Ich bin gespannt, wie die meisten Leute mit solchen Themen umgehen.
quelle
Antworten:
Behebbar, indem stattdessen ein Link mit einer einmaligen GUID eingefügt wird, die sie anmeldet und sie zwingt, das Kennwort zurückzusetzen. Zwingen Sie den Benutzer nicht zum Kopieren und Einfügen. (Warum nicht auch Leerzeichen am Ende des Passworts in Ihrem Formular entfernen?)
Stellen Sie sicher, dass Ihre ausgehende E-Mail von Spam befreit ist (möglicherweise richten Sie Testkonten für einige gängige E-Mail-Dienste ein), protokollieren Sie alle Ereignisse und melden Sie dies möglicherweise dem Benutzer, wenn dieser versucht, einen neuen Reset anzufordern (z. B. E-Mail an johndoee @ gmail) .com fehlgeschlagen, Benutzer nicht gefunden, haben Sie es richtig geschrieben?). Machen Sie den Benutzern auch Rechtschreib- und Spamprobleme klar.
OpenID und andere Authentifizierungen von Drittanbietern sind ebenfalls eine Option, wie andere bereits gesagt haben.
quelle
Ich würde sagen, verwenden Sie eine Authentifizierungsmethode eines Drittanbieters wie Facebook, OpenID, Google ... was auch immer für Ihre Benutzer geeignet ist. Wenn sich Ihre Benutzer jedoch nicht an Ihr Kennwort erinnern können, können sie möglicherweise kein Authentifizierungssystem eines Drittanbieters verwenden ...
Abhängig von Ihrer Situation können Sie möglicherweise ein anderes System verwenden, z. B. SSL-Client-Zertifikate (diese sind für Endbenutzer definitiv schwer zu installieren, aber wenn dies ein Unternehmen ist und Sie die Installation automatisieren können, ist es großartig), Windows SSO, eine mobile App usw.
quelle
Müssen Sie es überhaupt tun? Das erste, was Sie tun müssen, um festzustellen, was Sie schützen und vor wem Sie es schützen. Vielleicht ist es die Kosten für Best Practice einfach nicht wert, und vielleicht hält Best Practice Ihren Angreifer nicht einmal auf.
Wenn Sie gegen die NSA antreten und etwas haben, das sie wollen, geben Sie auf und machen Sie Ihren Benutzern das Leben leichter. Wenn Sie Kreditkartennummern haben, müssen Sie sich mit den Problemen abfinden, die das erforderliche Sicherheitsniveau erfordert, da es Bösewichte gibt, die sie wollen und Geld und Zeit ausgeben, um sie zu bekommen. Wenn Sie Zugang zu einem Familienfotoalbum haben, brauchen Sie all diese Sicherheit.
Lesen Sie mehr über Buce Scheiners Werke (Secrets and Lies), um die Sicherheit besser zu verstehen.
quelle
Das erste, was herausspringt, ist, dass Ihre E-Mails in Junk-Mail gehen. Es ist nicht trivial, E-Mails so einzurichten, dass sie als echt erkannt werden. Ich schlage vor, Sie prüfen, wie Sie verhindern können, dass Ihre E-Mail falsch gekennzeichnet wird (separate Frage zu SO?).
Das zweite, was ich empfehlen würde, ist, Ihren Benutzern eine Website / App mit einem Klick zu geben, die die E-Mails zur Kennwortwiederherstellung initiiert. Weigere dich, es anders als per E-Mail zu tun, es ist unsicher und stellt einen schlechten Präzedenzfall dar.
quelle
Die Tatsache, dass sie bereit sind, Sie anzurufen und Ihnen ihr Passwort laut mitzuteilen, zeigt Ihnen, dass für diese Benutzer das Passwort und die Informationen, die sie schützen, keine große Sache sind. Ich würde niemals eines dieser Dinge mit meinem Bankpasswort tun. Es gibt jedoch eine Reihe von Websites, die Kennwörter für Dinge verlangen, die sie wirklich nicht verdienen. Ich habe ein Standardkennwort, das ich für all diese verwende, und je mehr "Hey, das ist kein sicheres Kennwort" oder "Wir machen Ihnen ein Kennwort und zwingen Sie, es regelmäßig zu ändern" usw., desto weniger möchte ich verwenden dieser Service. Ich würde ein kurzes Gespräch mit den "Business Value" -Personen in Ihrem Leben führen, um zu sehen, ob es ein besserer Ansatz wäre, sie nur im Klartext in der Datenbank zu halten und sie auf Anfrage per E-Mail an Personen zu senden.
Wenn dies tatsächlich so sicher sein sollte, können Sie versuchen, was einer meiner Kunden mit dem System gemacht hat, das wir für sie codiert haben. Während Sie mit der Person telefonieren, gehen Sie in die Datenbank und ändern Sie ihre E-Mail-Adresse in Ihre. Gehen Sie dann ins Internet und klicken Sie auf Passwort vergessen. Warten Sie auf die E-Mail und melden Sie sich damit an. Ändern Sie auf der Website das Passwort in Passwort oder etwas anderes, das Sie dem Kunden mündlich zustimmen. Ändern Sie ihre E-Mail-Adresse wieder in ihre eigene Adresse und sagen Sie ihnen: "Alles klar, Ihr neues Passwort ist jetzt aktiv!" Zufriedene Kunden und Sie müssen ihnen nicht erklären, was alles los ist.
quelle
Die Methode des letzten Auswegs, die ich in der Vergangenheit auf einem System mit sehr Analphabeten verwendet habe, bestand darin, den Benutzer auf einen Bildschirm zu leiten, auf dem ihm eine Telefonnummer und eine Bestätigungsnummer zugewiesen wurden. Sie riefen die Telefonnummer an, überprüften ihre Identität manuell und lasen dann die Bestätigung. Die Support-Person hat sich in einem separaten System angemeldet, die Nummer eingegeben und eine zweite Nummer erhalten, die sie dem Kunden zurückgeben kann. Der Client verwendete den zweiten Code, um mit der Seite zum Zurücksetzen des Kennworts fortzufahren. Die Client-Version der Seite konnte nicht über die Subnetze des Support-Personals ausgeführt werden, und der Support-Bildschirm konnte nicht über die Clients ausgeführt werden.
Es ist nicht kugelsicher, da eine Support-Person einen VPN verwenden könnte, um beide Enden von einem Ort aus auszuführen. Für die Prüfung war dies jedoch ausreichend, da das Support-Konto als für die Aktivität verantwortlich protokolliert wurde
quelle
Vielleicht durch die Implementierung von Sicherheitsregeln, die nicht Wahnsinnig sind. Auf diese Weise erhalten Sie nur weniger Sicherheit, da das System so schwer zu bedienen ist, dass Ihre Kunden Passwörter an Sie und ihre Freunde weiterleiten, damit es funktioniert!
Kannst du ihnen nicht einfach NORMALE Links senden, dann Passwort unten. Wenn der Link vom E-Mail-Client unterbrochen wird, zeigen Sie einfach das Formular mit einem Feld "Aktivierungscode" ... "an. Geben Sie den Aktivierungscode ein, den Sie in der E-Mail haben" ... 5 Ziffern, damit 0 nicht mit O usw. verwechselt wird. 4 Ziffern sind für Kreditkarten in Ordnung und Sie benötigen eine so komplizierte Richtlinie für die einfache Anmeldung? Wenn der Code nicht funktioniert, wiederholen Sie die Prüfung mit der TRIMmed-Zeichenfolge. Ich denke, es wird es nicht weniger sicher machen, oder? :) :)
Bei mir kommt es auch oft vor ... Ich doppelklicke auf das Passwort und der Endplatz wird kopiert. Es ist für mich unglaublich, warum Peple nicht herausfinden kann, nur endende weiße Zeichen zu entfernen, wenn die Prüfung fehlgeschlagen ist, und den Vorgang zu wiederholen. Dann schalte ich vielleicht das Briefgehäuse um, um zu überprüfen, ob ich nicht versehentlich CL gedrückt habe.
Sie haben es so sehr überkompliziert. Es ist nicht "Passwort zurücksetzen" und "anfängliches Passwort" ... sondern "Bestätigungscode" und "Bestätigungsnummer eingeben, die wir Ihnen an die E-Mail senden", "Keine E-Mail haben? Es wurde an [email protected] gesendet, überprüfen Ihr Spam wieder, haben Sie ihn immer noch nicht? Senden Sie Ihre Bestätigungs-E-Mail erneut ". Im HTML-Body ein Link. http://xxx.com/conf-12345-mymail-gmail-com.html . Kein Mail-Client wird dies brechen.
quelle