Kleinov útok

Andreas Klein na prednáške [14] v júni 2005 uviedol, a potom vo februári 2006 v

[15] podrobne popísal nový druh útoku na RC4 šifru zameraný na celé stavové pole

KSA. V apríli 2007 Erik Tews, Ralf-Philipp Weinmann, a Andrei Pyshkin v [16]

popísali praktickú implementáciu tohoto útoku pre WEP a zverejnili proof-of-concept

utilitu aircrack-ptw.

obr. 4-6: Prenášané dáta pre ARP request/reply rámce

Útok vyžaduje pre 128-bitové WEP poznať prvých 16 bajtov plaintextu, čo je

možné pri ARP rámcoch (obr. 4-6). ARP request a reply sa líšia na 16. bajte, ale ľahko

ich odlíšime podľa cieľovej MAC v IEEE 802.11 hlavičke, ktorá je nezašifrovaná –

request je posielaný ako broadcast. Pomocou MAC adries vieme určiť alebo odhadnúť

aj ďalšie bajty plaintextu (MAC adresa odosielateľa, IP adresa odosielateľa, MAC

adresa cieľa, IP adresa cieľa), pre útok ale postačuje prvých 16.

Pri 40000 nazbieraných zašifrovaných ARP rámcoch vieme určiť tajný kľúč

s pravdepodobnosťou 50%, pri 85000 ARP rámcoch s pravdepodobnosťou 95%.

4.9.1 Realizácia Kleinovho útoku

Kleinov útok je možné realizovať ako pasívny, ale ARP prevádzka na bežných

sieťach je taká nízka, že by mohol trvať niekoľko dní. Preto je efektívnejšie realizovať

ho ako aktívny útok, a to nasledovne:

1. monitorovať prevádzku pomocou wireshark alebo Aircrack-ng;

2. spustiť ARP reinjekciu pomocou aireplay-ng -3 (popísané v 4.2.1);

3. počkať na prirodzený ARP paket, alebo vynútiť si ho pomocou

deautentifikácie (viď. 6.4);

4. počkať, kým sa reinjektuje dostatočné množstvo ARP paketov a uložiť

zachytenú premávku do pcap súboru;

5. spracovať uložený pcap súbor pomocou aircrack-ptw:

$ ./aircrack-ptw many-arps.cap

This is aircrack-ptw 1.0.0

For more informations see http://www.cdc.informatik.tu-darmstadt.de/ aircrack-ptw/

allocating a new table

bssid = 00:11:3B:07:00:14 keyindex=0

stats for bssid 00:11:3B:07:00:14 keyindex=0 packets=25989

Found key with len 13: 74 65 73 74 74 65 73 74 74 65 73 74 31

Samotný výpočet trvá okolo sekundy na P4 2.6 GHz. Nazbierať 85000 ARP

rámcov je možné do 3 minút pri 500 rámcoch/sek. V pokuse sa podarilo zistiť 104-

bitový kľúč už pomocou 26000 rámcov, nazbieraných za 100 sekúnd. Práca [16] má už

v názve lámanie WEP za menej ako 60 sekúnd, čo je síce trochu zavádzajúce, ale je to

možné realizovať.

4.9.2 Ochrana voči Kleinovmu útoku

Útoku je možné úplne zabrániť jedine zabránením posielania rámcov so známym

začiatkom plaintextu. Čisto pasívne útoky môžeme minimalizovať pomocou statických

tabuliek na všetkých staniciach, čo je ale ťažko manažovateľné a zle škálovateľ

riešenie. Aktívny útočník však môže injektovať vlastný ARP rámec zostrojený

pomocou RC4 prúdu získaného iným spôsobom (viď. 4.3 Zbieranie slovníka PRGA

pomocou Shared-Key autentifikácie, 4.5 KoreK chopchop, 4.6 Fragmentačný útok).

Takúto injekciu je možné obmedziť pomocou zahadzovania opakovaných IV (viď. 4.2.2

Ochrana voči reinjekcii) alebo útok odhaliť pomocou Wireless IDS.

Odporúčaným riešením je použitie RSN (WPA/WPA2), ktoré Kleinov útok

znemožní.