Varnost slovenskih GSM omrežij III
V torek smo pisali tudi o tem, da Si.Mobil v svojem omrežju dovoli uporabo A5/0 (nešifriranega prenosa podatkov). Tudi njih smo poprosili za komentar.
Med čakanjem na odgovor so se razmere rahlo spremenite, a najprej nekaj uvoda.
V okviru projekta OsmocomBB je bila razvita aplikacija mobile, ki omogoča klicanje in pošiljanje SMS sporočil s pomočjo OsmocomBB strojne in programske opreme. Za izvajanje klicev seveda potrebujemo SIM kartico, potrebno je tudi oddajati v omrežje, kot bomo pokazali v nadaljevanju, pa je z nekoliko predelano aplikacijo v neustrezno zaščitenih omrežjih mogoče izvesti krajo mobilne identitete v GSM omrežjih.
Zagon in uporaba aplikacije mobile
Izvorna koda aplikacije mobile je dostopna v sylvain/testing veji OsmocomBB Git repozitorija. Ker smo hoteli preizkusiti, če lahko ponarejamo klicno identiteto, smo aplikacijo nekoliko predelali in dodali funkcijo “SIM spoofing”. Pomembno je poudariti, da je pri prevajanju originalne izvorne kode v konfiguracijski datoteki potrebno ročno vključiti TX podporo, torej podporo oddajanju signalov mobilnega telefona.
Aplikacijo najprej prevedemo iz naše “identity” veje Git skladišča. Nato s pomočjo ROM nalagalnika na mobilni telefon naložimo OsmocomBB strojno programsko opremo. Nato v drugi konzoli zaženemo aplikacijo mobile.

Zagon aplikacije mobile v terminalu.
Nato pa se (v tretji konzoli) s telnetom povežemo neposredno v aplikacijo.
Aplikacija omogoča upravljanje telefona s pomočjo ukazov, ki jih tipkamo. Za začetek pa moramo vstopiti v aktiven način, in sicer z vnosom ukaza “enable”. Nato vnašamo ukaze.
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Welcome to the OpenBSC Control interface
OsmocomBB> enable OsmocomBB# sim pin % (MS )
% Trying to registering with network... % (MS )
% On Network, normal service: Slovenia, Si.mobil
Pošiljanje SMS sporočila (mogoče je seveda tudi klicanje):
OsmocomBB# sms 041xxxxxx Test

OsmocomBB# show subscriber
Mobile Subscriber of MS '':
IMSI: ***********
ICCID: *************
SMS Service Center Address: +
Status: U1_UPDATED IMSI attached TMSI 0x65******
LAI: MCC MNC LAC 0x0079 (Slovenia, Si.mobil)
Key: sequence ** c5 ** ** ** ** 4c **
Registered PLMN: MCC MNC (Slovenia, Si.mobil)
Access barred cells: no
Access classes: C6
List of preferred PLMNs:
<p>…</p>

Prikaz podatkov o telefonu in bazni postaji na katero smo povezani:
OsmocomBB# show ms
MS '' is up, service is normal
IMEI: ************
IMEISV: *************
IMEI generation: fixed
automatic network selection state: A2 on PLMN
MCC= MNC= (Slovenia, Si.mobil)
cell selection state: C3 camped normally
ARFCN= MCC= MNC= LAC=0x0079 CELLID=0x01d8
(Slovenia, Si.mobil)
radio ressource layer state: idle
mobility management layer state: MM idle, normal service
Skratka, z aplikacijo mobile lahko pošiljamo SMS sporočila, kličemo, sprejemamo klice in SMS sporočila, si ogledamo podrobnosti o bazni postaji na katero smo povezani ter o svoji GSM seji,...

