Bei MD5 (Message-Digest Algorithm 5) handelt es sich um eine komplexe Hashfunktion, die in erster Linie eingesetzt wird, um aus einer bestimmten Nachricht oder Zeichenkette einen stets gleichen Hashwert zu erzeugen. Der Message-Digest Algorithm 5 kommt bei verschiedenen Anwendungen zum Einsatz, wie beispielsweise bei der Validierung von Download-Dateien oder beim Speichern von Passwörtern.

Message-Digest Algorithm 5 im Überblick

Die Abkürzung MD5 ist englischen Ursprungs und steht für „Message-Digest Algorithm 5“. Hierbei handelt es sich um eine Hashfunktion aus der Kryptografie, die aus einer beliebigen Zeichenkette einen einzigartigen Hashwert erzeugt. Im Gegensatz zu gängigen Verschlüsselungsverfahren ist die Funktion nicht umkehrbar, womit verhindert wird, dass sich aus dem Hashwert die ursprüngliche Zeichenkette rekonstruieren lässt.
MD5 wurde von dem amerikanischen Mathematiker und Kryptologen Ronald L. Rivest im Jahr 1991 am Massachusetts Institute of Technology entwickelt. Message-Digest Algorithm 5 wurde als der direkte Nachfolger des als unsicher geltenden MD4-Hashfunktion konzipiert. Typische Einsatzszenarien von MD5 sind die Validierung von Download-Dateien und das Speichern von Passwörtern. Der Message-Digest Algorithm 5 gilt heute jedoch nicht mehr als ausreichend sicher. Es wurden verschiedene Angriffsmethoden, wie beispielsweise Kollisionsangriffe, entwickelt und erfolgreich eingesetzt, mit denen es möglich ist, die passende Ausgangszeichenkette zu einem bestimmten Hashwert mit vertretbarem Aufwand zu erzeugen.

Die grundsätzlichen Kriterien einer MD5-Hashfunktion

Eine MD5-Hashfunktion muss wie alle anderen Hashfunktionen mehrere Kriterien erfüllen. So muss beispielsweise die identische Zeichenkette immer den gleichen Hashwert erzeugen. Darüber hinaus muss verhindert werden, dass sich aus einem Hashwert die ursprüngliche Zeichenkette ermitteln lässt. Mit MD5 lassen sich jedoch nicht alle Anforderungen ganzheitlich erfüllen. So ist es beispielsweise bekannt, dass unterschiedliche Zeichenketten durchaus einen identischen Hashwert liefern können. In solchen Fällen spricht man von einer Kollision. Die Sicherheit und Integrität einer MD5-Anwendung sind direkt von der Einhaltung dieser Kriterien abhängig.


Der Message-Digest Algorithm 5 basiert auf der sogenannten „Merkle-Damgard-Konstruktion“. Dieser hochkomplexe Algorithmus füllt die Ausgangszeichenfolge bis zu einer bestimmten Länge mit Nullen und Einsen auf und setzt danach blockweise Komprimierungsfunktionen an. Es werden mehrere Durchgänge mit mathematischen Funktionen durchlaufen, bis ein 128-Bit-Wert erreicht und als Ergebnis präsentiert wird.

Einsatzbereiche

Message-Digest Algorithm 5 kommt in zahlreichen Anwendungen zum Einsatz. Ein häufiger Anwendungsfall ist die Validierung einer aus dem World Wide Web heruntergeladenen Datei auf ihre Vollständigkeit. Die Validierung soll Übertragungsfehler des Netzwerks, die bis zu einem gewissen Grad ausgeglichen werden können, ausschließen. Um diese Funktionalität sicherstellen zu können, wird auf Basis der Ausgangsdatei zunächst eine MD5-Prüfsumme berechnet und gemeinsam mit der Datei übertragen. Im nächsten Schritt berechnet der Empfänger eine Prüfsumme anhand der empfangenen Datei und gleicht diese mit der mitgesendeten Prüfsumme ab. Falls die Signaturen beider Hashwerte miteinander übereinstimmen, war die Übertragung erfolgreich und die Integrität der Datei ist validiert. Diverse Angriffsmethoden, wie beispielsweise Man-in-the-Middle-Angriffe lassen sich durch die Prüfmethode jedoch nicht völlig ausschließen, da Angreifer die Hashsignatur nach Veränderung der Datei wieder neu erzeugen können.
Ein weiterer beliebter Einsatzbereich ist das sichere Speichern von Passwörtern. Passwörter werden nicht im Klartext, sondern als MD5-Hashwerte lokal gespeichert. Dadurch werden die Passwörter in der gespeicherten Datei für unbefugte Personen unlesbar, auch dann, wenn diese vollen Zugriff auf die Passwort-Datei haben sollten. Da bei dem Message-Digest Algorithm 5 das Zurücksetzen der Hashsignatur unmöglich ist, kann auch das ursprüngliche Passwort nicht einfach rekonstruiert werden.

Mehr zum Thema:
Was ist ein Honeypot?

Weitere Anwendungsbereiche von MD5 sind:

– Generierung von Passwörtern und Zufallszahlen
– Erstellen digitaler Signaturen
– Ableiten von Schlüsseln

Wie sicher ist MD5?

Der Message-Digest Algorithm 5 ist weit verbreitet und galt ursprünglich als kryptografisch sicher. Er wird heutzutage jedoch als nicht mehr ausreichend sicher angesehen. Schwächen, wie beispielsweise das gezielte Errechnen von Kollisionen, sind schon seit 1994 bekannt. Die grundlegende Arbeit, um diese Schwachstelle auszunutzen, leistete der deutsche Mathematiker und Kryptologe Hans Dobbertin, der einige Jahre zuvor einen erfolgreichen Angriff auf MD4 entwickelt hatte und die eingesetzten Methoden und Techniken auf MD5 übertrug. Mit aktuellen Computern lässt sich eine zum Hashwert passende Zeichenkette in der Regel binnen weniger Minuten errechnen.
Aus diesem Grund sollte der Message-Digest Algorithm 5 für kryptografische Anwendungen nicht mehr verwendet werden. Eine weitere beliebte und äußerst effiziente Angriffsmethode für MD5 sind Angriffe mit sogenannten „Regenbogentabellen“. In solchen Tabellen befinden sich Zeichenketten mit den zugehörigen Hashwerten. Hacker die einen Hashwert knacken wollen, müssen diesen einfach mit den in der Regenbogentabelle gespeicherten Hashwerten abgleichen. Mit ein wenig Glück lässt sich so unter Umständen die passende Zeichenkette ermitteln. Im Internet gibt es gigantische Regenbogentabellen mit Millionen von Einträgen, die für Angriffe genutzt werden können.

Letzte Artikel von Daniel Faust (Alle anzeigen)