Was ist ein Datei-Hash
Ein Hash ist ein Algorithmus, der beliebig lange Daten in eine Zeichenfolge fester Länge umwandelt. Der Hash einer Datei ist ihr „Fingerabdruck“ — dieselbe Datei hat immer denselben Hash-Wert, und die Änderung eines einzigen Bytes verändert den Hash vollständig.
Häufige Anwendungen:
- Dateiintegrität prüfen (Download vollständig?)
- Manipulationsschutz (wurde die Datei geändert?)
- Deduplizierung (sind zwei Dateien identisch?)
- Passwortspeicherung (Hash speichern, nicht Klartext)
Gängige Hash-Algorithmen
MD5
- Ausgabe 128 Bit (32-stellige Hexadezimalzeichenfolge)
- Schnell
- Kompromittiert, Kollisionen vorhanden (verschiedene Dateien mit gleichem Hash)
- Nicht für Sicherheitsanwendungen geeignet
- Weiterhin für Integritätsprüfung (nicht sicherheitskritisch) verwendet
SHA-1
- Ausgabe 160 Bit (40-stellige Hexadezimalzeichenfolge)
- Mittlere Geschwindigkeit
- Kompromittiert, Kollisionen vorhanden
- Nicht empfohlen für Sicherheitsanwendungen
- Git verwendete SHA-1, migriert zu SHA-256
SHA-256
- Ausgabe 256 Bit (64-stellige Hexadezimalzeichenfolge)
- Relativ langsam
- Sicher, derzeit keine Kollisionen bekannt
- Empfohlen für Sicherheitsanwendungen
- Blockchain und HTTPS-Zertifikate verwenden SHA-256
SHA-512
- Ausgabe 512 Bit (128-stellige Hexadezimalzeichenfolge)
- Langsam
- Höhere Sicherheit als SHA-256
- Geeignet für Hochsicherheitsanwendungen
Auswahl-Empfehlung
- Integritätsprüfung (nicht sicherheitskritisch): MD5 reicht (schnell)
- Sicherheitsanwendung: SHA-256 (ausgewogene Sicherheit und Geschwindigkeit)
- Hohe Sicherheit: SHA-512
- Nicht empfohlen: SHA-1 (kompromittiert)
Prinzip der Hash-Verifizierung
Hash erzeugen
- Gesamten Dateiinhalt lesen
- Mit Hash-Algorithmus berechnen
- Zeichenfolge fester Länge ausgeben
Verifikationsprozess
- Offiziellen Hash-Wert beim Download abrufen
- Hash-Wert der Datei lokal berechnen
- Beide Hash-Werte vergleichen
- Identisch = Datei intakt, unterschiedlich = Datei beschädigt oder manipuliert
Warum Integrität geprüft werden kann
Eigenschaften des Hash-Algorithmus:
- Dieselbe Eingabe erzeugt immer dieselbe Ausgabe
- Unterschiedliche Eingaben erzeugen fast nie dieselbe Ausgabe (Kollisionswahrscheinlichkeit extrem gering)
- Ein geändertes Byte der Eingage verändert die Ausgabe vollständig (Lawineneffekt)
Daher reicht ein einziges verändertes Byte, um einen völlig anderen Hash-Wert zu erhalten.
Anwendungsfälle
Download-Verifizierung
Beim Download großer Dateien (Systemabbilder, Software-Installer) gibt der Anbieter einen Hash-Wert an. Nach dem Download wird der Hash lokal berechnet und verglichen, um zu bestätigen, dass der Download vollständig und unbeschädigt ist.
Manipulationsschutz
Für wichtige Dateien (Verträge, Beweise) einen Hash erzeugen und archivieren. Später prüfen, ob die Datei verändert wurde.
Datei-Deduplizierung
Wenn zwei Dateien denselben Hash haben, ist ihr Inhalt identisch (Kollisionswahrscheinlichkeit extrem gering). Hashes zur Bestimmung doppelter Dateien zu verwenden ist schneller als ein Byte-für-Byte-Vergleich.
Passwortspeicherung
Websites speichern den Hash-Wert des Benutzerpassworts, nicht den Klartext. Bei der Anmeldung wird der Hash des eingegebenen Passworts berechnet und verglichen. Selbst bei Datenbankleck kann der Angreifer das Klartextpasswort nicht erhalten.
Digitale Signatur
Digitale Zertifikate verwenden Hash + Verschlüsselung, um Quelle und Integrität einer Datei zu verifizieren.
So prüft man den Datei-Hash
Mit DocsAll prüfen
- Datei hochladen
- Das Tool berechnet MD5, SHA-1, SHA-256
- Hash-Werte anzeigen
- Mit offiziellem Hash vergleichen
Berechnung im Browser, Datei wird nicht hochgeladen.
Windows-Kommandozeile
certutil -hashfile dateiname SHA256
Mac/Linux-Kommandozeile
shasum -a 256 dateiname
md5 dateiname
Hash-Werte vergleichen
- Offiziellen Hash-Wert kopieren
- In das Vergleichsfeld einfügen
- Das Tool vergleicht automatisch
- Oder manuell Zeichen für Zeichen vergleichen
Häufige Fragen
Was tun bei unterschiedlichen Hash-Werten
- Download unvollständig: neu herunterladen
- Datei manipuliert: von vertrauenswürdiger Quelle neu herunterladen
- Unterschiedlicher Hash-Algorithmus: sicherstellen, denselben Algorithmus zu vergleichen
Ist MD5 noch verwendbar
- Integritätsprüfung (nicht sicherheitskritisch): verwendbar
- Sicherheitsanwendung (Manipulationsschutz, Passwörter): nicht empfohlen, SHA-256 verwenden
- Kollisionsrisiko: es ist möglich, zwei verschiedene Dateien mit gleichem MD5 zu konstruieren
Kann der Originaltext aus dem Hash abgeleitet werden
Nein. Hash ist eine Einwegfunktion. Es ist unmöglich, den Originaltext aus dem Hash-Wert zurückzugewinnen. Deshalb ist die Speicherung von Passwort-Hashes sicher (auch bei Leck kann der Klartext nicht wiederhergestellt werden).
Hash großer Dateien ist langsam
- Hash erfordert das Lesen der gesamten Datei
- Große Dateien (mehrere GB) benötigen Rechenzeit
- Normales Verhalten, geduldig bleiben
Groß-/Kleinschreibung bei Hash-Werten
Hash-Werte sind Hexadezimalzeichenfolgen, Groß-/Kleinschreibung spielt keine Rolle (a und A sind gleichwertig). Beim Vergleich Groß-/Kleinschreibung ignorieren.
Sicherheitshinweise
Hash-Werte aus vertrauenswürdigen Quellen verwenden
Hash-Werte von offiziellen Websites und vertrauenswürdigen Kanälen beziehen. Keine Hash-Werte unbekannter Herkunft zur Verifizierung verwenden, da sie von einem Angreifer ausgetauscht worden sein könnten.
Starken Hash-Algorithmus verwenden
Für Sicherheitsanwendungen SHA-256 oder höher verwenden. MD5 und SHA-1 sind nicht mehr sicher.
Hash ist keine Verschlüsselung
Hash ist einweg und kann nicht entschlüsselt werden. Verschlüsselung ist bidirektional und kann entschlüsselt werden. Hash nicht als Verschlüsselung verwenden.
Salted Hash
Bei der Passwortspeicherung einen Salted Hash verwenden (salt + password dann hashen), um Rainbow-Table-Angriffe zu verhindern.
Hash mit DocsAll berechnen
- Datei hochladen
- Automatische Berechnung von MD5, SHA-1, SHA-256, SHA-512
- Anzeige aller Hash-Werte
- Gewünschten Hash-Wert kopieren
- Mit offiziellem Wert vergleichen
Berechnung im Browser, Datei wird nicht zum Server gesendet.
Zusammenfassung
Datei-Hash ist der Fingerabdruck einer Datei, verwendet für Integritätsprüfung und Manipulationsschutz. MD5 ist schnell, aber kompromittiert, SHA-256 ist sicher und empfohlen. Bei der Verifizierung den Hash aus einer vertrauenswürdigen Quelle beziehen und mit demselben Algorithmus vergleichen. Das DocsAll Datei-Hash-Tool läuft im Browser, Dateien werden nicht übertragen.