Noriu sugrįžti prie senesnės temos. T.y. apie mobilaus šnipinėjimą. Apie tai jau rašiau anksčiau, tačiau ne taip senai pasirodė įdomių naujienų. Bet gal nuo pradžių. GSM tinkluose yra naudojamas A5/0, A5/1 arba A5/2 šifravimo algoritmai. A5/0 žymėjimas reiškia, kad nenaudojamas joks šifravimas. A5/2 šifravimas lengvai įveikiamas naudojant nesudėtingą techniką. Šie du šifravimo būdai dėl savo nepatikimumo mažai kur pasaulyje naudojami (pvz. Serbijoje, Indijoje, Kenijoje), o visame pasaulyje labiausiai yra išplitęs 64 bitų A5/1 šifravimo algoritmas. Apie jo principą paskaitysite Wikipedijoje, tačiau jau kelis metus kalbama ir apie šį algoritmą, kad jis yra nesaugus ir nulaužiamas. Operatoriai guodėsi tuo, kad tas laužimas reikalauja daug laiko ir dar daugiau technininių resursų, todėl atitinkamai ir pinigų. Tų pinigų visam sprendimui reikėjo maždaug 1 000 000 USD. Kaip manot, kokios institucijos yra labiausiai suinteresuotos šnipinėjimu ir kurios gali tam išleisti tiek pinigų? Aišku, kad žmonos šnipinėjimui tiek investuoti nelabai kas ryžtūsi, privačiam verslui tai taip pat neapsimokėtų. Kas belieka turbūt jau aišku, o konkrečias struktūras galėsite atsirinkti ir patys. Žodžiu, kam labai reikėjo, tas tokią įrangą nusipirko. Įrangos tam yra įvairios. Pvz. vienos, nei šiokios, nei tokios, veikimo principas yra "aktyvi ataka", kurios metu reikia būti pakankamai arti reikiamo abonento, tuomet pradedama truputį "teršti" eterį, kad telefonas prisijungtų ne tiesiogiai prie operatoriaus GSM bazinės stoties, bet tyčia prie pakištos kitos, tarp kurios ir telefono šifravimas nevyksta ir t.t. Žodžiu sudėtinga ir daug vargo.
Bet šiemet atsirado "gerų" naujienų. David Hulton ir Steve Miller teigia sukūrę metodą, kurio pagalba GSM šifravimą galima iškoduoti per kelias minutes. Ir gera naujiena ta, kad reikiamos įrangos kaina prasideda nuo 1000-1500 USD. O tai reiškai, kad tokia įranga tampa prieinama ne tik valstybinėms struktūroms, bet ir mėgėjams ar nusikaltėliams. Kita "gera" naujiena, kad šio metodo principas yra "pasyvi ataka", t.y. nereikia su niekuo niekur į eterį kištis ir nieko spinduliuoti ar transliuoti, o pakanka tiesiog tyliai sėdėti ir gaudyti kas sklando aplinkui. Atitinkamai padidėja ir pasiklausymo nuotolis bei sunkiau tokį dalyką aptikti. Ryšio iššifravimas įvyksta per kelias minutes ir tam panaudojama jau senai IT saugumo pasaulyje žinoma technika "Rainbow tables". Dabar padarom nedidelį, atskirą ir techninį skyrelį.
Kas yra rainbow tables? Tai tiesiog iš anksto išskaičiuotų hash‘ų duomenų bazės, kurių pagalba paprasta atstatyti pradinį nekoduotą tekstą. Pvz. MD5 yra vienkryptis algoritmas. Programuotojai jį mėgsta panaudoti slaptažodžių maskavimui. T.y. jie sistemoje išsaugo ne vartotojo nurodytą slaptažodį, bet jo MD5 hash’ą. Pvz. jei žodį "labas" perkoduosim į MD5, tai gausim tokią reikšmę: 2e53d715b9d776b6c45263d31ecd3d87. Kai vartotojas bando prisijungti prie sistemos, tuomet sistema paima įvestos reikšmės hash’ą ir jį sulygina su sistemoje saugomo slaptažodžio hash’u. Jei reikšmės sutampa, vadinasi vartotojas įvedė reikiamą slaptažodį. Tačiau jei įsilaužėlis iš sistemos sugebės gauti visus saugomus slaptažodžių hash’us, tai pagal juos pradinio slaptažodžio jis atkurti negalės (tai ir yra vienkrypčio algoritmo esmė, į viena galą - aha, o atgal - nea). Vienintelis būdas iš hash’o nustatyti tikrąjį vartotojo slaptažodį yra imti įvairius žodžius, iš jų išskaičiuoti MD5 hash’ą, jį sulyginti su turima reikšme ir taip kol pataikysi. Žodžiu labai ilgai trunkantis procesas. Tačiau čia į žaidimą ir ateina vaivorykštinės lentelės. Pvz. iš anksto paimamos visos galimos klaviatūros simbolių kombinacijos iki 6 simbolių ir iš anksto išskaičiuojami jų MD5 hash’ai. Gaunamos didelės duomenų bazės, kur šalia bet kokios 6 simbolių kombinacijos iš karto yra saugoma jos MD5 hash’o reikšmė. Tad jeigu įsilaužėlis iš sistemos iškrapšto slaptažodžio MD5 reikšmę, tuomet viskas ką reikia padaryti, tai turimoje DB surasti ką atitinka turimas MD5. Originalus slaptažodis tokiu būdu atstatomas per keletą minučių. Kiek trunka generavimas? Ankstesniam darbe kolega prieš keletą metų visas galimas Windows sitemų LM hash’ų reikšmes iki 6 simbolių ilgio slaptažodžiams tik iš raidžių ir skaičių keturiais serveriais generavo berods 3 dienas. Gavosi lyg ir 6 GB duomenų bazė. Nebepamenu tiksliai. Tačiau iš anksto atlikus visą ilgai trunkantį hash’ų išskaičiavimą, vėliau pradinis slaptažodžio atstatymas iš jo užtrunka vos kelias minutes. Nuostabu, ar ne? Dabar tokio tipo duomenų bazių įvairiems hash’ams jau prikrautas visas internetas. Gali nusipirkti sugeneruotų su visu HDD iš karto arba rasti nemokamai ir parsisiųsti. Ilgesniems slaptažodžiams jos užima ir 20 Gb, ir 70 Gb ir dar daugiau Gb. Tik turėk kur saugoti.
Taigi, back to business. Grįžtam prie GSM tinklų ir techninių reikalų. Tam, kad sėkmingai ir pakankamai greitai GSM ryšį būtų galima iššifruoti, reikia trijų dalykų: sim kortos unikalaus numerio (taip vadinamo "subscription identification number"), telefono aparato numerio (IMEI) ir A5/1 algoritmo hash’ų (keystream’ų) "rainbow tables" DB. Pirmuosius du galima gauti tiesiog paskambinus reikiamam abonentui ir tas reikšmes nuskaityti, nes jos operatorių dažnai perduodamos nešifruotos (nors pagal standartus šifruoti turėtų). O vat su DB jau sunkiau. Pagal A5/1 algoritmą, skirtingų perkoduotų reikšmių iš viso gali būti 288 230 376 151 711 744 variantų (kaip šitas skaičius vadinasi?). Vienas įprastas personalinis kompiuteris gali išskaičiuoti maždaug 550 000 reikšmių per sekundę. Tad visom reikšmėm gauti reikėtų maždaug 33 235 metų. Tačiau anie du minėti piliečiai skaičiavimus atlieka naudodami 64 FPGA (field-programmable gate array) sistemas/modulius (net nežinau kaip pavadinti lietuviškai). Jomis visa A5/1 algoritmo "rainbow tables" DB bus sugeneruota maždaug per 3 mėnesius. Kovo mėnesį jie visą, maždaug 2 terabaitų, DB planavo pateikti viešam naudojimui. Kol kas aš jos dar nerandu. Bet anot kūrėjų, surasti reikiamą reikšmę toje DB, saugomoje šešiuose HDD po 350 Gb, su vienu FPGA užtruks ~30 min. (arba galima tam panaudoti botnet‘ą). Naudojant šešioliką 128 Gb flash diskų ir 32 FPGA, visas procesas truks ~30 sekundžių. Taigi, naudodamas pigią sistemą už 1000 USD iššifruotą pokalbį turėsi po 30 min., o naudojant brangesnę, kainuosiančią nuo 200 000 USD, klausytis bus galima beveik realiu laiku. 2008 m. antrame ketvirtyje turėtų pasirodyti jų parduodamos, pilnai naudojimui paruoštos sistemos, kurių kaina priklausys nuo to, kaip greitai reikės iššifruoti GSM srautą (nuo to priklausys FPGA modulių kiekis). Bet jos jau nekainuos milijono USD, o kadangi visos DB bus viešos, tai dešifravimo sistemas galės konstruotis ir entuziastai. Į tai iš karto sureagavo hakerių "The Hackers Choise" grupuotė, kuri subūrė iniciatyvinę grupę pigios A5 laužimo sistemos kūrimui. Jų puslapyje rasite daugiau įvairios informacijos, pvz. kaip pasitikrinti kokį šifravimo algoritmą naudoja Jūsų operatorius arba kaip patiems susikonstruoti savo GSM anteną. Be minėtos kompiuterinės technikos, GSM ryšio sugaudymui, dar reikės ~700 USD kainuojančio imtuvo, galinčio dirbti 0-3 GHz dažnių intervalu.
Ką į tai sako operatoriai? Na, jų nuomone, visų pirma tai tik teorija ir kol nėra konkrečių veikiančių sistemų, tol jie dar tik galvos apie saugesnio A5/3 algoritmo diegimą.
P.S. Turiu nuojautą, kad nebus nei vieno komentaro, nes kitiems čia kažkoks kosmosas pasirodys.
» Temos: Blogietis
» Žymėtis:
kaip.tik.ten
::
topix.lt
::
del.icio.us
Įrašo gairės: a5/1 fpga gsm md5 rainbow tables saugumas thc

