Frage:
Speichert Facebook Klartext-Passwörter?
Michał Šrajer
2014-03-16 21:58:32 UTC
view on stackexchange narkive permalink

Ich wollte gerade mein Facebook-Passwort zurücksetzen und habe folgende Fehlermeldung erhalten:

Ihr neues Passwort ist Ihrem aktuellen Passwort zu ähnlich. Bitte versuchen Sie es mit einem anderen Passwort.

Ich habe angenommen, dass Facebook nur Passwort-Hashes speichert. Wenn ja, wie können sie die Ähnlichkeit von Passwörtern messen? Dies sollte mit einer guten Hashing-Funktion unmöglich sein, oder?

Die Frage ist - wie ist das möglich und was sind die Auswirkungen?

Vielen Dank im Voraus.

UPDATE

Ich habe es nicht klargestellt - ich wurde nicht gebeten, ein altes und ein neues Passwort anzugeben. Es war das Verfahren "Passwort zurücksetzen", bei dem ich nur ein neues Passwort gebe, sodass die meisten Antworten von vorgeschlagenen Duplikaten nicht zutreffen.

UPDATE2

Rätsel gelöst - siehe Kommentar (vom Facebook-Ingenieur)

Dies wurde unten beantwortet und von jemandem, der den Code gesehen hat, als korrekt bestätigt! Keine weiteren Spekulationen erforderlich.
Ich habe festgestellt, dass zahlreiche Websites Dinge sagen wie: "Sie haben dieses Passwort bereits zuvor verwendet." Einige Websites vergleichen also nicht nur die letzte. Ich nehme an, Sie könnten es als Sicherheitsmaßnahme bezeichnen, aber ich kann nicht anders, als das Gefühl zu haben, dass es unnötig ist.
Eine Art Duplikat: http://security.stackexchange.com/questions/47840/password-security (da Sie ein kürzlich eingegebenes Passwort ausgeschlossen haben, gelten die meisten Antworten dort nicht ganz perfekt, aber einige tun es immer noch. und einer von ihnen ist der obersten Antwort hier ziemlich nahe)
"Speichert Facebook Klartext-Passwörter?"[Ja] (https://krebsonsecurity.com/2019/03/facebook-stored-hundreds-of-millions-of-user-passwords-in-plain-text-for-years/).
Sechs antworten:
Michał Šrajer
2014-03-16 22:33:04 UTC
view on stackexchange narkive permalink

Hoffen wir, dass Facebook nur Hashes des aktuellen Passworts (und möglicherweise früherer Passwörter) speichert.

Folgendes können sie tun:

  1. Benutzer setzt das erste Passwort auf "first" und fb speichert den Hash ("first").

  2. später setzt der Benutzer das Passwort zurück und wird aufgefordert, das neue Passwort "First2" p anzugeben >

  3. Facebook kann eine Reihe von Passwörtern generieren (ähnlich dem neuen): ["First2", "fIrst2", "firSt2", ... "first2", ... "first ", ...] und dann den Hash von jedem mit dem gespeicherten Hash vergleichen.

  4. ol>

    Dies ist die einzige Lösung, die mir in den Sinn kommt. Irgendwelche anderen?

Diese Antwort ist, wie Facebook es macht. Quelle: Ich habe den Quellcode für die Passwortprüfung gelesen und geändert.
[Warum stört Facebook?] (Http://security.stackexchange.com/questions/53658/why-does-facebook-bother-comparing-old-and-new-passwords)
Wenn sie gehasht werden, müssen sie (mindestens) zwei Hashes speichern, da sie sowohl Passwörter als auch das Passwort mit umgedrehter Groß- und Kleinschreibung akzeptieren. (KaCkE vs. kAcKe)
Ich dachte, ein guter Hash sollte es schaffen, damit man nichts aus dem Hash herausschimmern kann (wenn man ein Bit ändert, ändert sich der Hash vollständig)?
@TruthOf42 Es führt eine Art Brute-Force-Angriff basierend auf dem neuen Passwort durch, ohne Hashes umzukehren oder Hashes zu vergleichen, außer um ihre genaue Gleichheit zu testen.
@Anonymouse Ich habe es gerade noch einmal gelesen: Es erstellt eine Liste von Passwörtern, die dem Passwort ähnlich sind, hasht sie und behält diese resultierende Liste bei. Wenn Sie dann ein neues Passwort erstellen und der Hash einem der vorherigen entspricht, heißt es, dass er zu ähnlich ist
@TruthOf42 Eigentlich scheint es umgekehrt zu sein - die Hashes ähnlicher Passwörter werden nicht gespeichert. Sie kümmern sich nur dann um die Ähnlichkeit von Passwörtern, wenn Sie ein neues Passwort erstellen. Sie haben also Hash-Variationen Ihres neuen Passworts, vergleichen sie mit Ihrem alten Hash und werfen sie dann weg, wenn sie nicht übereinstimmen (wenn sie übereinstimmen) sie warnen dich).
@TruthOf42 was cpast sagt. Das macht auch in Bezug auf den Speicherplatz viel mehr Sinn, stimmst du nicht zu?
@Anonymouse absolut, ganz zu schweigen von der Tatsache, dass das Speichern von Hashes mit ähnlichen Passwörtern zu Problemen führen kann, wenn festgestellt wird, dass der Hashing-Algorithmus einen Fehler aufweist
@JeffFerland: Jeff, könnten Sie uns mitteilen, wie viele ähnliche Passwörter Sie ungefähr erraten und hashen möchten? 10? 100? 1000? Ich bin nur Neugierig.
@MichałŠrajer Derzeit testet Facebook die vollständig invertierte Groß- und Kleinschreibung beim Anmelden. Facebook testet die Umkehrung der Groß- und Kleinschreibung bei der Änderung des Passworts.
Müssen Sie Ihr aktuelles Passwort nicht eingeben, um zu einem neuen Passwort zu wechseln? Sie konnten nur vergleichen, bevor sie die Hash-Summe machten
@JonasDralle Das wäre in den meisten Fällen ausreichend, aber diese Methode kann hilfreich sein, wenn Sie herausfinden möchten, ob ein neues Kennwort einem historisch verwendeten Kennwort ähnelt.Ich bin mir jedoch nicht sicher, ob Facebook dies tut.
@XtraSimplicity tun sie wahrscheinlich nicht.
Ich habe gerade bemerkt, dass Outlook dieselbe Nachricht bereitstellt, und es war überraschend, dass mein Kennwort geändert wurde, indem das erste Wort vollständig geändert wurde - nicht nur die Umkehrung der Groß- und Kleinschreibung oder die Abweichung von Zahlen und Symbolen -, sondern der Rest gleich blieb.Ex.FluffyDoggy zu RambunctiousDoggy.Ich vermute, sie müssen auch für diese Art von Szenario verantwortlich sein.
Bedeutet das, dass Facebook für jedes Passwort das gleiche Salz verwendet?
@sluge Nein, es bedeutet, dass sie die Hashes von "First2", "first2", "firSt2", ... "first2", ... "first", ... mit demselben Salz wie der alte gespeicherte Hash generieren.Wenn einer von ihnen übereinstimmt, geben sie einen Fehler aus.Wenn keiner von ihnen übereinstimmt, werfen sie sie alle weg und hashen das neue Passwort mit einem neuen Salz.
TildalWave
2014-03-17 01:51:16 UTC
view on stackexchange narkive permalink

Ich würde nicht wissen, ob sie dies tun (verwenden Sie nicht einmal Facebook), aber es ist auch möglich, dass sie Hardware Security Modules (HSM) für ihre Kryptoverarbeitung verwenden, in der keine Hash-Passwörter gespeichert sind aber nur verschlüsseln sie reversibel. Angesichts der Menge an Autorisierungsanfragen, mit denen sie sich befassen müssen, wäre dies durchaus sinnvoll, da es um Größenordnungen schneller ist als sicheres (sprich: langsames) Passwort-Hashing und dennoch eine sichere Passwortspeicherung bietet.

HSMs könnten dann so programmiert werden, dass sie gespeicherte und neue Passwörter als Eingabe einer ihrer Funktionen vergleichen und lediglich das Ergebnis davon zurückgeben (in unserem Fall sogar ein boolescher Wert), wobei das ursprüngliche Passwort niemals übertragen wird oder überall im Klartext gespeichert, außer im internen Speicher (der manipulationssicher ist). Dies wird normalerweise als Onboard Secure Key und Anwendungsspeicherung / -verarbeitung bezeichnet.

Übrigens verwenden viele Banken HSMs, da für eine ordnungsgemäße Implementierung auch physische Sicherheit erforderlich ist Geräte selbst und die Art und Weise, wie auf sie zugegriffen wird (außerdem sind sie ziemlich kostspielig), aber dies bietet offensichtlich viel mehr Flexibilität bei der sicheren Verarbeitung von Passwörtern, ohne dass diese jemals offengelegt werden.

Ich bezweifle das. HSMs bieten eine sichere und schnelle Kryptoverarbeitung, jedoch keine großen Speicherkapazitäten. Mir ist kein HSM bekannt, der die Passwörter aller Facebook-Nutzer speichern könnte.
@user1039462 Schon mal was von manipulationssicherem sicherem Speicher gehört? Wenn es für DoD in Ordnung ist, warum nicht für Facebook? Und ja, Sie können über ausreichend Speicherkapazität verfügen, wenn Sie bereit sind, dafür zu bezahlen. Nicht alle HSMs werden in Form von USB-Sticks geliefert. ;)
Ich betreibe selbst einige PCI-basierte HSMs, aber alle haben eine Speicherkapazität von einigen hundert Schlüsseln. Könnten Sie mich auf ein Beispiel mit großem Speicher verweisen? Ich bin neugierig.
Wie viele Schlüssel benötigen Sie? Sie können ein [an das Netzwerk angeschlossenes HSM] (https://encrypted.google.com/search?q=Network-Attached+HSM) und externe verschlüsselte und manipulationssichere Volumes verwenden. Soweit ich weiß, haben sie möglicherweise ihre eigenen HSM-Geräte mit großen internen Volumes erstellt. Beispiel? Keine Ahnung, von Luna SA zu AWS CloudHSM?
user11869
2014-03-16 22:50:08 UTC
view on stackexchange narkive permalink

Darauf gibt es nur eine richtige Antwort. Niemand weiß (außer Facebook).

Facebook könnte Ihr Facebook-Passwort im Klartext speichern, aber es könnte auch ein Schema geben, das Fuzzy-Hashes oder vorberechnete Hashes ähnlicher Passwörter verwendet.

Es gibt wirklich keine Möglichkeit zu wissen, es sei denn, wir würden in Facebook einbrechen und alle ihre Vermögenswerte prüfen.

wenn du es wirklich schaffst in Facebook einzubrechen ... sei nett und spule zurück;)
Nutzlose Antwort. Natürlich suchen wir nach Möglichkeiten, wie Facebook (und vor allem unsere Websites) dies tun kann, während es dennoch sicher ist.
Diese Antwort ist nicht wirklich richtig, da, wenn FB * Klartext-Passwörter * speichert, es Beweise dafür geben könnte, dass sie dies tun (z. B. in Form von etwas Möglichem, das nicht möglich wäre, wenn sie keinen Klartext speichern würden). Ich habe die Frage von OP als eine Frage dazu gelesen. Insbesondere * beweist das beobachtete Verhalten, dass Klartextkennwörter gespeichert werden? *
Bitte beachten Sie, dass ein ehemaliger Facebook-Ingenieur (und aktueller Diamant) [bestätigt] (https://security.stackexchange.com/questions/53481/does-facebook-store-plain-text-passwords#comment84577_53483), dass die akzeptierte Antwort tatsächlich istWie Facebook das macht, ist also wirklich nicht richtig.Außerdem fragte das OP nicht wirklich, wie sie es tatsächlich tun - sie fragten nur, wie Facebook dies tun könnte.
Ammusionist
2014-03-17 05:35:48 UTC
view on stackexchange narkive permalink

Eine andere Möglichkeit ist, dass Facebook einen Hash Ihres Passworts und einen Hash des SOUNDEX Ihres Passworts speichert. Wenn Sie dann Ihr neues Passwort eingeben, kann es den Hash seines SOUNDEX mit zuvor gespeicherten vergleichen und darauf antworten, dass ein Passwort zu ähnlich ist.

Dies ist natürlich eine reine Vermutung.

Willkommen im Club, aber ich hoffe, dass sie es nicht so machen. Es wäre zu einfach, es mit Passwortwörterbüchern abzugleichen und es auf ein paar mögliche Auswahlmöglichkeiten für die meisten Konten zu beschränken, wenn ihre Datenbank verletzt würde. Angenommen, er kann es offenlegen, sollten wir wirklich versuchen, [@JeffFerland] (http://security.stackexchange.com/users/836/jeff-ferland) zur Beantwortung zu rufen. Ein Mod hier und ein Produktionsingenieur bei Facebook, das sollte es tun. :) :)
Plausibel, da das Passwort den Soundex durchlaufen und anschließend die Soundex-Variable verschlüsseln kann, um sie mit der vorherigen verschlüsselten Soundex-Version zu vergleichen.
mohrphium
2014-03-17 00:12:30 UTC
view on stackexchange narkive permalink

Eine andere Möglichkeit ist, dass fb nicht hasht, sondern Passwörter mit ihrem Hauptschlüssel verschlüsselt. Dann könnten sie es jederzeit entschlüsseln, um es mit Ihrem neuen zu vergleichen.

  1. Hoffen wir nicht - sie sollten es haschen!
  2. Wie Rell3oT betonte, weiß niemand außer fb Bescheid . Wir können also nur wilde Vermutungen in den Ring werfen.
  3. ol>
im angenommenen Fall "Facebook verwendet Hauptschlüssel" wäre es vernünftig anzunehmen, dass asymmetrisch verwendet wird, andernfalls müsste das System den "Hauptschlüssel" immer im Speicher haben und ein Einbruch in den Server würde bedeuten, auch den "Hauptschlüssel" zu kennen. im Speicher verfügbar, wodurch das verschlüsselte Material eher im Klartext angezeigt wird
Aus Sicherheitsgründen entspricht dies dem Speichern von Klartextkennwörtern.
Wird immer noch oft verwendet - auch ich gehe davon aus, dass Facebook (hoffentlich) einige qualifizierte Sicherheitsexperten hat, die sich mit diesem Zeug auskennen.
Royce Williams
2016-12-27 09:31:54 UTC
view on stackexchange narkive permalink

Geben Sie ein wenig mehr Details zur Kennwortspeichermethode selbst an.

Die früheren historischen Antworten gehen auf eine Bestätigung von Facebook zurück. Aber bei Passwords 14 hielt Alec Muffett einen Vortrag, in dem er die Speicherung von Passwörtern bei Facebook ausführlich beschrieb.

In seinem Vortrag bestätigt er, dass Facebook nicht ist Speichern von Passwörtern im Klartext, verwendet jedoch eine mehrstufige Methode, die gegen eine Vielzahl von Angriffen ziemlich resistent ist:

slide from Alec Muffett talk, showing Facebook's password storage method

... wie folgt:

  $ cur = 'Klartext' # MD5 der Klartext. $ cur = md5 ($ cur) # Hash SHA1 mit einem 160-Bit-Salz. $ salt = randbytes (20) $ cur = hmac_sha1 ($ cur, $ salt) # Hash SHA256 mit einem geheimen Salt unter Verwendung eines intern abstrahierten Kryptodienstes. $ cur = cryptoservice :: hmac ($ cur) [= hmac_sha256 ($ cur, $ secret) )] # Führen Sie das Ergebnis durch die KDF-Verschlüsselung (unter Verwendung nicht genannter Abstimmungsparameter). $ Cur = scrypt ($ cur, $ salt) # Verwenden Sie SHA256 (um das große Verschlüsselungsergebnis zu reduzieren und zu normalisieren) $ cur = hmac_sha256 ($ cur, $ salt) )  

Dieses Maß an Widerstand sollte nicht überraschen, da Muffett der Autor von crack ist, einem der ersten effizienten Tools zum Knacken von Passwörtern.

Wir haben jetzt die Bestätigung, dass Facebook Passwörter nicht im Klartext speichert.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...