Sie sehen, die Welt der vergessenen Passwörter ist eigentlich ziemlich mysteriös. Es gibt viele verschiedene, vollkommen akzeptable und viele ziemlich gefährliche Gesichtspunkte. Es besteht die Möglichkeit, dass Sie als Endbenutzer auf jeden von ihnen schon oft gestoßen sind. Daher werde ich versuchen, anhand dieser Beispiele zu zeigen, wer die Dinge richtig macht und wer nicht und worauf Sie sich konzentrieren müssen, um die Funktion in Ihrer Anwendung ordnungsgemäß zu implementieren.
Passwortspeicherung: Hashing, Verschlüsselung und (ooh!) Nur-Text
Wir können nicht besprechen, was mit vergessenen Passwörtern geschehen soll, bevor wir besprechen, wie sie gespeichert werden sollen. In der Datenbank werden Kennwörter in einem von drei Haupttypen gespeichert:
- Einfacher Text. Es gibt eine Passwortspalte, die im Klartext gespeichert ist.
- . ( ), .
- . ( , ); , , , .
Lassen Sie uns gleich die einfachste Frage beantworten: Speichern Sie Passwörter niemals im Klartext! Noch nie. Eine einzige Injection- Schwachstelle , eine versehentlich erstellte Sicherungskopie oder einer von Dutzenden anderen einfachen Fehlern - und das war's, Spieler, alle Ihre Passwörter - das heißt, leider werden alle Passwörter Ihrer Kunden gemeinfrei. Dies bedeutet natürlich eine große Wahrscheinlichkeit, dass alle ihre Passwörter von allen Konten in anderen Systemen gemeinfrei werden . Und das wird deine Schuld sein.
Verschlüsselung ist besser, hat aber ihre Schwächen. Das Problem bei der Verschlüsselung ist die Entschlüsselung. Sie können diese verrückt aussehenden Chiffren nehmen und sie wieder in einfachen Text konvertieren. In diesem Fall werden wir mit lesbaren Passwörtern auf die Situation zurückkommen. Wie kommt es dazu? Ein kleiner Fehler im Code, der das Passwort entschlüsselt und öffentlich verfügbar macht, ist eine Möglichkeit. Hacker erhalten Zugriff auf den Computer, auf dem die verschlüsselten Daten gespeichert sind - dies ist die zweite Methode. Eine andere Möglichkeit besteht wiederum darin, die Sicherung der Datenbank zu stehlen, und jemand erhält auch den Verschlüsselungsschlüssel, der oft sehr unsicher gespeichert ist.
Und das bringt uns zum Hashing. Die Idee hinter dem Hashing ist, dass es auf eine Weise gemacht wird; Die einzige Möglichkeit, das vom Benutzer eingegebene Passwort mit seiner Hash-Version zu vergleichen, besteht darin, das eingegebene Passwort zu hashen und zu vergleichen. Um Angriffe mit Tools wie Regenbogentabellen zu verhindern, verwenden wir Salz, um dem Prozess Zufälligkeit zu verleihen (lesen Sie meinen Beitrag zur kryptografischen Speicherung, um ein vollständiges Bild zu erhalten ). Letztendlich können wir bei korrekter Implementierung davon ausgehen, dass Hash-Passwörter nie wieder zu einfachem Text werden (ich werde in einem anderen Beitrag auf die Vorteile verschiedener Hash-Algorithmen eingehen).
Ein kurzes Argument zu Hashing und Verschlüsselung: Der einzige Grund, warum Sie jemals ein Passwort verschlüsseln müssen, anstatt es zu hashen, ist, wenn Sie das Passwort im Klartext sehen müssen und dies zumindest in einer Standardsituation niemals wollen sollten . Webseite. Wenn Sie es brauchen, dann machen Sie höchstwahrscheinlich etwas falsch!
Beachtung!
Unten im Text des Beitrags befindet sich ein Screenshot der pornografischen Website AlotPorn. Es ist ordentlich beschnitten, und so gibt es nichts, was am Strand nicht zu sehen ist. Wenn es dennoch zu Problemen kommen kann, scrollen Sie nicht auf der Seite nach unten.
Setzen Sie Ihr Passwort immer zurück und erinnern Sie es nie daran
Haben Sie sich jemals gefragt worden , einen erstellen Passwort Erinnerung Feature ? Machen Sie einen Schritt zurück und denken Sie umgekehrt über diese Anfrage nach: Warum ist diese "Erinnerung" notwendig? Weil der Benutzer das Passwort vergessen hat. Was wollen wir wirklich tun? Helfen Sie ihm, sich erneut anzumelden.
Ich verstehe, dass das Wort "Erinnerung" (oft) umgangssprachlich verwendet wird, aber wir versuchen wirklich, dem Benutzer sicher zu helfen, wieder online zu sein . Da wir Sicherheit brauchen, gibt es zwei Gründe, warum eine Erinnerung (d. H. Das Senden des Passworts an den Benutzer) nicht angemessen ist:
- — . , HTTP ( HTTPS), , . , , , , , , , . — .
- . — ( ), .
Lassen Sie mich das Problem mit usoutdoor.com als Beispiel veranschaulichen : Hier ist eine typische Anmeldeseite:

