Nem rég jelent meg Tomcsányi Domonkos és Lukas Lueg, Pyrit fejlesztő közös írása a WPA2-PSK jelszavak törésének egy gyorsítási módszeréről. Az ötlet az, hogy egy feltételezett kulcsból generált Paiwise Master Key birtokában egy AES blokk kiszámításáért cserébe kevesebb SHA-1 függvényhívással ellenőrizhető a feltételezett kulcs érvényessége, vagyis hogy az adott PMK helyes volt-e.
Az ötletet a Pyrit fejlesztői ágában már implementálták is, a Pyrit blogján megjelent bechmark adatok szerint mintegy kétszeres gyorsulást lehet elérni, amennyiben a PMK-k előre számítottan rendelkezésre állnak.
A magam részéről elég szkeptikusan álltam az eredményekhez: Amellett, hogy az ötlet jó, a gyakorlatban a kriptográfiai primitívek számán kívül számos egyéb tényező befolyásolhatja egy program teljesítményét sőt, az átgondolatlan optimalizáció akár ronthatja is azt. Emellett a WPA2 biztonságában a nyers-erőn alapuló támadásoknak történő ellenállást éppen a számításigényes PMK generálás hivatott garantálni, ezzel pedig az új módszer nem foglalkozik - bár a megközelítést alátámasztja az, hogy előre számított adatbázisokat széles körben alkalmaznak.
Így hát fogtam magam, és futtattam pár tesztet a régi és az új algoritmussal. Az első észrevételem az volt, hogy a neten elérhető szótárfájlok általában néhány százezer szót tartalmaznak, míg a régi kulcsellenőrzés is néhány milliót képes feldolgozni másodpercenként (ezzel szemben a PMK generálás néhány ezer szó/s-el futott). Végül egy saját, 3,2 millió szót tartalmazó szótárból építettem adatbázist Pyrittel.
Az algoritmus sebességét egyszerűen a time paranccsal illetve a Pyrit saját sebességmérőjével mértem - feltehetően utóbbit használta Lukas is a méréseihez. Az eredmények azonban értékelhetetlenek lettek, mivel néhány százezertől néhány százmillió szó/s-ig kaptam eredményt minkét algoritmus esetén, főleg attól függően, hogy milyen sorrendben kerültek bejárásra az adatbázis szavai.
Más méréseket még nem végeztem (bár Illés Márton optimalizációs előadása nagyon inspiráló volt :), és mástól sem láttam, így a módosított algoritmusra egyelőre inkább elméleti eredményként, lehetőségként tekintek.
+++
A másik WLAN-os érdekesség a héten a FaceNiff volt, amivel a környéken repkedő közösségiportál-bejelentkezéseket lehet elkapkodni Androidon. Erről először a LivingAndroid blog szerzőjétől hallottam, és szöget ütött a fejembe, hogy WPA2-PSK hálózatoból sima sniffeléssel hogyan lehet sütiket gyűjteni? A megoldás rövid és egyszerű: A FaceNiff nem passzív támadást alkalmaz, hanem ARP spoofingot alkalmazva egyszerűen megszemélyesíti az AP-t... hiába, a név nem minden :)
domi007 2011.06.03. 18:41:22
download.aircrack-ng.org/wiki-files/doc/enhanced_tkip_michael.pdf
gbor 2011.06.04. 13:45:30
ace911 2011.06.06. 12:49:37
Aron bacsi 2011.06.06. 17:07:53