Woher wissen Webseiten ob ein Passwort zu ähnlich zu dem vorherigen ist (Hash)?

9 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Moin.

Wenn Du auf einer Webseite ein Passwort ändern willst, muss Dein bisheriges nicht aus einer Datenbank gelesen werden.

Geben sie ihr altes Passwort ein:
Geben sie ihr neues Passwort ein:
Wiederholen sie ihr neues Passwort:

Da braucht es weder Datenbank noch Hashwerte. In dem Augenblick wo Du Dein Altes und Dein Neues in einer solchen Maske eingibst, liegen dem Server beide zum direkten Vergleich vor.

Die Eingaben werden nicht sofort gehasht (wenn denn überhaupt) und in die DB gelegt. Wäre ja auch Schwachsinn. Schließlich lässt sich aus einem Hash nicht mehr erkennen, ob das eingegebene Passwort bestimmte Mindestmerkmale wie Groß-/ Kleinschreibung, Zahlen oder Sonderzeichen erfüllt.

<

Woher ich das weiß:eigene Erfahrung

Das weiß man nicht. Ich kann mir zwar vorstellen, das die Passwörter tatsächlich als Hash abgelegt sind (mir würde gerade auch für den Fall ein sinnvoller Algorithmus zur Ähnlichkeitsprüfung einfallen), aber wenn kurzfristig von wem-auch-immer solche Anforderungen reinkommen, können schon mal alle möglichen haarsträubenden "Lösungen" zum Einsatz kommen.

Weil du, wenn du dein Passwort ändern möchtest, auf vielen Webseiten erst dein altes Passwort eingeben musst. Sie können also die Passwörter vergleichen.

Es gibt aber auch Webseiten, die speichern die Passwörter nicht verschlüsselt und auch nicht als hash. Es gibt da regelmäßig Skandal-Berichte, wenn mal wiedr die Daten von Millionen von Kunden/Nutzern geklaut wurden und dort Klartextpasswörter gespeichert wurden.

Letztes "großes" Beispiel war wohl in Deutschland der Chat Knuddels.de, wo alle Passwörter im Klartext gespeichert wurden. Mitte des Jahres wurde deren Datenbank veröffentlicht mit allen Nutzerdaten (samt Passwörtern). Die Datenbank belief sich wohl auf knapp 2.000.000 Datensätze, darunter dann Mail-Adressen, Passwörter usw.

Da fallen mir 2 Möglichkeiten ein:

  1. Die bereits erwähnte, bei der zur Passwortänderung das alte Passwort mit angegeben werden muss.
  2. Man könnte zusätzlich zum "Authentifizierungshash" auch noch einen "phonetischen Hash" speichern, der ausschließlich für die Ähnlichkeitsprüfung verwendet wird. Z.B. mit einer abgewandelten Version von Soundex (https://de.wikipedia.org/wiki/Soundex). Dieser ist zwar nicht gerade kollisionsresistent aber solange man ihn nicht zur Benutzerauthentifizierung verwendet ist das sogar von Vorteil.

P.S.: Methode Nummer 1 hat u.A. den "Nachteil", dass sie für eine "Passwort vergessen"-Funktion nicht anwendbar ist.

Man kann einen Hash-Algorithmus prinzipiell so gestalten, dass man das aus dem Hash herauslesen kann. Dann ist er aber unsicher (zumindest viel. viel, viel unsicherer).

Es funktioniert aber viel leichter:
Du gibst dein altes PW ein, es wird lokal abgespeichert und online per Hash abgeglichen und dann gibst du dein Neues ein, dass wird dann mit dem lokal gespeicherten verglichen. Und deswegen ist es auch nicht schwer herauszufinden, ob sie ähnlich sind.