Jag har läst något för att HMAC-konstruktionen kan minska problemet med kollisioner i den underliggande hash.

Betyder det att något som HMAC-MD5 fortfarande kan anses vara säkert för autentisering av krypterad data?

Kommentarer

Svar

Ja, det finns för närvarande inga kända attacker mot HMAC-MD5.

I synnerhet, efter de första kollisionsattackerna på MD5, kom Mihir Bellare (en av uppfinnarna av HMAC) med ett nytt säkerhetsskydd för HMAC som inte kräver kollisionsmotstånd:

Sammanfattning: HMAC bevisades av Bellare, Canetti och Krawczyk (1996) som en PRF under förutsättning att (1) den underliggande kompressionsfunktionen är en PRF, och (2) den itererade hashfunktionen är svagt kollisionsresistent. Nya attacker visar dock att antagande (2) är falskt för MD5 och SHA-1, vilket tar bort det bevisbaserade stödet för HMAC i dessa fall. Detta dokument visar att HMAC är en PRF under det enda antagandet att kompressionsfunktionen är en PRF. Detta återställer en bevisbaserad garanti eftersom inga kända attacker äventyrar kompressionsfunktionens pseudorandom, och det hjälper också till att förklara motståndet mot attack som HMAC har visat även när det implementeras med hashfunktioner vars (svaga) kollisionsmotstånd äventyras. Vi visar också att ett ännu svagare än PRF-tillstånd på kompressionsfunktionen, nämligen att det är en sekretessbevarande MAC, räcker för att etablera HMAC är en säker MAC så länge hash-funktionen uppfyller det mycket svaga kravet på att vara beräkningsmässigt nästan universal, där återigen värdet ligger i det faktum att kända attacker inte ogiltigförklarar antagandena. ”

Detta gör dock inte menar att du bör använda HMAC-MD5 i nya kryptosystemdesigner. För att omformulera Bruce Schneier blir ” attacker bara bättre, aldrig värre. ”Vi har redan praktiska kollisionsattacker för MD5 som visar att den inte uppfyller sina ursprungliga säkerhetsmål. Det är möjligt att någon dag nu kan räkna ut ett sätt att utvidga dem till en ny attack som skulle äventyra säkerheten för HMAC-MD5. Ett mycket bättre val skulle vara att använda HMAC med en hashfunktion utan kända attacker, till exempel SHA-2 eller SHA-3.

Kommentarer

  • SHA-2 har kända attacker: en.wikipedia.org/wiki/SHA-2
  • @baptx Alla kryptografisk primitiv har " kända attacker ". Frågan är om de bryter hela mängden omgångar avsevärt. För SHA-2 donerar de för närvarande ' t. Om du inte kan styrka att SHA-2 har brutits med någon betydelse, skulle jag vilja ta bort dessa kommentarer från svaret.
  • " senaste attackerna visar att antagandet (2) är falskt för MD5 " vilka senaste attacker? det valda prefixattacken? varför betyder det att?

Svar

Ilmari Karonens svar är korrekt när HMAC används för dess avsedd syfte, men det betyder inte att HMAC är helt opåverkad av MD5: s kollisioner:

hmac

Med tanke på en specifik nyckel, notera att K xor opad och K xor ipad är oberoende av meddelandet m. Detta innebär att varje kollision i H((K xor ipad) || m) kommer att resultera i en kolliderande HMAC, till och med med två olika meddelanden.

För HmacMd5 skulle K xor ipad vara 64 byte lång. Så om du hittar två meddelanden m1 och m2 med minst ett gemensamt prefix på 64 byte pre, du kan beräkna en nyckel K = pre xor ipad som skapar en kollision mellan H((K xor ipad) || m1) och H((K xor ipad) || m2), leadi ng till en fullständig kollision i hela HMAC.

Detta kan utnyttjas på två sätt:

  • Du litar inte på personen som genererade nyckeln och HMAC håller på att missbrukas som ett slags kontrollsumma.
  • En angripare får tillgång till nyckeln och kan använda MD5: s valda prefixattack för att orsaka kollisioner.

Men som accepterat svaret säger, om nyckeln är hemlig och kontrolleras av dig eller betrodda parter är HmacMd5 fortfarande säker.

Kommentarer

  • Ja, det fanns redan den här typen av svar tills den raderades. Frågan säger uttryckligen " för autentisering av krypterad data ". Användningen för beräkning av kontrollsummor och tillgängligheten av nyckeln är vinkelrät mot den delen av frågan. Välkommen till krypto i alla fall, dessa typ av välskrivna svar är mycket välkomna här!
  • Jag håller med, men denna information kommer att vara användbar för många människor som kommer till denna sida och den ger inte felaktig information med avseende på till den ursprungliga frågan. Det står tydligt att hmacmd5 fortfarande är säkert om det används korrekt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *