Message-Digest Algorithm 5: Unterschied zwischen den Versionen
K Textersetzung - „Kryptographische Hashfunktion“ durch „Kryptografie/Hash“ |
K Dirkwagner verschob die Seite Md5 nach Message-Digest Algorithm 5 |
||
(kein Unterschied)
|
Aktuelle Version vom 2. März 2024, 10:43 Uhr
Message-Digest Algorithm 5 (MD5) - Kryptografie/Hash, die aus einer beliebigen Nachricht einen 128-Bit-Hashwert berechnet
Beschreibung
Message-Digest Algorithm 5 (MD5) ist eine verbreitete kryptographische Hashfunktion, die aus einer beliebigen Nachricht einen 128-Bit-Hashwert berechnet
- Sie wurde 1991 von Ronald L. Rivest am Massachusetts Institute of Technology als Nachfolger von MD4 entwickelt
- Der englische Begriff „Message Digest“ steht für einen kurzen Zahlenwert fester Länge, der deterministisch aus der gegebenen Nachricht berechnet wird
- Sicherheit
Inzwischen ist bekannt, dass MD5 keine Kollisionsresistenz bietet und somit unsicher ist
- Auch die Preimage-Resistenz ist theoretisch gebrochen, allerdings ist ein Preimage-Angriff gegen MD5 nicht praktikabel
MD5-Hashwert
Die 128 Bit langen MD5-Hashwerte werden üblicherweise als 32-stellige Hexadezimalzahl notiert
- Beispiel für eine 59 Byte lange ASCII-Eingabe mit zugehörigem MD5-Hashwert:
md5("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern") = a3cca2b2aa1e3b5b3b5aad99a8529074
Es ist praktisch unmöglich, eine weitere Nachricht, die genau diesen Hashwert ergibt, zu bestimmen
- Eine beliebige Änderung des Textes (im Folgenden wird nur ein Buchstabe verändert) erzeugt aufgrund des Lawineneffekts einen komplett anderen Hashwert:
md5("Frank jagt im komplett verwahrlosten Taxi quer durch Bayern") = 7e716d0e702df0505fc72e2b89467910
Der Hash einer Zeichenfolge der Länge null ist:
md5("") = d41d8cd98f00b204e9800998ecf8427e
Verwendung und Verfügbarkeit
Unter den meisten Linux-Distributionen wird das Programm md5sum als Bestandteil der coreutils standardmäßig installiert
Auf BSD-abgeleiteten Betriebssystemen wie macOS gibt es das Kommando md5
- In Python ist MD5 in der Programmbibliothek (hashlib) enthalten
Auf vielen anderen Unix-Derivaten ist Python installiert oder man kann sich mit dem meist installierten Programm OpenSSL behelfen
- Python kann auch online aufgerufen werden. Microsoft-Windows-Betriebssysteme ab den Versionen Windows 8.1 bzw. Windows Server 2012 R2 verfügen standardmäßig über das PowerShell Cmdlet Get-Filehash
Prüfsumme einer Datei
Nach erfolgreichem Download einer oder mehrerer Dateien kann der Anbieter der Daten in einer weiteren Datei den dazugehörigen MD5-Hashwert zur Verfügung stellen. Über ein Prüfprogramm kann der Hashwert aus der heruntergeladenen Datei berechnet werden, der dann mit dem zur Verfügung gestellten Hashwert verglichen wird
- Sind beide Hashwerte identisch, ist die Integrität der heruntergeladenen Datei bestätigt
- Demnach traten beim Download der Datei keine Übertragungsfehler auf, was dem Anwendungszweck einer Prüfsumme entspricht
- Dies bietet keine Sicherheit hinsichtlich einer gezielten Datenmanipulation durch einen Angreifer (Man-in-the-Middle-Angriff), da der Angreifer neben den übertragenen Daten auch den angebotenen MD5-Hashwert manipulieren kann
- Bei Verwendung eines Spiegelservers für den Download stellt beispielsweise der Betreiber des Spiegelservers einen möglichen Angreifer dar
- Um eine Manipulation durch diesen auszuschließen, muss entweder der MD5-Hashwert aus einer vertrauenswürdigen Quelle über einen sicheren Kanal bezogen werden, oder die Authentizität der Datei muss durch ein anderes Verfahren sichergestellt werden
- Dazu eignet sich eine digitale Signatur oder ein Message Authentication Code, der eine Hashfunktion mit einem schlüsselbasierten, kryptographischen Mechanismus kombiniert
Zufallsgenerator
Wie jede kryptographische Hashfunktion kann MD5 als deterministischer Generator von Pseudo-Zufallszahlen genutzt werden
- Dadurch lässt sich zum Beispiel eine Stromverschlüsselung realisieren
Anhang
Siehe auch
Links
Weblinks
RFC
- RFC-Internet |RFC=1321 |Titel=The MD5 Message-Digest Algorithm |Datum=1992-04 |Autor=R. Rivest