Was ist Passwort-Hashing?

Passwörter werden grundsätzlich nicht im Klartext gespeichert. Dies soll verhindern, dass im Falle einer Systemkompromittierung alle auf dem System verwalteten Passwörter eingesehen werden können. Passwörter werden gehasht und nur der Hashwert wird gespeichert.

Beim Passwort-Hashing wird das Passwort in eine Zeichenfolge umgewandelt. Der Hashwert kann nicht in den ursprünglichen Text zurückverwandelt werden

Passwort Hashing
Funktionsweise eines Hashes. Rin Angreifer, der unberechtigten Zugriff auf die gespeicherten Hashwerte hat, kann die ursprünglichen Passwörter nicht ermitteln.

Wie genau funktioniert Passwort-Hashing?

Wenn sich ein Benutzer auf einer Webseite anmeldet, die Passwort-Hashing verwendet, geschieht Folgendes

  1. Der Benutzer wählt ein Passwort und gibt es bei der Registrierung ein.
  2. Bei der Neuerstellung des Passworts wird daraus ein Hash-Wert erzeugt, z. B. nach dem Hash-Algorithmus SHA-1, d. h., das Passwort wird auf eine spezielle Art und Weise verschlüsselt, so dass es aus dem Hash-Wert nicht mehr rekonstruiert werden kann. Hash-Algorithmen sind Einweg-Algorithmen. Das Passwort IbiWgugiMaG hat den Hashwert: 34 27 CD E8 EC F9 45 61 98 89 F7 DA 95 CO B9 B1.
  3. Der Hash-Wert wird in einer Datenbank zusammen mit anderen Benutzerinformationen wie dem Benutzernamen gespeichert.
  4. Will sich der Benutzer anmelden, gibt er seinen Benutzernamen und sein Passwort ein.
  5. Das eingegebene Passwort wird erneut durch den Hash-Algorithmus geleitet und der so erzeugte Hash-Wert wird mit dem in der Datenbank hinterlegten Hash-Wert verglichen.
  6. Stimmen beide Werte überein, wird der Zugang gewährt, andernfalls wird der Benutzer abgewiesen und aufgefordert, es erneut zu versuchen.

Eigenschaften einer guten Hash-Funktion

Eine gute Hashfunktion hat einige Eigenschaften, die sie sicher und zuverlässig machen:

  • Geschwindigkeit: Eine gute Hash-Funktion ist schnell, damit sie in Echtzeitanwendungen eingesetzt werden zu können..
  • Kollisionsresistenz: Eine gute Hash-Funktion weist möglichst wenige Kollisionen auf, so dass unterschiedliche Eingaben möglichst unterschiedliche Hashwerte erzeugen.
  • Einwegfunktion: Es muss unmöglich sein, aus dem Hashwert das ursprüngliche Passwort zu errechnen.

Es gibt viele sichere Passwort-Hashing-Algorithmen, die verwendet werden können. Einige bekannte Beispiele sind: bcrypt, PBKDF2, scrypt und Argon2.

Gesalzene und gepfefferte Passwörter

Gesalzene Passwörter sind Passwörter, die vor dem Hashing mit einem Zufallswert, dem sogenannten „Salt“, versehen werden. Dadurch unterscheiden sich die Hashwerte von Passwörtern, die den gleichen Text enthalten. Ohne Salt sind alle Passwörter, die den gleichen Text enthalten, gleich und können mit Hilfe von Rainbow-Tables oder anderen Methoden entschlüsselt werden.

Gesalzene Passwörter
Sicheres Passwort-Hashing mit Salts.

Gepfefferte Passwörter sind eine Erweiterung der gesalzenen Passwörter. Sie fügen dem Salt-Wert einen weiteren Wert hinzu, der als „Pepper“ bezeichnet wird. Der Pepper-Wert wird nicht gespeichert, sondern in der Anwendung selbst verwaltet.

Gesalzene und gepfefferte Passwörter sind wirksame Methoden zum Schutz von Passwörtern, insbesondere wenn sie in Verbindung mit einem sicheren Hash-Algorithmus verwendet werden. Sie erschweren es Angreifern erheblich, Passwörter zu entschlüsseln.

Sicherheit von Passwort-Hashing

Passwort-Hashing ist eine gute Methode, um Passwörter sicher zu speichern, aber nicht hundertprozentig sicher. Mit Hilfe von Rainbow-Tables, Brute-Force-Angriffen oder Side-Channel-Angriffen können Angreifer an die Hashwerte von Passwörtern gelangen:

Rainbow-Tables

Rainbow-Tables sind vorgefertigte Tabellen, die alle möglichen Hash-Werte für eine Reihe von Passwörtern enthalten. Wenn ein Angreifer in den Besitz der Hash-Werte von Passwörtern gelangt, kann er diese mit Hilfe von Rainbow-Tables zurückverfolgen.

Brute-Force-Angriffe

Bei einem Brute-Force-Angriff werden alle möglichen Zeichenkombinationen durchprobiert, gehasht und dann auf Übereinstimmung mit dem hinterlegten Hash-Wert geprüft. Wenn die Passwörter nicht stark genug sind, können Brute-Force-Angriffe erfolgreich sein.

Side-Channel-Angriffe

Side-Channel-Angriffe sind Angriffe, bei denen ein Angreifer versucht, Informationen aus dem System zu extrahieren, indem er die Hardware oder Software des Systems überwacht. Dies kann zur Aufdeckung von Passwort-Hash-Werten führen.

Fazit / Zusammenfassung

Passwort-Hashing ist eine wichtige Maßnahme, um Passwörter sicher zu speichern. Der Hash-Algorithmus ist eine einseitige Funktion, d.h. es ist nicht möglich, das ursprüngliche Passwort aus dem Hash-Wert zurückzurechnen.

Zusätzlich besteht die Möglichkeit, Passwörter zu salzen. Dadurch ist es selbst bei einem erfolgreichen Angriff auf die Passwort-Hashes nicht so einfach, die ursprünglichen Passwörter zu ermitteln.

Mit Brute-Force-, Dictionary- und Side-Channel-Attacken lassen sich Passwort-Hashes angreifen. Um den Passwortdiebstahl zu erschweren, wählt man ein sehr langes Passwort.

Felix Bauer
Felix Bauer ist IT-Security Consultant (IT-Sicherheitsberater) mit 20 Jahren Erfahrung in der IT-Sicherheitsbranche. Felix Bauer begann im Alter von 14 Jahren mit der Analyse von Malwaresamples.

Zusätzlich zur Tätigkeit als Sicherheitsberater schreibt Felix Bauer häufig Fachbeiträge zu den Themen IT-Sicherheit und Internet-Technik. Seine Themenschwerpunkte: Antivirus, Sicherheitslücken und Malware. Unter anderem schrieb Felix Bauer bereits Fachbeiträge für die IT-Fachzeitschriften Computerwelt, Heise und IT-Administrator. Felix Bauer wurde in zahlreichen Fach- und News-Beiträgen erwähnt (u. a. in der Wiener Zeitung und in der Computerworld). Einige Referenzen finden Sie auf Felix Bauers Internetseite.

Felix Bauer besitzt den Abschluss Master of Science in Security and Forensic Computing.

Felix Bauer ist Mitbegründer der Initiative bleib-Virenfrei.