Navigacija | Vi ste ovdje: Sigurnosni propusti u standardima > Propusti u WEP-u | Ključne riječi | ||||
Pri komunikaciji klijenta i pristupne točke podaci se šalju u obliku okvira. Sami okviri nisu enkriptirani pa je napadač u mogućnosti doći do inicijalizacijskog vektora koji je korišten u enkripciji. Poznata zamka svih enkripcijskih algoritama koji rade sa tokom podataka(stream ciphers ) je to da enkripcija dviju različitih poruka istim inicijalizacijskim vektorom daje informacije o samim porukama. Drugim riječima provođenjem ekskluzivnog ILI na dva enkriptirana bloka poništava se efekt enkripcije i dobiva se rezultat istovjetan onome kao kada bi napravili ekskluzivno ILI nad porukama sa čistim tekstom. Zbog ovoga svojstva mogući su mnogi načini napada, a specijalan slučaj je kada je napadaču poznata jedna riječ čistog teksta, tada drugu riječ može automatski dobiti. Općenito stvarni čisti tekst ima dovoljno zalihosti kako bi napadač mogao otkriti P1 i P2 poznavajući samo Rješenje problema se nalazi ili u izmjeni tajnog ključa nakon svakog okvira ili u izmjeni inicijalizacijskog vektora. Izmjena ključa nakon svakog okvira nije prihvatljiva pa WEP standard preporučuje(ali ne zahtjeva izričito) da se inicijalizacijski vektor mijenja sa svakim okvirom. Mnogi proizvođači mrežne opreme su slijedili preporuku i implementirali različite načine izmjene inicijalizacijskog vektora. Neki proizvođači su to učinili na veoma loš način. Primjerice većina PCMCIA bežičnih mrežnih kartica nakon svakoga pokretanja postavlja inicijalizacijski vektor na nultu vrijednost i zatim ga povećavaju za jedan nakon svakog odaslanog okvira. Dakle napadač ne mora doći u posjed svih inicijalizacijskih vektora nego je dovoljno da zna samo dio vektora sa početka i može doći do nekih podataka. Ponovno pokretanje kartice se događa svaki puta kada se ona umetne u prijenosno računalo ili se računalo pokrene što je prilično čest slučaj. No da stvari budu gore sam WEP standard ima arhitektonski propust koji pogađa sve implementacije protokola, bez obzira koliko one pomno implementirane bile, i time izlaže korisnika ozbiljnoj opasnosti ponovne upotrebe ključa( keystream reuse ). Naime polje u koje se zapisuje vrijednost inicijalizacijskog vektora je samo 24 bita široko i gotovo da jamči da će se isti inicijalizacijski vektor koristiti za više od jednog okvira. Dakle broj mogućih različitih vrijednosti inicijalizacijskog vektora je 16 777 216. To je prividno velik broj no uzevši u obzir da prosječna stanica koja odašilje okvire veličine 1500 byte-ova pri prosječnoj propusnosti od 5 Mbps (maksimalna propusnost je 11 Mbps) iscrpiti sve vektore za manje od pola dana. Dakle nakon već pola dana pristupna točka će morati nove okvire slati sa ponovljenim inicijalizacijskim vektorima što mrežu izlaže opisanim opasnostima. Na ovaj problem značajan utjecaj ima i način odabira inicijalizacijskog vektora. Kako standard ne propisuje način na koji se treba mijenjati vektor, čak ni ne propisuje da se treba mijenjati, na savjesti proizvođača je hoće li i koju metodu odabrati. Jednom kada su otkrivena dva okvira sa istim inicijalizacijskim vektorom postoji mnogo metoda koje mogu poslužiti za otkrivanje podataka. Najjednostavniji slučaj je kada nam je tekst jedne poruke poznat i automatski možemo dobiti drugu. Postoji mnogo načina otkrivanja prikladnih kandidata za poznati, čisti, tekst. Primjerice, mnogi protokoli kojima se koristimo na Internetu(npr. TCP, IP) imaju dobro definirana i predvidljiva polja. Kao primjer možemo uzeti i način prijave korisnika na sustav koji je uglavnom jednak: nakon pozdravne poruke od korisnika se traži login: (identifikator korisnika) i password: (lozinku) i to su uvjerljivi kandidati za poznati tekst. |
||||||
![]() |
![]() |