Kihasználva az MD5 gyengeségét biztonsági szakemberek "rogue" CA tanúsítványt készítettek

Kétszáz darab Sony PlayStation 3 játékkonzolból álló cluster számítási teljesítményét és körülbelül 700 dollár értékű teszt digitális tanúsítványt felhasználva egy amerikai és európai biztonsági szakemberekből álló csoport megtalálta a módját annak, hogy az MD5 ismert gyengeségét kihasználva olyan "rogue" CA (Certification Authority) tanúsítványt hozzon létre, amelyben megbízik az összes modern böngésző.

A kutatás eredménye - amelyet ma mutatott be Alex Sotirov és Jacob Appelbaum a Németországban megrendezett 25C3 konferencián - eredményesen alkalmazható az ellen a metódus ellen, amelyet felhasználva a modern böngészők megbíznak a biztonságos weboldalakban és egy olyan támadási módot biztosít a támadók számára, amellyel azok gyakorlatlag felfedezhetetlen adathalász (phishing) támadásokat indíthatnak.

Hozzászólások

hehe, a demó oldalra nekem a firefox azt dobja hogy nem jó a tanusítvány... :-D
(mondjuk a böngészőm elég friss: Gecko/20081226 Minefield/3.2a1pre)

> kattintás előtt állítsd a rendszer dátumot 2004 augusztusra
Ettol valahogy eletszerubb lett a demo...

rouge: rúzs
rogue: gazember, szélhámos

Szeritem ott a trükk, hogy ez egy demó oldal. A cert szándékosan jár le 2004-ben.

Ha valid certificate-el próbálkoznának, esetleg egy amerikai beperelhetné őket megtévesztés miatt :).

Ha tudtak olyan cert-et gyártani ami valid lejárta előtt, tudnak olyat is, ami 2500-ban jár le.

http://www.win.tue.nl/hashclash/rogue-ca/

Úgy veszem ki a fenti linket átolvasva, hogy az MD5 algoritmussal az a probléma, hogy -habár megfelelően állít elő hash-t egy bemeneti értékből-, a probléma mégis az, hogy nem tartalmaz módszert a kezdeti bit sorozatok egyedi beállításához, ami miatt sikeresen előállítottak olyan "ütköztetett" bemeneti bit stringet, amelyek különbözőek, mégis egyforma hash-t produkáltak az MD5 algoritmussal. Ezt pedig a gyakorlatban úgy tudják használni, hogy olyan gondosan előkészített publikus kulcsot preparálnak, amely éppen olyan bitsort tartalmaz ("collison block"-nak hívják), amelynek van ilyen "párja", tehát magyarul megfogalmazva, tudnak két olyan publikus kulcsot preparálni, amelyek ujjlenyomata megegyezik!

Mondjuk ez olyan szinten aggaszt, hogy a GPG kulcsok ujjlenyomata is MD5 alapján generálódik (semmi extra, csak bele tesz még egy fejlécet a publikus kulcshoz, aztán sima MD5 hajtódik végre rajta, így meg is van a 128 bit-es ujjlenyomat). Márpedig a gyakorlatban ujjlenyomat alapján azonosítunk.

De ha 2004-es a felfedezés, akkor miért van még mindig sok helyen implementálva?

Szerk.: Ez itt az érdekes:
"In 2004 Xiaoyun Wang and Hongbo Yu presented a collision for MD5 consisting of 2 input blocks, neglecting padding. ... Their method works for any value of the initial IHV0.

In other words, their method produces on input of any 128 bit IHV0 a pair {{M1,M2}, {M1',M2'}}, each consisting of two 512 bit input blocks, such that {M1,M2} ≠ {M1',M2'}, and

IHV0 = IHV0'
IHV1 = CF(IHV0,M1) ≠ IHV1' = CF(IHV0',M1')
IHV2 = CF(IHV1,M2) = IHV2' = CF(IHV1',M2')

