OriginalSeite bei-ekke / MD5 / [ de.alt.games.half-life ] MD5 FAQ


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. 

Der Autor distanziert sich ausdrücklich vom Inhalt aller externen Links und Verweise.
Er übernimmt keine Gewähr oder Haftung für
Vollständigkeit, Richtigkeit, Aktualität oder etwaige Schäden.