Jeg har lest noe om at HMAC-konstruksjonen er i stand til å redusere problemet med kollisjoner i den underliggende hash.

Betyr det at noe sånt som HMAC-MD5 fremdeles kan betraktes som trygt for å autentisere krypterte data?

Kommentarer

Svar

Ja, det er for tiden ingen kjente angrep på HMAC-MD5.

Spesielt, etter de første kollisjonsangrepene på MD5, kom Mihir Bellare (en av oppfinnerne av HMAC) opp med et nytt sikkerhetsbevis for HMAC som ikke krever kollisjonsmotstand:

« Sammendrag: HMAC ble bevist av Bellare, Canetti og Krawczyk (1996) som en PRF forutsatt at (1) den underliggende kompresjonsfunksjonen er en PRF, og (2) den itererte hashfunksjonen er svakt kollisjonsbestandig. Nylige angrep viser imidlertid at antagelse (2) er falsk for MD5 og SHA-1, og fjerner den bevisbaserte støtten for HMAC i disse tilfellene. Denne artikkelen viser at HMAC er en PRF under den eneste antagelsen at kompresjonsfunksjonen er en PRF. Dette gjenoppretter en bevisbasert garanti, siden ingen kjente angrep kompromitterer kompresjonsfunksjonens pseudorandom, og det hjelper også med å forklare motstanden mot angrep som HMAC har vist, selv når den implementeres med hashfunksjoner hvis (svake) kollisjonsmotstand er kompromittert. Vi viser også at en enda svakere enn PRF-tilstand på kompresjonsfunksjonen, nemlig at den er en personvernbevarende MAC, er tilstrekkelig for å etablere HMAC er en sikker MAC så lenge hash-funksjonen oppfyller det veldig svake kravet til å være beregningsmessig nesten universell, der verdien igjen ligger i det faktum at kjente angrep ikke ugyldiggjør forutsetningene. «

Dette gjør imidlertid ikke betyr at du bør bruke HMAC-MD5 i nye kryptosystemdesign. For å omskrive Bruce Schneier blir « angrep bare bedre, aldri verre. «Vi har allerede praktiske kollisjonsangrep for MD5, som viser at den ikke oppfyller de opprinnelige sikkerhetsmålene. Det er mulig at noen hver dag nå kan finne ut en måte å utvide dem til et nytt angrep som ville kompromittere sikkerheten til HMAC-MD5. Et mye bedre valg ville være å bruke HMAC med en hash-funksjon uten kjente angrep, for eksempel SHA-2 eller SHA-3.

Kommentarer

  • SHA-2 har kjente angrep: en.wikipedia.org/wiki/SHA-2
  • @baptx Alle kryptografisk primitiv har " kjente angrep ". Spørsmålet er om de bryter hele mengden runder betydelig. For SHA-2 har de for øyeblikket ikke ' t. Med mindre du kan underbygge at SHA-2 har blitt ødelagt med noen betydning, vil jeg fjerne disse kommentarene fra svaret.
  • " nylige angrep viser at antagelsen (2) er usant for MD5 " hvilke nylige angrep? det valgte prefiksangrepet? hvorfor betyr det?

Svar

Ilmari Karonens svar er riktig når HMAC brukes til tiltenkt formål, men det betyr ikke at HMAC er helt upåvirket av MD5s kollisjoner:

hmac

Gitt en spesifikk nøkkel, vær oppmerksom på at K xor opad og K xor ipad er uavhengige av meldingen m. Dette betyr at enhver kollisjon i H((K xor ipad) || m) vil resultere i en kolliderende HMAC, til og med med to forskjellige meldinger.

For HmacMd5 vil K xor ipad være 64 byte lang. Så hvis du finner to meldinger m1 og m2 med minst et 64 byte vanlig prefiks pre, kan du beregne en nøkkel K = pre xor ipad som vil skape en kollisjon mellom H((K xor ipad) || m1) og H((K xor ipad) || m2), leadi ng til en fullstendig kollisjon i hele HMAC.

Dette kan utnyttes på to måter:

  • Du stoler ikke på personen som genererte nøkkelen, og HMAC blir misbrukt som en slags kontrollsum.
  • En angriper får tilgang til nøkkelen, og kan bruke MD5s valgte prefiksangrep for å forårsake kollisjoner.

Men som akseptert svar sier, hvis nøkkelen er hemmelig og kontrollert av deg eller pålitelige parter, er HmacMd5 fortsatt sikker.

Kommentarer

  • Ja, det var allerede denne typen svar til den ble slettet. Spørsmålet sier eksplisitt " for autentisering av krypterte data ". Bruken for å beregne sjekksummer og tilgjengeligheten av nøkkelen er vinkelrett på den delen av spørsmålet. Velkommen til crypto uansett, denne typen godt skrevet svar er veldig velkommen her!
  • Jeg er enig, men denne informasjonen vil være nyttig for mange mennesker som kommer til denne siden, og den gir ikke feil informasjon med respekt til det første spørsmålet. Det står tydelig at hmacmd5 fortsatt er sikker hvis det brukes riktig.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *