MD5 ist ein 128-Bit-Hash-Algorithmus, der Anfang der 1990er Jahre vom Wissenschaftler Ronald L. Rivest entwickelt wurde. Die Abkürzung MD5 steht für Message Digest Version 5.
Die MD5-Verschlüsselung basiert auf Hashing, bei dem „Fingerabdrücke“ oder „Summen“ gebildet werden, um deren Authentizität weiter zu überprüfen. Mit dieser Methode können Sie die Integrität der Informationen sowie die Speicherung von Passwort-Hashes überprüfen.
MD5-Verlauf
Die Geschichte des Message Digest-Algorithmus (MD5) beginnt im Jahr 1991, als MIT-Professor Ronald L. Rivest über die Entwicklung eines neuen Algorithmus berichtete, der den veralteten MD4 ersetzte. Was MD4 betrifft, so wurden darin tatsächlich eine Reihe von Mängeln festgestellt, wie der deutsche Kryptologe Hans Dobbertin später schrieb.
Rivest hat den neuen MD5-Algorithmus in RFC 1321 beschrieben.
Die Arbeit an dem Algorithmus wurde von den Forschern Bert den Boer und Anton Bosselars fortgesetzt, die 1993 die Möglichkeit von Pseudokollisionen in MD5 nachwiesen, wenn verschiedene Initialisierungsvektoren mit denselben Nachrichtenauszügen übereinstimmen können.
Darüber hinaus behauptete Hans Dobbertin 1996, in MD5 eine Kollision gefunden zu haben. Zu dieser Zeit wurden weitere bevorzugte Hashing-Algorithmen bekannt, wie die kryptografischen Hash-Funktionen RIPEMD-160 – entwickelt von Hans Dobbertin, Anton Bosselars und Bart Prenel, Whirlpool – entwickelt von Vincent Raymen und Paulo Barreto und der kryptografische Hashing-Algorithmus SHA-1.
Aufgrund der relativ geringen Hash-Größe (128 Bit) in MD5 wurde über die Möglichkeit von Geburtstagsangriffen gesprochen. Das 2004 von Jean-Luc Cook ins Leben gerufene MD5CRK-Projekt hatte zum Ziel, die Verwundbarkeit des Algorithmus anhand von Geburtstagsangriffen zu untersuchen. Doch nach fünf Monaten, am 17. August 2004, wurde das Projekt aufgrund der Entdeckung einer Schwachstelle im Algorithmus durch eine Gruppe chinesischer Kryptographen unter der Leitung von Lai Xuejia eingeschränkt.
Im März 2005 erstellten die Mathematiker und Kryptografen Benne de Weger, Arjen Lenstra und Wang Xiaoyun zwei X.509-Dokumente mit demselben Hash und unterschiedlichen öffentlichen Schlüsseln.
Ein Jahr später, im März 2006, veröffentlichte der tschechische Kryptograph Vlastimil Klima einen Algorithmus, der es ermöglicht, Kollisionen auf einem einfachen Computer in nur einer Minute zu bestimmen. Dieser Algorithmus wurde als „Tunneling“-Methode bekannt.
Als Ergebnis der Analyse der Ergebnisse der Arbeit empfahl die Abteilung der National Cyber Security Administration des US-Heimatschutzministeriums (US-CERT) im Jahr 2008 allen, die an der Entwicklung beteiligt waren Software, Websites und Netzwerkbenutzer verwenden den MD5-Algorithmus nicht mehr, unabhängig vom Zweck seiner Anwendung. Der Grund für eine solche Empfehlung war die Unzuverlässigkeit, die er während des Studiums an den Tag legte.
Im Dezember 2010 entdeckten die chinesischen Kryptologen Tao Xie und Feng Denguo eine Nachrichtenkollision von 512 Bits (einem Block). Bisher wurden Kollisionen nur in Nachrichten gefunden, die zwei Blöcke oder mehr lang waren. Später erzielte Mark Stevens ähnliche Ergebnisse, indem er Blöcke mit demselben MD5-Hash veröffentlichte. Er entwickelte auch einen Algorithmus zur Ermittlung solcher Kollisionen.
Das letzte Dokument, das die Geschichte der Entwicklung des MD5-Algorithmus beendete, war eine Bitte um Kommentare – RFC 6151 (RFC ist ein offizielles Dokument, das vom Internet Engineering Council (IETF) entwickelt wurde und Spezifikationen für ein bestimmtes Dokument beschreibt Technologie), die MD5 tatsächlich als unsicheren Hashing-Algorithmus erkannte. Das Dokument empfiehlt, darauf zu verzichten und sich stattdessen für die kryptografischen Algorithmen der SHA-2-Familie zu entscheiden.
Der diskutierte MD5-Algorithmus gilt als einer der ersten Algorithmusstandards, der zur Überprüfung der Integrität von Dateien und zum Speichern von Passwörtern in Webanwendungsdatenbanken verwendet wird.
Aber tatsächlich bestimmen die relativ einfache Funktionalität, die kurze Ausgabelänge und die Einfachheit der durchgeführten Operationen als Vorteile des Algorithmus auch seine Nachteile – MD5 bezieht sich auf Algorithmen, die anfällig für Hackerangriffe sind und einen geringen Grad an Hacking aufweisen Schutz vor Geburtstagsangriffen.