Minek a jelszó? / Why do you need a password?

Mostanság, hogy eléggé elkezdtem érdeklődni a WPA/WPA2 biztonság iránt mindenféle ötleteim támadnak. Egy részük teljesen baromság (nyilván a nagy része), azonban egy-kettő akár értelmes is lehet. Ilyen volt ugye a WPA2 Known Plain Text attack amit Luaks Lueggel csináltunk, ez színtiszta optimalizálás volt, szimplán a szabvány alapján.

Azóta továbbmentem az olvasásban, és rájöttem, hogy a jelszóra baromira nincs szükségünk a WPA-ban, mert a szabvány definíciója megengedi a PMK használatát a jelszó helyett….ez az úgynevezett built-in pass-the-hash…

Nem hiszed el? Próbáld ki!
Ezzel generáld le a saját WiFi hálózatodra a PMK-t, majd Ctrl + C, Ctrl + V a Windows Wireless jelszó mezejébe. Connect….és hopp, fent vagy a hálózaton!

Mi a jelentősége?
A jelenlegi hash-adatbázisokat nagyjából 7/8 akkorára lehet csökkenteni méretben, hiszen a jelszót nem kell eltárolni, valamint ha valaki vissza akarja fejteni a kapott mester-kulcsból a jelszót, akkor már használhat valódi rainbow-táblákat (hiszen hashből megyünk a jelszó felé).

Számokkal: egy jelszó 8 byte hosszú (ha 8 karakteres ugyebár), egy PMK 65 byte-os, azaz tényleg körülbelül 1/8-al kevesebb helyre lesz szükségünk.

 

Nowadays I am digging deeper and deeper into WiFi security by only using the official 802.11 standard documentation. Pretty interesting and neat stuff, makes my brain go really fast and spit out many ideas. Of course, 99% of these ideas are totally stupid and pointless, but the remaining 1% is something I am proud of. For example the Known Plain Text Attack against WPA2 which Lukas Lueg and I did together is something pretty cool…

So I kept reading and reading, and look what I found out: for WPA/WPA2 you don’t need the password to connect…Why? Because you can use the PMK instead of it. Standard defined pass-the-hash. I tried it, and it works.
You don’t believe me? Well, try it out for yourself:
Generate your WiFi PMK by using this page. Then copy-paste the PMK into Windows when it is asking for the WLAN password….oops, it works :).

So what does this mean?
First all the hash databases we have been using could be smaller by around 1/8 (no need to store the password, so we save HDD space), and if you wanna recover the password from the PMK you can use real-rainbowtables, since we have a hash and wanna get the pw. Kinda liking it :).

Just the numbers: a password is 8-byte-long (talking about an 8-character-password), a PMK is 65 bytes, so truly around 1/8 could be spared.