Warum SHA-256 sicherer ist als MD5

Hash-Algorithmen sind das stille Arbeitspferd hinter Datei-Integrität, Passwort-Speicherung, digitalen Signaturen und Blockchains. Doch nicht alle Hash-Verfahren sind gleich sicher: MD5, jahrzehntelang allgegenwärtig, gilt heute als gebrochen. Dieser Artikel erklärt warum — und wann SHA-256 (oder noch stärker SHA-512) die richtige Wahl ist.

Was ist eine Hash-Funktion?

Eine kryptographische Hash-Funktion bildet eine beliebig lange Eingabe (Datei, Text, Datenstrom) auf eine Ausgabe fester Länge ab — z. B. 128 Bit bei MD5 oder 256 Bit bei SHA-256. Das Ergebnis nennt man Hash oder Digest. Die Funktion ist deterministisch (gleiche Eingabe ergibt immer denselben Hash), aber praktisch nicht umkehrbar.

Drei Eigenschaften sind dabei kritisch: Preimage-Resistenz (zu einem Hash darf man die Eingabe nicht rekonstruieren können), Second-Preimage-Resistenz (zu einer Eingabe darf man keine zweite mit demselben Hash finden) und Kollisionsresistenz (es darf praktisch unmöglich sein, irgendein Paar von Eingaben mit demselben Hash zu finden). Sobald eine dieser Eigenschaften fällt, gilt der Algorithmus für Sicherheitsanwendungen als kompromittiert.

Eine kurze Geschichte: MD5, SHA-1, SHA-2

MD5 wurde 1991 von Ron Rivest entworfen, mit 128 Bit Ausgabelänge. Es war damals ein Fortschritt gegenüber MD4 und über Jahre Standard für Datei-Checksummen und Passwort-Hashes. SHA-1, 1995 von der NSA standardisiert, lieferte 160 Bit und schien lange sicher zu sein. Beide gehören zu derselben Familie von Merkle-Damgård-Konstruktionen mit Boolean-Operationen pro Runde.

Die SHA-2-Familie wurde 2001 vom NIST veröffentlicht: SHA-224, SHA-256, SHA-384 und SHA-512. Sie sind strukturell verwandt mit SHA-1, nutzen aber deutlich mehr Runden, größere interne Zustände und längere Ausgaben. SHA-3 (Keccak, 2015) basiert auf einem völlig anderen Schwamm-Konzept und ist als Reserve gedacht, falls SHA-2 jemals strukturell angreifbar wird.

Wie MD5 und SHA-1 gefallen sind

Bereits 2004 zeigten Wang, Feng, Lai und Yu eine erste praktische Kollision für MD5. Zwei verschiedene Eingaben ergaben denselben Hash — in Minuten auf Standard-Hardware. 2008 demonstrierte ein Forscherteam um Sotirov und Stevens, dass man damit gefälschte SSL-Zertifikate ausstellen kann. Seitdem ist MD5 für jede Sicherheitsanwendung tabu.

SHA-1 folgte 2017 mit dem berühmten SHAttered-Angriff von Google und CWI Amsterdam: zwei PDF-Dateien mit identischem SHA-1-Hash, aber unterschiedlichem Inhalt. Der Angriff kostete etwa 110 GPU-Jahre — teuer, aber finanzierbar für Staaten und große Organisationen. Browser, Git-Hoster und CAs phasen SHA-1 seitdem aktiv aus. SHA-256 hat bislang keinen vergleichbaren Angriff erfahren; klassische Brute-Force-Kollisionen wären im Bereich von 2^128 Operationen — astronomisch.

Was SHA-256 besser macht

SHA-256 liefert 256 Bit Output. Damit ist die theoretische Kollisionsresistenz nach dem Geburtstagsparadox bei 2^128 — eine Zahl, die weit jenseits aller heute denkbaren Rechenleistung liegt. Zusätzlich hat SHA-2 doppelt so viele Runden wie SHA-1 (64 statt 80, aber mit komplexerer Mischung) und einen größeren internen Zustand. Selbst eine drastische Reduktion der Sicherheit durch zukünftige Krypto-Analyse würde noch genug Reserve lassen.

In der Praxis ist SHA-256 auf modernen CPUs sehr schnell — Intel und AMD bieten seit Jahren spezielle Befehlssatz-Erweiterungen (SHA-NI). Auf ARM existieren entsprechende Crypto-Extensions. Für Massendurchsatz (z. B. Datei-Hashing in Backup-Tools) ist SHA-256 oft schon nicht mehr der Flaschenhals. Wer noch mehr Reserve braucht oder native 64-Bit-Architekturen optimal ausreizen will, greift zu SHA-512.

Wann welcher Algorithmus?

Eine pragmatische Faustregel:

  • MD5: nur noch für nicht-sicherheitskritische Prüfsummen (z. B. schnelle Deduplizierung, Cache-Keys, Verifikation gegen versehentliche Bit-Fehler). Nie für Signaturen, Zertifikate oder Passwort-Hashes.
  • SHA-1: vermeiden. In Bestandssystemen toleriert (z. B. Git-Commit-IDs), aber in jeder neuen Anwendung durch SHA-256 ersetzen.
  • SHA-256: heutiger De-facto-Standard. Für TLS-Zertifikate, JWT-Signaturen (HS256/RS256), digitale Signaturen, Datei-Integrität, Blockchain (Bitcoin) und alles, wo Kollisionsresistenz zählt.
  • SHA-512: identische Sicherheitsphilosophie, aber doppelte Hash-Länge. Empfohlen, wenn 256 Bit als Margin nicht reichen oder wenn 64-Bit-CPUs sie performanter berechnen als SHA-256.

Häufige Fragen

Ist SHA-256 quantensicher?

Symmetrische Primitive wie Hash-Funktionen sind gegen Quantencomputer deutlich robuster als asymmetrische Verfahren (RSA, ECDSA). Grover's Algorithmus halbiert effektiv die Bit-Sicherheit — SHA-256 hätte gegen einen idealen Quantencomputer noch rund 128 Bit Sicherheit, was praktisch ausreicht. Für höhere Margin nutzt man SHA-512 oder SHA-3.

Brauche ich für Passwörter SHA-256 oder etwas anderes?

Weder MD5 noch SHA-256 sind allein geeignet für Passwort-Speicherung. Sie sind zu schnell — Angreifer können Milliarden Hashes pro Sekunde durchprobieren. Für Passwörter verwendet man absichtlich langsame Verfahren wie bcrypt, scrypt oder Argon2, die mit Salt und konfigurierbarem Aufwand arbeiten.

Ist SHA-3 besser als SHA-256?

Nicht zwingend. SHA-3 ist strukturell anders konstruiert und damit eine sinnvolle Diversifizierung — falls SHA-2 jemals theoretisch angegriffen wird, bleibt SHA-3 als Backup. In der Praxis ist SHA-256 derzeit aber breiter unterstützt, schneller in vielen Hardware-Implementierungen und für die meisten Anwendungen die richtige Wahl.

Hinweis: Dieser Artikel bietet allgemeine Hintergrundinformationen und stellt keine konkrete Sicherheitsberatung dar. Für produktive Systeme mit hohen Sicherheitsanforderungen solltest du dich an aktuelle Empfehlungen von NIST, BSI oder einer qualifizierten Krypto-Beratung orientieren.