Kryptographische Einwegfunktionen verstehen und erleben
Was ist eine Hash-Funktion?
Definition: Eine Hash-Funktion wandelt eine beliebig lange Eingabe (Nachricht, Datei, Passwort β¦)
in einen fest langen Ausgabewert (Hash / Fingerabdruck) um. Der Prozess ist nicht umkehrbar.
Hallo Welt
β
SHA-256
β
wird berechnetβ¦
β Deterministisch
Gleiche Eingabe β immer gleicher Hash
β‘ Schnell
Berechnung ist effizient (Millisekunden)
π« Einwegfunktion
Hash β Original ist praktisch unmΓΆglich
Gut zu wissen: Verschiedene Eingaben β komplett anderer Hash
Teste es selbst: Γndere nur ein Zeichen und beobachte den Unterschied!
Die drei wichtigsten Eigenschaften
πͺ
Einwegfunktion
Aus dem Hash kann die Eingabe nicht zurΓΌckgerechnet werden
π‘οΈ
Schwache Kollisionsresistenz
Zu einem gegebenen Wert ist kein zweiter Wert mit demselben Hash findbar
π°
Starke Kollisionsresistenz
Es ist unmΓΆglich, irgendzwei Nachrichten mit gleichem Hash zu finden
Interaktiver Einweg-Beweis
π€ Denksport: Du siehst nur den Hash. Kannst du die ursprΓΌngliche Eingabe erraten?
Hash wird geladen β¦
Der Lawineneffekt (Avalanche Effect)
Prinzip: Eine winzige Γnderung der Eingabe (z.B. ein einzelnes Bit) fΓΌhrt zu einem
komplett anderen Hash-Wert. Im Durchschnitt Γ€ndern sich ca. 50 % der Ausgabe-Bits.
Unterschiedliche Hex-Zeichen (rot = geΓ€ndert):
β Gleichβ Verschieden
Bit-fΓΌr-Bit Demonstration
Tippe ein Zeichen in das Feld und beobachte in Echtzeit, wie stark sich der Hash verΓ€ndert.
Hash-Algorithmen im Vergleich
Γberblick: Es gibt viele verschiedene Hash-Algorithmen, die sich in Geschwindigkeit,
Hash-LΓ€nge und Sicherheitsniveau unterscheiden.
π‘ Tipp: Γber eine Zeile fahren, um den vollstΓ€ndigen Hash anzuzeigen.
Algorithmus
Bit-LΓ€nge
Sicherheit
Hash-Wert
MD5
128 Bit / 32 Hex
β Gebrochen
berechneβ¦
SHA-1
160 Bit / 40 Hex
β οΈ Veraltet
berechneβ¦
SHA-256
256 Bit / 64 Hex
β Sicher
berechneβ¦
SHA-512
512 Bit / 128 Hex
β Sehr sicher
berechneβ¦
β MD5 (1991)
Kollisionen wurden nachgewiesen. Nicht mehr fΓΌr Sicherheitszwecke geeignet.
Heute nur noch fΓΌr Checksummen.
β οΈ SHA-1 (1995)
Google gelang 2017 eine SHA-1-Kollision (SHAttered). In modernen Systemen
nicht mehr empfohlen.
β SHA-256 (2001)
Teil der SHA-2-Familie. Standard in Bitcoin, TLS, digitalen Signaturen.
Gilt als sicher.
β SHA-512 (2001)
LΓ€ngerer Hash = mehr Sicherheitsreserve. Schneller auf 64-Bit-Prozessoren
als SHA-256.
Passwort-Hashing & Salt
Warum Hash statt Klartext? Datenbanken speichern niemals das echte Passwort,
sondern nur dessen Hash. Beim Login wird das eingegebene Passwort gehasht und mit dem gespeicherten Hash verglichen.
π§ Wie funktioniert ein Salt?
Problem ohne Salt: Wenn zwei Benutzer dasselbe Passwort haben, ist auch ihr gespeicherter Hash identisch.
Angreifer kΓΆnnen sogenannte Rainbow-Tables nutzen β vorgefertigte Listen von Millionen PasswΓΆrtern und
ihren Hashes β um das Passwort sofort nachzuschlagen.
Schritt-fΓΌr-Schritt: Salt beim Registrieren & Einloggen
Vor dem Hashen wird ein zufΓ€lliger, einzigartiger Salt erzeugt und mit dem Passwort kombiniert.
Der Salt wird zusammen mit dem Hash in der Datenbank gespeichert (er muss nicht geheim sein!).
π€ Benutzer A
π "geheim"
+
π§ Salt: a3f8c1β¦
β
SHA-256
β
3d9f2aβ¦
πΎ DB speichert: salt=a3f8c1β¦ + hash=3d9f2aβ¦
π€ Benutzer B (gleiches Passwort!)
π "geheim"
+
π§ Salt: 7b2e94β¦
β
SHA-256
β
f17c3bβ¦ β anders!
πΎ DB speichert: salt=7b2e94β¦ + hash=f17c3bβ¦
Registriere ein Passwort. Dann logge dich ein β mit richtigem und falschem Passwort.
Blockchain β Hash-Ketten
Prinzip: Jeder Block enthΓ€lt den Hash des vorherigen Blocks.
Γndert man einen Block, werden alle nachfolgenden Hashes ungΓΌltig β die Kette ist gebrochen.
Klicke auf den Inhalt eines Blocks und Γ€ndere ihn. Beobachte, wie die Kette bricht!