FAQ: MD5, oder "Wie ich im Update-Chaos die Übersicht behalte" Original von: Philipp Kolloczek <kollocz@uni-muenster.de> Editiert von: Tobias Wolter <tobias.wolter@epost.de> Christian Peper <ich@c-peper.de> Aktualisiert: <2001/11/02> 18:37 Postfrequenz: wöchentlich, Mo 20:00 1. MD5'er, was sind das? 2. Wozu sind md5sum / md5sum.exe / MD5'er gut? 3. Wie helfen mir md5 Fingerprints in Bezug auf HL / CS? 4. Wo bekomme ich ein Programm für MD5? 5. Wie generiere ich MD5 Fingerprints? Aufrufsyntax (Kommando - Zielen - Parameter) von md5sum 6. Wie kann ich die MD5 Fingerprints einfacher vergleichen? 1. MD5'er, was sind das? Als MD5'er bezeichnet man die Checksummen oder auch Fingerprints die mit Programmen wie md5sum (Linux) bzw. md5sum.exe (Windows) oder auf dem MD5 Algorithmus basierenden Programmen erstellen kann. 2. Wozu ist md5sum / md5sum.exe / MD5'er gut? Mittels der von den MD5-Programmen generierten Fingerprints läßt sich sehr einfach kontrollieren ob Dateien unverändert sind. Dies spielt vor allem bei Datenquellen aus dem Internet eine große Rolle. So ist es auch nicht verwunderlich das MD5'er sehr gerne bei verschiedenen Linux Distributionen benutzt werden, um die Datenechtheit und Unversehrtheit zu garantieren. Dazu werden neben den eigentlichen Dateien auf den Downloadseiten auch Listen angeboten, die die MD5-Fingerprints aller zu einer Distribution gehörigen Dateien enthalten. Diese MD5-Archive sind insofern nützlich, als daß man die Fingerprints nicht unbedingt selber vergleichen muß. Die MD5 Programme können auch auf diese Archive zugreifen und mit den angegebenen Dateien vergleichen. MD5-Archive haben entweder die Endung *.md5 oder *.txt. Natürlich ist diese Kette nur so sicher wie die Quelle aller Daten und wie das eigene Vertrauen, denn wenn auf einem Mirror der 'manipulierte' Daten anbietet, auch die MD5 Archivlisten manipuliert sind, ist man wieder unsicher. 3. Wie helfen mir md5 Fingerprints in Bezug auf HL / CS? Valve Software und anhängende Gruppen veröffentlichen regelmäßig Updates Ihrer Spiele bzw. MOD's. Da keine Firma alleine dem Ansturm der Fan-Gemeinde in Sachen Download in solch einer Phase widerstehen kann, werden frühzeitig leistungsfähige Mirror-Server gesucht, die dann zum Zeitpunkt der offiziellen Freigabe eben diese Dateien auch oder ausschlieslich vorhalten sollen. Bei Valve hat es sich eingebürgert mindestens 72 Stunden vorher nach Mirrors Ausschau zu halten. Auf Drängen der in Mailing-Listen u.ä. organisierten Server Administratoren veröffentlicht Valve zum Zeitpunkt der öffentlichen Freigabe auch in diesen Listen die entsprechenden Namen sowie deren MD5-Fingerprints der Updates. Die Betreiber der Mirror erhalten diese Information gemeinhin schon früher. Für jemanden der die Files spiegelt, also einen Mirror betreibt, sind die MD5'er der Garant, daß das File richtig per FTP kopiert wurde und nicht evtl. der ASCII- statt des BINARY-Modus benutzt wurde. Man erspart sich auch die Protestmails der User nicht funktionierende Patches vorgehalten zu haben. Für den User sind die mitveröffentlichten MD5'er eine zusätzliche Sicherheit ob die Dateien richtig angekommen sind und mit denen der veröffentlichten Orginale auch übereinstimmen. Valve gibt daher die Info über Name und MD5-Fingerprint auch an die großen Newsseiten herraus. 4. Wo bekomme ich ein Programm für MD5? Programme für das Erstellen von MD5-Fingerprints findet man reichlich im Internet. Bei jeder guten Linux Distribution ist md5sum sowieso mit dabei. Für die Windows-Welt gibt es eine Reihe von MD5-Algorithmen benutzende Programme. Letztendlich rate ich aber zu dem Puristen und Urvater md5sum.exe. Sowohl über die Suchmaschine seiner Wahl und dem Stichwort md5sum oder dem Filenamen wird man fündig, ansonsten seien hier die Quellen http://etree.org/cgi-bin/counter.cgi/software/md5sum.exe MD5 : eb574b236133e60c989c6f472f07827b md5summ.exe MD5 : ffbfbcc238f518b079dc8e00452c0ce1 genannt. Die Datei sollte bei Win9x/ME in das \Windows\Command Verzeichnis und bei NT/2000 in das System32 Verzeichnis kopiert werden um immer verfügbar zu sein. 5. Wie generiere ich MD5 Fingerprints? Das Erstellen solcher MD5-Fingerprints ist sehr einfach, es gilt aber Unterschiede zwischen Linux und Windows zu beachten. md5sum beherrscht die Erstellen von Fingerprints im Binär und ASCII Modus. Dazu gibt es den Switch -b im Aufruf, vorab sei aber angemerkt, daß dieser Schalter nur unter Windows benutzt werden MUSS(!) Unter Linux hat er nur den Effekt dem Filenamen ein * voranzustellen. Beispiel: md5sume.exe md5sume.exe eb574b236133e60c989c6f472f07827b *md5sume.exe md5summ.exe -b md5summ.exe ffbfbcc238f518b079dc8e00452c0ce1 *md5summ.exe Es ist aber anzuraten die Schalter zumindest zu benutzen, wenn man MD5-Archivlisten zum Download erstellt, also die Ausgabe in eine Datei umlenkt, da sonst eine automatisierte Überprüfung unter Windows Dateien nur im ASCII Modus testet; oder man stellt sicher das der User auf die Verwendung des Binär Modus hingewiesen wird. Es gibt noch ein paar andere Switches / Schalter die für Linux wie Windows die gleiche Funktion innehaben, die Aufrufsyntax gestaltet sich derart: md5sum [-bv] [-c [file]] | [file...] -b ist der bekannte Binärschalter; er läßt Dateien im Binärmodus einlesen -v aktiviert die detailiertere Ausgabe, es wird angezeigt welche Datei gelesen wird; spielt aber eigentlich nur eine Rolle wenn -c verwendet wird -c aktiviert den Prüfmodus der sich die MD5-Fingerprints aus einer Datei lädt. Dabei ist zu beachten das sich dieses File, die MD5-Archivliste, im selben Ordner wie die zu prüfenden Dateien befindet. Der Aufruf: md5sume.exe -c md5_lok.txt Die Ausgabe: md5sume.exe: OK md5summ.exe: OK oder md5sume.exe: FAILED md5summ.exe: FAILED md5sume.exe: WARNING: 2 of 2 computed checksums did NOT match Der Aufruf: md5summ.exe -c md5_lok.txt Die Ausgabe: (ohne irgendeine Ausgabe) oder MD5SUMM.EXE: MD5 check failed for 'md5sume.exe' MD5SUMM.EXE: MD5 check failed for 'md5summ.exe' würde die MD5-Archivliste md5_lok.txt einlesen, die den Inhalt: eb574b236133e60c989c6f472f07827b *md5sume.exe ffbfbcc238f518b079dc8e00452c0ce1 *md5summ.exe hat und dann die Dateien md5sume.exe sowie md5summ.exe im gleichen Ordner suchen, deren MD5-Fingerprints erstellen und gegen die Fingerprints in der Datei prüfen und ggf. eine Meldung "OK" od. "failed" ausgeben. Will man MD5-Archivlisten erstellen so kann man natürlich auch WildCards benutzen, um nicht alle Filenamen per Pipe ( | ) getrennt eingeben zu müssen. Die Verwendung der Umlenkbefehle > und >> sind auch möglich. So kann man mit dem Befehl md5sume.exe -b *.exe > md5_lok.txt md5summ.exe -b *.exe > md5_lok.txt <== geht NICHT!! Datei md5_lok.txt ausgeben lassen. Die Ausgabedatei liegt dabei im Textformat vor. Will man von Hand die Fingerprints mehrer Dateien in einer Liste zusammenführen, so sollte man es mit den Umlenkunszeichen >> realisieren, da mdsume.exe -b nocheine.exe >> md5_lok.txt den Fingerprint der Datei nocheine.exe an das Ende der Datei md5_lok.txt anhängt. Würde man hier nur > verwenden, würde die md5_lok.txt Datei überschrieben werden. 6. Wie kann ich die MD5 Fingerprints einfacher vergleichen? Wenn man es leid ist die MD5-Fingerprints von Hand zu vergleichen, was die Fehlerquelle des Verrutschens enthält, kann man einfach den Switch -c bei md5sume.exe benutzen. Die Syntax entnehmt bitte Punkt 5.