Odgovor Si.Mobila
Si.mobil je edini operater v Sloveniji, ki v celotnem 2G omrežju uporablja varnostni algoritem A5/3. A5/3 je trenutno algoritem najvišje varnostne stopnje, ki je na voljo, v pripravi pa je že tudi A5/4. Vse nadgradnje in izboljšave algoritmov skrbno spremljamo. Opozoriti velja, da se v omrežju tretje generacije (3G) uporabljajo naprednejši in varnejši načini kodiranja, kar pomeni, da so klici v 3G omrežju bolj varni. Si.mobil uporabnikom največjega in najhitrejšega 3G omrežja tako zagotavlja najvišjo možno varnost in priporoča, da storitve uporabljajo v 3G omrežju.
Ko govorimo o nešifriranem prenosu preko radijskega vmesnika z uporabo A5/0 algoritma v Si.mobilovem omrežju, se je ta uporabljal samo pod pogojem, da telefonski aparat ni podpiral algoritmov A5/1 in/ali A5/3. V takšnih primerih je šlo za zelo stare telefonske aparate, kjer je bila možna vzpostavitev prenosa zgolj preko A5/0 algoritma.
Si.mobil neprestano sledi napredku tehnologije in posveča veliko pozornosti tudi varnostnim aspektom, konec leta 2011 smo uvedli A5/3 za celotno 2G omrežje, v juniju 2012 [beri: 13.6.2012 op.avtor] pa smo izklopili možnost uporabe nešifriranega algoritma A5/0. Pozdravljamo pa tudi interes javnosti in medijsko poročanje ter strokovno podprte prispevke, kot ga je pripravil portal SloTech, ki opozarja na morebitne pasti. Tudi zaradi tega smo algoritem A5/0 ukinili
Si.Mobil je tako odpravil najbolj vnebovpijočo varnostno pomanjkljivost svojega omrežja in posredno priznal, da so v intervjuju za Monitor novembra 2011 skoparili z resnico (takrat so namreč kategorično zanikali možnost uporabe omrežja brez šifriranja -- A5/0 pri nas ni uporabljan, absolutno ne).
Kljub temu za zaradi popolnosti informacij za začetek poglejmo, kaj je ta (sicer odpravljena) pomanjkljivost omogočala.
Ponarejanje mobilne identitete v GSM omrežju
Osnovna ideja za izvedbo ponarejanja oz. kraje identitete uporabnika v mobilnem omrežju je, da s pomočjo prestrezanja komunikacij drugega uporabnika v GSM omrežju pridobimo vse potrebne podatke, ki tega uporabnika v mobilnem omrežju identificirajo, nato pa prevzamemo njegovo mobilno identiteto, kar nam omogoča, da v njegovem imenu izvajamo klice, pošiljamo SMS sporočila ali izvajamo kakšne druge storitve, npr. mobilno plačevanje.
Za takšno početje v osnovi potrebujemo šifrirni ključ Kc (le v primeru, ko omrežje od nas zahteva vklopljeno šifriranje), TMSI in IMSI številko (razen v primeru Si.Mobila na A5/0) ter sekvenčno številko ključa (ang. key sequence number).
Za potrebe ponarejanja identitete uporabnika smo aplikacijo mobile nekoliko predelali in sicer tako, da smo vključili ukaz sim spoof, ki mu za parametre podamo IMSI številko, TMSI številko, Kc in sekvenčno številko ključa. Ta metoda temelji na bistveno drugačnem principu delovanja od tiste opisane v našem prvem letošnjem članku. Za delovanje zahteva, da se priklopimo na isto bazno postajo kot mobilni telefon osebe, katere mobilno identiteto želimo prevzeti (kar v mestih zahteva relativno fizično bližino).
Za izvedbo prevzemanja identitete je potrebno pridobiti IMSI in TMSI številki uporabnika kateremu želimo ponarediti identiteto, a kot smo pokazali že prej, je to zelo enostavno.
Naslednji video prikazuje postopek prevzema identitete uporabnika Si.Mobila (zaradi spremembe omrežja postopek ne deluje več):
Kot je razvidno iz posnetka, je bil vložek časa in truda blizu nič.
Preskusili smo tudi sprejemanje klica ali SMS sporočila in izkaže se, da v tem primeru zahtevo za dodelitev kanala s strani omrežja sicer odzoveta oba mobilna telefona, klic ali SMS sporočilo pa prejme le eden (hitrejši od njiju). Če bi takoj po prevzemu mobilne identitete drugega uporabnika le-tega s pomočjo motilca GSM signala začasno odklopili iz omrežja, bi v vmesnem času lahko celo sprejeli klice namenjene njemu.
Mobitelov odgovor (drugič)
Kot smo navedli že v prvem članku, je Telekom Slovenije sporočil, da v vsej svoji zgodovini niso zabeleželi nobenega primera zlorabe identitete uporabnika.
Naknadno so za STA povedali tudi, da so zlorabe identitete uporabnika v njihovem omrežju preprečene z vrsto standardnih in nadstandardnih varnostnih mehanizmov. Opozarjajo pa, da ne morejo preprečiti, da bi bila identiteta uporabnikov, ki kličejo ali pošiljajo sporočila SMS njihovim uporabnikom iz ostalih domačih ali mednarodnih omrežij, potencialno zlorabljena (callerID spoofing kot predstavljeno v prvem letošnjem članku).
Te nadstandardne ukrepe (ki iz razumljivih razlogov seveda ne bodo razkriti) smo si pobližje pogledali.
Ponarejanje mobilne identitete v GSM omrežju A5/1
Če ste pozorno prebrali odstavek o ponarejanju mobilne identitete v GSM omrežju na primeru nekodiranega omrežja Si.Mobila ste opazili, da je edina resna razlika do kodiranega omrežja prisotnost uporabe šifrirnega ključa (Kc) ter v primeru Mobitela dodatno preverjanje IMSI številke (kako do nje z HLR vpogledom smo pojasnili v prejšnjem članku). Prav tako potrebujemo sekvenčno številko ključa.
Pridobitev šifrirnega ključa je najtežji del naloge, a kot smo pokazali je to v omrežjih, ki uporabljajo neustrezno kriptografsko zaščito mogoče s pomočjo ustrezne kriptoanalize v nekaj minutah (del II). Predpostaviti moramo tudi to, da mora biti napadani mobilni telefon približno pri miru in v območju kjer ne skače med več baznimi postajami (ARFCN-ji), kar včasih ni tako samoumevno (drugače potrebujemo precej več opreme, da mu sledimo med različnimi baznimi postajami). To lahko preverimo tudi tako da gledamo, če je naša aplikacija mobile vedno povezana na en ARFCN. S temu zagotovimo da se šifrirni ključ ne menja. šifrirni ključ Kc je tako veljaven za čas trajanja seje (torej med dvema lokacijskima posodobitvama), enako velja za številko TMSI. V praksi to pomeni, da ko s kriptoanalizo uspemo razbiti sejo, lahko do naslednje lokacijske posodobitve vidimo vsebino prometa ciljnega mobilnega telefona, hkrati pa lahko v GSM omrežju prevzamemo njegovo identiteto, torej v njegovem imenu opravljamo klice, pošiljamo SMS sporočila, itd.. Pri tem posebej poudarjamo, da za krajo mobilne identitete v tem primeru ne potrebujemo ne telefona, ne SIM kartice ciljnega uporabnika, dovolj je le, da se nahajamo na območju iste bazne postaje kot on.
Pri pridobiti šifrirnega ključa si pomagamo s tem, da počakamo, da uporabnik mobilnega telefona, katerega identiteto želimo prevzeti pošlje SMS sporočilo, ali pa mu SMS sporočilo pošljemo mi. Lahko mu pošljemo tudi skrito (oz. tiho) SMS sporočilo, kar smo že opisali v prejšnjih poglavjih.
Naj še dodamo, da je ta postopek v praksi precej težko izvajati na področju, kjer se nahaja več baznih postaj, oziroma ima več baznih postaj približno enake moči signalov (problem je tudi prisotnost velikega števila odbojev). Mobilni telefon v tem primeru stalno skače med med različnimi baznimi postajami (oz. ARFCN-ji) in je njegovo sledenje z enim samim OsmocomBB telefonom zelo oteženo. Poleg tega je uspešnost izvedbe postopka odvisna od uspešnosti (razbitje šifrirnega ključa z javno dostopnimi mavričnimi tabelami v nekaj odstotkih primerov ni mogoče) in tudi hitrosti razbijanja šifrirnega ključa.

