Tweets by @buherablog
profile for buherator at IT Security Stack Exchange, Q&A for IT security professionals

A BitBetyár Blog

Túljártál a nagyokosok eszén? Küldd be a mutatványodat! (e-mail a buherator gmailkomra jöhet)

Full-Disclosure / Névjegy / Coming out


Promó

H.A.C.K.

Címkék

0day (110) adobe (87) adobe reader (21) anonymous (26) apple (60) az olvasó ír (49) blackhat (20) botnet (22) bug (200) buherablog (44) buhera sörözés (39) bukta (49) deface (38) dns (22) dos (29) esemény (82) facebook (26) firefox (64) flash (33) gondolat (31) google (59) google chrome (36) hacktivity (37) hírek (117) incidens (224) internet explorer (88) iphone (35) java (50) jog (22) kína (21) kriptográfia (68) kultúra (21) linux (24) malware (43) microsoft (142) móka (48) mozilla (23) office (26) oracle (40) os x (43) patch (197) php (20) politika (31) privacy (58) programozás (22) safari (34) sql injection (62) windows (85) xss (77) Címkefelhő

Licensz

Creative Commons Licenc

Olcsó húsnak híg a leve - AES-128 helyett XOR

2008.03.29. 11:38 | buherator | 4 komment

A március 15-i CRYPTOGRAM-ban akadtam a következő cikkre:

Olcsó, új generációs merevlemezdokkok hardveres titkosítást és RFID alapú azonosítást igérnek. A reklámok 128-bites AES titkosításról szólnak, de azt nem kötik az orrunkra, hogy hogyan használják az algoritmust.

A német Drecom által gyártott 2.5 inch-es Easy Nova Data Box PRO-25UE RFID vincseszterdoboz specifikációja igéretesnek tűnik: hardveres adattitkosítás, akár kulcstartón is hordozható RFID chippel történő azonosítás és opcionális 160 vagy 250 GB-os kapacitás. Az RFID chipet a doboz mellé helyezve az integrált Innmax IM7206-os kriptovezérlő megnyitja a lemez tartalmát a csatlakoztatott számítógép előtt. A dolog ugyanúgy működik Linux és Mac OS X alatt is mint Windows-on, nincs szükség speciális driverekre.

[...]

Az analízisünk első lépése a titkosított adatok vizuális elemzése volt. Kezdetnek kiszedtük a mellékelt Samsung merevlemezt, és rákötöttük egy hagyományos USB SATA adapterre. Azonnal észrevettük, hogy a partíciós tábla és a FAT32-es formázás által érintetlenül hagyott szektorok a merevlemez gyártásakor beállított nullákkal vannak teleírva. Ugyan ez nem jelent nagy kriptográfiai baklövést, annyit minden esetre elárul a támadónak, hogy merre keresse a titkosított adatokat a lemezen.

Ideális esetben a titkosított adat véletlen eloszlásúnak tűnik. Egy fázis-tér ábra segít gyorsan megállapítani az adatok álvéletlenségét, ezzel pedig az adathalmaz titkosításának relatív erősségét. Egy három dimenziós fázis-tér ábra esetén az a, b, c, d, e, f, stb. sorozat használható tér-koordinátaként: (a-b,b-c,c-d), (b-c,c-d,d-e), (c-d,d-e,e-f), stb.
Az ábrán keletkező minták felfedik az ismétlődő kapcsolatokat a későbbi szekvenciákban. Ezen a fázisábrán 50.000 16-bites véletlen szám egy struktúrálatlan pontfelhőt mutatna:

a véletlen és jól titkosított adatok egyenletes eloszlást mutatnak
A véletlen és jól titkosított adatok egyenletes eloszlást mutatnak

Mivel a titkosított merevlemez első 100 kB-jának 30%-a nullákból áll, várhatóan a pontok egyharmada az origóban lesz. Legalább a maradék két harmadnak véletlenszerűen kellene elhelyezkednie az ábrán, ha rendes titkosításról lenne szó. Sajnos az eloszlás minden, csak nem egyenletes:

a merevlemezen található titkosított adatok vonalakat mutatnak - a gyenge titkosítás jele
A merevlemezen lévő titkosított adatok képében vonalak látszanak - a gyenge titkosítás jele

