Stellen Sie sich vor, Sie könnten beliebige Daten — ein einzelnes Wort, einen Roman, ein 4 GB großes Video — auf eine kurze Zeichenkette fester Länge reduzieren, die diese Daten eindeutig identifiziert. Ändern Sie ein einziges Komma im Original und die Zeichenkette wird völlig anders. Und es gibt keine Möglichkeit, den Prozess umzukehren, um die Originaldaten wiederherzustellen.
Genau das macht eine kryptografische Hash-Funktion. Sie ist einer der grundlegendsten Bausteine moderner Sicherheit und schützt im Hintergrund nahezu alles, was Sie online tun.
Die Fingerabdruck-Metapher
Ein Hash funktioniert wie ein digitaler Fingerabdruck. Ihr Fingerabdruck identifiziert Sie eindeutig, aber niemand kann Ihr Gesicht daraus rekonstruieren. Ebenso identifiziert ein kryptografischer Hash ein Datenstück eindeutig, ohne zu verraten, was diese Daten sind.
Geben Sie eine beliebige Eingabe in eine Hash-Funktion ein und Sie erhalten einen Digest (auch Hash-Wert oder Prüfsumme genannt) — eine Zeichenkette fester Länge aus hexadezimalen Zeichen. SHA-256, einer der gebräuchlichsten Algorithmen, erzeugt unabhängig von der Eingabegröße immer eine 64 Zeichen lange Ausgabe.
| Eingabe | SHA-256-Digest (erste 16 Zeichen) |
|---|---|
Hello |
185f8db32271fe25... |
hello |
2cf24dba5fb0a30e... |
| Gesamter Wikipedia-Dump | (immer noch 64 Zeichen) |
Die vier wesentlichen Eigenschaften
Eine Funktion qualifiziert sich nur dann als kryptografischer Hash, wenn sie diese Eigenschaften erfüllt:
- Deterministisch. Die gleiche Eingabe erzeugt immer die gleiche Ausgabe, auf jedem Rechner, zu jeder Zeit.
- Einweg (Pre-Image-Resistenz). Aus einem Hash ist es rechnerisch unmöglich, die ursprüngliche Eingabe zu ermitteln. Man kann Daten nicht „zurückhashen".
- Kollisionsresistent. Es ist praktisch unmöglich, zwei verschiedene Eingaben zu finden, die den gleichen Digest erzeugen. Bei SHA-256 liegt die Wahrscheinlichkeit einer zufälligen Kollision bei etwa 1 zu 2^128 — eine Zahl, die größer ist als die Anzahl der Atome im beobachtbaren Universum.
- Lawineneffekt. Die Änderung eines einzigen Bits in der Eingabe kippt etwa die Hälfte der Bits in der Ausgabe. Es gibt kein erkennbares Muster oder Zusammenhang zwischen ähnlichen Eingaben.
Wichtige Unterscheidung: Hashing ist keine Verschlüsselung. Verschlüsselung ist mit einem Schlüssel umkehrbar; Hashing ist bewusst irreversibel. Sie verschlüsseln Daten, um sie während der Übertragung zu schützen. Sie hashen Daten, um ihre Integrität zu überprüfen oder einen Nachweis zu speichern, ohne das Original zu behalten.
Gängige Hash-Algorithmen
MD5 (1991)
- Ausgabe: 128 Bit (32 Hex-Zeichen)
- Status: Kryptografisch gebrochen. Forscher können Kollisionen in Sekunden auf einem Laptop erzeugen.
- Noch zu finden in: Nicht-sicherheitsrelevanten Prüfsummen für Dateidownloads und Legacy-Systemen.
SHA-1 (1995)
- Ausgabe: 160 Bit (40 Hex-Zeichen)
- Status: Für Sicherheitszwecke veraltet. Google hat 2017 eine praktische Kollision demonstriert (der „SHAttered"-Angriff).
- Noch zu finden in: Älteren Git-Repositories, einigen Legacy-Zertifikaten.
SHA-256 (2001)
- Ausgabe: 256 Bit (64 Hex-Zeichen)
- Status: Aktueller Standard. Keine bekannten praktischen Angriffe.
- Verwendet in: TLS-Zertifikaten, Bitcoin, Passwort-Hashing, digitalen Signaturen, Dateiintegritätsprüfung.
SHA-3 (2015)
- Ausgabe: Variabel (üblicherweise 256 Bit)
- Status: Neuester Standard, basierend auf einem völlig anderen internen Design (Keccak-Schwammkonstruktion) als die SHA-2-Familie.
- Verwendet in: Zukunftsorientierten Systemen, Ethereum, Situationen die Algorithmus-Diversität erfordern.
| Algorithmus | Ausgabegröße | Sicher? | Geschwindigkeit |
|---|---|---|---|
| MD5 | 128 Bit | Nein | Sehr schnell |
| SHA-1 | 160 Bit | Nein | Schnell |
| SHA-256 | 256 Bit | Ja | Mittel |
| SHA-3-256 | 256 Bit | Ja | Mittel |
Wo kryptografisches Hashing eingesetzt wird
Passwortspeicherung
Wenn Sie ein Konto erstellen, speichert ein gut konzipiertes System Ihr Passwort niemals im Klartext. Es speichert den Hash. Wenn Sie sich anmelden, hasht das System Ihre Eingabe und vergleicht sie mit dem gespeicherten Wert. Selbst bei einem Datenbankeinbruch erhalten Angreifer Hashes — keine Passwörter.
Moderne Systeme gehen weiter, indem sie einen zufälligen Salt (zusätzliche Daten, die vor dem Hashing angefügt werden) hinzufügen und absichtlich langsame Algorithmen wie bcrypt, scrypt oder Argon2 verwenden, um Brute-Force-Angriffe unpraktikabel zu machen.
Dateiintegritätsprüfung
Software-Distributoren veröffentlichen SHA-256-Prüfsummen neben ihren Downloads. Nach dem Herunterladen berechnen Sie den Hash der Datei auf Ihrem Rechner und vergleichen. Eine Übereinstimmung beweist, dass die Datei während der Übertragung nicht beschädigt oder manipuliert wurde.
Digitale Signaturen
Wenn Sie ein Dokument digital signieren, hasht das System zuerst das Dokument und verschlüsselt dann den Hash mit Ihrem privaten Schlüssel. Der Empfänger entschlüsselt ihn mit Ihrem öffentlichen Schlüssel und vergleicht ihn mit seinem eigenen Hash des Dokuments. Das ist wesentlich effizienter als das gesamte Dokument zu verschlüsseln und beweist sowohl Urheberschaft als auch Integrität.
Blockchain
Jeder Block in einer Blockchain enthält den Hash des vorherigen Blocks und bildet so eine unveränderliche Kette. Die Änderung einer vergangenen Transaktion ändert den Hash ihres Blocks, was die Kette ab diesem Punkt bricht und Manipulationen sofort sichtbar macht.
Warum MD5 und SHA-1 als gebrochen gelten
Ein Hash-Algorithmus gilt als „gebrochen", wenn jemand gezielt zwei verschiedene Eingaben erzeugen kann, die den gleichen Hash produzieren (eine Kollision). Das untergräbt jeden Anwendungsfall, der auf Einzigartigkeit beruht.
- MD5: Kollisionen können in Sekunden erzeugt werden. Forscher haben zwei verschiedene PDF-Dateien mit identischen MD5-Hashes erstellt.
- SHA-1: Der SHAttered-Angriff von 2017 erzeugte zwei verschiedene PDFs mit dem gleichen SHA-1-Hash, wobei etwa 6.500 Jahre Single-CPU-Rechenzeit benötigt wurden (mit Cloud-Ressourcen durchführbar).
Praktische Regel: Verwenden Sie MD5 oder SHA-1 niemals für sicherheitsrelevante Zwecke — Passwörter, Zertifikate, digitale Signaturen oder Integritätsprüfungen, bei denen ein Angreifer beteiligt sein könnte. Verwenden Sie stattdessen SHA-256 oder SHA-3.
Weiterführende Informationen
Hashing ist eines dieser Konzepte, das intuitiv wird, sobald man damit experimentiert. Versuchen Sie, einen Satz zu hashen, ändern Sie dann ein Zeichen und beobachten Sie den Lawineneffekt aus erster Hand.
- Hashes generieren und überprüfen — Schritt-für-Schritt-Tutorial
- Hash Generator — SHA-256, MD5, SHA-512 und mehr sofort im Browser berechnen
- Hash Identifier — einen unbekannten Hash einfügen und seinen Algorithmus identifizieren
