Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Warum Passwörter als Hash gespeichert werden

Nach dieser Lektion: Ich kann erklären, warum ein Passwort als Hash gespeichert wird.

Lektion, 45 Min.5 BefehleLab zur Rechteausweitung unter Linux: eine setuid-Binärdatei, eine sudo-Regel und ein Cron-Job zum Knacken

Dein Passwort steht nicht in der Datenbank

Ein Hash ist ein Fingerabdruck aus Zeichen, den eine Rechenvorschrift aus einem Text macht. Gute Seiten speichern von deinem Passwort nur diesen Hash.

So bleibt dein Passwort geheim, auch wenn jemand die Datenbank stiehlt. Eine Regel gilt hier und immer: Du probierst nur an deiner eigenen Lab-Kopie und nie fremde Passwörter oder Konten aus.

Am Ende dieser Lektion

Notiz

Ich kann erklären, warum ein Passwort als Hash gespeichert wird.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Hashein kurzer Fingerabdruck, den man nicht zurückrechnen kann
Hash-Funktiondie Rechenvorschrift, die den Hash bildetSHA-256
Salzein zufälliger Zusatz, der vor dem Hashen angehängt wird
Brute Forcealle Möglichkeiten der Reihe nach ausprobieren
Wörterbuchangriffnur bekannte Wörter und häufige Passwörter probieren
Klartextein Text, den jeder direkt lesen kann

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Warum nicht das Passwort selbst speichern?

Stell dir vor, eine Seite speichert alle Passwörter im Klartext. Wird die Datenbank gestohlen, kennt der Dieb sofort jedes Passwort. Viele Menschen benutzen dasselbe Passwort auf mehreren Seiten, also ist dann auch dein Mailkonto in Gefahr.

Darum speichert die Seite nur einen Hash. Beim Anmelden hasht sie dein getipptes Passwort und vergleicht die beiden Hashes.

Was ist ein Hash und was kann er?

Eine Hash-Funktion macht aus jedem Text eine Zeichenfolge fester Länge. Derselbe Text ergibt immer denselben Hash. Ändert sich nur ein Zeichen, sieht der Hash völlig anders aus.

Und man kann ihn nicht zurückrechnen. Das ist der Unterschied zur Verschlüsselung: Verschlüsseln kann man umkehren, hashen nicht.

Die eine Regel

Warnung

Drück oben auf Lab starten und warte, bis die Maschine läuft. Alles hier geschieht in deiner eigenen privaten Kopie. Du hashst nur Wörter, die du selbst tippst. Fremde Konten oder Passwörter gehen dich nichts an.

Das Wort hallo hashen

Befehl
printf 'hallo' | sha256sum

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Nur ein Buchstabe groß: Hallo

Befehl
printf 'Hallo' | sha256sum

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine Ziffer dazu: hallo1

Befehl
printf 'hallo1' | sha256sum

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Beispiel: drei Texte, drei ganz andere Hashes

TextDer Anfang des Hashs (SHA-256)
hallod3751d33f9cd5049
Hallo753692ec36adb4c7
hallo1f80acd7c28c2369a

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Wie knackt man dann einen Hash?

Man rechnet ihn nicht zurück, man rät. Ein Programm hasht sehr viele Texte und vergleicht jeden mit dem gestohlenen Hash. Passt einer, ist das Passwort gefunden.

Bei Brute Force probiert es alle Möglichkeiten. Beim Wörterbuchangriff nur bekannte Wörter und häufige Passwörter. Darum sind lange, ungewöhnliche Passwörter besser.

Wie viele Möglichkeiten gibt es?

PasswortZeichenAnzahl der Möglichkeiten
4 Ziffern (PIN)1010.000
6 kleine Buchstaben26308.915.776
8 kleine Buchstaben26208.827.064.576
8 Buchstaben und Ziffern, groß und klein62218.340.105.584.896

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele denken, ein Hash sei eine Verschlüsselung mit versteckter Hintertür. Das stimmt nicht. Verschlüsseln kann man mit einem Schlüssel umkehren, hashen nie. Man prüft ein Passwort nur, indem man es neu hasht und die Hashes vergleicht.

Was macht Salz im Hash?

Zwei Menschen mit demselben Passwort hätten denselben Hash. Ein Angreifer könnte dann fertige Tabellen mit Hashes beliebter Passwörter nutzen.

Darum hängt die Seite vor dem Hashen ein zufälliges Salz an, für jedes Konto ein eigenes. Sie speichert das Salz offen neben dem Hash. Dasselbe Passwort ergibt jetzt für jede Person einen anderen Hash.

Hallo mit dem Salz a7x

Befehl
printf 'a7xhallo' | sha256sum

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Dasselbe Wort mit dem Salz k9q

Befehl
printf 'k9qhallo' | sha256sum

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Dasselbe in Python rechnen

Code: python
import hashlib

salz = "a7x"
passwort = "hallo"
# Salz vor das Passwort setzen, dann hashen
hash_wert = hashlib.sha256((salz + passwort).encode()).hexdigest()
print(hash_wert[:16])
# Ändere das Passwort in "Hallo" und starte noch einmal.

Über dieses Lab und seinen Quellcode: Lab zur Rechteausweitung unter Linux: eine setuid-Binärdatei, eine sudo-Regel und ein Cron-Job zum Knacken

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.