A 35.000 nem-nulla jelentős része, melyektől véletlen eloszlást várnánk, négy helyen csoportosul a diagrammon. Ha közelebbről megnézzük az egyes szektorokat egy hexeditorral, ismétlődő szekvenciákat találunk:

00008e00  77 c8 54 35 ee 90 a9 6a  dc 21 53 d5 7d 43 a6 aa  |w.T5...j.!S.}C..|
00008e10 3f 86 4c 55 7e 0c 99 aa 39 18 32 55 72 30 64 aa |?.LU~...9.2Ur0d.|
...
00008fe0 fd 76 00 20 fa ed 00 40 f4 db 01 80 2d b7 03 00 |.v. ...@....-...|
00008ff0 5a 6e 07 00 b4 dc 0e 00 68 b9 1d 00 d0 72 3b 00 |Zn......h....r;.|

A következő 512 byte-os blokkot megnézve:

00009000  77 c8 54 35 ee 90 a9 6a  dc 21 53 d5 7d 43 a6 aa  |w.T5...j.!S.}C..|
00009010 3f 86 4c 55 7e 0c 99 aa 39 18 32 55 72 30 64 aa |?.LU~...9.2Ur0d.|
...
000091e0 fd 76 00 20 fa ed 00 40 f4 db 01 80 2d b7 03 00 |.v. ...@....-...|
000091f0 5a 6e 07 00 b4 dc 0e 00 68 b9 1d 00 d0 72 3b 00 |Zn......h....r;.|

Újra:

00009200  77 c8 54 35 ee 90 a9 6a  dc 21 53 d5 7d 43 a6 aa  |w.T5...j.!S.}C..|
00009210 3f 86 4c 55 7e 0c 99 aa 39 18 32 55 72 30 64 aa |?.LU~...9.2Ur0d.|
...
000093c0 4d 00 20 59 9a 00 40 b2 f1 01 80 64 e2 03 00 c9 |M. Y..@....d....|
000093d0 01 07 00 92 c7 0e 00 24 8e 1d 00 48 1c 3b 00 90 |.......$...H.;..|

És újra:

00009400  77 c8 54 35 ee 90 a9 6a  dc 21 53 d5 7d 43 a6 aa  |w.T5...j.!S.}C..|
00009410 3f 86 4c 55 7e 0c 99 aa 39 18 32 55 72 30 64 aa |?.LU~...9.2Ur0d.|
...
000095e0 fd 76 00 20 fa ed 00 40 f4 db 01 80 2d b7 03 00 |.v. ...@....-...|
000095f0 5a 6e 07 00 b4 dc 0e 00 68 b9 1d 00 d0 72 3b 00 |Zn......h....r;.|

Ez a szabályos ismétlődés folytatódott és a majdnem egyező számsorok azt súgják, hogy AES helyett egy konstans, 512-byteos blokktitkosítót alkalmaztak, XOR-ral implementálva.

A hiányző előformázással ellentétben, a változatlan kulcssal történő XOR-olás hatalmas kriptográfiai hiányosságot jelent - gyakorlatilag ismert nyílt-szöveg alapú támadást tesz lehetővé. A XOR titkosítás így működik:

Kriptoszövegn = Nyílt-szövegn XOR  kulcs-blokk(kulcsn)

A megfejtés ugyanígy működik, a kriptoszöveg és a nyílt szöveg szerepét felcserélve:

Nyílt-szövegn = Kriptoszövegn XOR  kulcs-blokk(kulcsn)

Ha a kulcs-blokk azonos minden szektorra - mint a fennti esetben - az eredmény:

kulcs-blokk(kulcs)=kriptoszövegn XOR nyílt-szövegn

bármely n blokkra. Más szóval csak egy olyan 512 byte hosszú blokkot kell találni, amelyhez tartozó nyílt szöveg ismert, hogy kiszámítsuk a kulcs-blokkot. Emiatt hívják ezt a módszert nyílt-szöveg alapú támadásnak. Tovább súlyosbítja a helyzetet, hogy a 67. szektor szinte csak nullákat tartalmaz, ha FAT32-re formázunk.
00008400  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00008410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00008420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
...
000085d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000085e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000085f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
Így szinte az egész titkosító kulcsot megkaphatjuk a titkosított merevlemez 67. szektorának kiolvasásával. [...] Ha megnézed a dd if=/dev/sdc bs=512 count=1 skip=67 | hexdump -vCparancs kimenetét, majdnem a teljes keresett 512- byte-ot megkapod:

