Ik “heb iets gelezen dat erop wijst dat de HMAC-constructie het probleem van botsingen in de onderliggende hash kan verminderen.

Betekent dit dat zoiets als HMAC-MD5 nog steeds als veilig kan worden beschouwd voor het verifiëren van versleutelde gegevens?

Opmerkingen

Antwoord

Ja, er zijn momenteel geen aanvallen bekend op HMAC-MD5.

Met name na de eerste aanvalsaanvallen op MD5 kwam Mihir Bellare (een van de uitvinders van HMAC) met een nieuw beveiligingsbewijs voor HMAC dat “geen aanvaringsweerstand vereist:

Samenvatting: Van HMAC is door Bellare, Canetti en Krawczyk (1996) bewezen dat het een PRF is, ervan uitgaande dat (1) de onderliggende compressiefunctie een PRF is, en (2) de herhaalde hashfunctie zwak bestand is tegen botsingen. Recente aanvallen tonen echter aan dat aanname (2) onjuist is voor MD5 en SHA-1, waardoor de op bewijzen gebaseerde ondersteuning voor HMAC in deze gevallen wordt verwijderd. Dit artikel bewijst dat HMAC een PRF is met als enige aanname dat de compressiefunctie een PRF is. Dit herstelt een op bewijzen gebaseerde garantie, aangezien geen enkele bekende aanval de pseudo-willekeur van de compressiefunctie in gevaar brengt, en het helpt ook de weerstand tegen aanvallen te verklaren die HMAC heeft getoond, zelfs wanneer geïmplementeerd met hash-functies waarvan de (zwakke) botsingsweerstand is aangetast. We laten ook zien dat een nog zwakker dan PRF-voorwaarde op de compressiefunctie, namelijk dat het een privacy-behoudende MAC is, voldoende is om vast te stellen dat HMAC een veilige MAC is, zolang de hash-functie voldoet aan de zeer zwakke eis om computationeel bijna universeel, waar opnieuw de waarde ligt in het feit dat bekende aanvallen de gemaakte aannames niet ongeldig maken. “

Dit doet echter niet betekent dat je HMAC-MD5 moet gebruiken in nieuwe cryptosysteemontwerpen. Om Bruce Schneier te parafraseren: “ aanvallen worden alleen beter, nooit erger. “We hebben al praktische aanvaringsaanvallen voor MD5, waaruit blijkt dat het niet aan de oorspronkelijke beveiligingsdoelen voldoet; het is mogelijk dat iemand elke dag een manier kan bedenken om deze uit te breiden tot een nieuwe aanval die zou de beveiliging van HMAC-MD5 in gevaar brengen. Een veel betere keuze zou zijn om HMAC te gebruiken met een hash-functie zonder bekende aanvallen, zoals SHA-2 of SHA-3.

Reacties

  • SHA-2 heeft aanvallen gekend: en.wikipedia.org/wiki/SHA-2
  • @baptx Elke cryptografische primitief heeft " bekende aanvallen ". De vraag is of ze het volledige aantal rondes significant doorbreken. Voor SHA-2 zijn ze momenteel niet ' t. Tenzij u kunt bewijzen dat SHA-2 met enige betekenis is gebroken, zou ik deze opmerkingen uit het antwoord willen verwijderen.
  • " recente aanvallen tonen die aanname (2) is false voor MD5 " welke recente aanvallen? de gekozen prefix aanval? waarom betekent dit dat?

Answer

Het antwoord van Ilmari Karonen is correct wanneer HMAC wordt gebruikt voor zijn bedoelde doel, maar dat betekent niet dat HMAC volledig onaangetast is door MD5-botsingen:

hmac

Gegeven een specifieke sleutel, merk op dat K xor opad en K xor ipad onafhankelijk zijn van het bericht m. Dit betekent dat elke botsing in H((K xor ipad) || m) zal resulteren in een botsing HMAC, zelfs met twee verschillende berichten.

Voor HmacMd5 zou K xor ipad 64 bytes lang zijn. Dus als je twee berichten vindt m1 en m2 met een gemeenschappelijk prefix van ten minste 64 bytes pre, kunt u een sleutel berekenen K = pre xor ipad die een botsing zal veroorzaken tussen H((K xor ipad) || m1) en H((K xor ipad) || m2), leadi ng tot een volledige botsing in de hele HMAC.

Dit kan op twee manieren worden misbruikt:

  • U vertrouwt de persoon die de sleutel heeft gegenereerd niet, en HMAC wordt misbruikt als een soort checksum.
  • Een aanvaller krijgt toegang tot de sleutel en kan de door MD5 gekozen prefixaanval gebruiken om botsingen te veroorzaken.

Maar zoals de aanvaller antwoordstaten, als de sleutel geheim is en wordt beheerd door u of vertrouwde partijen, is HmacMd5 nog steeds veilig.

Reacties

  • Ja, er was al een dergelijk antwoord totdat het werd verwijderd. De vraag vermeldt expliciet " voor het verifiëren van versleutelde gegevens ". Het gebruik voor het berekenen van checksums en de beschikbaarheid van de sleutel staan loodrecht op dat deel van de vraag. Welkom bij crypto, dit soort goed geschreven antwoorden zijn hier zeer welkom!
  • Ik ben het ermee eens, maar deze informatie zal nuttig zijn voor veel mensen die op deze pagina komen en het geeft geen onjuiste informatie met respect op de eerste vraag. Het geeft duidelijk aan dat hmacmd5 nog steeds veilig is als het correct wordt gebruikt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *