Wenn Kennwörter gehasht gespeichert werden, woher weiß ein Computer, dass Ihr Kennwort dem letzten ähnlich ist, wenn Sie versuchen, Ihr Kennwort zurückzusetzen? Wären die beiden Passwörter nicht völlig unterschiedlich, da eines gehasht ist und nicht rückgängig gemacht werden kann?
11
Antworten:
Eine Möglichkeit, dies zu implementieren, besteht darin, dass Sie beim Zurücksetzen des Kennworts normalerweise auch aufgefordert werden, Ihr altes Kennwort einzugeben. In dieser Situation können Sie einfach einen regulären Vergleich der Zeichenfolgenähnlichkeit verwenden, da Sie zu diesem Zeitpunkt beide Kennwörter im Klartext haben.
Eine andere Möglichkeit, dies zu implementieren, besteht darin, das Kennwort zu normalisieren. Beispielsweise werden Zeichen mit Akzent auf die nächstgelegenen englischen Alphabete normalisiert, versucht, den Text phonetisch zu transkribieren, Zahlen zu entfernen usw. und mehrere Versionen der Hashes vorab zu berechnen, die aus dem Kennwort generiert werden war auf verschiedene Weise normalisiert worden. Beachten Sie, dass dies den Hashing-Mechanismus um einen nicht festgelegten Betrag schwächt. Ich würde dies nicht als bewährte Sicherheitsmethode betrachten.
quelle
Die einfache Antwort ist, dass ein sicheres System nicht weiß, ob sie ähnlich sind.
Einige Systeme reduzieren jedoch absichtlich die Sicherheit für ein bestimmtes Kennwort, um zu verhindern, dass neue Kennwörter alte oder ähnliche Kennwörter sind. Der Kosten-Nutzen-Kompromiss besteht darin, dass ein neues Passwort erstellt wird, bevor jemand das aktuelle Passwort trotz der Ähnlichkeitsinformationen böswillig knackt.
Im Allgemeinen verringert jede dieser Techniken die Sicherheit von Passwörtern.
Das Behalten alter Passwörter verringert die Sicherheit dieser Passwörter. Sollte eines dieser Passwörter geknackt werden, besteht eine hohe Wahrscheinlichkeit, dass das aktuelle Passwort ihnen ähnlich ist. Die meisten Leute ändern nur eine Nummer.
Daumennageln und Statistiken können fehlerhafte Passwort-Vermutungen schneller beseitigen als der Versuch, die Vermutungen zu hashen und zu vergleichen. Dies liegt daran, dass Hashes, insbesondere sichere Hashes, kompliziert zu berechnen und aufwändig sind, selbst wenn die Hardware beschleunigt wird. Während eine einfachere Berechnung, die "definitiv nicht" oder "vielleicht" sagt, die meisten dieser Vermutungen beseitigen kann, sollen die Ähnlichkeitsprüfungen Sie davon abhalten, ähnliche Passwörter zu verwenden, und nicht davon, ein völlig neues Passwort zu verwenden, das dem alten nicht ähnelt.
Kurz gesagt, seien Sie vorsichtig bei Websites, die auf ein Ähnlichkeitsmaß mit Ihrem aktuellen / alten Passwort hinweisen. Es sei denn, sie sagen, dass das neue Passwort das alte Passwort ist.
quelle
Sie generieren mehrere ähnliche Kennwörter aus dem vom Benutzer eingegebenen Kennwort und prüfen, ob einer der Hashes mit dem des alten Kennworts übereinstimmt.
quelle
Ein anderes Muster ist, dass Ihr System einige charakteristische Teilmengen Ihres Passworts hascht und diese Hashes speichert, um zu überprüfen, ob Teilmengen des neuen Passworts mit einem der alten übereinstimmen, dh: Passwort: "Admin2018" & Teilmenge: "Admin" = kann "Admin2019" nicht als eingeben ein neues.
quelle
Eine Möglichkeit besteht darin, die letzten fünf Hash-Passwörter in einer Tabelle wie "Passwortverlauf" zu speichern. Wenn der Benutzer versucht, ein neues Passwort festzulegen, muss es gehasht und mit den Hash-Passwörtern in der Tabelle verglichen werden.
quelle