00008400  77 c8 54 35 ee 90 a9 6a  dc 21 53 d5 7d 43 a6 aa  |w.T5...j.!S.}C..|
00008410 3f 86 4c 55 7e 0c 99 aa 39 18 32 55 72 30 64 aa |?.LU~...9.2Ur0d.|
00008420 21 60 c8 54 42 c0 90 a9 41 80 21 53 82 00 43 a6 |!`.TB...A.!S..C.|
...
000085d0 01 07 00 92 c7 0e 00 24 8e 1d 00 48 1c 3b 00 90 |.......$...H.;..|
000085e0 fd 76 00 20 fa ed 00 40 f4 db 01 80 2d b7 03 00 |.v. ...@....-...|
000085f0 5a 6e 07 00 b4 dc 0e 00 68 b9 1d 00 d0 72 6e aa |Zn......h....rn.|

De itt az utolsó két byte nem helyes, ezeket XOR-olni kell 55-tel és aa-val, hogy megkapjuk a helyes 3b és 00 értékeket. Most már ismerjük a teljes 512 byteos titkosító kulcsot, melynek segítségével a lemez összes szektorát megfejthetjük.

Ki gondolta volna, hogy ilyen egyszerű lesz? Valójában a léc olyan alacsony, hogy kezdő támadóknak sem jelent problémát az átlépése. A titkosítás megfejtése a legalacsonyabb blokk szinten lehetséges, az RFID által nyújtott mindenfajta védelem teljességgel haszontalan, ezért ezzel már nem is foglalkoztunk.

A heise Security már kapott egy állásfoglalást az Innmaxtól, az IM7206-os vezérlőchip gyártójától, melyben megerősítik a felfedezéseket. Az IM7206 az AES titkosítást csak az RFID chip azonosítójának a vezérlő flash memóriájába történő lementéséhez használja. A cég szerint a valódi titkosítási eljárás szabadalmaztatott algoritmuson alapul. A gyártó továbbá úgy érvel, hogy az IM7206 csak alapvető védelmet nyújt, és "átlagos felhasználók" számára tervezték. Ezzel szemben a drágább IM8202 vezérlő chipet nagyobb biztonsági igényeket támasztó felhasználók számára fogják készíteni - állításuk szerint ez valódi 128 bites AES titkosítást alkalmaz majd - bár a chip még fejlesztés alatt áll.

A merevlemez kasztni gyártója a Drecom szintén megerősítette a felfedezésünket, és nagy erőkkel dolgozik a megoldáson. Holger Henke, az Easy Nove termékmenedzsere szerint a Data Box PRO-25SUE helytelen "128-bites hardver alapú adattitkosítás" cimkézése az Innmax helytelen vezérlő-specifikációjából adódott. Henke az új, IM8202-vel ellátott Easy Nova egység megjelenését az év végére jósolta. Addig is a cég folytatja a termék forgalmazását "egyszerű titkosítás" megjelöléssel.

Az Easy Nova terméke nem az egyetlen a piacon, ami az IM7206-ot használja. Veltételezhető, hogy más, azonos kontrollert alkalmazó termékek is szenvednek ettől a sebezhetőségtől. A következő kripto-lemezmeghajtók használják az IM7206-ot:

A gyártókat értesítettük, de visszajelzés egyelőre nem érkezett.

Címkék: rfid kriptográfia

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

EQ · http://www.rycon.hu 2008.03.29. 13:37:47

Szép cikk, grat a fordításhoz. 2féléve tanulok valszámot-statisztikát, de végtelen eloszlásról még nem hallottam :) De ez persze nem jelenti h nincs. Amit nagyon sajnálok, hogy magyarul nincsenek ilyentipusú szaklapok.

buherator · http://buhera.blog.hu 2008.03.29. 13:47:12

Kösz :) Végtelen eloszlást hol látsz? Tényleg nincs olyan :) A véletlen eloszlás itt nem mint matematikai fogalom szerepel, szóval szerintem azzal nincs baj.

EQ · http://rycon.hu 2008.03.29. 17:13:33

igazad van, másnap, félreolvasás, hülyekommentirogatás volt. Amúgy véletlen eloszlás sem létezik, de ha nem matek akkor rendben, nincs mit fikázni :'( :D marad a jó fordítás.

noss 2008.03.29. 20:33:17

grat. & köszi a cikket, tanulságos volt!