säger att säkerheten för HMAC-SHA1 inte beror på motstånd mot kollisioner? Säger de specifikt med avseende på HOTP eller för HMAC-SHA1 för någon användning?
Om HMAC-SHA1 används för att verifiera dokumentets integritet och du kan hitta en kollision kan du göra ändringar i dokumentet, eller hur?
http://tools.ietf.org/html/rfc2104#section-6
Även RFC säger att motstånd mot kollisioner är relevant
Säkerheten för meddelandeautentiseringsmekanismen som presenteras här beror på kryptografiska egenskaper hos hashfunktionen H: motståndet mot kollisionsfynd (begränsat till det fall där det ursprungliga värdet är hemligt och slumpmässigt och där funktionens utdata inte uttryckligen är tillgänglig för angriparen), och meddelandeautentiseringsegenskapen för komprimeringsfunktionen för H när den tillämpas på enstaka block
Vad saknar jag här?
Kommentarer
- Det verkar finnas en förvirring i frågan: HMAC-SHA1 används inte för att underteckna ett dokument (åtminstone inte vanligtvis; och antar det var, kan standardantagandet för HMAC att dess nyckelingång är hemligt ' inte hålla sedan förfarandet för signaturverifiering är offentligt). Jag tycker att det svaret är ganska bra.
- @fgrieu – Jag tror att jag gjorde ett misstag i terminologin – när jag skrev signering skulle jag ha faktiskt skrivet som genererar en sms för autentisering av meddelanden för att skydda integriteten. Vid kollisioner kan du ändra meddelandet och spara samma MAC, så det är ett problem, eller hur?
- Ska vi stänga detta som en duplikat av Anses HMAC-MD5 säker för autentisering av krypterad data? ? Medan den här frågan handlar om SHA1, inte MD5, är svaret nästan detsamma.
- Jag ' är ganska säker på om jag har en pre-image-attack mot SHA -1 detta exploderar.
Svar
I det första avsnittet av detta svar kommer jag att anta att genom bättre hårdvaru- eller algoritmförbättringar har det blivit rutinmässigt möjligt att uppvisa en kollision för SHA-1 med en metod som liknar den för Xiaoyun Wang, Yiqun Lisa Yin och Hongbo Yu ” s attack , eller Marc Stevens ”attack . Detta har uppnåtts offentligt i början av 2017, och hade varit klart genomförbart (ansträngningen representerar bara timmar av hashinsats som spenderas på bitcoinbrytning , men hårdvaran som används för det kan inte ominriktas för attacken mot SHA-1).
I motsats till vad som anses i frågan, skulle inte tillåta en angripare inte kowing HMAC-SHA-1-tangenten för att göra en oupptäckt ändring i ett dokument; det inkluderar även om angriparen kan förbereda dokumentet som han / hon är villig att senare ändra.
En förklaring är att de kollisionsattacker på SHA-1 vi överväger kräver kunskap om tillståndet för SHA-1-kedjevariabeln, och angriparen av HMAC som inte känner till nyckeln berövas den kunskapen genom att nyckeln matar in i båda extremiteterna av iterationen av rundor där meddelandet står i HMAC. En mycket djupare brytning av SHA-1 ”s runda funktion skulle behövas för att bryta HMAC. Inte tillfälligt, M. Bellare” s Nya bevis för NMAC och HMAC: Säkerhet utan kollisionsresistens visar att säkerheten för HMAC antar att endast svagare egenskaper antas på sin runda funktion än vad som behövs för kollisionsmotstånd hos motsvarande hash.
Vad som skulle vara möjligt är för en angripare känner till HMAC-nyckeln för att förbereda ett dokument som han / hon är villig att senare ändra, som kan ändras utan att ändra MAC. Men eftersom angriparen håller HMAC-nyckeln, anses det inte vara ett brott av HMAC.
En kommentar frågar när ska SHA-1 inte användas?
Det är tillrådligt att snabbt fasa ut SHA-1 i applikationer som kräver kollisionsmotstånd (som en bild: gå snabbt bort när du lämnar en byggnad som brandlarm ringer när det inte finns någon rök). Detta inkluderar hashing för integritetskontroll eller digital signatur av dokument som utarbetats av andra även delvis (vilket är de flesta dokument). Om fortsatt användning av SHA-1 har stora operativa fördelar kan det säkert göras ett undantag genom att infoga något oförutsägbart av motståndare innan någon del av meddelandet som en motståndare kan påverka.Till exempel, genom att tillämpa ett oförutsägbart certifikatserienummer vid begäran av ett certifikat, skulle en certifieringsmyndighet fortfarande säkert kunna utfärda certifikat med SHA-1 för sin interna signatur.
Som förklaras i det första avsnittet av detta svar, så länge som nyckeln till HMAC-SHA-1 antas hemlig, finns det ingen indikation på att HMAC-SHA-1 är osäker eftersom den använder SHA-1. Om nyckeln antas vara offentlig, eller om dess läckage anses vara en operativ möjlighet där det fortfarande är önskat kollisionsmotstånd för HMAC inklusive för meddelande som är förberett efter avslöjande av nyckeln, gäller försiktighetsåtgärderna som diskuterades i föregående stycke.
Kommentarer
- Så när ska SHA1 inte användas? dvs upptäckten av problemet i SHA1 hindrar det från att användas var?
- Det ' rekommenderas i allmänhet att flytta bort (" gå ", inte " kör ") från SHA-1. Med det sagt anses den specifika konstruktionen av HMAC-SHA1 fortfarande vara säker att använda (förutsatt en hemlig nyckel) på grund av säkerhetssäkerheten för HMAC som inte förlitar sig på kollisionsmotstånd hos den underliggande PRF. Om du är osäker, gå till SHA-2.
- @StephenTouset – ja, jag förstår det. Finns det dock någon användning av SHA-1 som du ska springer iväg i stället för att flytta bort eller gå iväg.
- Nej, annars är det rådet. SHA-1 ' s kollisionsmotstånd bryts bara i teoretisk mening just nu. Inga kända kollisioner har hittats ännu, även om den bästa attacken just nu är på kanten av genomförbarheten.
Svar
När människor säger att HMAC-MD5 eller HMAC-SHA1 fortfarande är säkra, menar de att de fortfarande är säkra som PRF och MAC.
Det viktigaste antagandet här är att nyckeln är okänd för angriparen.
$$ \ mathrm {HMAC} = \ mathrm {hash} (k_2 | \ mathrm {hash} (k_1 | m)) $$
-
Potentiellt attack 1: Hitta en universell kollision som är giltig för många nycklar:
Med hjälp av HMAC kan meddelandet inte hashas direkt, men det har $ k_1 $ som prefix. Detta innebär att angriparen inte ” vet inte det interna tillståndet för hashen när meddelandet startar. Att hitta ett meddelande som kolliderar för de flesta val är $ k_1 $ är extremt svårt 1 .
-
Potentiell attack 2: Återställ nyckeln
För att detta ska lyckas behöver hash-funktionen mycket större pauser än bara kollisioner. Det liknar en första attack före bilden, en egenskap som fortfarande är stark för både MD5 och SHA1.
Å andra sidan, om du använde en nyckel som är känd för angriparen och angriparen har förmågan att hitta kollisioner i den underliggande hash (för godtyckliga IV), blir dessa i kollisioner med HMAC. Så om du behöver säkerhet i ett okänd scenario, använd en kollisionsresistent hash, som SHA2 och överväga att inte använda HMAC alls.
1 Jag misstänker att det inte är möjligt (för realistiska meddelandestorlekar) även för beräkningsmässigt obegränsade angripare, men det är svårt att bevisa.
Kommentarer
- Så när ska SHA1 inte användas? dvs upptäckt av problemet i SHA1 hindrar det från att användas var?
- @ user93353 Som jag sa beror säkerheten för HMAC-SHA1 på den okända nyckeln. Om det inte finns någon nyckel eller det är känt för angriparen blir kollisionerna i SHA1 ett hot. Men SHA1 bör sällan, om någonsin, användas i nya mönster, eftersom det finns bättre alternativ tillgängliga.
- Om nyckeln är känd för angriparen, kommer även SHA2 att vara ett problem, eller hur?
- @ user93353 Beror på vad du vill uppnå. Självklart är ingen okänd hash en MAC.
- @CodesInChaos – du säger att HMAC-SHA1 är en problem bara om nyckeln är känd, men om nyckeln är känt, det kommer att vara ett problem för alla HMAC-hashoperationer, eller hur?