En kollisionsattack i kryptografi är sökningen efter två olika indatablock för en kryptografisk hashfunktion som producerar samma hashvärde, det vill säga en hashkollision . Till skillnad från preimage-attacken är hashvärdet inte valt medvetet.
Ungefär[ förtydliga ] Det finns två olika typer av kollisionsattacker:
Kollisionsattacken hittar två olika meddelanden m1 och m2 så att . I det klassiska fallet med en attack har angriparen ingen kontroll över innehållet i meddelandena, utan de är slumpmässigt valda av algoritmen. Många symmetriska kryptosystem är sårbara för brute-force-attacker , alla kryptografiska hashfunktioner är per definition sårbara för en födelsedagsattack . På grund av födelsedagsparadoxen kan den senare attackmetoden vara mycket snabbare än brute force-metoden. En hash med N bitar kan brytas 2n /2 gånger (genom att beräkna en hashfunktion). De mest effektiva attackerna är möjliga när man använder kryptoanalys på en specifik hashfunktion. När en kollisionsattack är snabbare än en "födelsedagsattack" fördöms hashfunktioner ofta som "trasiga". Skapandet av SHA-3-hashfunktionen (tävling) drevs till stor del av behovet att ersätta de gamla MD5 [1] - och SHA-1- funktionerna . Kollisionsattacker mot MD5-algoritmen har förbättrats så mycket att de på en vanlig dator bara tar några sekunders tid. [2] Hash-kollisioner som genereras på detta sätt är i allmänhet av konstant längd och till stor del ostrukturerade, så de kan inte direkt appliceras för att attackera vanliga dokumentformat eller protokoll. Lösningar är dock möjliga genom att missbruka de dynamiska konstruktionerna som finns i många format. Det kommer alltså att skapas två dokument som är identiska med varandra så att de har samma hashvärde. Om ett dokument är undertecknat av en betrodd person, kan hans underskrift kopieras till en annan fil. Ett sådant skadligt dokument skulle innehålla två olika meddelanden i samma dokument, men ändå kunna visa något av dem genom små ändringar i filen:
Resultatet av förbättringen av kollisionsattacken var kollisionsattacken med ett givet prefix, designat för Merkle-Damgard-strukturen . I det här fallet kan en angripare välja 2 slumpmässiga olika dokument och sedan fylla på dem med 2 olika beräknade värden så att de 2 dokumenten slutar med samma hashvärde. Denna attack är allvarligare än den klassiska versionen.
Matematiskt sett finns det 2 olika prefix p1, p2 , deras 2 komplement m1 och m2 beräknas så att hash( p1 ∥ m1) = hash(p2 ∥ m2) (där ∥ är sammanlänkningsoperationen ).
Under 2007 skapades en MD5-hashkollisionsattack med prefix, som krävde cirka 250 MD5- funktionsberäkningar. I anteckningen presenterades två X.509-certifikat för olika domännamn som har samma hashfunktion. Detta innebär att certifikatet för en betrodd domän kan användas av en annan okänd domän. [5]
En riktig kollisionsattack publicerades i december 2008 när en grupp säkerhetsforskare publicerade ett falskt X.509- signeringscertifikat som kan användas för att anonymt auktorisera ett certifikat genom att använda en kollisionsattack med ett givet MD5-hashprefix. Detta innebar att en angripare kunde förfalska vilken TLS -säkrad webbplats som helst som en mellanhand och därigenom bryta mot certifikatvalideringen inbyggd i varje webbläsare för att säkra e-handeln . Ett falskt certifikat kan inte återkallas av betrodda parter, det kan också ha en godtycklig tid att förfalla. Trots svagheterna i MD5 som hittades 2004, [1] i december 2008 blev det klart att många människor fortfarande använder certifikat med denna hashfunktion, [6] och åtminstone Microsoft använde den fortfarande i maj 2012.
I Flame använde skadlig programvara framgångsrikt en ny variant av den prefixerade kollisionsattacken för att förfalska kodsigneringskomponenter med hjälp av Microsofts rotcertifikat, som fortfarande använde den komprometterade MD5-algoritmen. [7] [8]
Många applikationer med kryptografiska hashfunktioner kräver inte kollisionsskydd kollisionsattacker kan inte kringgå deras skydd Till exempel är HMAC inte föremål för denna typ av attack. [9] För en framgångsrik attack måste angriparen ha kontroll över inmatningen.
Eftersom elektroniska signaturalgoritmer inte effektivt kan signera stora mängder data använder många tillägg datakomprimeringsfunktioner för att signera dem i en fast storlek. Elektroniska signatursystem är ofta utsatta för kollisioner trots att de använder en slumpmässig hashteknik. [tio]
Vanligtvis går attacken så här:
2008 attackerade forskare prefixet MD5 med hjälp av skriptet ovan för att skapa ett falskt certifikat. De skapade två versioner av TLS -certifikatet för den offentliga nyckeln, varav en autentiserades för RapidSSL-auktorisering. En annan version, som har samma MD5-hashvärde, innehöll flaggor som signalerade till webbläsaren förtroendet och rätten att utfärda förtroende för andra certifikat [11] .