Due to the iterative structure of MD5 and to the fact that IHV0 can have any 128 bit value, such collisions can be combined into larger inputs. Namely, for any given prefix P and any given suffix S a pair of "collision blocks" {C,C'} can be computed such that MD5(P||C||S) = MD5(P||C'||S). We use the term "collision block" for a specially crafted bit string that is inserted into another bit string to achieve a collision. One collision block may consist of several input blocks, even including partial input blocks. The collision blocks of [WY] consist of precisely two consecutive input blocks."

"ami miatt sikeresen előállítottak olyan "ütköztetett" bemeneti bit stringet, amelyek különbözőek, mégis egyforma hash-t produkáltak az MD5 algoritmussal"

Ez nem meglepő, hiszen évek óta ismert, hogy az MD5 nem gyengén ütközésmentes. Akkor tulajdonképpen mi is a hír? Az, hogy ezt a gyakorlatban is ki lehet használni?

(annak aki nem tudná:

a.) gyenge ütközésmentesség: lehet generálni két nyílt szöveget (x és y) úgy, hogy H(x)=H(y) ( http://en.wikipedia.org/wiki/Birthday_attack )
b.) erős ütközésmentesség: adott nyílt szöveghez (x-hez, és így a kiszámított H(x)-hez) lehet találni y-t, hogy H(x)=H(y) )

Tehát ők vettek jó sok cert-et "We spent about USD 700 on purchasing test certificates from a CA.", és csináltak velük egy birthday-t.

Ha ez csak amolyan poof of concept volt, akkor oké, de ha nem, akkor komolyan nem értem mi a nagy felfedezés.

Petya

Egy teóriáról bebizonyítani gyakorlatban, hogy az működőképes, az általában nagy előrelépés az adott területen. Nyilván mindenki a maga értékrendje szerint kezeli. Neked nem nagy durranás, nekik - akik ezzel esetleg hónapokat töltöttek - valószínűleg az.

--
trey @ gépház

Ahhoz nem kell túl nagy matematika, hogy belátható legyen, ha egy adathalmazból generálsz egy másik adathalmazt, de a generált adathalmaz kisebb mérető, akkor mindenképpen lesznek azonosak.
Pl 1-1000 minden számhoz generálsz egy számot 1-10, akkor mindenképpen lesznek azonosak, bármilyen algoritmust is használsz.
A kihívás abban van, hogy találj egy értelmes adathalmazból generált hash-hez egy olyan adathalmazt ami, ugyancsak értelmes és a hash-e megegyezik. Ezt matematikailag be lehet bizonyítani, de a nagy kérdés, hogy a jelenlegi számítási kapacitások mellett, ez belátható időn belül megoldható-e.
Ezek szerint az MD5 (128bit) törhető, de az SHA1 (160bit) is törhető "matematikailag" csak hát tovább tart.

SHA1 -t szokas hasznalni.
Ezentul letilthatjuk azt ami MD5 -ot hasznal.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

ezek szerint már hamisítható az sha1 is...

Gondolom te is a 2.4-essel próbálod. Én meg mondtam már, hogy szívesen használnék OS X-et MacBook Prón, de hiába mondom, csak ezt a szar HP-t adja a cég. :)
Számítógépet pedig még életemben nem vettem (magamnak), amíg tehetem, ezen nem is szeretnék változtatni. Drága a parizer.

Én egyébként azért (is) tettem fel a 3-ast, mert volt pár doksi, amin a default szállított 2.4-es ugyanígy elbukott, viszont a 3-as képes volt legalább betölteni (a megjelenítést inkább hagyjuk).

Sajnos ez a szoftver is a trágyalé kategória, de talán majd az unokáim unokái még megérik, hogy használható legyen. Persze ha addigra ki nem jön valami más megoldás. :)

Egyébként a 200 PS3 mennyi teljesítménynek felel meg. Mondjuk vegyünk egy 2,5 AMD Athlon procit és gépenként 1G RAMot.

-- "Bízzál Istenben és tartsd szárazon a puskaport!" - Cromwell --
-- Sayusi Ando - http://sayusi.hu --