Ko enkrat pridobimo šifrirni ključ, je postopek identičen tistemu, ki smo ga pokazali na primeru nekodiranega Si.Mobil omrežja in si ga lahko pogledate v naslednjem videoposnetku:
Ampak Mobitel ni edini operater z A5/1
Seveda. Ampak, če postopek deluje na njihovih posebnih metodah varovanja omrežja vam prepuščamo razmislek o njegovem delovanju na ostalih slovenskih operaterjih.
Na nekaj naključnih lokacijah v času objave tega članka na omrežjih Tušmobila in Mobitela nismo zaznavali možnosti komuniciranja s pomočjo algoritma A5/3. V primeru Si.Mobila je bilo razmerje približno 35% uporabnikov preko A5/1 in preostanek na A5/3. Komunikacija uporabnikov, katerih terminalska oprema ne podpira vzpostavljanja komunikacije s pomočjo šifrirnega algoritma A5/3 je tudi na Si.Mobilovem omrežju ranljiva enako kot pri ostalih dveh operaterjih, ki smo si jih ogledali.
Namesto zaključka
Za razliko od računalniške tehnologije, je bila telefonija v preteklosti zaradi svoje zaprtosti redko tarča varnostnih pregledov ali obsežnejših zlorab. Kar pa seveda ne pomeni, da ta tehnologija ni ranljiva.
Po našem mnenju velja prav nasprotno - posledica dejstva, da so računalniki na udaru varnostnih raziskovalcev in hekerjev že dolgo časa, je precejšnje izboljšanje njihove varnosti v zadnjih letih. Pri telefoniji pa zaradi njene zaprtosti motivov za vlaganje v varnost ni bilo tolikšno.
Telefonija je bila v preteklosti zaprta iz več razlogov - pomemben del zaprtosti je tvorila lastniška programska oprema in kompleksnost protokolov, poleg tega telefonska tehnologija zahteva specifično strojno opremo, ki je bila v preteklosti razmeroma draga ali celo nedostopna individualnim raziskovalcem.
Vendar pa je projekt OsmocomBB to radikalno spremenil. Osnovna strojna oprema potrebna za raziskovanje GSM tehnologije je danes izjemno poceni, prav tako je z dodatki v Wiresharku bistveno olajšana analiza GSM protokola.
Kot smo prikazali v članku, varnostna analiza kaže na po našem mnenju zaskrbljujoče varnostne pomanjkljivosti pri slovenskih mobilnih operaterjih. Z izrabo odkritih ranljivosti bi napadalec lahko nepooblaščeno, predvsem pa nezaznavno prestrezal vsebino SMS sporočil in pogovorov, izvajal sledenje uporabnikom ali s pomočjo kraje identitete mobilnega uporabnika le-temu povzročal neupravičene stroške ali ga spravil v kazenski pregon. Če je bila oprema za kaj takega v preteklosti dostopna samo obveščevalno-varnostnim službam in kriminalnim organizacijam z velikimi finančnimi sredstvi, pa je - kot smo pokazali - tehnologija, ki omogoča izrabo varnostnih ranljivosti danes na voljo praktično vsakomur.
Varnostna analiza po našem mnenju v določenem delu kaže na malomarnost nekaterih operaterjev in njihovo pomanjkljivo znanje oz. nerazumevanje varnostnih problemov v GSM mobilni telefoniji, v določenem delu pa nepripravljenost vlagati v večjo stopnjo varnosti. Posledica je po našem mnenju zaskrbljujoče nizka stopnja varnosti, ki omogoča razmeroma enostavno nezaznavno prestrezanje komunikacij v mobilnih omrežjih in ponarejanje mobilne identitete uporabnika, kar ima resne posledice tako za varnost, kot tudi za zasebnost slovenskih uporabnikov mobilne telefonije.
Glede na to, da so ustrezne rešitve, katerih implementacija bi izboljšala varnost GSM telefonije, na voljo že dlje časa, upamo, da bodo mobilni operaterji svoja omrežja ustrezno varnostno nadgradili.
O posledicah, ki jih tovrstni izzivi prinašajo za ureditev obvezne hrambe prometnih podatkov ter o njihovi dokazni vrednosti pa kdaj drugič.
相关文章:
Varnost slovenskih GSM omrežij
Varnost slovenskih GSM omrežij II
Varnost slovenskih GSM omrežij III
Varnost slovenskih GSM omrežij IV
Varnost slovenskih GSM omrežij III的更多相关文章
- 复旦高等代数 II(15级)思考题
1.设 $f(x)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$ 是整系数首一多项式, 满足: $|a_0|$ 是素数且 $$|a_0|>1+\sum_{i=1}^{n ...
- 复旦高等代数 II(15级)每周一题
[问题2016S01] 设 $f(x)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$ 是整系数首一多项式, 满足: $|a_0|$ 是素数且 $$|a_0|>1+\s ...
- hdu 1028 Ignatius and the Princess III 简单dp
题目链接:hdu 1028 Ignatius and the Princess III 题意:对于给定的n,问有多少种组成方式 思路:dp[i][j],i表示要求的数,j表示组成i的最大值,最后答案是 ...
- [Locked] Strobogrammatic Number & Strobogrammatic Number II & Strobogrammatic Number III
Strobogrammatic Number A strobogrammatic number is a number that looks the same when rotated 180 deg ...
- 最大子数组(I, II, III,IV,V)和最大子数组乘积 (动态规划)
I 找一个连续最大子数组,sum加到nums[i], 如果前面子数组和<0则舍去,从头开始. class Solution { public: /** * @param nums: A list ...
- 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI
汉诺塔 汉诺塔II hdu1207: 先说汉若塔I(经典汉若塔问题),有三塔.A塔从小到大从上至下放有N个盘子.如今要搬到目标C上. 规则小的必需放在大的上面,每次搬一个.求最小步数. 这个问题简单, ...
- 【模板时间】◆模板·III◆ 单调子序列
◆模板·III◆ 单调子序列 以前只知道DP用 O(n2) 的做法,现在才发现求单调子序列方法好多…… ◇ 模板简述 单调子序列包括 升序/降序/非升序/非降序 子序列.主要题型如下: ①在原串中找到 ...
- HDU 1028 Ignatius and the Princess III (母函数或者dp,找规律,)
Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- Lightoj 1017 - Brush (III)
1017 - Brush (III) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Sam ...
随机推荐
- python 练习 25
Python 语言允许在一个循环体里面嵌入另一个循环. Python for 循环嵌套语法: for iterating_var in sequence: for iterating_var in s ...
- CentOS6安装python2.7
第一次用centOS,感觉好高大上,安装了差不多一个半小时,学习了挺多命令的 1. 检查centOS中默认的python版本,一般是python2.6. 命令:python –v 2. 安装GCC ...
- Merkle Tree学习
/*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是 ...
- BluetoothGatt API
punlic final class BluetoothGatt继承自Object , 实现了BluetoothProfile接口/** 相关的蓝牙协议可http://www.cnki.net/KCM ...
- hdu---(1421)搬寝室(dp)
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- collectionView初始化
collectionView初始化时一定要加layout.不然会报错: UICollectionView must be initialized with a non-nil layout param ...
- mvc伪静态<三> IIS配置
上一篇已经已经讲述了mvc伪静态的代码实现. 下面以IIS 7.5为例演示一下IIS如何配置才能在服务器显示.html的伪静态 一.进入IIS,选择处理程序映射 二添加脚本映射 三根据你的处理程序的版 ...
- c++实现之 -- 文章TF-IDF值的计算
首先,是关键词的选取: 好吧这个我这模型实在是太简单了,但还是讲一讲比较好呢... 我们现在手头有的是一堆百度百科词条w的DF(w, c)值,c是整个百科词条...原因是...方便嘛~(而且人家现成的 ...
- BZOJ1937 [Shoi2004]Mst 最小生成树
首先由贪心的想法知道,树边只减不加,非树边只加不减,令$w_i$表示i号边原来的边权,$d_i$表示i号边的改变量 对于一条非树边$j$连接着两个点$x$.$y$,则对于$xy$这条路径上的所有树边$ ...
- xampp搭建服务器环境、html5新的input类型
怎么让别人看见你写的 先把你的文档放入htdocs里面 再输入网址: http://你的IP地址/文件名 就ok了例如我的 HTML5中的input类型: <input>标签规定用户可输入 ...