2008 m. vasario 5 d., antradienis

„Nulaužiame“ bevielį tinklą - Cracking WiFi

Būdamas komandiruotėje užsienyje, viešbutyje susidūriau su problema: kad gautum prisijungimą prie Interneto, reikėtų nusiųsti SMS žinutę tam tikru numeriu ir už atitinkamą mokestį būtų suteiktas prisijungimas prie belaidžio (angl. Wireless) tinklo (sutrumpintai, WLAN). Viskas atrodė paprasta, bet nusiuntęs keletą žinučių, jokių prisijungimo parametrų negavau, mat, reikėtų turėti vietinio operatoriaus SIM kortelę :D. Bet šiais laikais likti be internetinio ryšio tas pats, kaip liktum negyvenamoje saloje...
Įjungęs bevielio tinklo adapterį, suradau keletą kaimynystėje veikiančių bevielio ryšio stotelių, bet prisijungimas prie jų nežinant slaptažodžio buvo negalimas :(. Ačiū Dievui, turėjau su savim knygą apie kodavimo algoritmus bei knygą apie bevielio ryšio technologijas, plius prie to visiškai atsitiktinai turėjau C++ kompiliatorių :)...
Iš karto pasakysiu, kad aną vakarą aš taip ir neprisijungiau prie Interneto, bet jau grįžęs į gimtuosius kraštus pabaigiau apsaugoto bevielio tinklo „nulaužimo“ darbus.
Taigi, šiame straipsnyje aprašysiu sėkmingo nulaužimo metodus (garantuotas nulaužimas, nebijau šių skaičių: daugiau negu 99%).

Trumpai apžvelgsiu standartines belaidžio tinklo saugumo priemones. Bet koks bevielis tinklas susideda iš dvejų pagrindinių komponentų – bevielio tinklo prisijungimo taško ir bevielio tinklo kliento (Ad Hoc sujungimo režimo šiame straipsnyje nenagrinėsime). Bevielio ryšio standartai 802.11a/b/g numato kelis saugumo užtikrinimo mechanizmus: skirtingi vartotojų autorizavimo būdai ir perduodamų duomenų kodavimas.

WEP protokolas

Visi šiuolaikiniai bevielio ryšio įrenginiai (prieigos taškai, belaidžiai adapteriai ir maršrutizatoriai) palaiko saugumo protokolą WEP (angl. Wired Equivalent Policy), kuris nuo pat pradžių buvo aprašytas bevielių tinklų specifikacijoje IEEE 802.11. Šis protokolas yra bevielio tinklo saugumo ekvivalentas, tačiau net iš tolo negalėtų būti laikomas vielinių tinklų saugumo ekvivalentu. WEP protokolas leidžia koduoti perduodamų duomenų srautą panaudojant algoritmus RC4 su rakto ilgiu 64 arba 128 bitų. Šie raktai susideda iš dinaminės ir statinės dalių: 24 bitai – inicializavimo vektorius (dinaminė dalis) ir 40 arba 140 bitų – statinė sudedamoji.
Paprastai kalbant WEP kodavimo procedūra atrodo taip:
patikrinamas perduodamo duomenų paketo vientisumas (CRC32 algoritmas), po to kontrolinė suma ICV pridedama prie paketo antraštės;
generuojamas 24-bitų inicializavimo vektorius IV ir prie jo pridedamas statinis raktas (40 arba 104 bitų).
Tokiu būdu gautas 64 arba 128 bitų raktas yra naudojamas pseudo-atsitiktiniam skaičiui generuoti, kuris naudojamas duomenų kodavime.
Toliau duomenys koduojami XOR operacija naudojant pseudo-atsitiktinę raktinę seką, o inicializavimo vektorius pridedamas prie kadro tarnybinio lauko
Saugumo protokolas WEP numato du vartotojų autorizavimo būdus: Open System (atviras) ir Shared Key (bendras). Naudojant atvirą autorizavimą bet koks vartotojas gali gauti priėjimą prie bevielio tinklo, tačiau net tuo atveju paliekama galimybė koduoti duomenis WEP.

WPA protokolas

...

Informacija ruošiama...