Das erste Problem ist natürlich, dass die Anmeldeseite nicht über HTTPS geladen wird, sondern die Site auch das Senden eines Passworts ("Passwort senden") anbietet. Dies könnte ein Beispiel für die umgangssprachliche Verwendung des oben genannten Begriffs sein. Gehen wir also noch einen Schritt weiter und sehen, was passiert:

Es sieht leider nicht viel besser aus; und die E-Mail bestätigt das Problem:

Dies zeigt uns zwei wichtige Aspekte von usoutdoor.com:
- Die Site hat keine Hash-Passwörter. Bestenfalls sind sie verschlüsselt, aber es ist wahrscheinlich, dass sie im Klartext gespeichert sind. wir sehen keine gegenteiligen Beweise.
- Die Site sendet ein Langzeitkennwort (wir können es immer wieder verwenden) über einen ungesicherten Kanal.
Vor diesem Hintergrund müssen wir prüfen, ob der Rücksetzvorgang auf sichere Weise ausgeführt wird. Der erste Schritt dazu besteht darin, sicherzustellen, dass der Anforderer das Recht hat, einen Reset durchzuführen. Mit anderen Worten, vorher brauchen wir eine Identitätsprüfung; Lassen Sie uns einen Blick darauf werfen, was passiert, wenn eine Identität überprüft wird, ohne zuvor zu überprüfen, ob der Anforderer tatsächlich der Eigentümer des Kontos ist.
Auflisten von Benutzernamen und deren Auswirkungen auf die Anonymität
Dieses Problem lässt sich am besten visuell veranschaulichen. Problem:

Sehen? Beachten Sie die Meldung "Es ist kein Benutzer mit dieser E-Mail-Adresse registriert" ("Der Benutzer mit dieser E-Mail-Adresse ist nicht registriert"). Das Problem tritt offensichtlich auf, wenn eine solche Site die Existenz eines Benutzers bestätigt, der mit einer solchen E-Mail-Adresse registriert ist. Bingo - Du hast gerade den Pornofetisch deines Mannes / Chefs / Nachbarn entdeckt!
Natürlich ist Pornografie ein ziemlich kanonisches Beispiel für die Bedeutung der Privatsphäre, aber die Gefahr, eine Person mit einer bestimmten Website in Verbindung zu bringen, ist viel größer als die oben beschriebene möglicherweise unangenehme Situation. Eine der Gefahren ist Social Engineering; Wenn der Angreifer die Person mit dem Dienst abgleichen kann, verfügt er über Informationen, die er verwenden kann. Beispielsweise kann er sich an eine Person wenden, die sich als Website-Sprecher ausgibt, und weitere Informationen anfordern, um Spearphishing zu versuchen .
Praktiken wie diese führen auch zu der Gefahr der Aufzählung von Benutzernamen, bei der Sie das Vorhandensein einer gesamten Sammlung von Benutzernamen oder E-Mail-Adressen auf einer Website durch einfache Gruppenabfragen und Untersuchen der Antworten auf diese überprüfen können. Haben Sie eine Liste der E-Mail-Adressen aller Mitarbeiter und einige Minuten Zeit, um ein Skript zu schreiben? Dann sehen Sie, wo das Problem liegt!
Was ist die Alternative? Tatsächlich ist es recht einfach und in Entropay gut implementiert :

