Ich hatte kürzlich Zeit, noch einmal darüber nachzudenken, wie eine Funktion zum sicheren Zurücksetzen von Passwörtern funktionieren sollte, zunächst als ich diese Funktionalität einbaute
Sie sehen, die Welt der vergessenen Passwörter ist eigentlich ziemlich mysteriös. Es gibt viele verschiedene, durchaus akzeptable Standpunkte und viele ziemlich gefährliche. Es ist wahrscheinlich, dass Sie als Endbenutzer auf jedes davon schon oft gestoßen sind; Deshalb werde ich versuchen, anhand dieser Beispiele zu zeigen, wer es richtig macht und wer nicht und worauf Sie sich konzentrieren müssen, um eine Funktion in Ihrer Anwendung richtig zu implementieren.
Passwortspeicherung: Hashing, Verschlüsselung und (keuch!) Klartext
Wir können nicht besprechen, was mit vergessenen Passwörtern geschehen soll, bevor wir besprechen, wie sie gespeichert werden. Passwörter werden in einer von drei Hauptarten in der Datenbank gespeichert:
- Einfacher Text. Es gibt eine Passwortspalte, die im Klartextformat gespeichert ist.
- Verschlüsselt. Normalerweise wird symmetrische Verschlüsselung verwendet (ein Schlüssel wird sowohl für die Verschlüsselung als auch für die Entschlüsselung verwendet), und die verschlüsselten Passwörter werden auch in derselben Spalte gespeichert.
- gehasht. Einseitiger Prozess (Passwort kann gehasht, aber nicht dehasht werden); Passwort, hoffentlich, gefolgt von einem Salz, und jedes steht in einer eigenen Spalte.
Beschäftigen wir uns gleich mit der einfachsten Frage: Speichern Sie Passwörter niemals im Klartext! Niemals. Eine einzige Schwachstelle
Verschlüsselung ist besser, hat aber ihre Schwächen. Das Problem der Verschlüsselung liegt in der Entschlüsselung; Wir können diese verrückt aussehenden Chiffren nehmen und sie wieder in Klartext umwandeln, und wenn das passiert, sind wir wieder bei der Situation mit lesbaren Passwörtern. Wie kommt es dazu? Ein kleiner Fehler steckt im Code, der das Passwort entschlüsselt und es öffentlich zugänglich macht – das ist eine Möglichkeit. Hacker erhalten Zugriff auf die Maschine, auf der die verschlüsselten Daten gespeichert sind – dies ist der zweite Weg. Eine andere Möglichkeit besteht wiederum darin, das Backup der Datenbank zu stehlen, wodurch jemand auch an den Verschlüsselungsschlüssel gelangt, der oft sehr unsicher gespeichert ist.
Und das bringt uns zum Hashing. Die Idee hinter dem Hashing ist, dass es auf eine Weise erfolgt; Die einzige Möglichkeit, das vom Benutzer eingegebene Passwort mit seiner gehashten Version zu vergleichen, besteht darin, das eingegebene Passwort zu hashen und zu vergleichen. Um Angriffe mit Tools wie Rainbow Tables zu verhindern, verwenden wir Salt, um dem Prozess Zufälligkeit zu verleihen (für das vollständige Bild lesen Sie meine Seite).
Ein kurzes Argument zum Thema Hashing vs. Verschlüsselung: Der einzige Grund, warum Sie jemals ein Passwort verschlüsseln statt hashen müssen, besteht darin, dass Sie das Passwort im Klartext sehen müssen Du solltest es niemals wollen, zumindest im Fall einer Standard-Website. Wenn Sie das brauchen, dann machen Sie höchstwahrscheinlich etwas falsch!
Achtung!
Unten im Text des Beitrags befindet sich ein Teil eines Screenshots der pornografischen Website AlotPorn. Es ist ordentlich beschnitten, so dass es am Strand nichts gibt, was Sie nicht sehen können, aber wenn es immer noch wahrscheinlich ist, dass es Probleme verursacht, scrollen Sie nicht nach unten.
Setzen Sie Ihr Passwort immer zurück nie erinnere ihn nicht daran
Wurden Sie schon einmal gebeten, eine Funktion zu erstellen? Erinnerungen Passwort? Machen Sie einen Schritt zurück und denken Sie umgekehrt über diese Bitte 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 was wir wirklich versuchen, ist Helfen Sie dem Benutzer sicher, wieder online zu sein. Da wir Sicherheit benötigen, gibt es zwei Gründe, warum eine Erinnerung (d. h. das Senden des Passworts an den Benutzer) nicht angebracht ist:
- E-Mail ist ein unsicherer Kanal. So wie wir nichts Vertrauliches über HTTP senden würden (wir würden HTTPS verwenden), sollten wir auch nichts über E-Mail senden, da die Transportschicht unsicher ist. Tatsächlich ist dies viel schlimmer, als einfach Informationen über ein unsicheres Transportprotokoll zu senden, da E-Mails oft auf dem Laufwerk gespeichert werden, für Systemadministratoren verfügbar sind, weitergeleitet und verteilt werden, für Malware verfügbar sind und so weiter. Unverschlüsselte E-Mails sind ein äußerst unsicherer Kanal.
- Sie sollten ohnehin keinen Zugriff auf das Passwort haben. Lesen Sie den vorherigen Abschnitt zur Speicherung noch einmal durch – Sie müssen über einen Hash des Passworts (mit einem guten starken Salt) verfügen, was bedeutet, dass Sie auf keinen Fall in der Lage sein sollten, das Passwort zu extrahieren und per Post zu verschicken.
Lassen Sie mich das Problem anhand eines Beispiels veranschaulichen
Das erste Problem besteht offensichtlich darin, dass die Anmeldeseite nicht über HTTPS geladen wird, die Site Sie jedoch auch dazu auffordert, ein Passwort zu senden („Passwort senden“). Dies könnte ein Beispiel für die umgangssprachliche Verwendung des oben erwähnten Begriffs sein, also gehen wir noch einen Schritt weiter und sehen, was passiert:
Leider sieht es nicht viel besser aus; und die E-Mail bestätigt, dass ein Problem vorliegt:
Dies verrät uns über zwei wichtige Aspekte von usoutdoor.com:
- Die Website hasht keine Passwörter. Im besten Fall sind sie verschlüsselt, es ist jedoch wahrscheinlich, dass sie im Klartext gespeichert werden; Wir sehen keine gegenteiligen Beweise.
- Die Website sendet ein Langzeitpasswort (wir können es immer wieder verwenden) über einen ungesicherten Kanal.
Nachdem dies geklärt ist, müssen wir prüfen, ob der Rücksetzvorgang auf sichere Weise erfolgt. Der erste Schritt dazu besteht darin, sicherzustellen, dass der Antragsteller das Recht hat, das Zurücksetzen durchzuführen. Mit anderen Worten: Zuvor benötigen wir eine Identitätsprüfung; Werfen wir einen Blick darauf, was passiert, wenn eine Identität überprüft wird, ohne zunächst zu überprüfen, ob der Antragsteller tatsächlich der Kontoinhaber ist.
Aufzählung von Benutzernamen und ihre Auswirkung auf die Anonymität
Dieses Problem lässt sich am besten visuell veranschaulichen. Problem:
Sehen? Achten Sie auf die Meldung „Mit dieser E-Mail-Adresse ist kein Benutzer registriert“. Das Problem entsteht offensichtlich, wenn eine ähnliche Website dies bestätigt Präsenz Der Benutzer hat sich mit dieser E-Mail-Adresse registriert. Bingo – Sie haben gerade den Pornofetisch Ihres Mannes/Chefs/Nachbarn entdeckt!
Natürlich sind Pornos ein ziemlich kanonisches Beispiel für die Bedeutung der Privatsphäre, aber die Gefahren, mit einer bestimmten Website in Verbindung gebracht zu werden, sind weitaus größer als die oben beschriebene potenziell peinliche Situation. Eine Gefahr ist Social Engineering; Wenn ein Angreifer eine Person einem Dienst zuordnen kann, verfügt er über Informationen, die er nutzen kann. Beispielsweise kann er eine Person kontaktieren, die sich als Vertreter einer Website ausgibt, und zusätzliche Informationen anfordern, um dies zu erreichen
Solche Praktiken bergen auch die Gefahr der „Benutzernamenaufzählung“, bei der es möglich ist, die Existenz einer ganzen Sammlung von Benutzernamen oder E-Mail-Adressen auf einer Website durch einfache Massenabfragen und die Untersuchung der Antworten darauf zu überprüfen. Haben Sie eine Liste der E-Mail-Adressen aller Mitarbeiter und ein paar Minuten Zeit, um ein Skript zu schreiben? Dann sehen Sie, wo das Problem liegt!
Was ist die Alternative? Tatsächlich ist es ganz einfach und bemerkenswert umgesetzt
Dabei gibt Entropay absolut nichts über die Existenz einer E-Mail-Adresse in seinem System preis an jemanden, der diese Adresse nicht besitzt... Wenn Sie besitzen Adresse eingegeben haben und diese nicht im System vorhanden ist, erhalten Sie eine E-Mail wie diese:
Natürlich kann es akzeptable Situationen geben, in denen jemand denktdie sich auf der Website registriert haben. Dies ist jedoch nicht der Fall oder erfolgte von einer anderen E-Mail-Adresse aus. Das obige Beispiel bewältigt beide Situationen erfolgreich. Wenn die Adresse übereinstimmt, erhalten Sie natürlich eine E-Mail, mit der Sie Ihr Passwort einfach zurücksetzen können.
Die Feinheit der von Entropay gewählten Lösung besteht darin, dass die Identifizierungsüberprüfung gemäß durchgeführt wird E-Mail vor jeder Online-Überprüfung. Einige Websites bitten Benutzer um die Antwort auf eine Sicherheitsfrage (mehr dazu weiter unten). auf wie der Reset starten kann; Das Problem dabei ist jedoch, dass Sie die Frage unter Angabe einer Identifikation (E-Mail-Adresse oder Benutzername) beantworten müssen, was es nahezu unmöglich macht, intuitiv zu antworten, ohne die Existenz eines anonymen Benutzerkontos preiszugeben.
Mit diesem Ansatz gibt es klein Die Benutzerfreundlichkeit ist beeinträchtigt, da beim Versuch, ein nicht vorhandenes Konto zurückzusetzen, keine sofortige Rückmeldung erfolgt. Das ist natürlich der ganze Sinn des Versendens einer E-Mail, aber aus der Sicht eines echten Endbenutzers: Wenn er die falsche Adresse eingibt, wird er es erst beim ersten Mal erfahren, wenn er die E-Mail erhält. Dies kann bei ihm zu Spannungen führen, aber das ist ein geringer Preis für einen so seltenen Prozess.
Noch ein Hinweis, etwas abseits des Themas: Anmeldehilfefunktionen, die zeigen, ob ein Benutzername oder eine E-Mail-Adresse korrekt sind, haben das gleiche Problem. Antworten Sie dem Benutzer immer mit der Meldung „Ihre Kombination aus Benutzername und Passwort ist ungültig“, anstatt explizit zu bestätigen, dass die Anmeldeinformationen vorhanden sind (z. B. „Der Benutzername ist korrekt, aber das Passwort ist falsch“).
Senden eines Reset-Passworts im Vergleich zum Senden einer Reset-URL
Das nächste Konzept, das wir besprechen müssen, hat mit der Methode zum Zurücksetzen des Passworts zu tun. Es gibt zwei beliebte Lösungen:
- Ein neues Passwort auf dem Server generieren und per E-Mail versenden
- Senden Sie eine E-Mail mit einer eindeutigen URL, um den Rücksetzvorgang zu vereinfachen
Trotz
Aber abgesehen davon hat der erste Absatz noch ein weiteres ernstes Problem – es vereinfacht so viel wie möglich Kontosperrung mit böswilliger Absicht. Wenn ich die E-Mail-Adresse von jemandem kenne, der ein Konto auf einer Website besitzt, kann ich ihn jederzeit sperren, indem ich einfach sein Passwort zurücksetze; Es ist ein Denial-of-Service-Angriff auf dem Silbertablett! Aus diesem Grund sollte das Zurücksetzen erst nach erfolgreicher Prüfung der Rechte daran beim Antragsteller durchgeführt werden.
Wenn wir von der Reset-URL sprechen, meinen wir die Website-Adresse Dies ist einzigartig für diesen speziellen Fall des Reset-Vorgangs. Natürlich sollte es zufällig sein, nicht leicht zu erraten sein und keine externen Links zum Konto enthalten, die das Zurücksetzen erleichtern. Beispielsweise sollte die Reset-URL nicht einfach ein Pfad wie „Reset/?username=JohnSmith“ sein.
Wir möchten ein eindeutiges Token erstellen, das als Zurücksetzungs-URL verschickt und dann mit dem Serverdatensatz des Benutzerkontos abgeglichen werden kann, um so zu bestätigen, dass der Kontoinhaber tatsächlich dieselbe Person ist, die versucht, das Passwort zurückzusetzen. Ein Token könnte beispielsweise „3ce7854015cd38c862cb9e14a1ae552b“ lauten und zusammen mit der ID des Benutzers, der das Zurücksetzen durchführt, und dem Zeitpunkt, zu dem das Token generiert wurde, in einer Tabelle gespeichert werden (mehr dazu weiter unten). Wenn die E-Mail gesendet wird, enthält sie eine URL wie „Reset/?id=3ce7854015cd38c862cb9e14a1ae552b“, und wenn der Benutzer sie herunterlädt, fragt die Seite nach der Existenz des Tokens, bestätigt anschließend die Informationen des Benutzers und ermöglicht ihm, das zu ändern Passwort.
Da der oben beschriebene Prozess es dem Benutzer (hoffentlich) ermöglicht, ein neues Passwort zu erstellen, müssen wir natürlich sicherstellen, dass die URL über HTTPS geladen wird. Nein,
Außerdem müssen Sie für die Reset-URL ein Token-Zeitlimit hinzufügen, damit der Reset-Vorgang innerhalb eines bestimmten Intervalls, beispielsweise innerhalb einer Stunde, abgeschlossen werden kann. Dadurch wird sichergestellt, dass das Zeitfenster zum Zurücksetzen auf ein Minimum beschränkt wird, sodass der Empfänger der Zurücksetzungs-URL nur innerhalb dieses sehr kleinen Zeitfensters 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 sicherstellen, dass dieser Prozess wegwerfbar ist. Sobald der Rücksetzvorgang abgeschlossen ist, muss das Token entfernt werden, damit die Rücksetz-URL nicht mehr funktioniert. Der vorherige Punkt ist notwendig, um sicherzustellen, dass dem Angreifer ein sehr kleines Fenster zur Verfügung steht, in dem er die Reset-URL manipulieren kann. Und natürlich wird der Token nach erfolgreichem Zurücksetzen nicht mehr benötigt.
Einige dieser Schritte mögen überflüssig erscheinen, sie beeinträchtigen jedoch nicht die Benutzerfreundlichkeit und tatsächlich die Sicherheit verbessern, wenn auch in Situationen, von denen wir hoffen, dass sie selten vorkommen. In 99 % der Fälle aktiviert der Benutzer das Zurücksetzen innerhalb kürzester Zeit und wird das Passwort in naher Zukunft nicht erneut zurücksetzen.
Rolle von CAPTCHA
Oh, CAPTCHA, die Sicherheitsfunktion, die wir alle gerne hassen! Tatsächlich ist CAPTCHA weniger ein Schutztool als vielmehr ein Identifikationstool – egal, ob Sie eine Person oder ein Roboter (oder ein automatisiertes Skript) sind. Sein Zweck besteht darin, die automatische Übermittlung von Formularen zu vermeiden, die natürlich können als Versuch genutzt werden, den Schutz zu durchbrechen. Im Zusammenhang mit dem Zurücksetzen von Passwörtern bedeutet CAPTCHA, dass die Reset-Funktion nicht brutal erzwungen werden kann, um entweder den Benutzer zu spammen oder zu versuchen, die Existenz von Konten festzustellen (was natürlich nicht möglich wäre, wenn Sie die Tipps im Abschnitt befolgt hätten). Identitätsprüfung).
Natürlich ist CAPTCHA selbst nicht perfekt; Es gibt viele Präzedenzfälle dafür, dass es programmgesteuert „gehackt“ werden kann und ausreichende Erfolgsraten (60-70 %) erzielt. Außerdem gibt es in meinem Beitrag dazu eine Lösung
Schauen wir uns das PayPal-Beispiel an:
In diesem Fall kann der Reset-Vorgang einfach nicht beginnen, bevor das CAPTCHA gelöst ist theoretisch Es ist unmöglich, den Prozess zu automatisieren. In der Theorie.
Für die meisten Webanwendungen ist dies jedoch übertrieben absolut richtig stellt eine Verschlechterung der Benutzerfreundlichkeit dar – die Leute mögen einfach keine CAPTCHAs! Darüber hinaus ist CAPTCHA so etwas, zu dem Sie bei Bedarf problemlos zurückkehren können. Wenn der Dienst angegriffen wird (die Protokollierung ist hier hilfreich, aber dazu später mehr), könnte das Hinzufügen eines CAPTCHAs nicht einfacher sein.
Geheime Fragen und Antworten
Mit allen von uns in Betracht gezogenen Methoden konnten wir das Passwort allein durch den Zugriff auf das E-Mail-Konto zurücksetzen. Ich sage „nur“, aber natürlich ist es illegal, sich Zugriff auf das E-Mail-Konto einer anderen Person zu verschaffen. muss ein komplexer Prozess sein. Jedoch
Tatsächlich ist der obige Link zu Sarah Palins Yahoo! dient zwei Zwecken; Erstens zeigt es, wie einfach es ist, (einige) E-Mail-Konten zu hacken, und zweitens zeigt es, wie böse Geheimfragen böswillig verwendet werden können. Aber wir werden später darauf zurückkommen.
Das Problem beim Zurücksetzen von Passwörtern, die zu XNUMX % E-Mail-abhängig sind, besteht darin, dass die Kontointegrität der Website, die Sie zurücksetzen möchten, zu XNUMX % von der Integrität des E-Mail-Kontos abhängt. Jeder, der Zugriff auf Ihre E-Mails hat hat Zugriff auf jedes Konto, das einfach durch den Empfang 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 mindern, besteht darin, ein Sicherheitsfrage- und -antwortmuster zu implementieren. Zweifellos haben Sie sie bereits gesehen: Wählen Sie eine Frage, die nur Sie selbst beantworten können haben Kennen Sie die Antwort, und wenn Sie Ihr Passwort zurücksetzen, werden Sie danach gefragt. Dies erhöht die Gewissheit, dass die Person, die das Zurücksetzen versucht, tatsächlich der Eigentümer des Kontos ist.
Zurück zu Sarah Palin: Der Fehler bestand darin, dass die Antworten auf ihre geheimen Fragen leicht zu finden waren. Besonders wenn Sie eine so große Persönlichkeit des öffentlichen Lebens sind, sind Informationen über den Mädchennamen Ihrer Mutter, die Schulgeschichte oder den Ort, an dem jemand in der Vergangenheit gelebt hat, gar nicht so geheim. Tatsächlich kann das meiste davon von nahezu jedem gefunden werden. Das ist Sarah passiert.
Der Hacker David Kernell verschaffte sich Zugang zu Palins Konto, indem er Details über ihren Hintergrund, wie etwa ihre Universität und ihr Geburtsdatum, herausfand und dann die Funktion zur Wiederherstellung vergessener Passwörter von Yahoo! nutzte.
Hierbei handelt es sich in erster Linie um einen Designfehler seitens Yahoo! - Durch die Festlegung solch einfacher Fragen sabotierte das Unternehmen im Wesentlichen den Wert der Geheimfrage und damit den Schutz seines Systems. Natürlich ist das Zurücksetzen von Passwörtern für ein E-Mail-Konto immer schwieriger, da Sie den Besitz des Kontos nicht durch eine E-Mail an den Eigentümer überprüfen können (ohne eine zweite Adresse zu haben), aber glücklicherweise gibt es heutzutage nicht viele Verwendungsmöglichkeiten für ein solches System.
Zurück zu den geheimen Fragen: Es besteht die Möglichkeit, dass der Benutzer seine eigenen Fragen erstellen kann. Das Problem ist, dass das Ergebnis furchtbar offensichtliche Fragen sein wird:
Welche Farbe hat der Himmel?
Fragen, die den Menschen Unbehagen bereiten, wenn zur Identifizierung eine Sicherheitsfrage verwendet wird Leute (zum Beispiel in einem Callcenter):
Mit wem habe ich an Weihnachten geschlafen?
Oder ehrlich gesagt dumme Fragen:
Wie schreibt man „Passwort“?
Wenn es um Sicherheitsfragen geht, müssen Benutzer vor sich selbst bewahrt werden! Mit anderen Worten: Die geheime Frage sollte von der Site selbst bestimmt oder noch besser gestellt werden Serie Sicherheitsfragen, aus denen der Benutzer auswählen kann. Und es ist nicht einfach, sich zu entscheiden ein; Idealerweise sollte der Benutzer zwei oder mehr Sicherheitsfragen auswählen zum Zeitpunkt der Kontoregistrierung, der dann als zweiter Identifikationskanal verwendet wird. Mehrere Fragen erhöhen das Vertrauen in den Verifizierungsprozess und bieten außerdem die Möglichkeit, Zufälligkeiten hinzuzufügen (nicht immer die gleiche Frage anzuzeigen) sowie eine gewisse Redundanz für den Fall, dass der tatsächliche Benutzer das Passwort vergessen hat.
Was ist eine gute Sicherheitsfrage? Dies wird durch mehrere Faktoren beeinflusst:
- Er muss sein knapp Die Frage sollte klar und eindeutig sein.
- Die Antwort muss sein spezifisch – Wir brauchen keine Frage, die eine Person unterschiedlich beantworten kann
- Mögliche Antworten sollten sein vielfältig Die Frage nach der Lieblingsfarbe einer Person liefert nur einen sehr kleinen Teil der möglichen Antworten.
- Suche Die Antwort muss komplex sein – wenn die Antwort leicht zu finden ist keine (denken Sie an Leute in hohen Positionen), dann ist er schlecht
- Die Antwort muss sein permanent rechtzeitig – wenn Sie jemanden nach dem Lieblingsfilm fragen, kann die Antwort ein Jahr später anders ausfallen
Zufälligerweise gibt es eine Website namens „gute Fragen“.
Lassen Sie mich zeigen, wie PayPal Sicherheitsfragen umsetzt und insbesondere den Aufwand, den die Website in die Authentifizierung investiert. Oben haben wir die Seite gesehen, um den Vorgang zu starten (mit einem CAPTCHA), und hier zeigen wir, was passiert, nachdem Sie Ihre E-Mail-Adresse eingegeben und das CAPTCHA gelöst haben:
Als Ergebnis erhält der Benutzer die folgende E-Mail:
Bisher ist alles ganz normal, aber Folgendes verbirgt sich hinter dieser Reset-URL:
Es kommen also geheime Fragen ins Spiel. Tatsächlich ermöglicht Ihnen PayPal auch, Ihr Passwort zurückzusetzen, 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 zu antworten beides geheime Frage (oder die Kartennummer nicht kennen). Selbst wenn jemand meine E-Mail-Adresse kapert, kann er das Passwort seines PayPal-Kontos nicht zurücksetzen, es sei denn, er kennt etwas mehr persönliche Informationen über mich. Welche Information? Folgende Möglichkeiten für Sicherheitsfragen bietet PayPal:
Die Frage nach Schule und Krankenhaus mag im Hinblick auf die einfache Suche etwas fraglich sein, aber die anderen sind nicht so schlecht. Um die Sicherheit zu erhöhen, verlangt PayPal jedoch eine zusätzliche Identifizierung Veränderungen Antworten auf Sicherheitsfragen:
PayPal ist ein eher utopisches Beispiel für einen sicheren Passwort-Reset: Es implementiert ein CAPTCHA, um das Risiko brutaler Gewalt zu verringern, erfordert zwei Sicherheitsfragen und erfordert dann noch eine völlig andere Identität, nur um die Antworten zu ändern – und zwar nach dem Benutzer hat sich bereits angemeldet. Natürlich ist das genau das, was wir tun erwartet wäre von PayPal; Es handelt sich um ein Finanzinstitut, das mit großen Geldbeträgen handelt. Das bedeutet nicht, dass bei jedem Passwort-Reset diese Schritte befolgt werden müssen – das ist in den meisten Fällen übertrieben – aber es ist ein gutes Beispiel für Fälle, in denen Sicherheit eine ernste Angelegenheit ist.
Der Vorteil des Sicherheitsfragensystems besteht darin, dass Sie es später hinzufügen können, wenn Sie es nicht sofort implementiert haben, wenn der Schutzgrad der Ressource dies erfordert. Ein gutes Beispiel hierfür ist Apple, das diesen Mechanismus erst kürzlich implementiert hat. [Artikel geschrieben im Jahr 2012]. Als ich mit der Aktualisierung der Anwendung auf meinem iPad begann, sah ich die folgende Aufforderung:
Dann sah ich einen Bildschirm, auf dem ich mehrere Paare von Sicherheitsfragen und -antworten sowie eine Rettungs-E-Mail-Adresse auswählen konnte:
Was PayPal betrifft, sind die Fragen vorab ausgewählt und einige davon sind tatsächlich ziemlich gut:
Jedes der drei Frage-/Antwortpaare stellt einen anderen Satz möglicher Fragen dar, sodass es viele Möglichkeiten gibt, ein Konto zu konfigurieren.
Ein weiterer Aspekt, der bei der Beantwortung der Sicherheitsfrage berücksichtigt werden muss, ist die Speicherung. Klarer Text in der Datenbank birgt fast die gleichen Gefahren wie im Fall eines Passworts, nämlich dass die Offenlegung der Datenbank sofort den Wert preisgibt und nicht nur die Anwendung, sondern möglicherweise völlig andere Anwendungen, die dieselben Sicherheitsfragen verwenden, gefährdet (das ist wieder einmal der Fall).
Ein letzter Aspekt von Sicherheitsfragen und -antworten besteht darin, dass sie anfälliger für Social Engineering sind. Der Versuch, das Passwort direkt für das Konto einer anderen Person zu extrahieren, ist eine Sache, aber ein Gespräch über seine Bildung (eine beliebte Sicherheitsfrage) zu beginnen, ist eine ganz andere. Tatsächlich kann man mit jemandem sehr gut über viele Aspekte seines Lebens sprechen, die eine geheime Frage aufwerfen könnten, ohne Verdacht zu erregen. Der eigentliche Sinn einer Sicherheitsfrage besteht natürlich darin, dass sie sich auf die Lebenserfahrung einer Person bezieht, also einprägsam ist, und darin liegt das Problem – Menschen lieben es, über ihre Lebenserfahrungen zu sprechen! Sie können dagegen nicht viel tun, es sei denn, Sie wählen die Optionen für Sicherheitsfragen aus kleiner wahrscheinlich durch Social Engineering herausgezogen werden.
[Fortsetzung folgt.]Über die Rechte der Werbung
VDSina bietet zuverlässig
Source: habr.com