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?

Hendrik Brummermann
quelle
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 .

Randomwalker
quelle
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