Definition

MD5

Was ist MD5?

Der Hash-Algorithmus MD5 (message-digest algorithm) ist eine kryptografische Funktion, die eine Nachricht beliebiger Länge als Eingabe akzeptiert und als Ausgabe einen Prüfwert fester Länge liefert, der zur Authentifizierung der ursprünglichen Nachricht verwendet werden kann.

Die MD5-Hash-Funktion wurde ursprünglich als sicherer kryptografischer Hash-Algorithmus für die Authentifizierung digitaler Signaturen entwickelt. MD5 ist jedoch für andere Zwecke als eine nicht kryptografische Prüfsumme zur Überprüfung der Datenintegrität und zur Erkennung unbeabsichtigter Datenverfälschungen nicht mehr geeignet.

Wofür wird MD5 verwendet?

Obwohl ursprünglich als kryptografischer Algorithmus zur Authentifizierung von Nachrichten für den Einsatz im Internet konzipiert, gilt das MD5-Hashing nicht mehr als zuverlässig für die Verwendung als kryptografische Prüfsumme. Sicherheitsexperten haben Techniken demonstriert, mit denen MD5-Kollisionen auf handelsüblichen Computern leicht hergestellt werden können. Eine Verschlüsselungskollision bedeutet, dass zwei Dateien denselben Hash-Wert haben. Hash-Funktionen werden für die Nachrichtensicherheit, die Passwortsicherheit, die Computerforensik und Kryptowährungen verwendet.

Ronald Rivest, Gründer von RSA Data Security LLC und Professor am Massachusetts Institute of Technology, entwickelte MD5 im Jahr 1991 als Verbesserung eines früheren Algorithmus zur Nachrichtenprüfung, MD4. Er beschrieb ihn im Internet Engineering Task Force (IETF) Request for Comments (RFC) 1321, „The MD5 Message-Digest Algorithm“, und schrieb:

„Der Algorithmus nimmt als Eingabe eine Nachricht beliebiger Länge und erzeugt als Ausgabe einen 128-Bit-„Fingerabdruck“ oder „Message Digest“ der Eingabe. Es wird vermutet, dass es rechnerisch nicht möglich ist, zwei Nachrichten mit demselben Message Digest zu erzeugen oder eine beliebige Nachricht mit einem bestimmten vorgegebenen Message Digest zu erzeugen. Der MD5-Algorithmus ist für digitale Signaturanwendungen gedacht, bei denen eine große Datei auf sichere Weise „komprimiert“ werden muss, bevor sie mit einem privaten (geheimen) Schlüssel unter einem Kryptosystem mit öffentlichem Schlüssel wie RSA verschlüsselt wird.“

Die IETF schlägt vor, dass MD5-Hashing immer noch für den Integritätsschutz verwendet werden kann, und merkt an: „Wenn die MD5-Prüfsumme innerhalb des Protokolls ausschließlich zum Schutz vor Fehlern verwendet wird, ist eine MD5-Prüfsumme immer noch eine akzeptable Verwendung“. Sie fügte jedoch hinzu, dass „jede Anwendung und jedes Protokoll, das MD5 für irgendeinen Zweck einsetzt, die von der Verwendung von MD5 erwarteten Sicherheitsdienste klar darlegen muss.“

Merkmale des Message-Digest-Algorithmus

Message Digests, auch als Hash-Funktionen bekannt, sind Einwegfunktionen; sie akzeptieren eine Nachricht beliebiger Größe als Eingabe und erzeugen als Ausgabe einen Message Digest fester Länge.

MD5 ist der dritte von Rivest geschaffene Algorithmus zur Nachrichtenprüfung. MD2, MD4 und MD5 haben ähnliche Strukturen, aber MD2 wurde für 8-Bit-Maschinen optimiert, im Gegensatz zu den beiden späteren Algorithmen, die für 32-Bit-Maschinen ausgelegt sind. Der MD5-Algorithmus ist eine Erweiterung von MD4, der in der kritischen Überprüfung als schnell, aber potenziell unsicher eingestuft wurde. Im Vergleich dazu ist MD5 nicht ganz so schnell wie der MD4-Algorithmus, bietet aber eine wesentlich höhere Datensicherheit.

Wie funktioniert MD5?

Der MD5-Hash-Algorithmus verarbeitet Daten in 512-Bit-Zeichenketten, die in 16 Wörter zu je 32 Bit unterteilt sind. Die Ausgabe von MD5 ist ein 128-Bit-Message-Digest-Wert.

