it-swarm-eu.dev

Wie fragen einige Websites (z. B. Online-Banken) nur nach bestimmten Zeichen aus einem Passwort, ohne es als Klartext zu speichern?

Ich dachte Wie kann ein System eine Mindestanzahl geänderter Zeichen erzwingen ... würde meine Frage beantworten, aber es scheint, dass dies ein anderer Fall ist.

Wenn ich mich bei meinem Online-Banking-Konto anmelde, werde ich aufgefordert, drei zufällige Ziffern aus einer vierstelligen PIN und drei zufällige Zeichen aus meinem (langen, zufälligen) Passwort einzugeben.

Nach meinem begrenzten Verständnis kann die Bank aus diesem Login keinen Passwort-Hash erstellen, da sie nicht mein gesamtes Passwort hat. Speichern sie mein Passwort im Klartext und vergleichen einzelne Zeichen? Ist es ein angemessenes Gleichgewicht zwischen Komfort und Sicherheit?

Ich wurde von diesem Blog-Beitrag aufgefordert, diese Frage zu stellen: Wen interessiert die Passwortsicherheit? NatWest nicht

66
alexmuller

Obwohl ich nicht explizit weiß, wie Banken mit dieser Anforderung umgehen, besteht ein alternativer Prozess zu dem von @rakhi erwähnten darin, eine HSM und reversible Verschlüsselung zu verwenden.

Die Idee ist, dass das vollständige Passwort in der Datenbank gespeichert wird, die mit einer symmetrischen Verschlüsselung (z. B. AES) verschlüsselt ist. Wenn die Kennwortzeichen an die Anwendung übergeben werden, werden sie zusammen mit dem verschlüsselten Kennwort in den HSM eingegeben.

Der HSM könnte dann das Kennwort entschlüsseln und bestätigen, dass die 3 Zeichen wie erwartet sind, und eine Pass/Fail-Antwort an die Anwendung zurückgeben. Das Passwort wird also zu keinem Zeitpunkt im Klartext gehalten (außer im HSM, das als sicher gilt).

Dies würde mit der Art und Weise zusammenhängen, wie PIN Verschlüsselung von ATM-Netzwerken (z. B. symmetrische Verschlüsselung und HSMs) verarbeitet werden kann).

30
Rory McCune

Jedes Mal, wenn Sie auf einen Fall stoßen, in dem Sie etwas anderes über Ihr Passwort als den Hash des vollständigen Passworts wissen müssen, können Sie davon ausgehen, dass das Passwort nicht gehasht ist. Obwohl PCI-DSS erwähnt wurde, gibt es keine mir bekannte Regelung, die für Banken gilt, die Kennwortinformationen verschlüsseln oder hashen. PCI-DSS deckt Ihre Bankkontoinformationen nicht ab, einschließlich der Anmeldung mit Ihrer PIN oder einer Variation davon).

Wenn sie gut sind, wird das Passwort verschlüsselt gespeichert. Wenn sie nicht so gut sind, könnte es tatsächlich im Klartext gespeichert werden.

Ich gebe zu, ich mag den Kompromiss hier eher. Die gesamte Passwortdatenbank ist möglicherweise einem höheren Angriffsrisiko ausgesetzt, wenn sie kompromittiert wird, aber ich würde dem entgegenwirken, dass die Sicherheit bei Banken am oberen Ende liegen sollte. Wenn ein Kompromiss der Datenbank vermutet würde, müsste ohnehin alles geändert werden, ob gehasht oder verschlüsselt. In beiden Fällen Bei dieser speziellen Methode dauert es viel länger und komplexer, bis ein Angreifer genügend nützliche Informationen erhält, um einen Angriff mit einem Keylogger durchzuführen.

Etwas Tangentiales: http://projecteuler.net/index.php?section=problems&id=79

17
Jeff Ferland

Das Schema von NatWest scheint mir von zweifelhaftem Wert zu sein. In NatWests Schema kann ein Phishing-Angriff wahrscheinlich Ihr gesamtes PIN und Ihr gesamtes oder den größten Teil Ihres Passworts stehlen. So würde der Phishing-Angriff funktionieren.

  1. Die Phishing-Site zeigt einen gefälschten Anmeldebildschirm an, in dem 3 Ziffern des PIN und 3 Zeichen des Passworts) abgefragt werden.

  2. Der Benutzer würde seine Antwort eingeben.

  3. Die Phishing-Site würde nun eine Antwort anzeigen, die angibt, dass der Eintrag falsch war, und den Benutzer erneut auffordern.

  4. Viele Benutzer würden wahrscheinlich annehmen, dass sie etwas falsch eingegeben haben, und es erneut versuchen.

Wenn der Phisher klug ist, werden Sie in der zweiten Eingabeaufforderung von der Phishing-Site nach anderen Ziffern und Zeichen gefragt. Wenn der Benutzer es ein zweites Mal versucht, kann die Phishing-Site alle 4 Ziffern des PIN und 6 Zeichen des Benutzerpassworts) lernen. (Beachten Sie, dass Benutzer bei NatWest ein Passwort mit 6- auswählen müssen. 8 Zeichen, also 6 Zeichen des Passworts sind garantiert alle oder fast alle.) Zu diesem Zeitpunkt ist das Spiel vorbei.

