Warum ist es wichtig, dass das Geheimnis beim Signieren mit MD5 am Ende ist?


16

Es wird oft gesagt, dass das gemeinsame Geheimnis am Ende stehen muss, wenn der MD5-Algorithmus zum Signieren beliebiger Informationen verwendet wird. Warum?


2
Können Sie bitte genauer sein, anstatt "oft gesagt" zu sagen? Können Sie Verweise zitieren und auch erläutern, warum das Problem relevant ist?
Suresh Venkat

Ihr Fragentitel enthält einen Tippfehler: Können Sie "und" ändern, um "zu beenden"?
Carlos Scheidegger

Antworten:


16

Siehe "Erweiterungsangriffe" in der Merkle-Damgard-Konstruktion . Dieses Problem tritt bei der Verwendung von Hash-Funktionen für die Nachrichtenauthentifizierung auf .

Kurz gesagt: Wenn Sie das Geheimnis an den Anfang stellen, kann der Angreifer mit einer bestimmten Nachricht und ihrem Hash jede Nachricht fälschen, die die angegebene Nachricht als Präfix enthält. Dies ist ein Problem für naive Codes, wird jedoch durch bekannte Codes wie HMAC vermieden .


1
Wenn Sie den Eingabestream unterbrechen und der gemeinsam genutzte Schlüssel der Anfang des Streams ist, erhält der erste Block fast immer den gleichen Hash und der gemeinsam genutzte Schlüssel kann daher durch die Verwendung von Regenbogenangriffen erraten werden, oder?
Alexandru
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.