Az ütközési támadás a kriptográfiában egy kriptográfiai hash függvény két különböző bemeneti blokkjának keresése , amelyek ugyanazt a hash értéket állítják elő, vagyis egy hash ütközést . A preimage attacktól eltérően a hash értéket nem szándékosan választották meg.
Hozzávetőlegesen, körülbelül[ pontosítás ] Két különböző típusú ütközési támadás létezik:
Az ütközési támadás két különböző m1 és m2 üzenetet talál úgy , hogy . A klasszikus támadás esetén a támadónak nincs befolyása az üzenetek tartalmára, hanem az algoritmus véletlenszerűen választja ki azokat. Sok szimmetrikus kriptorendszer sebezhető a brute force támadásokkal szemben , minden kriptográfiai hash funkció értelemszerűen sebezhető a születésnapi támadásokkal szemben . Ez utóbbi támadási módszer a születésnapi paradoxon miatt sokkal gyorsabb lehet, mint a brute force módszer. Egy N bites hash 2n /2 -szer törhető fel (hash függvény kiszámításával). A leghatékonyabb támadások akkor lehetségesek, ha kriptoanalízist használunk egy adott hash függvényen. Ha egy ütközési támadás gyorsabb, mint egy „születésnapi” támadás, a hash függvényeket gyakran „töröttnek” minősítik. Az SHA-3 hash függvény (verseny) létrehozását nagymértékben a régi MD5 [1] és SHA-1 függvények lecserélésének szükségessége indokolta . Az MD5 algoritmus elleni ütközési támadások annyit fejlődtek, hogy normál számítógépen csak néhány másodpercet vesz igénybe. [2] Az így generált hash ütközések általában állandó hosszúságúak és nagyrészt strukturálatlanok, ezért nem alkalmazhatók közvetlenül általános dokumentumformátumok vagy protokollok támadására. A sok formátumban jelenlévő dinamikus konstrukciókkal való visszaéléssel azonban lehetséges megoldások. Így két olyan dokumentum jön létre, amelyek megegyeznek egymással, így azonos hash értékkel rendelkeznek. Ha egy dokumentumot megbízható személy ír alá, az aláírása átmásolható egy másik fájlba. Egy ilyen rosszindulatú dokumentum két különböző üzenetet tartalmazna ugyanabban a dokumentumban, de a fájl kis módosításával ezek bármelyikét megjelenítheti:
Az ütközési támadás fejlesztésének eredménye a Merkle-Damgard szerkezetre tervezett ütközési támadás adott előtaggal . Ebben az esetben a támadó kiválaszthat 2 véletlenszerűen eltérő dokumentumot, majd kiegészítheti őket 2 különböző számított értékkel, hogy a 2 dokumentum ugyanazt a hash értéket kapja. Ez a támadás komolyabb, mint a klasszikus változata.
Matematikailag 2 különböző p1, p2 előtag létezik , ezek 2 m1 és m2 komplementerét úgy számítjuk ki , hogy hash(p1 ∥ m1) = hash(p2 ∥ m2) (ahol ∥ az összefűzési művelet ).
2007-ben létrehoztak egy előtaggal ellátott MD5 hash ütközési támadást, amely körülbelül 250 MD5 függvény számítást igényelt. A jegyzet két X.509-tanúsítványt mutatott be különböző tartománynevekhez, amelyek azonos hash funkcióval rendelkeznek. Ez azt jelenti, hogy egy megbízható tartomány tanúsítványát egy másik ismeretlen tartomány használhatja. [5]
Egy igazi ütközési támadást 2008 decemberében tettek közzé, amikor biztonsági kutatók egy csoportja közzétett egy hamis X.509 aláíró tanúsítványt , amellyel egy adott MD5 hash előtag ütközési támadása révén névtelenül engedélyezhető egy tanúsítvány. Ez azt jelentette, hogy a támadó közvetítőként bármilyen TLS -védett webhelyet meghamisíthat , megsértve ezzel az e-kereskedelem biztonsága érdekében minden webböngészőbe beépített tanúsítvány-érvényesítést . A hamis tanúsítványt a megbízható felek nem vonhatják vissza, tetszőleges ideig lejárhat. Az MD5 2004-ben feltárt gyengeségei ellenére [1] 2008 decemberében világossá vált, hogy sokan még mindig használnak ezzel a hash funkcióval rendelkező tanúsítványokat, [6] és legalábbis a Microsoft még 2012 májusában is ezt használta.
A Flame -ben a rosszindulatú programok sikeresen alkalmazták az előtaggal ellátott ütközési támadás új változatát, hogy meghamisítsák a kódaláíró összetevőket Microsoft gyökértanúsítványok segítségével, amelyek továbbra is a feltört MD5 algoritmust használták. [7] [8]
Sok kriptográfiai hash funkcióval rendelkező alkalmazás nem igényel ütközésvédelmet az ütközési támadások nem tudják megkerülni a védelmet Például a HMAC - ket nem éri ez a fajta támadás. [9] A sikeres támadáshoz a támadónak rendelkeznie kell a bemenet felett.
Mivel az elektronikus aláírási algoritmusok nem tudnak hatékonyan aláírni nagy mennyiségű adatot, sok bővítmény adattömörítési funkciókat használ a rögzített méretű aláírásra. Az elektronikus aláírási sémák gyakran hajlamosak az ütközésekre, annak ellenére, hogy véletlenszerű kivonatolási technikát alkalmaznak. [tíz]
Általában a támadás a következőképpen zajlik:
2008-ban a kutatók megtámadták az MD5 előtagot a fenti szkript segítségével, hogy hamis tanúsítványt hozzanak létre. Létrehozták a TLS nyilvános kulcsú tanúsítvány 2 verzióját, amelyek közül az egyiket RapidSSL-engedélyezéshez hitelesítették. Egy másik változat, amely ugyanazzal az MD5 hash értékkel rendelkezik, olyan jelzőket tartalmazott, amelyek jelezték a böngészőnek a bizalmat és a jogot, hogy más tanúsítványok számára bizalmat adjanak ki [11] .