Folglich ist mir nicht klar, dass NatWests Schema Ihnen etwas kauft.

13
D.W.

In einem ähnliche Frage hat ein Kommentar von @captaincomic auf diesen Artikel verlinkt: Teilkennwörter - Wie? (Von Archive.org) Es wird erklärt, wie diese Funktionalität zugelassen wird ohne das Passwort in einer wiederherstellbaren Form zu speichern oder jedes Zeichen separat zu hashen - unter Verwendung des geheimen Shamir-Sharing-Schemas.

Es ist nur tangential verwandt, aber David Aspinall (Universität von Edinburgh) und Mike Just (Glasgow Caledonian University) haben 2013 einen Artikel über Teilkennwörter veröffentlicht: "Give Me Letters 2, 3 und 6!": Partial Password Implementations & Angriffe .

Ihr Artikel befasst sich mit Online-Angriffen, für die der Backend-Speichermechanismus irrelevant ist, macht jedoch eine vorübergehende Bemerkung, die für Ihre Frage von Belang ist:

Um das Teilprotokoll zu unterstützen, muss die Implementierung entweder Klartext für das Kennwort speichern oder einen Mechanismus zur Durchführung von Einwegprüfungen für alle Kombinationen entwickeln, die möglicherweise abgefragt werden (was bei langen Kennwörtern eine große Anzahl sein kann). Wir untersuchen diesen Angriffsmodus hier nicht.

6
sampablokuper

Nein, was sie tun, ist, jedes Zeichen zu haschen und dieses zu speichern oder das Passwort in hoffentlich einem sicheren Gerät, z. HSM.

Es ist kein schlechter Ansatz; Die Bank fordert den Benutzer auf, eine Anzahl von Zeichen einzugeben (z. B. ist HSBC 3 von zufälligen Positionen). Dies bedeutet, dass ein Trojaner, ein Key Logger oder eine Phishing-Site, die diese 3 Zeichen erfasst haben, nicht über das vollständige Kennwort verfügen.

Außerdem kann die Bank das Teilkennwort zur Authentifizierung von Benutzern über das Telefon usw. verwenden, ohne sich auf geheime Fragen oder ein anderes Kennwort verlassen zu müssen, ohne dass die Callcenter-Person das vollständige Kennwort kennt

Ein paar Probleme, weshalb es wahrscheinlich nicht weiter verbreitet ist:

  • Das wichtigste ist, dass Sie das Passwort nicht im Klartext speichern möchten (tatsächlich verbieten Vorschriften wie PCI-DSS es). Der Ansatz besteht also darin, einen Einweg-Hash des Passworts zu erstellen und diesen zu speichern. Wenn der Benutzer das Kennwort eingibt, wird dieses gehasht und mit dem gespeicherten Hash verglichen, wenn sie übereinstimmen, wird der Benutzer authentifiziert. Bei einem Teilkennwort müssen Sie entweder das Kennwort mit reversibler Verschlüsselung speichern, was nicht die beste Vorgehensweise ist, oder eine große Anzahl von Hashes speichern, z. Für HSBC mit einem Geburtstag und jedem Zeichen des Passworts ist ein separater Hash erforderlich. Sie müssen auch eine maximale Kennwortlänge festlegen, damit Sie die Felder in der Datenbank zuweisen können, um alle Hashes zu speichern (obwohl es jetzt wahrscheinlich intelligentere Datenbank- und Anwendungstechnologien gibt, die dies umgehen würden).

  • Es ermutigt Benutzer, schwache Passwörter auszuwählen, z. Wenn ich ein komplexes Passwort mit 8 Zeichen habe: tpEz% e2S. Der Versuch, sich daran zu erinnern, was das 2., 4. und 5. Zeichen davon ist, ist schwierig, was Benutzer dazu ermutigt, ein einfaches Wörterbuchwort auszuwählen.

  • Auch wenn es keine Funktionen für die Kontosperrung gibt, ist es exponentiell einfacher, 3 Zeichen als 8 Zeichen zu erraten oder zu erzwingen.

  • Das Vertrauen, dass das vollständige Passwort nicht bekannt ist, könnte falsch platziert werden, z. Wenn das Passwort Fulham ist und Sie F, l, h kennen, können Sie möglicherweise das vollständige Passwort anständig erraten

  • Eine Phishing-Site, die einfach nach dem 1., 3., 5. gefragt und dann das Passwort falsch angegeben und geändert hat, um nach dem 2., 4., 6. zu fragen, könnte auch das vollständige Passwort erhalten, da der Benutzer es wahrscheinlich eingeben würde, bevor er zweimal darüber nachgedacht hat

  • Aus Sicht der Benutzer bedeutet dies, dass sie die Browser nicht verwenden können, um sich ein Passwort oder einen Passwort-Manager wie Lastpass oder 1Password zu merken

Die meisten Banken verlassen sich nicht mehr auf einen Benutzernamen und ein Passwort, z. HSBC bietet ein RSA-Token für Geschäftskunden an. Barclays verfügt über einen EMV-Smartcard-Leser. Fast alle verwenden Erkennungstechnologien wie die adaptive RSA-Authentifizierung, um eine Basis für Browser, Standort, Nutzungsprofil, Geschwindigkeit usw. für die passive Authentifizierung und die Erkennung nicht autorisierter Verwendung zu erstellen.

2
Rakkhi