Hier schweigt Entropay völlig über die Existenz einer E-Mail-Adresse in seinem System für jeden, der die E-Mail- Adresse nicht besitzt . Wenn Sie besitzen diese Adresse und es nicht im System vorhanden ist , dann werden Sie eine E - Mail wie folgt erhalten:

Natürlich gibt es akzeptable Situationen, in denen jemand glaubt , sich auf der Website registriert zu haben. aber es ist nicht oder hat es von einer anderen E-Mail-Adresse. Das oben gezeigte Beispiel behandelt beide Situationen gut. Wenn die Adresse übereinstimmt, erhalten Sie natürlich eine E-Mail, die das Zurücksetzen Ihres Passworts erleichtert.
Die Feinheit der Entropay-Lösung besteht darin, dass die Identitätsprüfung vor jeder Online-Überprüfung per E-Mail erfolgt . Einige Websites fragen Benutzer für eine geheime Frage (mehr dazu weiter unten) vorwie der Reset beginnen kann; Das Problem dabei ist jedoch, dass Sie die Frage beantworten müssen, während Sie eine Art Identifikation (E-Mail oder Benutzername) angeben. Dies macht es fast unmöglich, intuitiv zu antworten, ohne die Existenz eines anonymen Benutzerkontos preiszugeben. Bei
diesem Ansatz nimmt die Benutzerfreundlichkeit leicht ab, da bei dem Versuch, ein nicht vorhandenes Konto zurückzusetzen, keine sofortige Rückmeldung erfolgt. Dies ist natürlich der springende Punkt beim Senden einer E-Mail, aber aus Sicht eines echten Endbenutzers erfährt er, wenn er die falsche Adresse eingibt, erst, wenn er die E-Mail erhält. Dies kann zu Spannungen führen, aber dies ist ein geringer Preis für einen so seltenen Prozess.
Eine weitere Randnotiz, die etwas vom Thema abweicht: Die Anmeldehilfefunktionen, die den richtigen Benutzernamen oder die richtige E-Mail-Adresse anzeigen, haben das gleiche Problem. Antworten Sie dem Benutzer immer mit der Meldung "Ihre Kombination aus Benutzername und Kennwort ist ungültig", anstatt das Vorhandensein von Anmeldeinformationen explizit zu bestätigen (z. B. "Der Benutzername ist korrekt, aber das Kennwort wurde falsch eingegeben").
Senden eines Rücksetzkennworts im Vergleich zum Senden einer Rücksetz-URL
Das nächste Konzept, das wir diskutieren müssen, bezieht sich auf die Art und Weise, wie ein Passwort zurückgesetzt wird. Es gibt zwei beliebte Lösungen:
- Generieren Sie ein neues Passwort auf dem Server und senden Sie es per E-Mail
- Senden Sie eine E-Mail mit einer eindeutigen URL, um den Rücksetzvorgang zu vereinfachen
Trotz der vielen Tutorials sollte der erste Punkt niemals verwendet werden. Das Problem ist, dass es ein gespeichertes Passwort gibt , das jederzeit zurückgegeben und wiederverwendet werden kann. Es wurde über einen ungesicherten Kanal übertragen und verbleibt in Ihrem Posteingang. Es besteht die Möglichkeit, dass Posteingänge mit Mobilgeräten und dem E-Mail-Client synchronisiert werden und dass sie sehr lange online in einem webbasierten E-Mail-Dienst gespeichert werden können. Der Punkt ist, dass das Postfach nicht als zuverlässiges Medium für die Langzeitspeicherung angesehen werden kann .
Abgesehen davon hat der erste Punkt ein weiteres ernstes Problem - er vereinfacht so weit wie möglichSperren des Kontos mit böswilliger Absicht. Wenn ich die E-Mail-Adresse der Person kenne, die das Konto auf der Website besitzt, kann ich sie jederzeit blockieren, indem ich einfach ihr Passwort zurücksetze. Dies ist ein Denial-of-Service-Angriff, der auf einem Silbertablett ausgelegt ist! Aus diesem Grund sollte das Zurücksetzen erst nach einer erfolgreichen Prüfung mit dem Antragsteller des Rechts darauf durchgeführt werden.
Wenn wir über eine Rücksetz-URL sprechen, meinen wir eine Website-Adresse, die für diese bestimmte Instanz des Rücksetzvorgangs eindeutig ist . Es sollte natürlich zufällig sein, es sollte nicht leicht zu erraten sein und es sollte keine externen Konto-Links enthalten, um das Zurücksetzen zu vereinfachen. Beispielsweise sollte die URL zum Zurücksetzen nicht nur ein Pfad wie "Zurücksetzen /? Benutzername = JohnSmith" sein.
Wir möchten ein eindeutiges Token erstellen, das als URL zum Zurücksetzen per E-Mail gesendet und dann anhand eines Serverdatensatzes für das Benutzerkonto überprüft werden kann. Auf diese Weise wird bestätigt, dass der Kontoinhaber tatsächlich dieselbe Person ist, die versucht, das Kennwort zurückzusetzen. ... Ein Token kann beispielsweise die Form "3ce7854015cd38c862cb9e14a1ae552b" haben und wird in der Tabelle zusammen mit der Benutzer-ID des zurücksetzenden Benutzers und der Zeit, zu der das Token generiert wurde, gespeichert (mehr dazu weiter unten). Wenn die E-Mail gesendet wird, enthält sie eine URL wie "Reset /? Id = 3ce7854015cd38c862cb9e14a1ae552b". Wenn der Benutzer sie lädt, fragt die Seite nach dem Vorhandensein des Tokens. Anschließend werden die Informationen des Benutzers bestätigt und das Ändern des Kennworts ermöglicht.
Da der Benutzer (hoffentlich) mit dem obigen Prozess ein neues Kennwort erstellen kann, stellen Sie sicher, dass die URL über HTTPS geladen wird. Nein, es reicht nicht aus, es mit einer POST-Anfrage über HTTPS zu senden. Diese URL mit dem Token muss die Sicherheit der Transportschicht verwenden, damit kein MITM- Angriff auf das neue Passworteingabeformular durchgeführt werden kann und das vom Benutzer erstellte Passwort über eine sichere Verbindung übertragen wird.
Außerdem müssen Sie für die Rücksetz-URL ein Token-Zeitlimit hinzufügen, damit der Rücksetzvorgang innerhalb eines bestimmten Intervalls ausgeführt werden kann, z. B. innerhalb einer Stunde. Dadurch wird sichergestellt, dass das Rücksetzfenster minimal ist, sodass der Empfänger der Rücksetz-URL nur in diesem sehr kleinen Fenster agieren kann. Natürlich kann der Angreifer den Rücksetzvorgang erneut starten, muss jedoch eine andere eindeutige Rücksetz-URL erhalten.
Schließlich müssen wir diesen Prozess einmalig machen. Nach Abschluss des Rücksetzvorgangs muss das Token entfernt werden, damit die Rücksetz-URL nicht mehr funktioniert. Der vorherige Punkt wird benötigt, damit der Angreifer ein sehr kleines Fenster hat, in dem er die URL zum Zurücksetzen bearbeiten kann. Außerdem wird das Token nach einem erfolgreichen Reset natürlich nicht mehr benötigt.
Einige dieser Schritte scheinen übermäßig überflüssig zu sein, beeinträchtigen jedoch die Benutzerfreundlichkeit überhaupt nicht und erhöhen die Sicherheit, auch wenn wir hoffen, dass dies selten vorkommt. In 99% der Fälle wird der Benutzer den Reset innerhalb kürzester Zeit aktivieren und das Passwort in naher Zukunft nicht erneut zurücksetzen.
Rolle von CAPTCHA
Oh, CAPTCHA, das Mittel, das wir alle gerne hassen! Tatsächlich bedeutet CAPTCHA weniger Schutz als Identifikation - Sie sind ein Mensch oder ein Roboter (oder ein automatisiertes Skript). Ziel ist es, die automatische Übermittlung von Formularen zu vermeiden, die natürlich als Versuch verwendet werden kann , die Sicherheit zu verletzen. Im Zusammenhang mit dem Zurücksetzen von Passwörtern bedeutet CAPTCHA, dass die Rücksetzfunktion nicht mit Brute-Force-Funktion geknackt werden kann, um entweder den Benutzer als Spam zu versenden oder um festzustellen, ob Konten vorhanden sind (was natürlich nicht möglich ist, wenn Sie den Anweisungen aus dem Abschnitt zur Identitätsprüfung folgen).
Natürlich ist das CAPTCHA selbst nicht ideal; Es gibt viele Präzedenzfälle für das "Hacken" von Software und das Erreichen ausreichender Erfolgsraten (60-70%). Darüber hinaus gibt es in meinem Beitrag eine Lösung zum Hacken von CAPTCHAs mit automatisierten Personen, bei der Sie Personen einen Bruchteil eines Cent bezahlen können, um jede CAPTCHA zu lösen und eine Erfolgsquote von 94% zu erzielen. Das heißt, es ist anfällig, erhöht aber (geringfügig) die Eintrittsbarriere.
Schauen wir uns ein PayPal-Beispiel an:

