:

Szerző: Bodnár Ádám

2011. május 24. 10:55

Magyar ötlettel gyorsabban törhető a WPA2

Egy magyar IT-biztonsági szakértő, Tomcsányi Domonkos új módszert dolgozott ki a WPA2 Wi-Fi biztonsági protokollal védett hálózatok jelszavainak visszafejtésére. Az eljárás jelentősen felgyorsítja a folyamatot, a visszafejtés második szakaszához szükséges idő jelentősen csökken. A megoldás továbbra is egy erős jelszó használata.

WPA2 alapfokon

A Wi-Fi hálózatokon használt WPA/WPA2 biztonsági protokoll alapja a Password-Based Key Derivation Function 2 (PBKDF2) függvény, amelynek végrehajtása rendkívül számításigényes, ezért alkalmas a brute-force, vagyis próbálgatáson alapuló visszafejtés megakadályozására - írja Tomcsányi Domonkos. Ha egy támadó megpróbál feltörni egy WPA2 hálózatot,  akkor a lehetséges jelszavakon végre kell hajtania a PBKDF2 függvényt, és az eredményül kapott mesterkulcsot használhatja tovább a második fázisban.

Az eddig ismert egyetlen támadás a WPA2-AES ellen csak az úgynevezett négylépéses kézfogást használta fel a jelszótörés második szakaszában. Egy challenge-response elvet használó autentikáció garantálja, hogy a kapcsolódó felek ismerik a hálózathoz tartozó jelszót. Az első lépésben a vezeték nélküli hozzáférési pont és a kliens is generál egy-egy véletlen számot, majd az Access Point átküldi a sajátját a kliensnek. A kliens ezek után a két véletlen szám és a mesterkulcs  ismeretében képes előállítani a titkosított kommunikáció során használatos kulcsokat. A következő lépésben a kliensgép elküldi a saját véletlen számát a hozzáférési pontnak, azonban ezt a csomagot már a frissen elkészült kulcsok és egy SHA-1 függvény segítségével digitálisan aláírja. Mivel az aláíráshoz a kulcsokat is felhasználták ezért ha az helyes, akkor az Access Point biztos lehet benne, hogy a kliens a valódi kulcs birtokában van, azaz jogosult a hálózat használatára.

A támadónak tehát meg kell szereznie a Wi-Fi hozzáférési pont és a kliens által generált két véletlen számot, illetve az egyikhez tartozó digitális aláírást, ezt követően pedig  már offline folytathatja a jelszó visszafejtését: olyan kulcsot kell találnia, amellyel aláírva a második lépésben átküldött adatot (kliens véletlen szám) a kapott aláírás megegyezik a lementett aláírással. Ha ez bekövetkezik akkor  a bemenetként használt jelszó helyes, azaz megvan a WPA2 protokollal védett Wi-Fi hálózat  jelszava. Ez a támadás a PBKDF2 függvényen kívül még 12-15 darab SHA-1 utasítást igényel, de a  Tomcsányi Domonkos által kitalált és Lukas Lueg által megvalósított "CCMP known plain-text attack" csak 7 SHA-1 és egy AES utasításba "kerül" a PBKDF2 függvény után.

Sokkal gyorsabban

A CCMP known plain-text attack megértéséhez szükség van az AES működésének ismeretére: az AES egy blokktitkosító, azaz csak egy megadott méretű, 128 bites adatblokkot képes titkosítani. Ha ennél több adatról van szó, kézenfekvő azt 128 bites darabokra szeletelni és egyenként titkosítani, de .a az adat egyforma blokkokból áll, a titkosított blokkok is egyformák lesznek. Ezért találták ki az úgynevezett counter mode-ot, amelyben nem egy blokknyi adatot hanem egy számláló értékét titkosítják. A titkosítandó adatot ezzel a számláló értékével titkosítják, méghozzá egy kizáró vagy (XOR) utasítás felhasználásával. A számláló értéke minden egyes blokk után megváltozik, így ha egyforma bemeneti adatokat titkosítunk, a titkosított adat blokkjai eltérőek lesznek. A számláló kezdeti értékét természetesen ismerni kell ahhoz, hogy dekódoljunk egy ilyen módon kódolt üzenetet, ezért azt titkosítás nélkül szokták a csomag mellé csatolni.

CI/CD-vel folytatódik az AWS hazai online meetup-sorozata!

A sorozat december 12-i, ötödik állomásán bemutatjuk az AWS CodeCatalyst platformot, és a nyílt forráskódú Daggert is.

