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 ...
随机推荐
- HTML5自学笔记[ 7 ]defer和async
defer:给位于最前面的script标签设置defer="defer",外联js就会在onload触发之前才加载. async:给script标签设置async="as ...
- 50 个最棒的 jQuery 日历插件,很齐全了!(转)
http://www.php100.com/html/it/qianduan/2015/0326/8856.html 什么介绍都没有,直接上酸菜! 1. Even Touch Calendar 2. ...
- 【转载】SAP的标准对话框函数
http://blog.sina.com.cn/s/blog_721b218c01012j0y.html 在用户设计sap的程序时,经常需要一些对话框,用户可以自己编写,但使用SAP系统中提供了的对话 ...
- Javascript之高效编程
前言: Javascript绝对是最火的编程语言之一,一直具有很大的用户群,具有广泛的应用前景.而在前端开发中,它也是三驾马车之一,并且是最重要的一环.要想给用户提供更流畅的操作体验,更友好的交互,对 ...
- jQuery_pager.js分页
在做前端项目中,总是需要自己手写类似于这样的分页效果: 这就需要使用jQuery.pager.js文件,其使用方法为:在html中引入三个文件,分别为: <link rel="styl ...
- C++构造函数和析构函数调用虚函数时都不会使用动态联编
先看一个例子: #include <iostream> using namespace std; class A{ public: A() { show(); } virtual void ...
- Jquery 表格操作,记录分页情况下,每一页中被用户勾选的信息
如下图,一个分页列表,用户可以随意勾选一条或多条信息,然后进行某种操作,如“提交”.但是有个问题:如果勾选了一条信息之后,点[下一页],那么上一页 勾选的条目被刷新掉了. 问题:如果用户需要在第1页, ...
- oracle数据泵备份(Expdp命令)[转]
Oracle备份方式主要分为数据泵导出备份.热备份与冷备份三种,今天首先来实践一下数据泵备份与还原.数据泵导出/导入属于逻辑备份,热备份与冷备份都属于物理备份.oracle10g开始推出了数据泵( ...
- Spring对事务的处理
1.加入spring-jdbc.jar包 2.配置数据源 3.配置spring事务管理器,spring的事务出现在业务层. <bean id="dataSource" cla ...
- 基于TCP的通信 客户端
#include <WINSOCK2.H> #include <stdio.h> // socket 套接字 #pragma comment (lib,"Ws2_32 ...