Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Varnostna analiza
DIGITALNEGA RADIJSKEGA OMREŽJA TETRA
Dejan ORNIG
dejan.ornig@gmail.com
Avgust, 2014
Ključne besede: TETR...
2
Namen
V letu 2012 so Jaka Hudoklin, Matej Kovačič in Klemen Rupnik na Slo-Tech spletni strani
objavili varnostno analizo...
3
Prav tako se v tej varnostni analizi ne bomo ukvarjali s tehničnim delom radijskih terminalov,
kljub temu da je verjetno...
4
omrežja. MNZ v vlogi upravljalca omrežja skrbi za jedro samega sistema in uporabniški ter
varnostni management.
Pred zač...
5
2 PRIPRAVA
Pred začetkom varnostne analize in raziskovanjem TETRA omrežja, smo najprej pripravili
strojno in programsko ...
6
lahko prav tako uporabi za sprejem katerega koli radijskega signala. S takšno opremo lahko
sprejemamo tudi GSM, GPRS, AP...
7
~/sdr/osmo-tetra/src/tetra-rx
Osredni program, ki uvozi iz datoteke "file.bits" bite podatkov in jih nato pošlje bodisi ...
8
Na frekvenčnem
spektru 390 – 395 Mhz
smo našli bazne
postaje in si izbrali
najbolj izraženo.
Poudariti je
potrebno, da s...
9
Razberemo lahko nekaj osnovnih podatkov o omrežju (na voljo je kriptografska zaščita
radijskega vmesnika, obvezna regist...
10
MLE18
, CMCE19
in MM20
. Na Lower MAC sloju smo npr. z osmo-tetra dekoderjem in
Wiresharkovim dissectorjem lahko dekodi...
11
4.1 Registracija
Vsak radijski terminal mora biti predhodno vpisan v posebnem imeniku registraciji, ki ga
upravlja admi...
12
registracije. Tako bi teoretično lahko bila mogoča registracija radijskega terminala brez
avtentikacije in s tem tudi p...
13
4.2 Avtentikacija
Proces avtentikacije v TETRA omrežju je temeljni varnostni mehanizem od katerega so
odvisni vsi nadal...
14
Pri opazovanju prometnih podatkov DOWNLINK-a smo ugotovili, da se v CLASS 1 uporablja le
enostranska avtentikacija in s...
15
Brez avtentikacije je torej mogoča prijava v samo omrežje, saj ETSI standardi ne določajo
varnostnih mehanizmov za prep...
16
Iz slike je razvidno, da gre za skupinski klic v režimu CLASS 1, brez šifriranja (encryption-
mode: 0) na grupi GSSI št...
17
4.4 Podatkovni promet (SDS, Stutus)
Med nešifriranimi prometnimi podatki smo lahko zasledili tudi SDS26
sporočila, za k...
18
Ko smo osvojili nekaj znanja, smo dodali kodo, ki je dekodirala SDS in statusna sporočila ter
jih takole prikazovala uk...
19
4.5. Šifrirani promet
Kot smo že omenili, smo lahko na podlagi podatkov BCCH kanala ugotovili, da TETRA omrežje
podpira...
20
Uporabnikom TETRA omrežja so opcijsko po ETSI standardu na voljo štirje standardizirani
algoritmi za kriptografsko zašč...
21
terminal veljaven izpeljan DCK32
ključ. Enak DCK ključ mora biti izpeljan tudi na strani
omrežja.
DCK ključ je v uporab...
22
Kot vidimo na zgornji sliki, na MAC-RESOURCE PDU zasledimo identifikator stanja "encryption
mode: 2", kar pomeni, da so...
23
V Wiresharku tako vidimo xESI entitete, za katere pa na prvi pogled ne vemo ali gre za GSSI
ali ISSI. S časoma, ko malc...
24
Naj dodamo, da so kljub uporabi šifriranja radijskega vmesnika s TEA1 algoritmom in
dinamičnimi izpeljanimi ključi (DCK...
25
5 GRAFIČNI VMESNIK TETRA MONITOR
Avtor, ki ne želi biti javno imenovan, je v C/C++ kodi napisal program TETRA Monitor,
...
26
Spodnja slika prikazuje registracije, lokacijske posodobitve (ROAMING) in avtentikacije
radijskih terminalov. V prvem s...
27
TETRA Monitor prikazuje skupinske in individualne klice. V prvem stolpcu je izvorna ISSI
številka, v drugem pa naslovna...
28
Spodnji dve sliki prikazujeta poslana SDS in statusna sporočila.
29
6 UGTOVITVE
Z varnostno analizo slovenskega TETRA omrežja smo dokazali, da je mogoče signal
dekodirati, prometne podatk...
30
z distribucijo šifrirnih ključev. Prav tako bi s tem onemogočili analizo prometnih podatkov
signalizacije.
Menimo, da b...
31
7 VIRI
European Telecommunications Standards Institute, (2009). ETSI EN 300 392-1. Pridobljeno
na: http://www.etsi.org/...
Upcoming SlideShare
Loading in …5
×

Varnostna analiza slovenskega digitalnega radijskega omrežja TETRA

1,606 views

Published on

SI: Varnostna analiza je razkrila številne varnostne ranljivosti slovenskega TETRA omrežja.
EN: Security analysis of TETRA network in Slovenia revealed a number of security vulnerabilities.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Varnostna analiza slovenskega digitalnega radijskega omrežja TETRA

  1. 1. Varnostna analiza DIGITALNEGA RADIJSKEGA OMREŽJA TETRA Dejan ORNIG dejan.ornig@gmail.com Avgust, 2014 Ključne besede: TETRA, Osmocom, RTL-SDR, omrežje, varnost, analiza, Wireshark.
  2. 2. 2 Namen V letu 2012 so Jaka Hudoklin, Matej Kovačič in Klemen Rupnik na Slo-Tech spletni strani objavili varnostno analizo GSM omrežja, v kateri so ugotovili številne varnostne ranljivosti GSM omrežja, ter na ta način opozorili pristojne, da se varnostne ranljivosti odpravijo in tako zagotovi višja stopnja varnosti za uporabnike. Po vzoru tovrstne varnostne analize smo v letu 2013 začeli raziskovati delovanje TETRA omrežja. Naš namen je opraviti varnostno analizo digitalnega radijskega omrežja TETRA, ter tako širšo javnost seznaniti s splošnimi ugotovitvami, strokovno javnost pa opozoriti na varnostne ranljivosti in napake, ki bi lahko povzročile mnoge težave, lahko tudi delni ali popolni izpad omrežja. V strokovnih krogih velja prepričanje, da je TETRA omrežje zaradi digitalnega delovanja varno, da je onemogočeno prisluškovanje individualnim pogovorov ter skupinskih pogovorov na grupah, branje SDS1 in statusnih sporočil, itd. Prav tako nihče v strokovnih krogih ne dvomi v varnostne ranljivosti varnostnih mehanizmov, kot sta avtentikacija in šifriranje radijskega vmesnika s šifrirnim algoritmom oziroma dinamičnimi, izpeljanimi ključi. V prispevku smo se podrobneje posvetili trditvam stroke, ter dokazali povsem nasprotno. Ugotovili smo, da je možno dekodirati sam signal, ga analizirati, pregledovati prometne podatke, brati SDS in statusna sporočila, poslušati individualne pogovore in pogovore na grupah, ter ugotovili druge ranljivosti samega sistema, kot so težave s šifrirnimi algoritmi, oziroma distribucijo ključev, težave pri avtentikaciji, baznih postajah, itd. Naj pri tem poudarimo, da varnostna analiza, ki smo jo opravili na slovenskem TETRA omrežju, nikakor ni bila trivialna, saj smo za izvedbo te morali spremeniti del osmocom kode in spisati nekaj nove, tako da je ponovitev opisanih postopkov za nekoga brez predhodnega znanja, zelo težko izvedljiva. Ena izmed varnostnih ranljivosti TETRA omrežja so po našem raziskovanju tudi mikrovalovne povezave, ki delujejo na frekvenci 1.4 GHz in 18 GHz, problem teh pa je pravzaprav ta, da podatki, ki se prenašajo preko mikrovalovnih povezav, niso šifrirani. Z ustrezno opremo, znanjem in vedenjem, kje potekajo optične poti mikrovalovnih povezav, bi lahko prišli do popolnoma vseh podatkov, ki se prenašajo preko TETRA omrežja. S tem se v tej varnostni analizi ne bomo posebej ukvarjali, bomo pa opisali delovanje omrežja na nivoju uporabnikov, torej radijskih terminalov in baznih postaj. 1 Short Data Service
  3. 3. 3 Prav tako se v tej varnostni analizi ne bomo ukvarjali s tehničnim delom radijskih terminalov, kljub temu da je verjetno največja varnostna ranljivost prav kloniranje radijskih terminalov, natančneje kloniranje avtentikacijskega (K) ključa, saj za takšen možni hekerski napad po ETSI2 standardih, ne obstaja nikakršni varnostni mehanizem. Poudarjamo, da smo pri raziskovanju slovenskega TETRA omrežja in sami varnostni analizi, uporabili le legalno dovoljena tehnična sredstva in metode, ter da nismo posegali v delovanje samega sistema. Varnostna analiza je nastala izključno na podlagi zajemanja in analiziranja prometnih podatkov v smeri BS3 -> MS4 , torej DOWNLINK-a. Prometnih podatkov UPLINK-a zaenkrat z osmocom programsko in strojno opremo ni mogoče zajemati. 1 O TETRI TETRA5 ali prizemni snopovni radio je digitalni radijski komunikacijski sistem, ki ga za svojo komunikacijo uporabljajo službe nacionalne varnosti EU ter druge službe, ki zagotavljajo javne storitve. Digitalni radijski sistem TETRA je bil s standardom Evropskega inštituta za telekomunikacije ETSI zasnovan leta 1995. TETRA omrežje se je pri nas začelo graditi leta 2001. Uporabniki omrežja v Slovenji, teh je do zdaj preko 7.000, so: MNZ - Policija, Ministrstvo za obrambo - SV, VP, Slovensko obveščevalno - varnostna agencija (SOVA), Ministrstvo za pravosodje - Zavodi za prestajanje kazenskih sankciji, mestna redarstva, Družba za avtoceste RS, Carinska / Finančna uprava RS, protokol Vlade RS itd. Vse do danes je pokritost omrežja na območju Slovenije 70 %, v prihodnjih letih se tako načrtuje še dodatne postavitve baznih postaj, ki bo povečala odstotek pokritosti s signalom po državi. Poudariti je potrebno, da gre za zelo drago omrežje, ki je državo stalo že na desetine milijonov evrov. Drage so ne le investicije in nakup nove opreme, temveč tudi dnevno vzdrževanje omrežne infrastrukture. Glavni upravljalec TETRA omrežja je tako Ministrstvo za notranje zadeve. MNZ ima podpisano pogodbo o vzdrževanju s podjetjem Santera, d.o.o., s sedežem na Industrijski cesti 9, Grosuplje, ki vzdržuje infrastrukturo baznih postaj, ter nadzoruje delovanje samega 2 European Telecommunications Standards Institute 3 Base Station 4 Mobile Station 5 Terrestrial Trunked Radio
  4. 4. 4 omrežja. MNZ v vlogi upravljalca omrežja skrbi za jedro samega sistema in uporabniški ter varnostni management. Pred začetkom varnostne analize digitalnega radijskega omrežja TETRA v Sloveniji, smo najprej pregledali javno dostopno dokumentacijo, predvsem dokumentacijo o javnih naročilih opreme in že iz dokumentacije ugotovili nekatere tehnične lastnosti samega omrežja. Iz tehnične dokumentacije lahko razberemo, da TETRA omrežje pri nas deluje na frekvenčnem pasu 380 – 430 Mhz (deluje lahko tudi na drugih frekvenčnih območjih), v dveh načinih delovanja: DMO6 direkten način brez omrežja med radijski terminali in TMO7 omrežni način. V omrežnem načinu komunikacija poteka med uporabniki in samim dispečerskim sistemom preko baznih postaj, ki so del TETRA infrastrukture. Infrastrukturo sestavljajo radijski terminali (ročni, mobilni) in bazne postaje, ki so med seboj fizično povezane s stikalnim delom in centralnim sistemom, ta pa spet preko mikrovalovnih povezav vodi do dislociranih baznih postaj oziroma rezervnega centralnega sistema. Iz razpisne dokumentacije (MNZ, 2010) je razvidno, da se za dostop do omrežja obvezno uporablja temeljni varnostni mehanizem – avtentikacija. Med drugim smo na podlagi tehničnih dokumentaciji lahko sklepali, da je določena komunikacija šifrirana s šifrirnim algoritmom TEA1, saj je pri skoraj vseh javnih naročilih JU v tehnični specifikaciji bil naveden pogoj, da mora terminalna in omrežna oprema delovati v režimu CLASS 1 in CLASS 3, kar pomeni, da so nekateri prometni podatki šifrirani, nekateri pa ne. Kaj to pomeni v praksi bomo opisali v nadaljevanju. TETRA je po samem delovanju zelo podobno GSM, vendar je med njima kar nekaj razlik, v nekaterih pogledih je TETRA omrežje bolj kompleksnejše, predvsem pri varnostnih mehanizmih, ki pa so, poudarjamo, opcijski. Tako je mogoče uporabljati obvezno medsebojno avtentikacijo, šifriranje radijskega vmesnika, šifriranje od točke do točke z AES algoritmom ali pa nič od navedenega. Vse je odvisno od zahtevnosti in potreb uporabnikov ter seveda od finančnih sredstev, saj vsi varnostni mehanizmi, ki so v TETRA omrežju opcijski, stanejo. Več o delovanju omrežja na različnih nivojih, bomo predstavili po ločenih sklopih. 6 Direct Mode 7 Trunked Mode
  5. 5. 5 2 PRIPRAVA Pred začetkom varnostne analize in raziskovanjem TETRA omrežja, smo najprej pripravili strojno in programsko opremo. V ta namen smo uporabili: - RTL-SDR (DVB-T znamke Terratec TStick+, s čipom Elonics E4000) - ANTENA (priložena) - OS LINUX (UBUNTU 12.04 LTS) - osmo-tetra (http://tetra.osmocom.org/trac/wiki/osmo-tetra) - Wireshark (http://www.wireshark.org/) 3 DEKODIRANJE SIGNALA Če smo želeli analizirati prometne podatke, ki se prenašajo po TETRA omrežju, smo pred tem morali dekodirati digitalni signal. Od začetka razvoja omrežja, leta 1995 pa vse do leta 2010 je veljalo, da je za dekodiranje TETRA signala potrebna zelo draga oprema. Naprave, ki so omogočale takšno dekodiranje, predvsem za namen testiranja delovanja omrežja, so stale deset tisoč evrov in več. To pa je s prihodom USRP8 naprav postalo dostopnejše pa tudi cenejše. USRP naprava je univerzalna naprava za sprejem, pa tudi oddajo vseh mogočih radijskih signalov, žal pa je zaenkrat sama naprava še vedno relativno draga (od 1000 do 1500 evrov), zato so se pojavile bistveno cenejše alternative, ki prav tako dobro opravijo svojo vlogo - SDR ali odprtokodni programski radio je strojna in programska oprema, ki se jo 8 Universal Software Radio Peripheral
  6. 6. 6 lahko prav tako uporabi za sprejem katerega koli radijskega signala. S takšno opremo lahko sprejemamo tudi GSM, GPRS, AP25, DMR in še mnoge druge radijske signale. SDR je lahko tako navaden DVB-T sprejemnik, ki ni nič drugega kot USB ključek za sprejemanje TV digitalnega signala. V ta namen smo kupili DVB-T (RTL2832U) sprejemnik, znamke Terratec TStick+, s čipom Elonics E4000, ki nas je stal 20 evrov. Da smo lahko dekodirali TETRA signal z modulacijo π/4-DQPSK, je bila potrebna le programska koda, orodje, ki je sposobno dekodirati prejeti signal preko SDR naprave. Osmocom, skupina hekerjev, katerih prvotni namen je raziskovanje GSM omrežja, je prav v letu 2011 objavila odprtokodno rešitev osmo-tetra, ki deluje na LINUX platformi. osmo-tetra (vir: http://tetra.osmocom.org/trac/wiki/osmo-tetra) Osmo-tetra vsebuje različne skripte in programe za dekodiranje TETRA signala na različnih slojih. Osnovna odprta javno dostopna koda je tako sposobna dekodirati TETRA signal DOWNLINK-a bazne postaje. Kot smo že uvodoma zapisali, varnostna analiza temelji na lastnem pisanju manjkajoče in popravljanju obstoječe osmocom kode. Za podrobnejšo analizo prometnih podatkov in kasneje tudi poslušanje samega govornega prometa je bilo potrebnega veliko dela, popravkov, predvsem bug-ov in implementaciji nekaterih rešitev. Naj na kratko povzamemo nekatere funkcije osnovne kode v osmo-tetra. ~/sdr/osmo-tetra/src/demod/python/tetra-demod.py Phython skripta, namenjena za uvoz I/Q vira, ki ustvari "cfile". ~/sdr/osmo-tetra/src/float_to_bits Programska koda za uvoz dekodiranih bitov. ~/sdr/osmo-tetra/src/demod/python/osmosdr-tetra_demod_fft.py Phython skripta, namenjena uvozu vira iz SDR naprave.
  7. 7. 7 ~/sdr/osmo-tetra/src/tetra-rx Osredni program, ki uvozi iz datoteke "file.bits" bite podatkov in jih nato pošlje bodisi konzoli ali preko GSMTAP protokola Wiresharku, programu za analizo protokolov in prometnih podatkov. Osmo-tetra lahko uporabljamo za časovno določen zajem signala, dekodiranja in poznejšega analiziranja prometnih podatkov ali pa kar zajemanje "real time" torej dekodiranje in analiziranje trenutnih prometnih podatkov. Imeli smo strojno opremo in javno dostopno odprtokodno programsko rešitev, ki pa jo je bilo potrebno ustrezno pripraviti. Potrebno je bilo namestiti mnogo različnih programskih paketov, ki so potrebni za delovanje osmo-tetra programske kode. Začeli smo z nameščanjem odprtokodnega programskega ogrodja GNU Radio, v sklopu katerega je tudi RTL-SDR programska oprema, ki je potrebna za dekodiranje signala preko SDR programske naprave. GNU Radio je programsko ogrodje, ki vsebuje različna orodja, dekoderje, filtre in druge pripomočke za dekodiranje in analiziranje različnih radijskih signalov. Po uspešno nameščenem GNU Radio ogrodju, smo namestili različne knjižnice in pakete, brez katerih osmo-tetra ne more delovati. Po mučnem nameščanju in sprotnem reševanju težav z različnimi gonilniki in datotekami, smo le uspeli usposobiti strojno opremo za delovanje. Na začetku je vse delovalo v zelo primitivnem okolju, z vpisovanjem ukazov v ukazno konzolo, tako da je bilo potrebno nekaj prehodnega znanja v LINUX okolju. Pri vpisu ukaza: src$ ./demod/python/osmosdr-tetra_demod_fft.py -o /dev/stdout | ./float_to_bits /dev/stdin /dev/stdout | ./tetra-rx /dev/stdin se nam je odprl osmosdr-tetra_demod_fft.py, program, ki nam prikaže frekvenčni spekter. Postavimo se na frekvenčni spekter od 390 – 395 Mhz. Na frekvenčnem spektru opazimo več amplitud, ki predstavljajo bazne postaje. Amplitude lahko vidimo na spektru, izberemo pa lahko tudi prikaz spektra kanala.
  8. 8. 8 Na frekvenčnem spektru 390 – 395 Mhz smo našli bazne postaje in si izbrali najbolj izraženo. Poudariti je potrebno, da so antene, ki so navadno priložene DVB-T sprejemnikom lahko problematične, še posebno če smo na območju, kjer je pokritost s TETRA signalom slaba. osmosdr-tetra_demod_fft.py Na frekvenčnemu spektru kliknemo najbolj izraženo amplitudo, torej bazno postajo, jo umerimo in če smo bili uspešni pri centriranju amplitude, bi morali v ukazni konzoli ujeti SYNC9 izbruhe (ang. BURST) BSCH10 (MAC11 -SYNC PDU12 ) in BNCH13 (SYSINFO PDU). Na sliki lahko vidimo, da smo na frekvenci DL 391. 91250 Mhz, UL 381.91250 Mhz, ujeli bazno postajo, ki ima MCC14 oznako 293 (Slovenija), ter MNC15 oznako 7, kar označuje ponudnika TETRA storitve. 9 Synchronization 10 Broadcast Synchronization Channel 11 Media Access Control 12 Protocol Data Unit 13 Broadcast Network Channel 14 Mobile Country Code 15 Mobile country code
  9. 9. 9 Razberemo lahko nekaj osnovnih podatkov o omrežju (na voljo je kriptografska zaščita radijskega vmesnika, obvezna registracija, de-registracija, govorne in podatkovne storitve, itd.) 4 ANALIZA DEKODIRANEGA TETRA SIGNALA Dobili smo dekodiran TETRA signal bazne postaje. Dekodirane prometne podatke, ki smo jih "real-time" zajemali od bazne postaje, smo želeli videti v nekem smiselnem zaporedju. Da bi jih lahko podrobneje analizirali, smo se odločili, da uporabimo orodje Wireshark, ki je namenjeno analizi protokolov in prometnih podatkov. Osmo-tetra dekoder namreč pošilja prometne podatke po GSMTAP protokolu na localhost (127.0.0.1) Wiresharku, le-ta pa omogoča grafični prikaz zajetih prometnih podatkov, ki se pošiljajo po TETRA omrežju. Na voljo smo imeli Wiresharkov dissector, za dekodiranje TETRA prometnih podatkov, ki ga je napisala skupina razvijalcev na Pekinškem inštitutu za tehnologijo po ETSI standardu. Tako kot pri osmocom kodi, smo morali tudi za Wiresharkov dissector sami korigirati določene napake in dodati nekaj dodatnih funkciji za dekodiranje določenih prometnih podatkov. Ko smo imeli popravljeno osmocom kodo in dodelan Wiresharkov dissector, smo lahko "real- time" zajemali prometne podatke na različnih slojih: PHY16 , Lower MAC, Upper MAC, LLC17 , 16 Physical 17 Logical Link Control
  10. 10. 10 MLE18 , CMCE19 in MM20 . Na Lower MAC sloju smo npr. z osmo-tetra dekoderjem in Wiresharkovim dissectorjem lahko dekodirali ACCESS-ASSIGN, SYNC, SYSINFO in RESOURCE. V pomoč razumevanju zajetih prometnih podatkov v Wiresharku nam je bila dokumentacija ETSI standardov, ki za vsak paketek do podrobnosti razloži funkcijo in vlogo. To je pomenilo poglobljen študij ETSI standardov. V Wiresharku smo tako lahko zasledili registracije, lokacijske posodobitve, avtentikacije, govorni in podatkovni promet ter seveda šifrirani promet. V ločenih sklopih bomo predstavili naše ugotovitve. Spodnja slika prikazuje broadcast SYNC izbruh BNCH, sub broadcast signaling kanala BCCH21 , ki ima privzeto ISSI22 številko: 16777215. Če poenostavimo BCCH oddaja signal radijskim terminalom, na podlagi katerega lahko identificirajo omrežje in se nanj tudi povežejo. Kot še lahko razberemo iz spodnje slike, broadcast prometni podatki niso šifrirani, kar jasno označuje identifikator na MAC-RESOURCE PDU (encryption mode: 0). 18 Mobile Link Entity 19 Circuit Mode Control Entity 20 Mobility Management 21 Broadcast Synchronization Channel 22 Individual Short Subscriber Identitiy
  11. 11. 11 4.1 Registracija Vsak radijski terminal mora biti predhodno vpisan v posebnem imeniku registraciji, ki ga upravlja administrativni management. Imenik za vsak radijski terminal vsebuje unikatno TEI23 številko proizvajalca in identifikacijsko ISSI številko, ki mora biti unikatna in ki se jo sprogramira s programsko opremo proizvajalca radijskega terminala. ISSI številka predstavlja 24 bitov od skupno 48 bitov, ki so del ITSI24 identitete. Preostalih 24 bitov predstavljata MCC in MNC koda. Če ponazorimo proces registracije. Pri vklopu radijskega terminala, terminal s svojo ISSI številko pošlje zahtevo za registracijo bazni postaji (U-LOCATION-UPDATE-DEMAND) ki ima na MAC-RESOURCE PDU identifikator ITSI ATTACH. Bazna postaja, oziroma omrežna nadzorna infrastruktura preveri ali je radijski terminal z navedeno ISSI številko vpisan v bazo radijskih terminalov. Če je odgovor pritrdilen, bazna postaja registrira radijski terminal v omrežje (D-LOCATION-UPDATE-ACCEPT). V kolikor se uporablja ključni varnostni mehanizem – avtentikacija radijskega terminala, je pred samo registracijo nujen proces overitve z avtentikacijskim ključem, ki ga bomo razložili v nadaljevanju. Po uspešno opravljeni registraciji in predhodni avtentikaciji, lahko radijski terminal dostopa do določenih grup – številk GSSI25 . V nadzornem managementu se namreč določa tudi pravice posameznemu radijskemu terminalu, do katerih grup GSSI ima pravico dostopati. GSSI je 24 bitna identifikacijska številka grupe. Na začetku našega raziskovanja TETRA omrežja, nekje v drugi polovici leta 2013 smo ugotovili, da veliko radijskih terminalov, ki so delovali v režimu brez šifriranja radijskega vmesnika (CLASS 1), niso imeli vključene avtentikacije. Slednje je bilo mogoče ugotoviti tako, da smo v Wiresharku med prometnimi podatki MAC-RESOURCE PDU zasledili D-LOCATION-UPDATE-ACCEPT, ki je imel tip ITSI ATTACH, pred tem pa nismo zasledili avtentikacije (D-LOCATION-AUTHENTICATION-DEMAND), kar je pomenilo, da je bil radijski terminal registriran v omrežje brez predhodne avtentikacije. Teoretično bi se v omrežje lahko prijavil kdorkoli, ki bi poznal ISSI identifikacijsko številko, le imeti bi moral radijski terminal in programsko opremo za programiranje. Ugotovili smo tudi, da je bila ustaljena praksa predvsem v Policiji, ki sicer uporablja šifriranje radijskega vmesnika s šifrirnim algoritmom TEA1 in posledično tudi avtentikacijo, da so radijskim terminalom, ki so jih želeli izklopiti iz omrežja, le onemogočili avtentikacijo, ne pa tudi 23 TETRA Equipment Identity 24 Individual TETRA Subscriber Identitiy 25 Group Short Subscriber Identitiy
  12. 12. 12 registracije. Tako bi teoretično lahko bila mogoča registracija radijskega terminala brez avtentikacije in s tem tudi prijava na vse določene grupe, do katere je imel radijski terminal s svojo ISSI številko dostop. Spodnja slika prikazuje registracijo, radijskega terminala po predhodni uspešni avtentikaciji z ISSI številko 6750452. Bazna postaja po predhodni uspešni avtentikaciji pošlje radijskemu terminalu D-LOCATION-UPDATE-ACCEPT, ki ima pod tip označen ITSI ATTACH, kar pomeni, da je bil radijski terminal uspešno registriran v omrežje. V MAC-RESOURCE PDU med D-LOCATION-UPDATE-ACCEPT (tip ATTACH ali ROAMING) lahko zasledimo tudi pripeto številko GSSI (ATTACH GSSI). Pri tem je zanimivo, da je prikaz GSSI številke odvisen od proizvajalca terminalih naprav (če je v MAC-RESOURCE PDU pripeta medtem, ko pošlje U-LOCATION-UPDATE-DEMAND). Na podlagi analize smo tako ugotovili, da so pripete le GSSI številke od proizvajalca Motorola. Nokia/EASD, Sapura in drugi, pa imajo očitno onemogočeno pripenjanje GSSI številke na MAC-RESOURCE PDU identifikatorju. Spodnja slika prikazuje pripeto GSSI številko 6750903, ki je bila vidna na MAC-RESOURCE PDU D-LOCATION-UPDATE-ACCEPT ISSI številke 6750452.
  13. 13. 13 4.2 Avtentikacija Proces avtentikacije v TETRA omrežju je temeljni varnostni mehanizem od katerega so odvisni vsi nadaljnji varnostni mehanizmi. Za avtentikacijo se uporablja 128 bitno simetrično šifriranje na podlagi poziva-odziva (ang. challenge – RAND, response - RES) spremenljivk. Avtetikacija poteka med omrežno infrastrukturo, na katero je tudi priključen avtentikacijski center (Authentication Center – AuC) in radijskim terminalom, ki ima shranjen unikatni K ključ na posebnem zaščitenem čipu ali SIM kartici. Avtentikacijski center je strežnik, priključen na stikalno infrastrukturo, na katerem se prav tako nahaja enak unikatni avtentikacijski ključi (K), vezan na ISSI, kot na radijskem terminalu. K ključ se zaradi varnosti nikoli ne prenese preko omrežja, zato se za preverjanje avtentičnosti uporabijo štirje algoritmi TA11, TA12, TA21 in TA22, ki preverjajo ujemanje avtentikacijskega ključa z RES in RAND spremenljivkama. ETSI standard določa tri možne avtentikacije:  avtentikacija radijskega terminala omrežju,  medsebojna avtentikacija med omrežjem in radijskim terminalom,  obvezna medsebojna avtentikacija omrežja in radijskega terminala. Med analizo prometnih podatkov, ki se prenašajo po TETRA omrežju, smo tako opazili D-AUTHENTICATION-DEMAND, zahtevek bazne postaje, da se mora določen radijski terminal avtenticirati. Prestregli smo poziv, 80 bitno RAND SEED in 80 bitno RAND CHALLENGE spremenljivko, ki jo je poslala bazna postaja radijskemu terminalu. Ker nismo imeli ustrezne programske in strojne opreme, da bi analizirali tudi prometne podatke, ki se prenašajo preko UPLINK-a do bazne postaje, žal nismo mogli videti odziva (U-AUTHENTICATION-RESPONSE) radijskega terminala z RES spremenljivko. Spodnja slika prikazuje avtentikacijo radijskega terminala, s številko ISSI 3005715, ki se uspešno avtenticira omrežju, kar je razvidno iz odziva bazne postaje D-LOCATION- LOCATION-UPDATE-ACCEPT. V kolikor proces avtentikacije ne bi bil uspešen, bodi si zaradi napačnih spremenljivk RES, RAND in s tem tudi avtentikacijskega ključa, bi zasledili D-LOCATION-UPDATE-REJECT. Radijski terminal, ki bi prejel zavrnitev bazne postaje D- LOCATION-UPDATE-REJECT, vsaj po teoriji in ETSI standardih, se naj ne bi mogel registrirati v samo omrežje.
  14. 14. 14 Pri opazovanju prometnih podatkov DOWNLINK-a smo ugotovili, da se v CLASS 1 uporablja le enostranska avtentikacija in sicer da se radijski terminal avtenticira omrežju, ne pa tudi obratno. Tako se uporabljata dva algoritma TA11 in TA12. Slednja lastnost pa lahko predstavlja varnostno tveganje pred lažnimi baznimi postajami, saj ni varnostnega mehanizma na strani radijskih terminalov, ki bi preverjal avtentičnost baznih postaj. Omenili smo že, da smo na začetku raziskovanja omrežja odkrili hudo varnostno ranljivost, ki je omogočala registracijo radijskih terminalov brez avtentikacije, kar je pomenilo, da bi lahko kdorkoli kloniral ISSI številko terminala in se brez težav prijavil na katerikoli GSSI. Varnostna ranljivost je bila odkrita tako pri organizacijah in službah, ki ne uporabljajo šifriranja radijskega vmesnika (CLASS 1) in v službah, ki so šifriranje uporabljale (CLASS 3), to sta po naših podatkih le Policija in SOVA. Tedaj je bila ustaljena praksa, da so operaterji na sistemu nadzorne infrastrukture le onemogočili avtentikacijo za določen radijski terminal, ki so ga želeli začasno onemogočiti. Prijava v omrežje bi lahko bila zaradi te napake mnogo lažja. Kljub tej napaki pa zaradi dodatnih varnostnih mehanizmov, ki so povezani z avtentikacijo, naj ne bi bilo mogoče poslušati pogovorov službam, ki delujejo v CLASS-u 3, saj so šifrirani z izpeljanimi, dinamičnimi ključi preko uspešne avtentikacije, o katerih nekoliko kasneje. Pri analizi prometnih podatkov smo ugotovili dve varnostni ranljivosti, najhujše tretje, v javni varnostni analizi ne bomo omenjali, saj bi lahko razkritje te varnostne ranljivosti pomenilo ogrožanje najbolj kritičnih komunikaciji v Sloveniji in s tem tudi ogrožanje nacionalne varnosti države.
  15. 15. 15 Brez avtentikacije je torej mogoča prijava v samo omrežje, saj ETSI standardi ne določajo varnostnih mehanizmov za preprečevanje kloniranja ISSI številk. Registracija je uspešna, če je ISSI številka vpisana v imenik, bazo uporabnikov. V kolikor avtentikacija ni vključena, ni mogoče šifrirati prometa z dinamičnimi ključi, so ti izpeljani skozi uspešen postopek avtentikacije (DCK, CLASS 3). Lahko dodamo, da je naše omrežje nekoliko posebno, saj deluje tako varnostnem razredu 1 (CLASS 1, brez šifriranja) kot varnostnem razredu 3 (CLASS 3, šifriranje, izpeljani, dinamični ključi). To pomeni da bazne postaje in vsa omrežna infrastruktura deluje v obeh načinih, kar pa ni ravno najboljša varnostna pa tudi funkcionalna rešitev. 4.3 Govorni promet Na začetku smo spremljali le prometne podatke registraciji in avtentikaciji, a ko smo v Wiresharku zasledili D-SETUP, kar je pomenilo da se prenaša tudi govorni promet, smo se odločili, da si raziskovanje še malce bolj popestrimo. V ta namen smo morali spisati nekaj manjkajoče kode, popraviti nekaj bug-ov in narediti patch-e za osmo-tetra. Zanimivo je, da je ETSI javno objavil ACELP govorni kodek po standardu ETSI 300 395-2. Bilo ga je potrebno le implementirat v osmocom kodo. Pri tem smo imeli ne malo težav, ki smo jih sprotno in vztrajno reševali in po določenem času smo lahko že poslušali tako pogovore na grupah, kot tudi individualne pogovore, seveda tiste, ki so bili nešifrirani. Spodnja slika prikazuje govorni promet v Wiresharku.
  16. 16. 16 Iz slike je razvidno, da gre za skupinski klic v režimu CLASS 1, brez šifriranja (encryption- mode: 0) na grupi GSSI številke 900006. ISSI številka uporabnika, ki v tem trenutku govori na grupi je 9200047 (calling-party-address-ssi). Uporabnik ISSI številke 9200047 pritisne PTT tipko za govor (U-SETUP), za kar bazna postaja najprej dodeli klicu USAGE marker (5), slednje namreč zagotavlja večjo zanesljivost klica in preprečuje motnje klica na istem časovnem kanalu hkrati. Nato bazna postaja dodeli prosti časovni kanal in govor se začne prenašati preko bazne postaje tudi na DOWNLINK-u (D-SETUP). Govorni promet se tako prenaša naslovniku (individualni klic) ali naslovnikom (skupinski klic – grupa) kar v Wiresharku vidimo kot D-SETUP. Trajanja klica označuje CALL- TX-GRANTED konec klica pa CALL-RELEASE, kar označuje tudi "TIMEOUT - T308" rezerviranega časa določenega skupinskega klica. Iz prometnih podatkov je tako razvidno kdo, kdaj, kam in koliko časa kliče, katera časovna reža je namenjena klicu, USAGE marker, identifikator klica, identifikator šifriranja (encrypted, clear) in še mnogo drugega. Omenili smo že, da je možno ne samo poslušanje govornega prometa skupinskih klicev, ampak tudi individualnih. Individualni klici so možni tako v TMO kot tudi v DMO načinu. V TMO načinu so lahko notranji (samo znotraj TETRA omrežja, med radijskimi terminali ali dispečersko infrastrukturo) ali zunanji (na druga omrežja, npr. GSM, stacionarno, IP, itd.) Opazili smo, da je storitev individualnih klicev že nekaj časa nedelujoča, oziroma jo, kot smo zasledili, uporablja le Policija.
  17. 17. 17 4.4 Podatkovni promet (SDS, Stutus) Med nešifriranimi prometnimi podatki smo lahko zasledili tudi SDS26 sporočila, za katere lahko rečemo, da gre za podobno storitev kot SMS pri GSM. SDS sporočila se lahko preko TMO ali DMO omrežja pošilja na grupo GSSI, pri tem dobijo SDS sporočilo vsi, ki so pridruženi grupi ali pa individualno. Statusna sporočila imajo drugačno vlogo, saj gre za vnaprej določena, numerična sporočila, ki jasno določajo nek v naprej določen status uporabnika. Podobno kot pri GSM tudi TETRA uporablja servisno številko SDS centra, preko katerega se pošiljajo sporočila. Za pošiljanje SDS sporočil se uporablja CMCE27 protokol na tretjem krmilnem sloju. Pri analizi prometnih podatkov v Wiresharku smo zasledili D-SDS-DATA. SDS ali statusno sporočilo je nič drugega kot niz bitov, ki jih je bilo potrebno dekodirati, za kar smo kasneje uporabili tudi grafični vmesnik, TETRA Monitor, o katerem več v nadaljevanju. Med prometnimi podatki smo lahko pri določenih uporabnikih, službah lahko videli tudi LIP28 SDS sporočila. Spodnja slika prikazuje Wireshark, preko katerega smo na začetku analizirali prometne podatke. Vidimo lahko poslano SDS sporočilo (D-SDS-DATA) pošiljatelja ISSI številke 3005820 naslovniku ISSI številke 3005823. 26 Short Data Service 27 Circuit Mode Control Entity 28 Location Information Protocol
  18. 18. 18 Ko smo osvojili nekaj znanja, smo dodali kodo, ki je dekodirala SDS in statusna sporočila ter jih takole prikazovala ukazni konzoli. Kot vidimo na sliki, je pošiljatelj z ISSI številko 3005820 poslal SDS sporočilo naslovniku z ISSI številko 3005823 z vsebino "SOBA 42". Dekodirali smo tudi statusno in SDS sporočilo naslovljenega na radijski terminal, ki naj bi deloval v šifriranem načinu delovanja (CLASS 3), vendar kot bomo lahko spoznali v naslednjem delu varnostne analize, ni vedno tako. Vidimo da je dispečerski ISSI (PU LJ) 6100001 poslal najprej statusno sporočilo radijskemu terminalu, ISSI številke 6109101, status 32462, hkrati pa tudi SDS sporočilo z vsebino "Uspesno ste se prijavili v patruljo G611. Vrsta patrulje je INTERVENCIJA. Stevilo clanov patrulje je 2". Ugotovimo lahko, da je poslano SDS sporočilo, povratno obvestilo o uspešni prijavi v sam sistem. Status, ki ga pošlje uporabnik radijskega terminala, se prikaže operaterju OKC, v aplikaciji TETRA Dispečer, kjer je prikazan klicni znak policista/patrulje s podatki o vrsti dela, številu policistov v patrulji, delovnem časom, delovnim statusom, specifični opremi, ter o vrsti in tipu vozila. (A. GRADIŠNIK, M. RISTIČ, 2012.)
  19. 19. 19 4.5. Šifrirani promet Kot smo že omenili, smo lahko na podlagi podatkov BCCH kanala ugotovili, da TETRA omrežje podpira tudi šifriranje radijskega vmesnika. Sami prometni podatki, ki se pošiljajo preko BCCH kanala, še ne povedo za kateri šifrirani algoritem gre. Naj za začetek predhodno postrežemo nekaj teorije o varnostnih mehanizmih. Varnostni mehanizmi v TETRA omrežju so:  medsebojna avtentikacija med terminalskimi napravami in omrežjem preko radijskega vmesnika (algoritmi TA11, TA12, TA21, TA22),  kriptografska zaščita radijskega vmesnika (algoritmi TEA1, TEA2, TEA3, TEA4),  kriptografska zaščita točka – točka (*AES),  anonimnost,  daljinska blokada terminalnih naprav. TETRA pozna tri možne varnostne razrede (security classes):  Security CLASS 1 (avtentikacija je opcijska, brez kriptografske zaščite radijskega vmesnika, brez kriptografske zaščite točka – točka),  Security CLASS 2 (avtentikacija je opcijska, kriptografska zaščita radijskega vmesnika je statična - SCK29 , kriptografska zaščita točka – točka je opcijska),  Security CLASS 3 (avtentikacija je obvezna, kriptografska zaščita radijskega vmesnika je dinamična – DCK30 , kriptografska zaščita točka – točka je opcijska). Po javno dostopni tehničnih dokumentacijah se v Sloveniji uporabljata varnostna razreda, CLASS 1 in CLASS 3, kar lahko razberemo tudi iz sporočil BCCH kanala. Podatka, kateri algoritem se uporablja za šifriranje radijskega vmesnika med samimi prometnimi podatki ne najdemo, zato pa je toliko bolj priročen internet, na katerem ugotovimo, da v Slovenji uporabljamo TEA1 algoritem. TEA ali TETRA Encryption Algorithm je 80 bitni algoritem za tokovno šifriranje (stream cipher). Mnogi po ETSI standardu določene TEA algoritme enačijo s algoritmom Tiny Encryption Algorithm, ki je pravzaprav javno razkrit algoritem za šifriranje blokov (block ciphers) in nima nikakršne povezave s TETRA Algorithm Encryption (TEA). 29 Static Cipher Key 30 Derived Cipher Key
  20. 20. 20 Uporabnikom TETRA omrežja so opcijsko po ETSI standardu na voljo štirje standardizirani algoritmi za kriptografsko zaščito radijskega vmesnika: • TEA1 je osnovni 80 bitni algoritem za splošno uporabo. • TEA2 je 80 bitni algoritem. Njegova uporaba je omejena na organizacije javne varnosti v državah podpisnicah Schengenskega sporazuma. Skrbnik algoritma je nemška Policija. Izvoz algoritma je pod nadzorom. Algoritem uporablja večina Policiji znotraj EU. • TEA3 je 80 bitni algoritem. Njegova uporaba je omejena na organizacije javne varnosti v državah, ki niso podpisnice Schengenskega sporazuma. Izvoz algoritma je pod nadzorom. • TEA4 je 80 bitni algoritem, namenjen splošni uporabi. Za vse TEA algoritme velja, da so dobro varovana skrivnost, saj do zdaj nobeden izmed njih ni bil javno razkrit. Prav tako do zdaj še ni nobene javno znane kriptoanalize TEA algoritmov, kar gre pripisati restriktivnim ukrepom, ki prepovedujejo splošno distribucijo in protokolom, ki varujejo algoritme varno shranjene znotraj programske opreme, ki se nahajajo na radijskih terminalih in napravah, ki so priključene v TETRA omrežje. Tako so na primer različni proizvajalci TETRA opreme algoritme, ki so zapisani v spominskem modulu, posebno šifrirali, tako da dostop do njih ni ravno enostaven. Ko smo malce bolj razumeli kakšni so varnostni mehanizmi in kakšno varnost lahko pričakujemo, smo verjeli, da ima Policija povsem zavarovane svoje komunikacije. Toda, kot smo že omenili, imamo pri nas nekoliko specifično omrežje, saj bazne postaje delujejo tako v CLASS-u 1 kot v CLASS-u 3, kar pomeni da na časovnih oknih (time slot) poteka podatkovna in govorna komunikacija šifrirano ali pa tudi ne, odvisno od nastavitev. To je v praksi pomenilo kar nekaj težav… Da bi bolje razumeli kriptografske mehanizme, naj na hitro omenimo kako deluje šifriranje radijske vmesnika s TEA algoritmom. Za primer bomo vzeli šifriranje v CLASS-u 3, torej dinamično (DCK/CCK31 ). Na radijskih terminalnih napravah se nahaja eden izmed štirih algoritmov za šifriranje radijskega vmesnika (TEA algoritmi). Enak algoritem mora biti implementiran tudi v omrežni infrastrukturi baznih postaj. Ko imata tako bazna postaja, kot radijski terminal enak algoritem za šifriranje radijskega vmesnika, se ves postopek šifriranja začne z avtentikacijo. Bazna postaja od radijskega terminala zahteva avtentikacijo, kot smo to že lahko spoznali, z RES in RAND spremenljivkami preveri pravilnost avtentikacijskega ključa in v kolikor radijski terminal uspešno opravi postopek avtentikacije, ima radijski 31 Common Cipher Key
  21. 21. 21 terminal veljaven izpeljan DCK32 ključ. Enak DCK ključ mora biti izpeljan tudi na strani omrežja. DCK ključ je v uporabi predvsem za šifriranje v smeri od bazne postaje do radijskih terminalov, torej UPLINK-a. Govorna in podatkovna komunikacija je šifrirana s CCK ključem, ki je skupinski ključ za šifriranje v smeri od bazne postaje do radijskih terminalov, torej DOWNLINK-a. CCK ključ generira omrežje in ga na podlagi uspešne avtentikacije pošlje radijskemu terminalu šifriranega z DCK ključem. Omrežna infrastruktura preko SYSINFO BROADCAST razpršeno pošilja CCK-id vsem radijskim terminalom, registriranim na določenem LA. Če radijski terminal uspešno opravi proces avtentikacije ima tako veljaven DCK ključ s katerim dešifrira ključ CCK, ki ga nadalje uporabi za dešifriranje prometnih podatkov, ki jih dobi od bazne postaje (VOICE + DATA). CCK ključ je mogoče na zahtevo radijskega terminala (U-OTAR CCK DEMAND) distribuirati tudi preko mehanizma OTAR33 . V tem primeru se distribuira (D-OTAR CCK Provide) SCCK34 , ki je na strani omrežne infrastrukture šifriran z algoritmom TA31, vsebuje pa CCK-id, DCK in CCK. Redundanca se na strani radijskega terminala preveri z algoritmom TA32. Vsi prometni podatki, ki se prenašajo po fizičnih vodih in mikrovalovnih povezavah od bazne postaje do stikalne oziroma centralne infrastrukture, niso zaščitene s šifriranjem radijskega vmesnika. Za to se po ETSI standardih uporablja šifriranje točka – točka (End-to-End Encryption), torej šifriranje prometnih podatkov po celotni prometni poti od dispečerske centrale preko vozlišča, stikalne infrastrukture, baznih postaj in na koncu do samih radijskih terminalov. Pri tem naj dodamo, da smo na podlagi prometnih podatkov ugotovili, se pri nas ne uporablja šifriranja točka – točka, kar že predstavlja varnostno tveganje, da bi nekdo prestrezal nešifrirane komunikacije, nekje med bazno postajo in stikalno/centralno infrastrukturo. 32 Derived Cipher Key 33 Over The Air Re-keying 34 Sealed Common Cipher Key
  22. 22. 22 Kot vidimo na zgornji sliki, na MAC-RESOURCE PDU zasledimo identifikator stanja "encryption mode: 2", kar pomeni, da so prometni podatki šifrirani. Vidimo lahko, da je ISSI osem mestna številka 12971394, ki je že na prvi pogled drugačna kot ostale, načeloma sedem mestne ISSI številke. Gre za xESI35 entiteto, šifrirano obliko ISSI ali GSSI številke. Spodnja slika prikazuje proces šifriranja ISSI številke. Enak proces oziroma algoritem se uporablja tudi za šifriranje GSSI številke. Kot lahko vidimo, ima algoritem TA61 za vhod (ang. input) CCK ali SCK ključ in xSSI številko, za izhod (ang. output) pa xESI entiteto. Vir: ETSI EN 300 392-7 35 Encrypted Short Identity
  23. 23. 23 V Wiresharku tako vidimo xESI entitete, za katere pa na prvi pogled ne vemo ali gre za GSSI ali ISSI. S časoma, ko malce bolj opazujemo prometne podatke in spremljamo tudi šifriran promet, ugotovimo, katera xESI entiteta je lahko GSSI, celo več, ugotovimo lahko za katero GSSI številko gre. Slednje ugotovimo tako, da spremljamo časovne reže (ang. time slot) MCCH36 kanala, na katerem so tudi štiri časovne reže (ang. time slots). Govorni promet, četudi šifriran se prenaša preko MCCH kanala, zato lahko vidimo kdaj se prenaša govorni promet preko časovnih rež. S podrobnejšo analizo GSSI številk (registracije, de-registracije, avtentikacije, roaming) in vnaprejšnjim poznavanjem intenzitete zasedenosti določene grupe, lahko pridemo do ugotovitve katera GSSI številka je neka xESI entiteta. In zdaj najbolj zanimivi del. Marca, leta 2013 smo na podlagi šifriranih prometnih podatkov iz bazne postaje EMONA (LA37 : 160) naredili seznam xESI entitet. Uredili smo ga tako, da smo ločili xESI entitete, za katere smo menili da pripadajo GSSI številkam. Avgusta letos, smo ponovno opravili podrobno analizo šifriranih prometnih podatkov na bazni postaji EMONA in ugotovili, da se xESI entitete niso spremenile. Če ponovno pogledamo zgornjo sliko lahko ugotovimo, da gre za GSSI številko, ki je logično vedno enaka, da pa je tudi drugi vhod, CCK ključ vedno enak, saj se xESI spremeni takoj, ko se spremeni vhod, bodisi xSSI ali CCK ključ. Tako ugotovimo, da je CCK ključ za omenjen LA enak že več kot leto dni. Slednja lastnost omrežja pomeni varnostno ranljivost, saj omogoča napadalcu, da z mavričnimi tabelami (ang. rainbow tables), podobno kot pri GSM (algoritem A5/1) ali napadom z grobo silo (ang. brute force) v doglednem času zlomi CCK ključ. Že na začetku smo omenili, da smo zaznali težave z dostavo ključev, saj smo lahko velikokrat poslušali govorni promet Policije, ki naj bi delovala v šifriranem režimu, kar prikazuje tudi spodnja slika. Do tega je po našem mnenju prišlo zaradi težav pri avtentikacijah, ki so lahko posledica težav na strani radijskih terminalov ali omrežne infrastrukture. Možnosti je lahko več, vsekakor pa je najbolj verjetna ta, da bazne postaje niso uspešno distribuirale CCK ključa, ker na MAC-RESOURCE PDU ni bilo pravilnega identifikatorja CCK-id ali pa radijski terminal ni imel veljavnega DCK ključa, da bi dešifriral CCK ključ. Na sliki vidimo da poteka govorni promet D-SETUP, z dodeljenim USAGE markerjem (22), na grupi GSSI številke 6100003 (POLICIJA, PU LJ, LJ3). V PDU MAC-RESOURCE identifikatorju lahko vidimo, da gre za nešifriran govorni promet (encryption mode: 0). 36 Main Control CHannel 37 Local Area
  24. 24. 24 Naj dodamo, da so kljub uporabi šifriranja radijskega vmesnika s TEA1 algoritmom in dinamičnimi izpeljanimi ključi (DCK, CCK), ne šifrirajo vsi prometni podatki. Po vsej verjetnosti prav zaradi specifičnega omrežja, ki deluje tako v načinu brez šifriranja (CLASS 1) kot tudi v šifriranem načinu (CLASS 3), ostane nešifriran del signalizacije na PDU MAC / LLC sloju. Tako je razumljivo, zakaj je mogoče videti vse registracije, avtentikacije in lokacijske posodobitve (ang. roaming) radijskih terminalov, ki bi morali imeti šifrirano tudi signalizacijo. Kar pa s stališča varnostne ranljivosti pomeni, da je s časoma možno ugotoviti katera ISSI številka pripada kateri policijski patrulji/enoti in kateri GSSI grupi, katere ISSI številke se pojavljajo na nekem območju, kdaj se na območju bazne postaje dogaja nekaj "zanimivega" itd. Tako smo lahko tudi mi dokaj hitro ugotovili katere grupe (GSSI) številke se pojavljajo na nekem območju, katere ISSI številke ter zaradi težav s šifriranjem prometnih podatkov DOWNLINK-a (CCK ključa) večkrat ujeli kakšno govorno in podatkovno zanimivost, ki bi sicer morala biti šifrirana.
  25. 25. 25 5 GRAFIČNI VMESNIK TETRA MONITOR Avtor, ki ne želi biti javno imenovan, je v C/C++ kodi napisal program TETRA Monitor, namenjen le naši skupni interni uporabi, ki smo ga tudi uporabili pri sami varnostni analizi. TETRA Monitor je grafični vmesnik, ki prejema dekodiran signal od izvornega programa osmosdr-tetra_demod_fft.py. Prikazuje registracije, avtentikacije, individualne in skupinske klice (čas klica, dolžina klica, pošiljatelja ISSI/GSSI in naslovnika ISSI/GSSI klica) SDS in statusna sporočila, aktivnost in zasedenost časovnih rež (prva časovna reža rumena – aktivnost MCCH, govorni promet CLASS 3/CLEAR, rumena na preostalih treh časovnih režah – RELEASE/TIMEOUT govornega prometa, prav tako se pri govornem prometu izpiše dodeljena številka USAGE markerja), stopnjo signala, ID bazne postaje – LA, broadcast (MCC, MNC, identifikatorje - CLASS 1,2,3, GCK, auth req) in omogoča pregled nad grupami – GSSI številkami, ki jih je mogoče shraniti v SQLite bazo. Program samodejno shranjuje govorne posnetke ter podatkovne loge BCCH kanala. Samodejno se logirajo tudi vse registracije, avtentikacije in lokacijske posodobitve. TETRA Monitor mam je tako bistveno olajšal pregledovanje najbolj zanimivih prometih podatkov. BROADCAST SYSINFO bazne postaje LJ-EMONA LA160 nam pove, da ni zahtevana obvezna avtentikacija, da je podprt CLASS 1 in CLASS 3. Šifriranje z GCK38 ključem ni podprto. 38 Group Cipher Key
  26. 26. 26 Spodnja slika prikazuje registracije, lokacijske posodobitve (ROAMING) in avtentikacije radijskih terminalov. V prvem stolpcu vidimo ISSI številke, v drugem stolpcu imamo označene ATT - vrednost 0 je v primeru, da radijski terminal prejme D-LOCATION-UPDATE-ACCEPT kar pomeni lokacijsko posodobitev radijskega terminala (ROAMING), vrednost 1 pa je v primeru, če je radijski terminal na novo registriran v omrežje, MAC PDU tip ITSI ATTACH (npr. ko se radijski terminal na novo registrira v omrežje). Sledi stolpec avtentikaciji – vrednost 0 v primeru, da radijski terminal prejme D-LOCATION- UPDATE-ACCEPT, kar pomeni lokacijsko posodobitev radijskega terminala (ROAMING) ali ATT v primeru, da radijski terminal nima vključene avtentikacije. Vrednost 1 je, če BS zahteva avtentikacijo (D-AUTHENTICATION-DEMAND). Četrti stolpec prikazuje TEI request flag v procesu avtentikacije – vrednost 0 če ni zahtevan, 1 če je zahtevan (TEI req / zahteva se zaradi uporabe CLASS-a 1 in 3 ne uporablja, saj se to odsvetuje v omrežjih, ki delujejo tudi ali samo v nešifriranem načinu). Sledi stolpec, ki prikazuje GSSI (kot smo že omenili, je prikaz GSSI odvisen od proizvajalca terminalih naprav. Prikazan je le, če je preko U-LOCATION-UPDATE-DEMAND pripet na MAC PDU. Zadnja dva stolpca pa prikazujeta prvo zaznavo ISSI številke (registracija, avtentikacija ali ROAMING) ter zadnjo spremembo (registracija, avtentikacija ali ROAMING).
  27. 27. 27 TETRA Monitor prikazuje skupinske in individualne klice. V prvem stolpcu je izvorna ISSI številka, v drugem pa naslovna (največkrat je to kar GSSI). Tretji stolpec prikazuje čas klica, četrti identifikator klica, peti številko (2-4) časovne reže, na kateri je potekal govorni promet, šesti pa številko USAGE markerja, ki je bil dodeljen individualnem ali skupinskem klicu. Prva slika med drugim prikazuje tudi govorni promet, ki naj bi bil šifriran, vendar kot vidimo, ni bil šifriran in tako smo lahko poslušali govorne komunikacije Policije.
  28. 28. 28 Spodnji dve sliki prikazujeta poslana SDS in statusna sporočila.
  29. 29. 29 6 UGTOVITVE Z varnostno analizo slovenskega TETRA omrežja smo dokazali, da je mogoče signal dekodirati, prometne podatke pa analizirati. Videli smo lahko kako izgledajo registracije, avtentikacije, SDS in statusna sporočila, tako tista nešifrirana kot tudi tista, ki naj bi bila šifrirana. Na začetku varnostne analize smo zaznali registracije radijskih terminalov brez predhodne avtentikacije. Poslušali smo lahko skupinske in individualne pogovore, tako nešifriranega govornega prometa kot tudi govorni promet, ki naj bi bil šifriran. Ugotovili smo, da se pri CLASS-u 1 uporablja le enostranska avtentikacija, kar predstavlja varnostno tveganje, saj bi lahko nekdo npr. z USRP napravo na GNU radio platformi in znanjem razvil lažno bazno postajo, podobno kot IMSI-Cather pri GSM omrežju. Prav tako smo zaznali napake pri avtentikacijah ter distribucijo CCK ključa ali dešifriranje tega pri šifriranem prometu. Na podlagi analize šifriranih prometnih podatkov smo ugotovili, da se CCK ključ ne spreminja, kar predstavlja varnostno tveganje v primeru napada CCK ključa z grobo silo ali mavričnimi tabelami. Težave smo zaznali na določenih baznih postajah, ki so oddajale povsem napačne MAC PDU parametre in identifikatorje (BS LJ-ŠIŠENSKI HRIB, LA113). Ugotovili smo še druge varnostne ranljivosti, ki jih zaradi morebitnega ogrožanja nacionalne varnosti ne bomo javno izpostavljali. Poudarjamo, da bi bilo smiselno opraviti še dodatno varnostno analizo, predvsem zato, da se razjasni ali je slovensko TETRA omrežje posebnost ali pa obstajajo varnostne ranljivosti že v samih osnovnih ETSI standardih. Ključnega pomena v TETRA omrežju je varnost, saj je to glavni atribut, zaradi katerega je bil takšen sistem sploh zasnovan. Vsekakor je potrebno razumeti, da samo delovanje v digitalnem načinu še ne zagotavlja varnih komunikaciji. Ker so uporabniki TETRA omrežja službe, ki zagotavljajo javno in nacionalno varnost države, je potrebno v sistem vložiti več sredstev (tako finančnih kot strokovno-kadrovskih), predvsem za namen varnostnih mehanizmov, ki bi preprečevali aktivne in pasivne napade ter druge varnostne incidente. Varnost govornih in podatkovnih komunikaciji je odvisna predvsem od pravilno implementiranih varnostnih mehanizmov – obvezna medsebojna avtentikacija, šifriranje radijskega vmesnika in šifriranje celotne radijske poti točka – točka. Varnostni mehanizmi pa lahko delujejo le, če je vsa omrežna oprema kompatibilna med seboj. Prav tako bi bilo smiselno razmišljati o ločenih načinih delovanja (CLASS 1, CLASS 3) ali vklopu šifriranega načina za vse govorne in podatkovne komunikacije (ne razumemo, zakaj to pristojni niso storili že v preteklosti, saj je bil pri vseh javnih razpisih in javnih naročilih TETRA opreme naveden pogoj, da morajo radijski terminali imeti algoritem TEA1 in tako delovati v načinu CLASS 1 ali CLASS 3), saj bi to pomenilo bistveno manjšo možnost, da bi prihajalo do težav
  30. 30. 30 z distribucijo šifrirnih ključev. Prav tako bi s tem onemogočili analizo prometnih podatkov signalizacije. Menimo, da bi bilo potrebno baznim postajam, v kolikor to možnost dopuščajo, nastaviti obvezno medsebojno avtentikacijo (ang. Mandatory Mutual Authentication). Če bi bazne postaje delovale le v enem varnostnem razredu (CLASS 3, DCK/CCK/GCK) bi bilo smiselno, v kolikor bazne postaje to možnost dopuščajo, omejiti registracije v omrežje le na radijske terminale, ki imajo enak algoritem za šifriranje radijskega vmesnika kot omrežna infrastruktura. Prav tako bi lahko, če bi bazne postaje delovale le v šifriranem načinu (CLASS 3), lahko vključili možnost "TEI request flag" in tako še dodatno zavarovali omrežje pred vdori. Smiselno bi bilo razmišljati tudi o prehodu iz šifriranja radijskega vmesnika z algoritmom TEA1 na TEA2, saj je TEA2 algoritem, za katerega veljajo posebni restriktivni ukrepi in distribucijski protokol, kar seveda zmanjšuje možnost, da bi lahko bil algoritem javno razkrit oziroma da bi bila uspešno opravljena kriptoanaliza algoritma. To je še posebno smiselno storiti, če bodo tudi ostale sosednje države prešle na TEA2, saj bi bile potemtakem možnosti za gostovanje tudi v drugih TETRA omrežjih. Nujno potrebno se nam zdi zavarovati mikrovalovne povezave in šifrirati prometne podatke, ki se prenašajo preko mikrovalnovnih-optičnih povezav. Za konec objavljamo še preglednico nekaterih uporabnikov TETRA omrežja v Slovenji iz katere je razvidno, da le Policija bolj ali manj uspešno uporablja šifriranje radijskega vmesnika s TEA1 algoritmom. SLUŽBA / ORGANIZACIJA ISSI GSSI CLASS 1 / 3 MNZ - POLICIJA 6xxxxxx 6xxxxxx 3 MORS - VOJSKA 199xxxx 1xxxxxx 1 MORS - VP 200xxxx 29990xx 1 PRAVOSODJE 305xxxx 305xxxx 1 REDARSKE SLUŽBE 92xxxxx 9000xxx 1 CARINSKA UPRAVA / FURS 7000xxx 71990xx 1 PROTOKOL VLADE 40000xx 4000901 1 DARS 93xxxxx 90005xx 1
  31. 31. 31 7 VIRI European Telecommunications Standards Institute, (2009). ETSI EN 300 392-1. Pridobljeno na: http://www.etsi.org/deliver/etsi_en/30030 0_300399/30039201/01.04.01_60/en_ 30039201v010401p.pdf (27. 5. 2014) European Telecommunications Standards Institute, (2009). ETSI EN 300 392-7. Pridobljeno na: http://www.etsi.org/deliver/etsi_en/300300_300399/30039207/03.01.01_60/en_ 30039207v030101p.pdf (27. 5. 2014) MIBO Komunikacije, (2011). Študija uvajanja sistemov radijskih zvez TETRA. Ministrstvo za notranje zadeve RS, (2010). Razpisna dokumentacija. Pridobljeno na: http://www.mnz.gov.si/fileadmin/mnz.gov.si/pageuploads/JAVNA_NAROCILA/1458p-10- RD-projektna_dok-TETRA.doc (27. 5. 2014) Ministrstvo za notranje zadeve RS, (2013). JAVNI POZIV PROMOTORJEM K ODDAJI VLOGE O ZAINTERESIRANOSTI ZA IZVEDBO PROJEKTA JAVNO-ZASEBNEGA PARTNERSTVA. Pridobljeno na: http://www.mnz.gov.si/fileadmin/mnz.gov.si/pageuploads/JAVNA_NAROCILA/LETO_ 2013/1200-13-jzp_POZIV_promotorjem_razpis_TETRA.doc (27. 5. 2014) Norwegian University of Science and Technology, Department of Telematics, (2013). Security Analysis of TETRA. Pridobljeno na: http://www.diva-portal.org/smash/get/diva2:656471/ FULLTEXT01.pdf (27. 5. 2014) Fakulteta za varnostne vede, Univerze v Mariboru (2012). Operativno - komunikacijski center policijske uprave je pomembna operativna služba v policiji. Pridobljeno na: http://www.fvv.uni-mb.si/DV2012/zbornik/policijska_dejavnost/Gradisnik_Ristic.pdf (27. 5. 2014)

×