RSS


(Įvertinimai: 13. Vidutinis balas: 3.69 iš 5 galimų. Įvertink ir Tu.)
Ot ir bus komentaras
Tik tokius kosmosus ne iš ryto skaityt, dar kavos negėrus. Grįšiu vėliau.
Kaip gerai, kad neturiu su kuo slaptai kalbėtis
DAr klausimas pasistojo, o kaip su sms? 
Su sms lygiai taip pat.
Bet jeigu nori ką nors labai slapto perduot, galima dar pačiam sugalvoti kokį nors šifrą sutartinį
Su malonumu perskaičiau.
Hackintosh jau senokai rase apie sita, man kirbejo jau mintyse irgi
http://www.hackaday.com/search/?q=fpga
Beja http://levas.vabolis.com/ , jau turi viena fpga
http://thepiratebay.org/search/md5/0/5/0
Yra keletas tables, reikes siusti, turiu is senu laiku keleta duombaziu is forumu..
Na ir dar vienas labai idomus budas - paieskot hasho per google
dzhiurgi, ne tų DB neradau. Kaip minėjau, LM, MD5 ir kitų rainbow table’ų pilna. Kad ir tavo pateiktoje paieškoje paieškojus taip: http://thepiratebay.org/search/rainbow%20tables
Beje, konferencijos HackInTheBox metu, kuri vyks balandžio 14-17 dienomis, jau planuojama pristatyti pirmą veikiantį dešifravimo prototipą.
Bet A5/1 algoritmui iš anksto išskaičiuotų keystream’ų dar nėra. Ir kur juos pasidėti reikia dar turėti.
http://www.plain-text.info/index/
we have 10/34 computers online and working to crack hashes using 0.7314453125 Tb rainbowtables.
Lietuviški žodžiai bei neilgi password čia tik saldainiukai, sekundžių reikalas.
Kompai taip greit greitėja, kad žmonės net nespėja kurti naujų šifravimo algoritmų
Super straipsniukas. Net nežinojau, kad investavus kelis tūkstančius baksų su geromis žiniomis gali nesunkiai tapt prošnipu..baisu
Viską čia labai normaliai surašei
Super!
Geras straipsnis. Dėkui. Jaučiu greit turėtų išpopuliarėti tokie telefonai http://www.spycatcheronline.co.uk/securephone-encrypted-cellular-telephone-p-652.html
nelabai supratau: SIM galima online nuskaityti? čia kaip? čia gi fizinis kortelės numeris
labai idomus straipsnis. tik gaila, kad realios praktines naudos neduos
bet smagu zinoti 
Sakai nei vieno? Va, jau 17
Aš bijau į šitus dalykus gilintis, nes dar didesnė paranoja išsivystys..
Na taaaip. Skaičiau du kartus, šifravau terminus.. Dar dabar bandau suprast
Viską supratau ;). Programuotojas…
Tiek, kad neteko domėtis GSM ryšio apsaugos mechanizmais. Ačiū, kad papasakojai :).
Pasiskaiciau kaip pasiziuret koks sifravimas yra naudojamas, bet pavyko suzinoti tik tiek, kad lietuvoje tikrai yra naudojamas
Pirma foto - paprastame rezime (Ciphering - 0 )
http://picasaweb.google.com/j.silute/IPhoneScreenshots/photo#5188099178162655058
Antra foto - skambucio metu (Ciphering - 1 )
http://picasaweb.google.com/j.silute/IPhoneScreenshots/photo#5188099169572720450
Mistika lieka, kam paieškai tuose diskuose reikia FPGA ir kodėl tai užtrunka tiek minučių. Ar ten yra tik dalinės reikšmės, o kažkurią dalį reikia surasti perrinkimo būdu?