Deze Q & A https://security.stackexchange.com/questions/33123/hotp-with-as-hmac-hashing-algoritme-a-hash-from-the-sha-2-family

zegt dat de beveiliging van HMAC-SHA1 niet afhangt van weerstand tegen botsingen? Zeggen ze specifiek met betrekking tot HOTP of voor HMAC-SHA1 voor welk gebruik dan ook?

Als HMAC-SHA1 wordt gebruikt voor het verifiëren van de integriteit van een document en u kunt een botsing vinden, kunt u toch wijzigingen in het document aanbrengen?

http://tools.ietf.org/html/rfc2104#section-6

Zelfs de RFC zegt dat weerstand tegen botsingen is relevant

De veiligheid van het berichtverificatiemechanisme dat hier wordt gepresenteerd, hangt af van de cryptografische eigenschappen van de hashfunctie H: de weerstand tegen botsingen vinden (beperkt tot het geval waarin de initiële waarde geheim en willekeurig is, en waar de uitvoer van de functie niet expliciet beschikbaar is voor de aanvaller), en de berichtverificatie-eigenschap van de compressiefunctie van H wanneer toegepast op enkele blokken

Wat mis ik hier?

Opmerkingen

  • Er lijkt verwarring te bestaan in de vraag: HMAC-SHA1 wordt niet gebruikt voor het ondertekenen van een document (tenminste, gewoonlijk niet; en was, de standaardaanname voor HMAC dat de sleutelinvoer geheim is, kan ' niet De procedure voor handtekeningverificatie is openbaar). Ik vind dat antwoord best goed.
  • @fgrieu – ik denk dat ik een terminologische fout heb gemaakt – toen ik ondertekening schreef, had ik moeten daadwerkelijk geschreven genereren van een berichtauthenticatieoverzicht om de integriteit te beschermen. In geval van botsingen kun je het bericht wijzigen en dezelfde MAC behouden, dus het is een probleem, toch?
  • Moeten we dit sluiten als een duplicaat van Wordt HMAC-MD5 als veilig beschouwd voor het verifiëren van versleutelde gegevens? ? Hoewel deze vraag over SHA1 gaat, niet over MD5, is het antwoord bijna hetzelfde.
  • Ik ' ben er vrij zeker van of ik een pre-image-aanval tegen SHA heb -1 explodeert dit.

Antwoord

In het eerste deel van dit antwoord ga ik ervan uit dat door betere hardware en / en algoritmische verbeteringen, is het routinematig mogelijk geworden om een botsing voor SHA-1 te vertonen met een methode die vergelijkbaar is met die van Xiaoyun Wang, Yiqun Lisa Yin en Hongbo Yu ” s aanval , of Marc Stevens “aanval . Dit is publiekelijk bereikt begin 2017, en was duidelijk haalbaar (de inspanning vertegenwoordigt slechts enkele uren van de hashing-inspanning die is besteed aan bitcoin-mijnbouw ; maar de hardware die daarvoor wordt gebruikt, kan worden herbestemd voor de aanval op SHA-1).

In tegenstelling tot wat in de vraag wordt overwogen, zou dat niet toestaan dat een aanvaller niet kowt de HMAC-SHA-1-sleutel om een niet-gedetecteerde wijziging in een document aan te brengen; dat is inclusief of de aanvaller in staat is om het document voor te bereiden dat hij / zij later wil wijzigen.

Een verklaring is dat de aanvaringsaanvallen op SHA-1 die we overwegen, kennis vereisen van de staat van de SHA-1 chaining-variabele, en de aanvaller van HMAC die de sleutel niet kent, wordt die kennis ontnomen door de sleutel die aan beide uiteinden van de iteratie van rondes waarin het bericht in HMAC staat, wordt ingevoerd. Een veel diepere doorbraak van de ronde-functie van SHA-1 zou nodig zijn om HMAC te breken. Niet toevallig, M. Bellares Nieuwe bewijzen voor NMAC en HMAC: beveiliging zonder Collision-Resistance laat zien dat de beveiliging van HMAC alleen geldt als er zwakkere eigenschappen zijn op de ronde functie dan nodig is voor de botsingsweerstand van de corresponderende hash.

Wat mogelijk zou zijn is voor een aanvaller die de HMAC-sleutel kent om een document voor te bereiden dat hij / zij later wil wijzigen, dat kan worden gewijzigd zonder de MAC te wijzigen. Maar aangezien de aanvaller de HMAC-sleutel vasthoudt, wordt dat niet beschouwd als een onderbreking van HMAC.


Een opmerking vraagt wanneer moet SHA-1 niet worden gebruikt?

Het is raadzaam om SHA-1 snel uit te faseren in toepassingen die botsingsweerstand vereisen (als een afbeelding: loop snel weg, als u een gebouw waar het brandalarm afgaat als er geen rook is). Dat omvat hashing voor integriteitscontrole of digitale ondertekening van documenten die zelfs gedeeltelijk zijn voorbereid door anderen (wat de meeste documenten zijn). Als het blijven gebruiken van SHA-1 grote operationele voordelen heeft, kan er veilig een uitzondering op worden gemaakt door iets onvoorspelbaars door tegenstanders in te voegen vóór enig deel van de boodschap dat een tegenstander kan beïnvloeden.Door bijvoorbeeld een onvoorspelbaar serienummer van het certificaat af te dwingen op het moment dat een certificaat wordt aangevraagd, kan een certificeringsinstantie nog steeds veilig certificaten uitgeven met SHA-1 voor hun interne handtekening.

Zoals uitgelegd in het eerste deel van dit document antwoord, zolang de sleutel van HMAC-SHA-1 als geheim wordt beschouwd, is er geen indicatie dat HMAC-SHA-1 onveilig is omdat het SHA-1 gebruikt. Als de sleutel als openbaar wordt beschouwd, of als het lekken ervan wordt beschouwd als een operationele mogelijkheid waarbij het nog steeds gewenst is botsingsbestendigheid voor HMAC te hebben, inclusief voor berichten die zijn opgesteld na vrijgave van de sleutel, dan zijn de voorzorgsmaatregelen die in de vorige paragraaf zijn besproken van toepassing.

Reacties

  • Dus wanneer moet SHA1 niet worden gebruikt? dwz ontdekking van het probleem in SHA1 sluit het gebruik uit waar?
  • Het wordt ' s over het algemeen geadviseerd om weg te gaan (" loop ", niet " voer ") uit vanaf SHA-1. Dat gezegd hebbende, wordt de specifieke constructie van HMAC-SHA1 nog steeds als veilig beschouwd om te gebruiken (uitgaande van een geheime sleutel) vanwege het beveiligingsbewijs voor HMAC dat niet afhankelijk is van botsingsweerstand van de onderliggende PRF. Ga bij twijfel naar SHA-2.
  • @StephenTouset – ja dat snap ik. Is er echter enig gebruik van SHA-1 waarvan u zou moeten wegrennen in plaats van weg te lopen of weg te lopen.
  • Nee, anders zou dat het advies zijn. SHA-1 ' s botsingsweerstand is momenteel alleen in theoretische zin gebroken. Er zijn nog geen bekende botsingen gevonden, hoewel de huidige beste aanval net aan de rand van haalbaarheid ligt.

Antwoord

Als mensen zeggen dat HMAC-MD5 of HMAC-SHA1 nog steeds veilig zijn, bedoelen ze dat ze “nog steeds veilig zijn als PRF en MAC.

De belangrijkste veronderstelling hier is dat de sleutel onbekend is bij de aanvaller.

$$ \ mathrm {HMAC} = \ mathrm {hash} (k_2 | \ mathrm {hash} (k_1 | m)) $$

  • Potentieel aanval 1: Vind een universele botsing, die “geldig is voor veel sleutels:

    Met HMAC wordt het bericht niet” direct gehasht, maar het heeft $ k_1 $ als voorvoegsel. Dit betekent dat de aanvaller dat niet doet ” Ik ken de interne status van de hash wanneer het bericht begint. Het vinden van een bericht dat voor de meeste keuzes botst, is $ k_1 $ is buitengewoon moeilijk 1 .

  • Potentiële aanval 2: de sleutel terughalen

    Om dit te laten slagen heeft de hash-functie veel grotere pauzes nodig dan alleen botsingen. Het is vergelijkbaar met een eerste aanval vóór de afbeelding, een eigenschap die nog steeds sterk is voor zowel MD5 als SHA1.

Aan de andere kant, als je een sleutel hebt gebruikt die bekend is bij de aanvaller en de aanvaller heeft de mogelijkheid om botsingen te vinden in de onderliggende hash (voor willekeurige IVs), in botsingen van HMAC. Dus als je beveiliging nodig hebt in een niet-gesleuteld scenario, gebruik dan een botsingsbestendige hash, zoals SHA2 en overweeg om HMAC helemaal niet te gebruiken.


1 Ik vermoed dat dit niet mogelijk (voor realistische berichtgroottes) zelfs voor computationeel onbegrensde aanvallers, maar dat bewijzen is moeilijk.

Opmerkingen

  • Dus wanneer moet SHA1 niet worden gebruikt? dwz ontdekking van het probleem in SHA1 sluit het gebruik uit waar?
  • @ user93353 Zoals ik al zei, de beveiliging van HMAC-SHA1 hangt af van de onbekende sleutel. Als er geen sleutel is of als deze bekend is bij de aanvaller worden de botsingen in SHA1 een bedreiging. Maar SHA1 mag zelden of nooit worden gebruikt in nieuwe ontwerpen, aangezien er betere alternatieven beschikbaar zijn.
  • Als de sleutel bekend is bij de aanvaller, dan zal zelfs SHA2 een probleem zijn, toch?
  • @ user93353 Hangt af van wat je wilt bereiken. Natuurlijk is geen ongecodeerde hash een MAC.
  • @CodesInChaos – je zegt dat HMAC-SHA1 een probleem alleen als de sleutel bekend is, maar als de sleutel dat wel is bekend, dat zal een probleem zijn voor elke HMAC-hash-bewerking, toch?

Geef een reactie

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