CI/CD-vel folytatódik az AWS hazai online meetup-sorozata! A sorozat december 12-i, ötödik állomásán bemutatjuk az AWS CodeCatalyst platformot, és a nyílt forráskódú Daggert is.

Tomcsányi Domonkos módszeréhez az ötletet az adta, hogy a szabvány szerint minden egyes Wi-Fi csomag egy konstans bájtsorozattal kezdődik. Ha a támadó már ismeri a négylépéses kézfogást, majd ezek után elkap még egy, már titkosított csomagot akkor megpróbálhatja kititkosítani a csomagot egy általa választott kulccsal. Ha a kapott csomag első 8 bájtja megegyezik az ismert, konstans szöveggel akkor biztos, hogy a használt kulcs helyes volt. Ha nem az ismert 8 bájtot kapja vissza, akkor tudja, hogy a használt kulcs helytelen és újra próbálkozik egy másik kulccsal.

Ez a támadás csak 7 darab SHA-1 utasítást és egy AES-utasítást használ, utóbbi jóval kevesebb számítási teljesítményt igényel, az AES-NI utasításkészletet is támogató processzorokon (pl. Intel Westmere, Sandy Bridge) pedig szinte semennyit - a kutatók így pontosan 50 százalékkal voltak képesek felgyorsítani a jelszóvisszafejtés második szakaszát. A támadást a Pyrit nevű jelszóvisszafejtő szoftver legfrissebb verziójában már implementálta a Domonkossal együtt dolgozó  német Lukas Lueg.

Erős jelszót kell választani

A WPA2 protokollal védett Wi-Fi hálózatok feltörése azonban így is biztonságban vannak, ha elég erős a jelszó. Egyrészt a Tomcsányi Domonkos módszerével felgyorsított második szakasz a teljes jelszóvisszafejtési folyamatnak csak kis részét teszi ki, a számításigényes PBKDF2 függvényt továbbra is végre kell hajtani minden lehetséges jelszón - egy minimum 8 karakterből álló, kis- és nagybetűket, valamint számokat is tartalmazó tetszőleges WPA2 jelszót a nulláról indulva egy évig tart feltörni GPGPU gyorsítást is bevető modern PC-n.

Léteznek ugyanakkor előre legenerált hash-adatbázisok, afféle szótárak, amelyben megtalálhatók a megfelelő jelszó-mesterkulcs párosok: a legismertebb ezek közül a ChurchOfWifi által összeállított, 33 gigabájtos tábla, amely a legelterjedtebb 1000 SSID-re és egymillió jelszóra készült, de egy erős PC-vel rendelkező felhasználó akár otthon is készíthet ilyet, a leggyorsabb NVIDIA és ATI GPU-k másodpercenként több millió jelszó-hash párost képesek legenerálni.

Amennyiben van egy ilyen "szótára" a támadónak, akkor csak a jelszóvisszafejtés második szakaszát kell végrehajtania és jelentős gyorsulás érhető el a Domonkos által kitalált CCMP know plain-text attack módszerrel - egy 3,4 GHz-es négymagos Core i7 processzort tartalmazó PC másodpercenként közel 8 millió lehetséges jelszót tud kipróbálni. A Pyrit támogat GPGPU gyorsítást, elosztott futást és akár az Amazon EC2 cloudon is használható a maximális teljesítmény elérése érdekében, utóbbi esetben csak a pénztárca szab határt az adott idő alatt kipróbálható jelszavak számának.

A brute-force jelszóvisszafejtés elleni leghatékonyabb védekezés még mindig egy erős jelszó választása: a WPA2 esetén akár 63 karakteres szöveg is megengedett. Minél hosszabb és bonyolultabb a jelszó, annál kevesebb az esély, hogy szerepel valamelyik, az internetről szabadon letölthető hash-táblában és így a visszafejtése évekig is eltarthat. Tomcsányi Domonkos szerint egy 10 karakteres, értelmes szavakat nem, de kis- és nagybetűt, számot és speciális karaktert is tartalmazó jelszó már megfelelő védelmet nyújt a visszafejtés ellen.

A CCMP known plain text támadásról bővebben a Tomcsányi Domonkos és Lukas Lueg által publikált dokumentumban lehet olvasni.

November 25-26-án 6 alkalmas K8s security és 10 alkalmas, a Go és a cloud native szoftverfejlesztés alapjaiba bevezető képzéseket indítunk. Az élő képzések órái utólag is visszanézhetők, és munkaidő végén kezdődnek.

a címlapról