Der Fall: Der Download bricht bei 96 % ab
Eine mehrere Gigabyte große Installer-Datei lädt fast vollständig herunter, dann bricht die Verbindung ab. Der Browser setzt den Download fort, meldet am Ende "abgeschlossen". Nur: Ist die Datei jetzt wirklich vollständig und unbeschädigt, oder hat sich beim Fortsetzen ein Teil verschoben? Die Dateigröße allein verrät das nicht zuverlässig, zwei Dateien mit exakt derselben Byte-Anzahl können sich trotzdem an einer einzigen Stelle unterscheiden.
Genau dafür gibt es Prüfsummen. Seriöse Anbieter, insbesondere Linux-Distributionen, veröffentlichen zu jedem Download eine SHA256SUMS-Datei mit dem erwarteten Hash. Berechnen Sie den Hash Ihrer heruntergeladenen Datei und vergleichen Sie ihn mit dem veröffentlichten Wert. Stimmen beide exakt überein, ist die Datei unverändert angekommen, weicht auch nur ein einziges Byte ab, sind die Hashes komplett verschieden.
Wie ein Hash das leisten kann
Ein kryptographischer Hash funktioniert wie ein digitaler Fingerabdruck: Er wandelt Daten beliebiger Größe, einen Text, eine Datei, ein ganzes Video, in eine Zeichenkette fester Länge um. Drei Eigenschaften machen ihn dafür brauchbar. Er ist deterministisch, dieselbe Eingabe liefert immer denselben Hash. Er ist kollisionsresistent, zwei unterschiedliche Eingaben mit demselben Hash zu finden gilt als praktisch unmöglich. Und er zeigt den Avalanche-Effekt: Schon ein einziges verändertes Bit in der Eingabe verändert den kompletten Ausgabewert. Anders als Verschlüsselung ist Hashing dabei eine Einwegfunktion, aus dem Hash allein lässt sich der Ursprungsinhalt nicht rekonstruieren.
Welcher Algorithmus wofür taugt
- MD5 (128 Bit): Für sicherheitskritische Zwecke veraltet, da sich Kollisionen gezielt erzeugen lassen. Für einen schnellen, nicht-sicherheitskritischen Dateiabgleich oder als Etag in HTTP-Headern wird es trotzdem noch verwendet.
- SHA-1 (160 Bit): Gilt seit 2017 offiziell als gebrochen, Google demonstrierte damals eine praktische Kollision. Für Zertifikate oder Signaturen ungeeignet, taucht aber weiterhin in Git-Commit-Hashes und älteren Systemen auf.
- SHA-256 (256 Bit): Der heutige Standard für TLS-Zertifikate, digitale Signaturen und (in Kombination mit einer KDF) Passwort-Hashing. Auch Bitcoin setzt auf SHA-256.
- SHA-512 (512 Bit): Größere Ausgabe, auf 64-Bit-Systemen oft sogar schneller als SHA-256. Kommt unter anderem in Linux
/etc/shadowmit dem$6$-Präfix zum Einsatz. - SHA-3 (Keccak): Intern komplett anders aufgebaut als die SHA-2-Familie. Gedacht als Absicherung für den Fall, dass SHA-2 irgendwann kompromittiert wird.
Wo Hashes sonst noch im Hintergrund arbeiten
Dateiintegrität ist nur ein Anwendungsfall von vielen. Digitale Signaturen bei E-Mails (S/MIME, PGP) und Softwarepaketen (apt, rpm) berechnen zunächst einen Hash und verschlüsseln diesen dann mit einem privaten Schlüssel. Bitcoin verkettet Blöcke über SHA-256, jede nachträgliche Änderung an einem alten Block würde alle folgenden Hashes ungültig machen. Browser und CDNs erkennen über Hashes im Dateinamen (etwa app.a1b2c3.js), ob sich eine Datei geändert hat, und laden nur dann neu. Cloud-Speicher wie Dropbox oder S3 erkennen identische Dateien am Hash und speichern sie intern nur einmal.
Hashes und Passwörter: ein wichtiger Sonderfall
Passwörter landen nie im Klartext in einer Datenbank, sondern als Hash. Ein reiner SHA-256-Hash reicht dafür aber nicht aus: Angreifer mit einer Rainbow-Table könnten gängige Passwörter darüber zurückrechnen, und moderne Grafikkarten berechnen Milliarden SHA-256-Hashes pro Sekunde. Deshalb kommt ein zufälliger Salt pro Nutzer dazu, teils ergänzt um ein serverseitiges Pepper. Wirklich sicher wird es erst mit einer bewusst langsamen KDF wie bcrypt, scrypt oder Argon2, die genau das Durchprobieren massiv verteuert.
Welchen Algorithmus wählen?
- Schneller Dateivergleich ohne Sicherheitsanspruch: MD5 oder SHA-256.
- Zertifikate, API-Signaturen, digitale Dokumente: mindestens SHA-256.
- Passwörter: Argon2 oder bcrypt, niemals ein reiner Hash.
- Git-Commits: historisch SHA-1, die Migration zu SHA-256 läuft schrittweise.
- Hohe Langzeitsicherheit: SHA-512 oder SHA-3.
Was ein Hash-Vergleich nicht garantiert
Ein übereinstimmender Hash beweist nur, dass Ihre Datei mit der Datei identisch ist, für die der veröffentlichte Hash berechnet wurde. Er beweist nicht, dass diese Ursprungsdatei selbst vertrauenswürdig ist. Wer sowohl die Datei als auch die dazugehörige SHA256SUMS-Datei manipuliert (etwa über eine kompromittierte Downloadseite), kann beide passend zueinander austauschen. Verlässlich wird der Vergleich erst, wenn Sie den Referenz-Hash über einen unabhängigen, vertrauenswürdigen Kanal beziehen, etwa eine signierte Checksummen-Datei oder die offizielle HTTPS-Seite des Anbieters.
Datenschutz
Der Hash wird lokal in Ihrem Browser mit der Web Crypto API berechnet (crypto.subtle.digest). Weder Text noch Datei verlassen Ihren Rechner, das Tool funktioniert auch offline.