Integrität einer Datei prüfen

Di, 1. März 2022, Ralf Hersel

Distro-Hopper kennen es; lädt man die ISO-Datei einer Distribution herunter, so wird fast immer eine zugehörige Prüfdatei angeboten. Die Prüfdatei enthält Hash-Codes oder Prüfsummen. Das verwendete Verfahren erkennt man in der Regel an einem der Texte: "md5, sha256, sha512" im Dateinamen. Um die technische Integrität der ISO-Datei zu überprüfen, gibt es mehrere Möglichkeiten.

Der Zweck von Hashes oder Hash-Codes und Prüfsummen ist der gleiche. Beide werden verwendet, um die Integrität einer Datei durch eine alphanumerische Zeichenfolge zu gewährleisten. Wenn der Hochlader einer Datei diesen Hash für die Datei bereitgestellt hat, kann man ihn leicht überprüfen. Nach dem Heruntergeladen kann mit einem Hash-Checker oder einem MD5-Prüfsummenprogramm die Hash-Signatur der Originaldatei und der Kopie der Datei verglichen werden. Wenn die Signaturen nicht übereinstimmen, bedeutet dies, dass die Kopie der Datei möglicherweise beschädigt ist oder kompromittiert wurde.


Angenommen, eine unbefugte Person hat die Originaldatei verändert oder sie wurde durch einen fehlerhaften Download beschädigt, dann ändert sich der Prüfsummenwert der Datei. Eine Datei kann aus vielen Gründen beschädigt sein, zum Beispiel durch Netzwerkprobleme beim Herunterladen einer Datei, Fehler, die sich beim Kopieren und Verschieben einschleichen, sowie das Speichern einer Datei auf einem fehlerhaften Speicherlaufwerk.

Es gibt viele Anwendungen, mit denen die Dateiintegrität geprüft werden kann. Im Screenshot oben ist das Programm GtkHash zu sehen. Darin öffnet man eine Datei (im Beispiel: current.iso) und klickt den Hash-Schalter rechts unten. Daraufhin werden diverse Prüf-Codes angezeigt (im Beispiel: MD5 und SHA256). Nun kann man einen dieser Codes mit dem Inhalt der Prüfdatei vergleichen. Stimmen beide überein, weiss man, dass die überprüfte ISO-Datei nicht defekt ist. Eine inhaltliche Integrität kann man nur dann annehmen, wenn darauf vertraut wird, dass beide Dateien (ISO und Prüfdatei) bei der Download-Quelle nicht manipuliert wurden. Es könnte ja sein, dass sich auf der Download-Seite sowohl eine manipulierte ISO-Datei, als auch die dazu passende Prüfdatei befinden.

Wem diese Prozedur zu umständlich ist (1. GtkHash starten, 2. ISO-Datei öffnen, 3. Hash ermitteln, 4. Prüfdatei im Editor öffnen, 5. Codes vergleichen), kann die Prüfung auch im Terminal durchführen. Dafür gibt es die Befehle md5sum, sha256sum, sha512sum, die auf die ISO-Datei angewendet werden. Hier ein Beispiel:

Zuerst wird die MD5-Prüfsumme der Datei current.iso angezeigt; danach der Inhalt der Prüfdatei current.iso.md5.txt ausgegeben. Nun kann man die beiden Codes sehr gut miteinander vergleichen. Im gezeigten Beispiel stimmen sie überein. Falls aus dem Namen der Prüfdatei der verwendete Algorithmus nicht ersichtlich ist, kann man die Prüfdatei öffnen und nachsehen. Heute wird meistens sha256 oder sha512 verwendet.

Sollten die Dateinnamen dem oben gezeigten Namensschema folgen, kann der Vergleich der Codes auch direkt vom md5- bzw. sha-Befehl durchgeführt werden, indem man den Parameter -c verwendet. Das sieht dann so aus:

md5sum -c current.iso.md5.txt
current.iso: OK

Tags

Datei, ISO-Datei, Prüfdatei, Beispiel, Codes, Hash, ISO, MD5