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 

Prikaz uporabniških podatkov:
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>&hellip;</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的更多相关文章

  1. 复旦高等代数 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 ...

  2. 复旦高等代数 II(15级)每周一题

    [问题2016S01]  设 $f(x)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$ 是整系数首一多项式, 满足: $|a_0|$ 是素数且 $$|a_0|>1+\s ...

  3. hdu 1028 Ignatius and the Princess III 简单dp

    题目链接:hdu 1028 Ignatius and the Princess III 题意:对于给定的n,问有多少种组成方式 思路:dp[i][j],i表示要求的数,j表示组成i的最大值,最后答案是 ...

  4. [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 ...

  5. 最大子数组(I, II, III,IV,V)和最大子数组乘积 (动态规划)

    I 找一个连续最大子数组,sum加到nums[i], 如果前面子数组和<0则舍去,从头开始. class Solution { public: /** * @param nums: A list ...

  6. 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI

    汉诺塔 汉诺塔II hdu1207: 先说汉若塔I(经典汉若塔问题),有三塔.A塔从小到大从上至下放有N个盘子.如今要搬到目标C上. 规则小的必需放在大的上面,每次搬一个.求最小步数. 这个问题简单, ...

  7. 【模板时间】◆模板·III◆ 单调子序列

    ◆模板·III◆ 单调子序列 以前只知道DP用 O(n2) 的做法,现在才发现求单调子序列方法好多…… ◇ 模板简述 单调子序列包括 升序/降序/非升序/非降序 子序列.主要题型如下: ①在原串中找到 ...

  8. 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 ...

  9. Lightoj 1017 - Brush (III)

    1017 - Brush (III)    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Sam ...

随机推荐

  1. jq实现 禁止对密码框中的内容进行复制、剪切和粘贴操作

    $(function () { $("input:password").on("copy cut paste", function (e) { return f ...

  2. 5.6 WebDriver API实例讲解(16-30)

    16.操作单选框 被测试的网页为Demo1. Java语言版本的API实例代码: public static void operateRadio(){ driver.get("file:// ...

  3. Unique Paths [LeetCode]

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  4. 解析 MACH_O 文件

    现在做iOS开发的挺多,了解一下在苹果平台上程序运行的原理 解析 MACH_O 文件 这篇文章描述了如何解析 Mach-O 文件并稍微解释了一下它的格式.这不是一份权威指南,不过当你不知从何开始时,它 ...

  5. jQuery Easing动画效果扩展(转)

    jQuery API提供了简单的动画效果如淡入淡出以及自定义动画效果,而今天我给大家分享的是一款jQuery动画效果扩展增强插件jquery.easing.js,使用该插件可以实现直线匀速运功.变加速 ...

  6. iBatisSQL中prepend的问题

    是前向声明还是后向声明? 官方文档那个给出:“the overridable SQL part that will be prepended to the statement”.可见是前向声明. -- ...

  7. qml json 解析到 ListView

    https://github.com/kromain/qml-utils/tree/master/JSONListModel 非常棒!! 实现的原理如下文: http://goessner.net/a ...

  8. 在ASP.NET MVC中使用CKEditor和CkFinder

    在你需要使用editor控件的页面头部添加: <head> ... <script type="text/javascript" src="/ckedi ...

  9. MySQL事务隔离级别详解

    原文地址:http://xm-king.iteye.com/blog/770721 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级 ...

  10. @property和@synthesize的特性

    基础回顾:get方法和set方法 定义类成员变量时,可以在@interface中定义,也可以在@implementation中定义: 在@interface中声明,成员变量的状态是受保护的,即“@pr ...