Die Berechnung des MD5-Digest-Wertes erfolgt in separaten Stufen, die jeden 512-Bit-Datenblock zusammen mit dem in der vorangegangenen Stufe berechneten Wert verarbeiten. Die erste Stufe beginnt mit der Initialisierung der Prüfwerte durch aufeinanderfolgende hexadezimale Zahlenwerte. Jede Stufe umfasst vier Message-Digest-Durchläufe, bei denen die Werte im aktuellen Datenblock und die aus dem vorherigen Block verarbeiteten Werte bearbeitet werden. Der endgültige Wert, der aus dem letzten Block berechnet wird, ist der MD5-Digest für diesen Block.

Wie sicher ist MD5?

Das Ziel jeder Hashfunktion ist es, Hashwerte zu erzeugen, die wie zufällig erscheinen. Um als kryptografisch sicher zu gelten, sollte die Hash-Funktion zwei Anforderungen erfüllen:

  • Für einen Angreifer ist es unmöglich, eine Nachricht zu generieren, die einem bestimmten Hash-Wert entspricht.
  • Es ist für einen Angreifer unmöglich, zwei Nachrichten zu erstellen, die denselben Hash-Wert ergeben.

MD5-Hashes gelten nicht mehr als kryptografisch sichere Methoden und sollten laut IETF nicht für die kryptografische Authentifizierung verwendet werden.

Im Jahr 2011 veröffentlichte die IETF den RFC 6151, „Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms“, in dem eine Reihe aktueller Angriffe auf MD5-Hashes aufgeführt wurden. Darin wurden mehrere aktuelle Angriffe auf MD5-Hashes genannt, von denen einer auf einem Standard-Notebook in einer Minute oder weniger zu Kollisionen führte und ein anderer auf einem 2,6-GHz-Pentium-4-System in nur zehn Sekunden eine Kollision erzeugen konnte. Infolgedessen schlug die IETF vor, dass neue Protokollentwürfe MD5 überhaupt nicht verwenden sollten, und dass die jüngsten Forschungsangriffe auf den Algorithmus „genügend Gründe geliefert haben, um die Verwendung von MD5 in Anwendungen zu eliminieren, bei denen Kollisionssicherheit erforderlich ist, wie etwa bei digitalen Signaturen“.

Alternativen zu MD5

Ein Hauptproblem bei MD5 ist die Gefahr von Nachrichtenkollisionen, wenn Hashcodes versehentlich dupliziert werden. MD5-Hash-Code-Zeichenketten sind außerdem auf 128 Bit begrenzt. Dadurch sind sie leichter zu knacken als andere spätere Hashcode-Algorithmen.

Zu den alternativen Hash-Codes zu MD5 gehören die folgenden.

Secure Hash Algorithm 1 (SHA-1). SHA-1 wurde in den 1990er Jahren von der US-Regierung entwickelt und verwendet bei der Entwicklung von Algorithmen zur Nachrichtenverdichtung ähnliche Techniken wie MD5. Allerdings erzeugte SHA-1 sicherere 160-Bit-Werte im Vergleich zu den 128-Bit-Hash-Werten von MD5. Trotzdem hatte SHA-1 einige Schwächen und erwies sich auch nicht als die ultimative algorithmische Methode zur Verschlüsselung. Sicherheitsbedenken wurden laut und veranlassten Unternehmen wie Microsoft, die Unterstützung für SHA-1 in ihrer Software einzustellen.

Die SHA-2-Hashcode-Familie. Der sicherere Nachfolger von SHA-1, der heute weit verbreitet ist, ist die SHA-2-Familie von Hash-Codes. SHA-2-Hash-Codes wurden 2001 von der U.S. National Security Agency entwickelt. Sie stellen insofern eine erhebliche Abweichung von SHA-1 dar, als die SHA-2-Algorithmen für den Nachrichten-Digest länger und schwerer zu knacken sind. Die Algorithmen der SHA-2-Familie liefern Hash-Werte mit einer Länge von 224, 256, 384 und 512 Bit. Sie sind unter den Namen ihrer Message-Digest-Längen bekannt - zum Beispiel SHA-224 und SHA-256.

CRC (Cyclic Redundancy Check). CRC-Codes werden oft als möglicher Ersatz für MD5 vorgeschlagen, da sowohl MD5 als auch CRC Hashing-Funktionen ausführen und beide Prüfsummen liefern. Doch damit endet die Ähnlichkeit. Ein 32-Bit-CRC-Code wird zur Erkennung von Fehlern bei der Datenübertragung verwendet, damit beschädigte oder verlorene Daten identifiziert werden können. MD5 hingegen ist ein sicherer Hash-Algorithmus und eine kryptografische Hash-Funktion, die einige Datenverfälschungen erkennen kann, aber in erster Linie für die sichere Verschlüsselung von Daten, die übertragen werden, und die Überprüfung digitaler Zertifikate gedacht ist.

Diese Definition wurde zuletzt im April 2024 aktualisiert

Erfahren Sie mehr über Datensicherheit

ComputerWeekly.de
Close