Downloads mittels Hashwerten in Windows prüfen

Veröffentlicht von

Oft sieht man bei Downloads Angaben zu den Hash-Werten der Download-Datei. Meist werden Hash-Werte für SHA-256, SHA- oder MD5 angegeben. Was kann man damit tun?

Ein Hash-Wert erlaubt die Dateiintegrität nach dem Download zu überprüfen. Kurz gesagt, kam die richtige Datei an oder wurde diese unterwegs manipuliert. Bei der Berechnung des Hash-Wertes wird über die einzelnen Bytes der Datei eine mathematische Funktion angewandt. Verändert sich ein Byte der Datei, dann wird ein anderer Hash-Wert erzeugt. Je nach Hash-Verfahren ist es sehr schwierig einen gleichen Hash-Wert für eine manipulierte Datei zu erzeugen.

Wozu das Ganze? Nun nehmen wir mal an, wir wollen eine Software aus dem Internet herunterladen. Oft gibt es verschiedene Downloadquellen in Form von verschiedenen Servern. Besonders im OpenSource-Bereich werden Downloads auf verschiedene Server verteilt, damit einzelne Server nicht überlastet werden oder Anwender einen schnellen Downloadserver im eigenen Land verwenden können.

Nun kann es sein, dass ein solcher Server kompromittiert wird und die Downloaddatei ausgetauscht wird. Statt dem neuen LibreOffice lädt man sich den neuesten Cryptotrojaner herunter. Mittels des Hash-Werts von der Original-Seite kann der Download überprüft werden.

Auch bei abgebrochenen Downloads oder Übertragungsfehler kann eine solche Überprüfung helfen, Dateifehler zu erkennen. Bevor man das neueste Firmwareupdate auf den Sattelitenreceiver einspielt, kann man so den Download, vor dem Einspielen überprüfen. So spart man sich das Gerät kaputt zu updaten.

Überprüfung mit certutil

Windows bringt das Kommandozeilentool “certutil” mit. Dieses kann Hashwerte zu Dateien ermitteln. Nehmen wir folgendes Beispiel für einen Download. Der Anbieter gibt drei verschiedene Hashes mit. SHA-256, SHA1 und MD5 sind verschiedene Verfahren. MD5 und SHA1 sind etwas älter. Sie sind nicht immer ganz eindeutig, auch wenn es schwierig ist, dies bewusst einzusetzen. Von daher sollte man SHA-256 nehmen, sofern verfügbar.

Nach dem Download wechseln wir in die Eingabeaufforderung.

Wir wechseln nun in das Verzeichnis mit dem Download. Ich habe meinen Download nach “c:\temp” abgespeichert. Also “cd c:\temp”.
Mit “dir” zeige ich den Verzeichnisinhalt an:

Da haben wir die Datei. Diese können wir nun mit folgendem Befehl überprüfen:

certutil -hashfile LibreOffice_6.2.1_Win_x64_sdk.msi sha256

Am letzten Parameter des Befehls geben wir das Hash-Verfahren an. In diesem Fall sha256. Das Ergebnis wird ausgegeben:

Ein Vergleich zeigt, dass die Datei richtig bei uns ankam:

Auch andere Hash-Verfahren sind möglich:

Manipulieren wir die Datei jetzt (ich habe im Beispiel ein Byte verändert), dann wird ein anderer Hash-Wert erzeugt und die Veränderung fällt auf:

Zum Vergleich nochmal der richtige Hash-Wert:

Wie man sieht führt selbst die kleinste Veränderung zu einem komplett anderen Hash-Wert.

Alternativen

Wer nicht auf der Eingabeaufforderung herumturnen möchte, der kann auch zu kostenlosen Tools wie “RapidCRC” oder “winMd5Sum” greifen:

2 Kommentare

  1. Gute Analse, danke!

    Wie kann ich sichergehen, dass ich den richtigen Hash zum Vergleich habe? Immerhin wäre es doch möglich, zugleich die Datei und den daneben gezeigten Hash zu manipulieren.

    1. Guter Punkt, wenn das der Fall ist, hilft Dir der Hash wenig. Letztlich ist es eine zusätzliche Sicherung. Statt nur die ausführbare Datei zu ändern, müsste der Angreifer auch Zugriff auf die Webseite haben und hier ebenfalls die Änderung vornehmen. Wenn er beides hat, hilft Dir die Prüfung nicht mehr, dass stimmt.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert