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

 ( trey | 2008. december 31., szerda - 0:32 )

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.

Referenciák:
SSL broken! Hackers create rogue CA certificate using MD5 collisions
MD5 considered harmful today - Creating a rogue CA certificate
A 25c3 előadás diái
Demó oldal (kattintás előtt állítsd a rendszer dátumot 2004 augusztusra)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

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)

Visszaállítottad a dátumot?

(set your system date to August 2004 before clicking)

--
trey @ gépház

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

Látom elolvastad a linkeket...

--
trey @ gépház

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

Nekem ezt írja:

A tanúsítvány nem megbízható, mert a kibocsátó tanúsítványa lejárt
A tanúsítvány lejárt: 2004-09-02 02:00.

Debian lenny iceweasel alap telepítés.
Na holnap elolvasom a hivatkozásokat, hol itt a trükk ?

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.

Így van, ezt le is írják a demó oldalon:

We have intentionally crippled our rogue CA certificate with an expiration date in August 2004. This is not a limitation of our method, just a precaution against a misuse of our CA if it ever falls into the wrong hands.

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

Nem teória, matematikailag bizonyított volt az elmélet.

Rendben. Akkor egy matematikailag bizonyított elmélet megvalósítása a _gyakorlatban_.

--
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.

Ez igaz, de most arról van szó, hogy brute force nélkül is törhető -vagyis rövid belátható időn belül. Ez már probléma.

"komolyan nem értem mi a nagy felfedezés"

Peldaul a speci collision-kereso algo sok-sok ps3-ra optimalizalva.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

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


Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Szokás:

Idézet:
We collected 30,000 website certificates

- 9,000 of them were signed with MD5
- 97% of those were issued by RapidSSL

CAs still using MD5 in 2008:

RapidSSL
FreeSSL
TrustCenter
RSA Data Security
Thawte
verisign.co.jp

--
trey @ gépház

Itthon a "hivatalos" tanusítványokban 2008 január 1. óta tilos MD5-öt használni.

Nem volt kedvem ketto percnel tobbet tolteni a kerdessel, de...

---
pontscho / fresh!mindworkz

Akkor az SHA-512 egyelőre jó lesz?

KAMI | 神
--
Támogatás | OxygenOffice | Fordításaim és SeaMonkey

Arrol egyelore nem hallottam rosszat, de ha az utkozest nagyobb valoszinuseggel akarod elkerulni akkor jobb megoldast ad ha tobb hasht hasznalsz egyszerre.

---
pontscho / fresh!mindworkz

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

Ez 2005 februári cikk.
http://www.schneier.com/blog/archives/2005/02/sha1_broken.html

Itt egy 2005 márciusi talán hitelesebb forrásból:
http://www.rsa.com/rsalabs/node.asp?id=2834

Huh? Bruce Schneier nem eleg hiteles?

utánaolvastam, igaz, inkább eltávolítom a jelzőt.

> hamisítható az sha1 is...

Még jó hogy közeledik az SHA-3: http://csrc.nist.gov/groups/ST/hash/sha-3/index.html

és az md6...

Rajta van a listán ...

http://people.csail.mit.edu/rivest/Rivest-TheMD6HashFunction.ppt
Ezen nekem az openoffice úgy elszáll, mint a szél.

Másnak is?

Csak mert nem Ubuntu alatt használod! ;)

Pedig de, csak nem a benne lévő ezeréveset, hanem a hivatalosat innen:
http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=linuxinteldeb&lang=en-US&version=3.0.0

Te? Ubuntu, na ne rohogtess... Miota hasznalsz Te Linuxot? :)

Mióta meguntam a Vista lassúságát. Most más dolgok miatt szívok, de legalább nőtt a reakcióidőm. :)

Boldog új évet!

Lassan fél éve ennek. Ettől mondjuk boldogabb nem lettem, ne hidd, hogy annyira jó az Ubuntu. :)
Talán (jó) pár év múlva...

Nekem nem. Mondtam már, hogy vegyél egy rendes gépet ;)

--
trey @ gépház

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.

Természetesen 2.4-es verzióval próbálom, mert nekem azt szállítja a disztribútorom alapból, annyira meg nem vagy pró, hogy magam telepítsek. :D

--
trey @ gépház

É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. :)

"Drága a parizer."
Es meg nincs is gyereked... :)

Miért, az sok parizert pusztít?

Az pusztit csak igazan.

Ráadásul eleinte igen nagy selejtszázalékkal (t)eszi :-)

Ne reménykedj, hogy a selejt csökkenésével a fogyasztott parizer mennyisége is csökkenni fog! ;)

confirm
Gentoo x86_64, Installed versions: 3.0.0(10:54:13 AM 12/14/2008)(cups dbus eds gnome gstreamer gtk java ldap linguas_hu opengl pam


Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Nekem WinXP SP3 alatt is összehányja tőle magát a 3.0.


"no video codec le a win32vel", de "Gentoohoz lehet meg tul fiatal vagy"

w2k, OxygenOffice 3.0.0 M009, Build 11 (OOO300m9 Build:9358), ppt-import, úgy sacc/kb. 70-80% körül (bitkolbász) elhasal.

Arch Linux, openoffice 3.0.0-4, elszáll :(


:(){ :|:& };:

Menti valahova az OOo a stack tracet ?


Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Nekem 2.4-es saját fordítás x86_64-en semmi probléma vele. Megnyitja jól.

--
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.

A csodalatos openoffice egy ppt-tol elszall. :)

Már akinél :)

--
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.

A tiéd (2.4) meg máson száll ell, nyugi.

Tudsz pár doksit linkelni vagy keressek én? :)

--
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.

Sajnos nem, munkahelyváltás miatt megszabadultam tőlük (és ha meg is lennének sem adhatnám ki).

Nocsak, most váltottál munkahelyet vagy még anno? ;)

Legutóbb 2007. októberben. :)

Nekem is, de legalább a ports-ban szintén benne levő tonicpoint-tal graphics/tonicpoint-viewer gyönyörűen megnézhető. (Igaz, az meg mást nem szeret.)

3.4.2-n megy

KAMI | 神
--
Támogatás | OxygenOffice | Fordításaim és SeaMonkey

Ott is rúzsozzák a CA-t :-))

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 --

valahol azt irtak hogy az adot feladatnal 8000 PC.

mgb