Wie Sie die Dateiintegrität mit Hashes prüfen
Wenn Sie Software, Firmware oder wichtige Dokumente herunterladen, woher wissen Sie, dass die Datei genau das ist, was der Herausgeber beabsichtigt hat? Datei-Hashing gibt Ihnen einen kryptografischen Fingerabdruck, eine eindeutige Zeichenkette, die sich ändert, sobald sich auch nur ein einziges Byte der Datei unterscheidet. Einen Hash zu verifizieren dauert Sekunden und kann Sie davor bewahren, manipulierte Software zu installieren, eine kaputte Firmware aufzuspielen, die ein Gerät bricked, oder einem beschädigten Backup zu vertrauen, das ausfällt, wenn Sie tatsächlich wiederherstellen müssen.
Eine kurze Geschichte der Hashfunktionen
Die Idee einer Prüfsumme ist älter als das Rechnen selbst, Buchhalter benutzten Ziffernsummen, um Übertragungsfehler zu erkennen, lange bevor es Dateien zu verifizieren gab. Kryptografische Hashes erschienen Ende der 1980er. Ron Rivest veröffentlichte 1990 MD4 und 1991 MD5, das für zwei Jahrzehnte zur De-facto-Prüfsumme wurde. NIST standardisierte 1993 SHA-0, zog es dann 1995 nach Entdeckung eines Fehlers schnell zugunsten von SHA-1 zurück. Die SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512) folgte 2001, um der drohenden Schwäche von SHA-1 zu begegnen.
Jede Generation wurde durch Angriffe abgelöst, die sich als billiger erwiesen als erwartet. MD5-Kollisionen wurden 2004 demonstriert, 2008 für digitale Zertifikate praktisch nutzbar gemacht und sind heute trivial. SHA-1 fiel 2017 mit Googles SHAttered-Angriff, als Forscher zwei verschiedene PDFs mit identischen SHA-1-Digests erzeugten. SHA-2 hält seit 2001, und SHA-3 (Keccak, standardisiert 2015) liefert eine strukturell andere Rückfalloption, falls SHA-2 jemals brechen sollte. Die Lehre ist, dass Hash-Algorithmen eine Haltbarkeit haben; der heute richtige Algorithmus muss vielleicht innerhalb einer Dekade ersetzt werden.
Wie Datei-Hashing funktioniert
Eine Hashfunktion liest jedes Byte einer Datei und erzeugt eine Zeichenkette fester Länge. Dieselbe Datei erzeugt immer denselben Hash. Ändern Sie ein Byte, und der Hash ändert sich komplett, das nennt sich Avalanche-Effekt und ist die Eigenschaft, die Hashes für die Verifikation nützlich macht.
Beispiel:
- Originaldatei (SHA-256):
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - Dieselbe Datei, ein Byte geändert:
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
Die beiden Hashes haben kein erkennbares Muster gemeinsam, obwohl sich die Dateien um ein einziges Bit unterscheiden. Diese Empfindlichkeit ist es, die Verifikation überhaupt möglich macht: Hash erzeugen, mit dem veröffentlichten Hash vergleichen, und Sie wissen sofort, ob die Datei authentisch ist.
Intern teilen moderne Hashfunktionen die Datei in Blöcke fester Größe (64 Bytes für SHA-256, 128 für SHA-512), führen jeden Block durch eine Kompressionsfunktion und kettet den Zustand vorwärts. Die Ausgabe ist der Endzustand, nachdem der letzte Block eingemischt wurde. Weil die Kette von jedem Byte abhängt, lässt keine Abkürzung einen Angreifer Inhalt ändern, ohne den gesamten Hash neu zu schreiben.
So verifizieren Sie eine Datei
- Finden Sie den offiziellen Hash, der Software-Herausgeber listet Datei-Hashes typischerweise auf seiner Download-Seite, oft als «SHA-256-Prüfsumme» oder «SHA256SUMS-Datei» bezeichnet.
- Laden Sie Ihre heruntergeladene Datei hoch: Wählen Sie die Datei im Hash-Rechner aus. Der Hash wird lokal in Ihrem Browser berechnet; die Datei verlässt Ihre Maschine nie.
- Vergleichen Sie die Hashes: Wenn Ihr berechneter Hash exakt mit dem offiziellen Hash übereinstimmt, ist die Datei authentisch und unbeschädigt. Wenn die Strings lang sind, kopieren Sie beide in ein Text-Diff.
- Algorithmus anpassen: SHA-256-Hashes passen nur zu anderen SHA-256-Hashes. Wenn der Herausgeber Ihnen SHA-512 gibt, generieren Sie auch SHA-512; Algorithmen zu mischen ist der häufigste «sie stimmen nicht überein»-Fehler.
- Verifizieren Sie nach Möglichkeit den veröffentlichten Hash selbst: Eine signierte SHA256SUMS-Datei (mit dem GPG-Schlüssel des Herausgebers signiert) sagt Ihnen, dass die Hash-Liste nicht manipuliert wurde, was der nackte Hash auf einer Download-Seite nicht tut.
Wann Datei-Hashes verifizieren
- Software-Downloads: Verifizieren Sie, dass Installer und Updates während des Downloads nicht manipuliert oder beschädigt wurden. Jeder, der Ihnen die Binärdatei ausliefert, Ihr ISP, ein CDN, ein Mirror, könnte sie theoretisch gegen etwas Bösartiges austauschen.
- Firmware-Updates: Eine beschädigte Firmware-Datei kann ein Gerät bricken. Verifizieren Sie immer, bevor Sie einen Router, ein IoT-Gerät oder ein Motherboard-BIOS flashen, die Wiederherstellung erfordert oft Spezial-Hardware.
- ISO-Images: Betriebssystem-Images sollten verifiziert werden, bevor Sie sie auf USB brennen oder installieren. Linux-Distributionen veröffentlichen universell sowohl SHA-256-Hashes als auch GPG-Signaturen über diese Hashes; verifizieren Sie beides.
- Rechtliche und finanzielle Dokumente: Verifizieren Sie, dass Verträge, Prüfberichte oder Finanzaufstellungen nach Unterzeichnung oder Weitergabe nicht verändert wurden. Hashes liefern eine manipulationssichere Quittung.
- Backup-Verifikation, bestätigen Sie, dass Backup-Dateien mit den Originalen identisch sind. Stille Plattenkorruption ist real, und ein Backup, dessen Hash seit der Erstellung gewandert ist, lässt sich möglicherweise nicht sauber wiederherstellen.
- CI/CD-Artefakte: Ein Build-Artefakt in einer Deployment-Pipeline per SHA-256 zu pinnen garantiert, dass die getestete Binärdatei die deployte Binärdatei ist. Container-Images tun das per Design mit ihren inhaltsadressierbaren Digests.
- Software-Supply-Chain-Audits: Wenn ein Sicherheitshinweis sagt «diese Version hat Hash X», ist der einzige Weg zu bestätigen, was auf Ihren Servern liegt, dort die Datei zu hashen und zu vergleichen. Ohne das vertrauen Sie der Versionsangabe, die der Angreifer kontrolliert.
Unterstützte Algorithmen
| Algorithmus | Hash-Länge | Ausgabebits | Empfehlung |
|---|---|---|---|
| MD5 | 32 Hex | 128 | Nur Legacy, gebrochen, nur für versehentliche Korruption |
| SHA-1 | 40 Hex | 160 | Nur Legacy, gebrochen, nicht für Sicherheit vertrauen |
| SHA-224 | 56 Hex | 224 | Nischig; bevorzugen Sie SHA-256 |
| SHA-256 | 64 Hex | 256 | Empfohlener Allzweck-Standard |
| SHA-384 | 96 Hex | 384 | Hohe Sicherheit, in TLS-1.3-Cipher-Suites verwendet |
| SHA-512 | 128 Hex | 512 | Maximale SHA-2-Stärke, schnell auf 64-Bit-CPUs |
| SHA3-256 | 64 Hex | 256 | Anderes internes Design als SHA-2, zukunftssicher |
| BLAKE2b/BLAKE3 | variabel | 256 oder 512 | Schnellste moderne Hashes, von rsync, restic genutzt |
| CRC32 | 8 Hex | 32 | Nur Fehlererkennung, kein Sicherheits-Hash |
Wenn Sie die Wahl haben, ist SHA-256 der richtige Standard. Verwenden Sie SHA-512 auf 64-Bit-Maschinen für leicht bessere Leistung (der Algorithmus ist auf 64-Bit-Wörter abgestimmt). Greifen Sie zu BLAKE3, wenn der Durchsatz am wichtigsten ist, es kann moderne NVMe-SSDs sättigen, was SHA-256 nicht kann.
Hash vs digitale Signatur
Ein Hash sagt Ihnen, ob eine Datei geändert wurde. Eine digitale Signatur sagt Ihnen, ob sie geändert wurde UND wer den Hash erstellt hat. Eine Signatur ist ein Hash, der mit dem privaten Schlüssel des Herausgebers verschlüsselt wurde; Sie entschlüsseln ihn mit seinem öffentlichen Schlüssel, berechnen den Hash neu und prüfen, dass beide übereinstimmen. Wenn ja, wissen Sie, dass die Datei unverändert ist UND dass der Herausgeber (oder jemand mit seinem privaten Schlüssel) sie freigegeben hat.
Wenn eine Download-Seite sowohl einen SHA-256-Hash als auch eine .sig- oder .asc-Datei zeigt, schützt der Hash vor Korruption und versehentlicher Manipulation, aber die Signatur ist es, was vor einem Angreifer schützt, der den Download-Server kompromittiert hat. Der Angreifer kann die Datei austauschen und den angezeigten Hash aktualisieren; er kann keine gültige Signatur ohne den Schlüssel des Herausgebers fälschen.
Häufige Fallstricke
- Den falschen Algorithmus vergleichen, MD5 und SHA-256 erzeugen Strings unterschiedlicher Länge; unpassende Algorithmen werden niemals übereinstimmen, selbst bei identischen Dateien.
- Dem Hash vertrauen, der vom selben Ort wie die Datei kommt, wenn beide auf demselben kompromittierten Mirror liegen, können beide ersetzt werden. Wann immer möglich, holen Sie den Hash von einer anderen Domain (die GitHub-Releases-Seite des Projekts, eine signierte SHA256SUMS-Datei).
- Hex-Groß-/Kleinschreibung, Hashes sind groß-/kleinschreibungs-unsensitiv (
a3fundA3Frepräsentieren dasselbe Byte). Der String-Vergleich kann sie trotzdem als verschieden markieren. Lowercase beide Seiten oder vergleichen Sie als Bytes. - Nachgestelltes Whitespace und BOMs, ein kopierter Hash mit Zeilenumbruch oder unsichtbarem Zeichen sieht identisch aus, passt aber nicht. Trimmen Sie beide Seiten vor dem Vergleich.
- Die falsche Datei hashen, unter Windows kann der Download-Pfad
Downloads\datei (1).exestattDownloads\datei.exesein, wenn Sie sie zweimal heruntergeladen haben. Prüfen Sie den Pfad vor dem Hashen. - MD5 oder SHA-1 als Sicherheitsgarantie behandeln, ein Angreifer kann in Sekunden eine harmlos aussehende Datei mit derselben MD5 wie eine bösartige erzeugen. Für Sicherheit immer SHA-256 oder stärker verwenden.
- Das Falsche verifizieren, wenn der Herausgeber das komprimierte
.tar.gzhasht und Sie den extrahierten Inhalt hashen, wird keines passen. Hashen Sie, was gehasht wurde; meist das heruntergeladene Archiv selbst. - Die GPG-Signatur ignorieren, viele Leute verifizieren den Hash, überspringen aber die Signatur. Die Signatur ist das, was gegen den Angreifer schützt, der den Mirror kontrolliert.
- Stille Fehler bei Netzwerkkorruption, ein abgeschnittener Download kann mit einem Teil-Datei-Hash übereinstimmen, wenn beide identisch abgeschnitten wurden. Hashen Sie immer die vollständige Datei, die Sie verwenden wollen, nicht ein Stück.
- Browser-Caching alter Downloads, eine veraltete gecachte Datei kann einen Verifikationsschritt täuschen. Erzwingen Sie einen frischen Download, wenn der Hash nicht passt und Sie Caching vermuten.
Alternative Werkzeuge und Kontexte
Ein Web-Hash-Rechner ist der schnellste Weg, wenn Sie eine Datei prüfen wollen. Für wiederholten Gebrauch oder Skripting sind Kommandozeilen-Werkzeuge der Standard.
| Werkzeug | Plattform | Stärke | Achten Sie auf |
|---|---|---|---|
| Web-Hash-Rechner | Browser | Keine Installation, Datei wird nie hochgeladen | Eine Datei auf einmal |
sha256sum | Linux | Schnell, skriptbar, GNU coreutils | --check liest SHA256SUMS-Dateien |
shasum -a 256 | macOS, BSD | Mitgeliefert, gleiches Ausgabeformat | Anderer Binärname als unter Linux |
Get-FileHash | Windows PowerShell | Erstklassig unter Windows | Ausgabeformat unterscheidet sich von sha256sum |
certutil -hashfile | Windows cmd | Auf jedem Windows verfügbar | Wortreiche Ausgabe braucht Parsing |
openssl dgst -sha256 | Plattformübergreifend | Wenn Sie OpenSSL ohnehin haben | Langsamer als spezialisierte Werkzeuge |
b3sum | Plattformübergreifend | BLAKE3, mehrere GB/s Durchsatz | Neuer, weniger allgegenwärtig |
rhash | Plattformübergreifend | Berechnet viele Algorithmen auf einmal | Zusätzliche Installation |
In CI/CD-Pipelines läuft die gleiche Aufgabe meist als sha256sum file > file.sha256 beim Build und sha256sum -c file.sha256 beim Verify, manchmal in ein signiertes Manifest verpackt. Das Prinzip (berechnen, veröffentlichen, beim Abruf vergleichen) ist identisch zu dem, was das Browser-Werkzeug interaktiv tut.
Datenschutz und der Hash-Rechner
Der Hash-Rechner läuft vollständig in Ihrem Browser. Die Datei, die Sie auswählen, wird mit der FileReader-API gelesen, durch die SubtleCrypto-Schnittstelle von Web Crypto geführt, und der resultierende Hash wird Ihnen gezeigt. Die Bytes der Datei reisen nie zu unseren Servern, es gibt keinen Upload, kein Protokoll, welche Dateien gehasht wurden, und keine Analytik zu Dateigrößen oder -erweiterungen. Für sensibles Material, Verträge, medizinische Akten, private Schlüssel, ist der Unterschied zwischen einem Werkzeug, das hochlädt, und einem, das lokal hasht, der Unterschied zwischen einem Dritten zu vertrauen und niemandem. Ein Hash ist eine winzige Ausgabe (64 Hex-Zeichen für SHA-256), aber die Eingabe, die er zusammenfasst, kann sehr aufschlussreich sein. Diese Eingabe clientseitig zu halten, ist der richtige Standard für jede Verifikationsaufgabe.
Häufig gestellte Fragen
Wie vergleiche ich einen Datei-Hash mit dem offiziellen?
Nach dem Erzeugen des Hashes vergleichen Sie ihn Zeichen für Zeichen mit dem von der Quelle veröffentlichten Hash (in der Regel auf der Download-Seite). Stimmt jedes Zeichen überein, ist die Datei authentisch und unbeschädigt. Schon ein Zeichen Unterschied bedeutet, dass die Datei verändert wurde.
Welchen Hash-Algorithmus soll ich verwenden?
SHA-256 ist der Standard für Dateiprüfung. Verwenden Sie den Algorithmus, den der Anbieter angibt. Wenn Sie wählen können, bietet SHA-256 ein gutes Gleichgewicht aus Sicherheit und Performance.
Kann eine beschädigte Datei den korrekten Hash haben?
Theoretisch möglich (eine Kollision), aber statistisch mit SHA-256 vernachlässigbar. Die Wahrscheinlichkeit ist so verschwindend gering, dass übereinstimmende Hashes für alle praktischen Zwecke identische Dateien garantieren.
Wird meine Datei auf einen Server hochgeladen?
Nein. Der Hash wird vollständig in Ihrem Browser berechnet. Ihre Datei verlässt Ihr Gerät nie und ist damit auch für sensible Dokumente sicher.
What is the difference between a hash and a digital signature?
A hash proves a file has not changed since the hash was computed; anyone can verify it. A digital signature proves both integrity AND identity, the publisher signs the hash with their private key, and you verify with their public key. Hashes alone do not protect against a hacker who replaced both the file and the published hash on the same compromised mirror.
Why are MD5 and SHA-1 considered insecure?
Researchers have demonstrated practical collision attacks for both. In 2017 Google produced two different PDFs with identical SHA-1 hashes (the SHAttered attack), and MD5 collisions can be generated in seconds on a laptop. For deliberate-tamper detection use SHA-256 or stronger; MD5 and SHA-1 still work for catching accidental corruption but should never be trusted as security boundaries.