In diesem Fall kann der Rücksetzprozess einfach nicht gestartet werden, bevor das CAPTCHA gelöst ist, so dass es theoretisch unmöglich ist, den Prozess zu automatisieren. In der Theorie.
Für die meisten Webanwendungen ist dies jedoch übertrieben und führt definitiv zu einer Verringerung der Benutzerfreundlichkeit - die Leute mögen CAPTCHAs einfach nicht! Ein CAPTCHA ist auch eine Sache, die bei Bedarf leicht überarbeitet werden kann. Wenn der Dienst angegriffen wird (die Protokollierung ist hier nützlich, dazu später mehr), ist das Hinzufügen eines CAPTCHA nirgends einfacher.
Geheime Fragen und Antworten
Mit allen Methoden, die wir uns angesehen haben, konnten wir das Passwort zurücksetzen, indem wir einfach auf ein E-Mail-Konto zugreifen konnten. Ich sage "nur", aber natürlich muss es schwierig sein , illegal auf das E-Mail-Konto eines anderen zuzugreifen . Dies ist jedoch nicht immer der Fall .
In der Tat ist der obige Link über das Hacken von Sarah Palins Yahoo! dient zwei Zwecken; Erstens wird gezeigt, wie einfach es ist, (einige) E-Mail-Konten zu hacken, und zweitens wird gezeigt, wie schlechte Sicherheitsfragen böswillig verwendet werden können. Aber wir werden später darauf zurückkommen.
Das Problem beim Zurücksetzen von Kennwörtern mit 100% iger Abhängigkeit von E-Mails besteht darin, dass die Integrität des Kontos der Site, die Sie zurücksetzen möchten, zu 100% von der Integrität des E-Mail-Kontos abhängt. Jeder, der Zugriff auf Ihre E-Mail hat, hat Zugriff auf jedes Konto, das durch einfaches Empfangen einer E-Mail zurückgesetzt werden kann . Für solche Konten ist E-Mail der "Schlüssel zu allen Türen" Ihres Online-Lebens.
Eine Möglichkeit, dieses Risiko zu minimieren, besteht darin, ein Sicherheitsfrage- und -antwortmuster zu implementieren. Kein Zweifel , Sie sie vorher gesehen haben: Wählen Sie eine Frage , die nur Sie haben AntwortKennen Sie die Antwort. Wenn Sie Ihr Passwort zurücksetzen, werden Sie gefragt. Dies erhöht das Vertrauen, dass die Person, die versucht, zurückzusetzen, tatsächlich der Eigentümer des Kontos ist.
Zurück zu Sarah Palin war der Fehler, dass die Antworten auf ihre Sicherheitsfragen leicht gefunden werden konnten. Insbesondere wenn Sie eine so bedeutende Persönlichkeit des öffentlichen Lebens sind, sind Informationen über den Mädchennamen Ihrer Mutter, die Bildungsgeschichte oder den Ort, an dem jemand in der Vergangenheit gelebt hat, nicht allzu geheim. Tatsächlich kann das meiste davon von fast jedem gefunden werden. Und so geschah es mit Sarah:
Hacker David Kernell erhielt Zugriff auf Palins Konto, indem er ihre Hintergrundinformationen wie Universität und Geburtsdatum fand und dann die vergessene Passwortwiederherstellungsfunktion von Yahoo! verwendete.
Dies ist in erster Linie ein Designfehler von Yahoo! - Indem das Unternehmen auf diese einfachen Fragen hinwies, sabotierte es im Wesentlichen den Wert der geheimen Frage und damit den Schutz seines Systems. Das Zurücksetzen von Passwörtern für ein E-Mail-Konto ist natürlich immer schwieriger, da Sie den Besitz nicht nachweisen können, indem Sie eine E-Mail an den Eigentümer senden (ohne eine zweite Adresse zu haben). Glücklicherweise gibt es heute nicht viele Möglichkeiten, dieses System zu verwenden.
Zurück zu den geheimen Fragen - Es besteht die Möglichkeit, dem Benutzer die Möglichkeit zu geben, eigene Fragen zu erstellen. Das Problem ist, dass das Ergebnis schrecklich offensichtliche Fragen sein werden:
Welche Farbe hat der Himmel?
Fragen, die Personen in eine unangenehme Lage bringen, wenn eine Person eine Sicherheitsfrage zur Identifizierung verwendet(zB Call Center): Mit
wem habe ich an Weihnachten geschlafen?
Oder geradezu dumme Fragen:
Wie schreibt man "Passwort"?
Wenn es um Sicherheitsfragen geht, müssen Benutzer vor sich selbst gerettet werden! Mit anderen Worten, die geheime Frage sollte von der Site selbst bestimmt werden, oder noch besser, stellen Sie eine Reihe geheimer Fragen, aus denen der Benutzer auswählen kann. Und wählen Sie nicht nur einen aus . Idealerweise sollte der Benutzer zum Zeitpunkt der Registrierung zwei oder mehr Sicherheitsfragen auswählendie dann als zweiter Identifikationskanal verwendet wird. Das Vorhandensein mehrerer Fragen erhöht das Vertrauen in den Überprüfungsprozess sowie die Möglichkeit, Zufälligkeiten hinzuzufügen (die nicht immer dieselbe Frage anzeigen), und bietet ein wenig Redundanz für den Fall, dass der echte Benutzer das Kennwort vergessen hat.
Was sollte eine gute Sicherheitsfrage sein? Dies wird von mehreren Faktoren beeinflusst:
- Es sollte kurz sein - die Frage sollte klar und eindeutig sein.
- Die Antwort muss spezifisch sein - wir brauchen keine Frage, die eine Person auf unterschiedliche Weise beantworten kann
- Mögliche Antworten sollten variiert werden. Wenn Sie nach der Lieblingsfarbe einer Person fragen, erhalten Sie eine sehr kleine Teilmenge möglicher Antworten
- — ( , ),
- — - ,
Zufällig gibt es eine Website mit guten Fragen namens GoodSecurityQuestions.com . Einige der Fragen scheinen recht gut zu sein, andere bestehen einige der oben beschriebenen Tests nicht, insbesondere den Test "Einfache Suche".
Lassen Sie mich Ihnen zeigen, wie Sicherheitsfragen in PayPal implementiert werden und insbesondere, wie viel Aufwand die Website unternimmt, um sie zu identifizieren. Oben haben wir eine Seite gesehen, um den Prozess zu starten (mit einem CAPTCHA), aber hier zeigen wir, was passiert, nachdem Sie Ihre E-Mail-Adresse eingegeben und das CAPTCHA gelöst haben:

