Ich habe etwas gelesen, das besagt, dass das HMAC-Konstrukt das Problem von Kollisionen im zugrunde liegenden Hash verringern kann.
Bedeutet das, dass so etwas wie HMAC-MD5 immer noch als sicher für die Authentifizierung verschlüsselter Daten angesehen werden kann?
Kommentare
- Etwas relevant (Brute Forcing HMAC) crypto.stackexchange.com/a/6753/5231
- Sie finden Antworten zu die Sicherheit von HMAC-MD5 im Allgemeinen durch Folgen dieses Links .
Antwort
Ja, Derzeit sind keine Angriffe auf HMAC-MD5 bekannt.
Insbesondere nach den ersten Kollisionsangriffen auf MD5 hat Mihir Bellare (einer der Erfinder von HMAC) ein neuer Sicherheitsnachweis für HMAC , für den keine Kollisionsfestigkeit erforderlich ist:
„ Zusammenfassung: HMAC wurde von Bellare, Canetti und Krawczyk (1996) als PRF nachgewiesen, wobei angenommen wurde, dass (1) die zugrunde liegende Kompressionsfunktion eine PRF ist und (2) die iterierte Hash-Funktion schwach kollisionsresistent ist. Jüngste Angriffe zeigen jedoch, dass die Annahme (2) für MD5 und SHA-1 falsch ist, wodurch die beweisbasierte Unterstützung für HMAC in diesen Fällen aufgehoben wird. Dieses Papier beweist, dass HMAC ein PRF ist, unter der alleinigen Annahme, dass die Komprimierungsfunktion ein PRF ist. Dies stellt eine beweisbasierte Garantie wieder her, da keine bekannten Angriffe die Pseudozufälligkeit der Komprimierungsfunktion beeinträchtigen, und es hilft auch, die Angriffsresistenz zu erklären, die HMAC selbst bei Implementierung mit Hash-Funktionen gezeigt hat, deren (schwache) Kollisionsbeständigkeit beeinträchtigt ist. Wir zeigen auch, dass eine noch schwächere als PRF-Bedingung für die Komprimierungsfunktion, nämlich dass es sich um einen datenschutzschonenden MAC handelt, ausreicht, um festzustellen, dass HMAC ein sicherer MAC ist, solange die Hash-Funktion die sehr schwache Anforderung erfüllt, fast rechnerisch zu sein universell, wobei der Wert wiederum in der Tatsache liegt, dass bekannte Angriffe die getroffenen Annahmen nicht ungültig machen. „
Dies ist jedoch nicht bedeutet, dass Sie HMAC-MD5 in neuen Kryptosystemdesigns verwenden sollten. Um Bruce Schneier zu paraphrasieren: „ Angriffe werden nur besser, niemals schlechter. „Wir haben bereits praktische Kollisionsangriffe für MD5, die zeigen, dass es seine ursprünglichen Sicherheitsziele nicht erreicht. Es ist möglich, dass jeden Tag jemand einen Weg findet, diese auf einen neuen Angriff auszudehnen, der würde die Sicherheit von HMAC-MD5 gefährden. Eine viel bessere Wahl wäre die Verwendung von HMAC mit einer Hash-Funktion ohne bekannte Angriffe wie SHA-2 oder SHA-3.
Kommentare
- SHA-2 hat bekannte Angriffe: en.wikipedia.org/wiki/SHA-2
- @baptx Any kryptografisches Grundelement hat " bekannte Angriffe ". Die Frage ist, ob sie die volle Anzahl von Runden signifikant brechen. Für SHA-2 wird derzeit ' t nicht verwendet. Sofern Sie nicht nachweisen können, dass SHA-2 mit irgendeiner Bedeutung gebrochen wurde, möchte ich diese Kommentare aus der Antwort entfernen.
- " Die jüngsten Angriffe zeigen diese Annahme (2) ist falsch für MD5 " welche jüngsten Angriffe? der gewählte Präfix-Angriff? Warum bedeutet das?
Antwort
Die Antwort von Ilmari Karonen ist korrekt, wenn HMAC für seine verwendet wird Verwendungszweck, aber das bedeutet nicht, dass HMAC von den Kollisionen von MD5 völlig unberührt bleibt:
Beachten Sie bei einem bestimmten Schlüssel, dass K xor opad
und K xor ipad
unabhängig von der Nachricht sind m
. Dies bedeutet, dass jede Kollision in H((K xor ipad) || m)
sogar zu einer Kollision HMAC
führt mit zwei verschiedenen Nachrichten.
Für HmacMd5 wäre K xor ipad
64 Byte lang. Wenn Sie also zwei Nachrichten finden, m1
und m2
mit mindestens einem gemeinsamen 64-Byte-Präfix pre
können Sie einen Schlüssel berechnen K = pre xor ipad
das erzeugt eine Kollision zwischen H((K xor ipad) || m1)
und H((K xor ipad) || m2)
, leadi Dies kann auf zwei Arten ausgenutzt werden:
- Sie vertrauen der Person, die den Schlüssel generiert hat, nicht und HMAC ist es Wird als eine Art Prüfsumme missbraucht.
- Ein Angreifer erhält Zugriff auf den Schlüssel und kann den von MD5 gewählten Präfixangriff verwenden, um Kollisionen zu verursachen.
Aber als akzeptiert Antwort gibt an, wenn der Schlüssel geheim ist und von Ihnen oder vertrauenswürdigen Parteien kontrolliert wird, ist HmacMd5 immer noch sicher.
Kommentare
- Ja, diese Art von Antwort gab es bereits, bis sie gelöscht wurde. In der Frage wird explizit " zur Authentifizierung verschlüsselter Daten " angegeben. Die Verwendung zur Berechnung von Prüfsummen und die Verfügbarkeit des Schlüssels stehen senkrecht zu diesem Teil der Frage. Willkommen bei Crypto, diese Art von gut geschriebenen Antworten sind hier sehr willkommen!
- Ich stimme zu, aber diese Informationen werden für viele Leute, die auf dieser Seite ankommen, nützlich sein und geben keine falschen Informationen in Bezug auf Respekt zur Ausgangsfrage. Es heißt eindeutig, dass hmacmd5 bei korrekter Verwendung immer noch sicher ist.