Als Ergebnis erhält der Benutzer den folgenden Brief:

Bisher ist dies normal, aber Folgendes steckt hinter dieser zurückgesetzten URL:

Es kommen also geheime Fragen ins Spiel. Mit PayPal können Sie Ihr Passwort auch zurücksetzen, indem Sie Ihre Kreditkartennummer überprüfen. Es gibt also einen zusätzlichen Kanal, auf den viele Websites keinen Zugriff haben. Ich kann mein Passwort einfach nicht ändern, ohne beide Sicherheitsfragen zu beantworten (oder die Kartennummer zu kennen). Selbst wenn jemand meine E-Mail-Adresse abruft, kann er mein PayPal-Kontopasswort nicht zurücksetzen, wenn er nicht ein wenig mehr persönliche Informationen über mich kennt. Welche Information? Hier sind die von PayPal angebotenen Optionen für Sicherheitsfragen:

Die Frage nach Schule und Krankenhaus mag in Bezug auf die einfache Suche etwas zweifelhaft sein, aber der Rest ist nicht so schlimm. Um die Sicherheit zu verbessern, benötigt PayPal jedoch eine zusätzliche Identifikation, um die Sicherheitsantworten zu ändern :

PayPal ist ein ziemlich utopisches Beispiel für ein sicheres Zurücksetzen von Passwörtern: Es implementiert ein CAPTCHA, um das Risiko von Brute-Force zu verringern, erfordert zwei geheime Fragen und erfordert dann eine andere Art der völlig anderen Identifizierung, nur um die Antworten zu ändern - und dies, nachdem der Benutzer bereits angemeldet ist. Dies ist natürlich das, was wir von PayPal erwarten würden. Es ist ein Finanzinstitut, das mit großen Geldbeträgen umgeht. Dies bedeutet nicht, dass jedes Zurücksetzen des Kennworts diese Schritte ausführen muss - in den meisten Fällen ist es übertrieben -, aber es ist ein gutes Beispiel dafür, wenn Sicherheit ein ernstes Geschäft ist.
Das System der geheimen Fragen bietet den Vorteil, dass es später hinzugefügt werden kann, wenn Sie es nicht sofort implementiert haben, wenn die Stufe des Ressourcenschutzes dies erfordert. Ein gutes Beispiel hierfür ist Apple, das diesen Mechanismus erst kürzlich implementiert hat [geschrieben 2012] . Als ich anfing, die Anwendung auf dem iPad zu aktualisieren, sah ich die folgende Anfrage:

Dann sah ich einen Bildschirm, auf dem ich mehrere Paare geheimer Fragen und Antworten sowie eine Rettungs-E-Mail-Adresse auswählen konnte:

Bei PayPal sind die Fragen vorausgewählt und einige davon sind tatsächlich ziemlich gut:

Jedes der drei Fragen- und Antwortpaare stellt einen separaten Satz möglicher Fragen dar. Daher gibt es zahlreiche Möglichkeiten, ein Konto zu konfigurieren.
Ein weiterer Aspekt, der bei der Beantwortung der Sicherheitsfrage berücksichtigt werden muss, ist die Speicherung. Das Auffinden von Klartext in DB stellt fast die gleichen Bedrohungen dar wie im Fall eines Kennworts: Die Offenlegung der Datenbank enthüllt sofort die Bedeutung und gefährdet nicht nur die Anwendung, sondern möglicherweise auch völlig unterschiedliche Anwendungen, die dieselben Sicherheitsfragen verwenden (dies ist wiederum eine Frage der Beeren) acai). Eine Option ist sicheres Hashing (starker Algorithmus und kryptografisch zufälliges Salt), aber im Gegensatz zu den meisten Fällen der Kennwortspeicherung kann es einen guten Grund dafür geben, dass die Antwort als einfacher Text angezeigt wird. Ein typisches Szenario ist eine Identitätsprüfung durch einen Live-Operator über das Telefon. In diesem Fall ist natürlich auch Hashing anwendbar (der Bediener kann einfach die vom Client benannte Antwort eingeben), aber im schlimmsten Fall muss sich die geheime Antwort auf einer bestimmten Ebene des kryptografischen Speichers befinden, selbst wenn es sich nur um eine symmetrische Verschlüsselung handelt. Zusammenfassend: Behandle Geheimnisse als Geheimnisse!
Und der letzte Aspekt geheimer Fragen und Antworten - sie sind anfälliger für Social Engineering. Der Versuch, ein Passwort für das Konto eines anderen direkt zu ermitteln, ist eine Sache, aber ein Gespräch über seine Ausbildung (eine beliebte geheime Frage) zu führen, ist eine ganz andere. Tatsächlich können Sie mit jemandem sehr realistisch über viele Aspekte seines Lebens kommunizieren, die eine Sicherheitsfrage darstellen können, ohne Verdacht zu erregen. Das Wesentliche an der geheimen Frage ist natürlich, dass sie sich auf die Lebenserfahrung eines Menschen bezieht, also wird daran erinnert, und genau das ist das Problem - die Menschen lieben es, über ihre Lebenserfahrungen zu sprechen! Es kann wenig dagegen unternommen werden, nur indem die Optionen für Sicherheitsfragen so ausgewählt werden, dass sie weniger wahrscheinlich vom Social Engineering herausgezogen werden.
[Fortsetzung folgt.]
Werbung
VDSina bietet zuverlässige Server mit einer täglichen Zahlung , jeder Server ist mit einem Internetkanal von 500 Megabit verbunden und kostenlos vor DDoS-Angriffen geschützt!
