SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
MASARYKOVA UNIVERZITA
FAKULTA INFORMATIKY
}w¡¢£¤¥¦§¨!#$%123456789@ACDEFGHIPQRS`ye|
Forenzná analýza SIM kariet
BAKALÁRSKA PRÁCA
Andrej Šimko
Brno, jar 2012
Prehlásenie
Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som
vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní po-
užíval alebo z nich ˇcerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný
zdroj.
Vedúci práce: Ing. Mgr. Zdenˇek ˇRíha, Ph.D.
ii
Zhrnutie
Ciel’om tejto práce je vytvorit’ softwarový nástroj s GUI, ktorý bude pomocou terminálu
podporujúceho PC/SC rozhranie schopný ˇcítat’ a interpretovat’ do l’udsky ˇcitatel’nej podo-
by niektoré dôležité údaje zo SIM karty – najprv bez nutnosti zadania PIN kódu, a potom
(ak si to užívatel’ želá) aj s jeho zadaním.
V teoretickej ˇcasti je popísaná problematika súborov na SIM karte, princíp oprávnení a
komunikácia pomocou APDU príkazov.
iii
Kl’úˇcové slová
SIM karta, APDU, elementary file, forenzná analýza, ISO 7816-4
iv
Obsah
1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Štruktúra práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Smart karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 História . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Výhody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Bezkontaktné ˇcipové karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Kontaktné ˇcipové karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Špecifiká SIM kariet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Komunikácia s kartou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 C-APDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 R-APDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2.1 Chybové kódy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Niektoré APDU príkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.1 GET RESPONSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.2 READ BINARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3.3 READ RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Bezpeˇcnostné prvky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1 Prístupové kódy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.1 CHV (PIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.1.1 CHV1 (PIN1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.1.2 CHV2 (PIN2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.1.3 BPIN (MPIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.2 PUK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Ochrana prístupových kódov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Prístup k súborom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Štruktúra a obsah pamätí na SIM karte . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.1 Hierarchia súborového systému na SIM karte . . . . . . . . . . . . . . . . . . . 15
5.2 Dôležité EF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2.1 ADN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2.2 HPLMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2.3 ICCID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2.4 IMSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.5 Kc, KcGPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.6 Ki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.7 LND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.8 LOCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.8.1 LAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.9 LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.10 MSISDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2.11 PHASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
v
5.2.12 SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2.13 SPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2.14 SST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 Prehl’ad aplikácií na prácu so SIM kartami . . . . . . . . . . . . . . . . . . . . . . . 22
6.1 Dekart: SIM Manager 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2 SimCardExplorer 1.1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3 Classicalsoft: WinSIM Professional 1.0 . . . . . . . . . . . . . . . . . . . . . . . 24
6.4 Woron Scan 1.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.5 Compelson: MOBILedit! Forensic 6.1.0.1634 . . . . . . . . . . . . . . . . . . . . 25
7 Praktická ˇcast’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.1 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.1.1 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1.2 Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1.3 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1.4 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.2 Vypisované údaje bez znalosti PIN kódu . . . . . . . . . . . . . . . . . . . . . . 29
7.3 Vypisované údaje po autentizovaní PIN kódom . . . . . . . . . . . . . . . . . 30
7.4 Vnútorná štruktúra programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.4.1 CardManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.4.2 ApduWorker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.4.3 Getters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.4.4 WriteIntoSystemOut . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.5 Komplikácie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.5.1 Dekódovanie SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.5.2 Dekódovanie názvu kontaktu v ADN . . . . . . . . . . . . . . . . . . . 31
7.5.3 Interpretácia ICCID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7.5.4 Menšie komplikácie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.6 ˇDalší vývoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8 Záver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
A Zoznam elektronických príloh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Slovník . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
vi
Kapitola 1
Úvod
Subscriber Identity Module (SIM) je kontaktný typ ˇcipovej karty, ktorý slúži na identifikáciu,
autentizáciu a autorizáciu úˇcastníka v mobilnej sieti. K tomu je potrebná logická a fyzická
adresa zariadenia (podobne ako IP a MAC). V prípade telefónnej siete je fyzickou adresou
unikátne IMSI ˇcíslo napevno naprogramované v ˇcase výroby a logickou adresou je tele-
fónne ˇcíslo asociované so SIM kartou. ˇDalej SIM karta zabezpeˇcuje integritu (užívatel’ nie
je schopný zmenit’ dáta na karte), nepopieratel’nost’ (odosielatel’ môže zistit’, ˇci príjemca
správu prijal), dôveryhodnost’ (dáta prenášané vzduchom sú z dôvodu súkromia užívatel’a
šifrované) a ochranu identity.
SIM karty sú dnes používané na každom kroku – najˇcastejšie v mobilných telefónoch
alebo pri pripojení na mobilný internet pomocou poˇcítaˇcov a iných zariadení. Ako si mnohí
l’udia uvedomujú, SIM karta obsahuje aj citlivé údaje o úˇcastníkovi – napríklad volané ˇcísla,
adresár kontaktov, poslednú známu lokáciu alebo SMS správy.
Na forenzné úˇcely sa údaje zo SIM karty dnes používajú bežne. Známy je napríklad prí-
pad z roku 2005, kedy sa po neúspešných samovražedných bombových útokoch v Londýne
podarilo talianskej polícii vypátrat’ a zatknút’ podozrivého vd’aka IMEI a IMSI kódom po-
sielaným mobilným telefónom [1].
Ciel’om tejto práce je vyvinút’ nástroj, ktorý vypíše dostupné údaje zistené z danej SIM
karty.
1.1 Štruktúra práce
V úvodnej kapitole 2. Smart karty sa nachádza struˇcný úvod do problematiky ˇcipových
kariet, história, výhody spojené s ich používaním a špecifiká samotých SIM kariet.
ˇCast’ 3. Komunikácia s kartou naˇcrtáva komunikáciu pomocou APDU príkazov, ktoré
podrobne popisuje, spolu s detailným pohl’adom na niektoré vybrané dôležité APDU prí-
kazy, definované v štandarde ISO 7816-4 [11]. Sú tu taktiež príklady samotnej komunikácie
ako zo strany terminálu, tak zo strany karty.
4. Bezpeˇcnostné prvky popisuje rôzne prístupové kódy využívané v SIM kartách, ria-
denie prístupu k samotným EF súborom na karte, ako aj komplexný pohl’ad na samotnú
bezpeˇcnost’.
V kapitole 5. Štruktúra a obsah pamätí na SIM karte sú rozpísané typy pamätí, použitý
súborový systém a jeho špecifiká a druhy súborov, ktoré existujú na SIM karte. Rozoberajú
sa tu informácie o EF súboroch, ktoré sú nositel’mi samotných dát – SMS, telefónneho zozna-
1
1.1. ŠTRUKTÚRA PRÁCE
mu, poslednej známej lokácie, jazykových preferencií, unikátnych kódov a iných údajov. Pri
špeciálnych ˇcíslach, ako napríklad ICCID, je uvedená interpretácia významu ich samotných
ˇcíslic.
V ˇcasti 6. Prehl’ad aplikácií na prácu so SIM kartami sú popísané tie programy, ktoré sú
dostupné aspoˇn v skúšobnej verzii. Uvedené sú klady a zápory, unikátnosti funkcionality,
obrázky samotných GUI rozhraní a v prípade platenej licencie cena.
Posledná kapitola 7. Praktická ˇcast’ popisuje mnou vytvorený nástroj, ktorý som nazval
Simple SIM Reader – jeho užívatel’ské rozhranie, funkcionalitu, schopnosti, vnútornú štruk-
túru a niektoré implementaˇcné detaily a myšlienky na budúci vývoj.
2
Kapitola 2
Smart karty
Smart karta, ˇcipová karta, alebo ICC (Integrated Circuit Card) je typicky plastová karta, kto-
rá v sebe ukrýva ˇcip s elektronikou – pamät’ou a ˇcasto aj s mikroprocesorom. Na komuniká-
ciu je potrebné špeciálne zariadenie – ˇcítaˇcka (terminál), ktorá slúži ako medzivrstva medzi
kartou a d’alším systémom, napríklad bankomatom, mobilným telefónom alebo poˇcítaˇcom.
Výroba týchto kariet každoroˇcne stúpa vd’aka ich všestrannému využitiu v bankovníctve,
telekomunikáciách, zdravotníctve, doprave alebo zábave. Postupne sa tak vytláˇcajú staršie
technológie založené na strojovom ˇcítaní – napríklad magnetické pásky alebo ˇciarové kódy.
Karty môžeme delit’ napríklad podl’a komunikaˇcného média na kontaktné a bezkontaktné.
2.1 História
Zaˇciatkom 50. rokov 19. storoˇcia bolo vd’aka nízkym cenám syntetických PVC materiálov
možné nahradit’ dovtedajšie papierové karty, ktoré boli náchylné na poškodenie, novými
plastovými kartami. Prvé celoplastové karty zaˇcala vydávat’ spoloˇcnost’ Diners Club. Boli
urˇcené iba pre vybranú skupinu l’udí a slúžili aj ako ukazovatel’ vyššieho sociálneho statusu.
Nástup spoloˇcností Visa a MasterCard na trh viedol k masovému rozšíreniu plastových
kariet slúžiacich na platenie. Základné údaje, ako napríklad meno vydavatel’a, boli vytlaˇce-
né na karte v normálnej podobe, zatial’ ˇco údaje o vlastníkovi karty a samotné ˇcíslo karty
boli vytlaˇcené v embosovanej podobe. Úˇcel týchto kariet bol zo zaˇciatku jednoduchý – ukla-
danie dát chránené proti vytváraniu falzifikátov. Na to slúžil podpis vlastníka a vizuálne
elementy na karte.
Bezpeˇcnost’ týchto kariet však ˇcasom prestala postaˇcovat’ a preto nastúpili karty s mag-
netickým prúžkom, na ktorom boli uložené digitálne dáta v strojovo ˇcitatel’nej podobe.
Týmto sa zaˇcal prechod z papierových transakcií na elektronické spracovávanie dát. Aj na-
priek zvýšeniu bezpeˇcnosti, ktoré bolo aj vd’aka zavedeniu PIN kódu, boli však karty stále
málo bezpeˇcné. S dostupným zariadením sa totiž mohli všetky dáta na páske ˇcítat’, mazat’
alebo menit’.
S nástupom elektronických obvodov sa otvorili nové možnosti a zaˇciatkom 70. rokov
zaˇcali vznikat’ prvé ˇcipové karty. Aj ked’ patent na integrovaný obvod na identifikaˇcnej karte
bol vytvorený v Nemecku v roku 1968, pre vysokú cenu a nedokonalú výrobnú technológiu
sa ešte muselo poˇckat’ na ich uplatnenie v praxi.
V roku 1984 nastal prelom, ked’ sa francúzskej spoloˇcnosti pre telekomunikáciu úspešne
podarilo pretestovat’ telefónne karty. Pionierom technológie smart kariet teda neboli platob-
3
2.2. VÝHODY
né, ale telefónne karty. Koncom roku 1986 existovalo vo Francúzsku už niekol’ko miliónov
telefónov so smart kartami [18]. Tieto karty však stále slúžili na analógové telefonovanie a
využívali magnetický pásik.
Stále narastajúcim vývojom technológií boli implementované stále nové technológie aj
na smart karty – magnetické pásiky zaˇcali byt’ nahradzované kartami s ˇcipom, EPROM
pamäte boli nahradené EEPROM, vzrastal výpoˇctový výkon procesorov, ktoré mohli robit’
aj zložitejšie matematické a kryptografické operácie a rástlo aj samotné dátové úložisko.
2.2 Výhody
Medzi hlavné výhody patrí to, že ˇcipové karty sú l’ahko prenosné a dokážu sami vyko-
návat’ výpoˇcty. To znamená, že oproti starším technológiám, ako sú napríklad magnetické
pásky, ktoré slúžili iba na uchovávanie dát, nemusia ˇcipové karty bez patriˇcnej autentizácie
prezradit’ takmer žiadnu informáciu, ktorá je na nich uložená. Vd’aka tomu môžu podporo-
vat’ bezpeˇcné úložisko dát, identifikáciu alebo autentizáciu. Jediná ˇcipová karta môže byt’
naprogramovaná na mnohé úˇcely zároveˇn – otváranie dverí kancelárie, požiˇciavanie kníh
v knižnici, pracovanie s niekol’kými bankovými úˇctami. Alebo môže napríklad povol’ovat’
bezhotovostné platby iba ak je v blízkosti iného unikátneho zariadenia vopred spárovaného
s ˇcipovou kartou (napríklad mobilný telefón), ˇco znamená výrazné zvýšenie bezpeˇcnosti.
Možnost’ využívat’ ˇcipovú kartu na viaceré úˇcely zároveˇn zvyšuje pohodlnost’ pre užívate-
l’ov – v peˇnaženke môžu namiesto 5 rôznych kariet nosit’ jedinú. Táto karta môže teoreticky
obsahovat’ aj medicínske údaje nositel’a a v prípade núdze výrazne pomôct’ pri poskytovaní
prvej pomoci.
2.3 Bezkontaktné ˇcipové karty
Bezkontaktné ˇcipové karty využívajú RF indukciu, ktorá dovol’uje komunikáciu karty s ˇcí-
taˇckou v jej bezprostrednej blízkosti. Tie získavajú na popularite napríklad vd’aka elektro-
nickým pasom, alebo cestným platobným systémom.
2.4 Kontaktné ˇcipové karty
Kontaktné ˇcipové karty majú približne 1 cm2
vel’kú viditel’nú pozlátenú kontaktnú plochu,
ktorá vyžaduje, aby bola karta vložená do ˇcítaˇcky.
2.5 Špecifiká SIM kariet
SIM karta má v plnej vel’kosti rozmery 85,60 mm × 53,98 mm × 0,76 mm. Pozostáva z mikro-
procesora, ROM, RAM, EEPROM a sériového I/O rozhrania. Podporuje T=0 komunikaˇcný
protokol definovaný v ISO/IEC 7816-3. APDU príkazy podporované SIM kartami sú uve-
dené v tabul’ke 2.1
4
2.5. ŠPECIFIKÁ SIM KARIET
INS Názov
0E Erase Binary
20 Verify
70 Manage Channel
82 External Authenticate
84 Get Challenge
88 Internal Authenticate
A4 Select File
B0 Read Binary
B2 Read Record
C0 Get Respose
C2 Envelope
CA Get Data
D0 Write Binary
D2 Write Record
D6 Update Binary
DA Put Data
DC Update Record
E2 Append Record
Tabul’ka 2.1: Príkazy SIM kariet
5
Kapitola 3
Komunikácia s kartou
So SIM kartou sa komunikuje pomocou Application Protocol Data Unit (APDU) príkazov,
špecifikovaných v štandarde ISO 7816-4, ktorý je zdarma dostupný na adrese [11]. APDU je
medzinárodný štandard na aplikaˇcnej vrstve (7. v ISO-OSI modely). Zoznam APDU príka-
zov, definovaných aj v iných štandardoch, je možné nájst’ na adrese [19].
3.1 C-APDU
Command APDU slúži na zasielanie príkazov z ˇcítaˇcky do SIM karty. Skladá sa z hlaviˇcky,
ktorá je povinne prítomná a má pevne stanovenú d´lžku a z tela, ktoré má variabilnú d´lžku
alebo nemusí byt’ prítomné vôbec.
Povinná hlaviˇcka Volitel’né telo
CLA INS P1 P2 Lc DATA Le
Tabul’ka 3.1: C-APDU
Class of Instruction (CLA) indikuje typ príkazu. Ak je táto hodnota ’A0’, znamená to po-
užitie pre GSM; ’0X’ znamená ISO definované príkazy a ’8X’ indikuje kreditnú kartu kom-
patibilnú s EMV štandardom, alebo aplikaˇcne špecifické využitie. CLA sa tiež využíva na
indikovanie zabezpeˇcenej komunikácie alebo logických kanálov.
Instruction (INS) kóduje samotný príkaz. Využitý môže byt’ takmer celý adresný priestor
tohto bytu s výnimkou nepárnych kódov (kvôli využitiu T = 0 protokolu).
P1 a P2 sú parametre, ktoré udávajú dodatoˇcné informácie o príkaze definovanom v INS.
Length of command (Lc) indikuje d´lžku dát v zasielanom príkaze.
Length expected (Le) indikuje d´lžku oˇcakávanej odpovede. Ak je táto hodnota ’00’, ter-
minál oˇcakáva vrátenie správy s maximálnou možnou d´lžkou.
Vd’aka možnosti vynechat’ niektoré ˇcasti APDU môžu nastat’ 4 situácie zloženia C-
APDU:
hlaviˇcka
hlaviˇcka Le
hlaviˇcka Le DATA
hlaviˇcka Lc DATA Le
6
3.2. R-APDU
3.2 R-APDU
Response APDU slúži na zasielanie príkazov z karty terminálu ako odpoved’ na C-APDU.
Skladá sa z volitel’ného tela a povinného zakonˇcenia. D´lžka dátovej ˇcasti tela závisí na pred-
chádzajúcom APDU a jeho Le. Aj napriek pevne stanovenému Le však môže byt’ dátová
ˇcast’ prázdna (jej d´lžka sa rovná nule) v prípade, ked’ ˇcipová karta zahlási chybu. Chyby sú
kódované pomocou Status Word 1 a 2 (SW1 a SW2). Štruktúra R-APDU môže vyzerat’ takto:
SW1 SW2
DATA SW1 SW2
Volitel’né telo Povinné zakonˇcenie
DATA SW1 SW2
Tabul’ka 3.2: R-APDU
3.2.1 Chybové kódy
Prehl’ad chybových kódov môžeme nájst’ v knihe Smart Card Handbook [18], kapitole 16.10.8:
Smart card return codes. Chybové kódy môžeme rozdelit’ na 2 kategórie podl’a toho, ˇci
sa predošlý proces uskutoˇcnený pomocou C-APDU ukonˇcil úspešne alebo neúspešne. Pre
úspešné ukonˇcenie sa používa najmä ’9000’ (všetko prebehlo v poriadku) a ’9Fxx’, kde ’xx’
znaˇcí, kol’ko bytov dát sa dá získat’ príkazom GET RESPONSE.
SW1 || SW2 Význam
’6700’ zlá d´lžka
’6A00’ zlý P1 alebo P2 parameter
’9804’ verifikácia PINu neúspešná
Tabul’ka 3.3: Niektoré chybové kódy
7
3.3. NIEKTORÉ APDU PRÍKAZY
3.3 Niektoré APDU príkazy
3.3.1 GET RESPONSE
CLA INS P1 P2 Le
’A0’ ’C0’ ’00’ ’00’ d´lžka
Tabul’ka 3.4: príkaz GET RESPONSE
Použitie príkaz GET RESPONSE závisí na predošlom príkaze. Ak sa použije po príkaze
SELECT, GET RESPONSE vráti hlaviˇcku daného MF/DF/EF. Ked’že po získaní ATR je
implicitne vyselektovaný MF, je tento príkaz možné použit’ aj ihned’. V Le sa zadá d´lžka
súboru, ktorá bola vrátená v SW2 po príkaze SELECT.
Byte Popis D´lžka
3 – 4 Celková vel’kost’ pamäte vyselektovaného DF, ktorá nie je alokovaná
žiadnemu DF ani EF pod vyselektovaným DF.
2
5 – 6 FID 2
7 typ súboru:
• ’01’ = MF
• ’02’ = DF
• ’04’ = EF
1
15 Poˇcet DF, ktoré sú priamymi potomkami momentálne vyselektovaného
DF.
1
16 Poˇcet EF, ktoré sú priamymi potomkami momentálne vyselektovaného
DF.
1
19 CHV1 status (tabul’ka 3.6) 1
20 PUK1 status (tabul’ka 3.6) 1
21 CHV2 status (tabul’ka 3.6) 1
22 PUK2 status (tabul’ka 3.6) 1
Tabul’ka 3.5: niektoré dôležité dáta odpovede na príkaz GET RESPONSE po príkaze SE-
LECT na MF/DF
b8=0: kód neinicializovaný; b8=1: kód inicializovaný
b4 – b1: poˇcet zostávajúcich pokusov na zadanie zlého kódu (’0’ znamená zablokovaný)
8
3.3. NIEKTORÉ APDU PRÍKAZY
b8 b7 b6 b5 b4 b3 b2 b1
Tabul’ka 3.6: statusu kódov CHV1/2, PUK1/2
3.3.2 READ BINARY
Vd’aka predošlému príkazu GET RESPONSE vieme z jeho 3. – 4. bytu odpovede, akú d´lžku
transparentného súboru môžeme oˇcakávat’. R-APDU nám v dátovej ˇcasti vráti HEX repre-
zentáciu binárnych dát.
VERYFI PIN(0000) ’A0 20 00 01 08 30 30 30 30 FF FF FF FF’
’90 00’
SELECT DF GSM ’A0 A4 00 00 02 7F 20’
’9F 16’
SELECT EF IMSI ’A0 A4 00 00 02 6F 07’
’9F 0F’
GET RESPONSE EF IMSI ’A0 C0 00 00 0F’
’00 00 00 09 6F 07 04 00 1B 00 1B 01 02 00 00 90 00’
READ BINARY ’A0 B0 00 00 09’
’08 29 13 10 31 00 84 48 30 90 00’
Príklad 3.3.1: Komunikácia so SIM kartou pomocou READ BINARY
’08’ v príklade 3.3.1: Komunikácia so SIM kartou pomocou READ BINARY znamená,
že IMSI je kódované na 8 bytoch. Byty, ktoré nesú samotné IMSI, sú uložené v prehode-
nej podobe, takže výsledné IMSI je v tomto prípade 231011300488403. SW kód je ’9000’, ˇco
znamená, že je všetko v poriadku.
9
3.3. NIEKTORÉ APDU PRÍKAZY
Byte Popis D´lžka
3 – 4 vel’kost’ EF:
• pre transparentný EF: d´lžka tela EF
• pre cyklický alebo lineárne pevný EF: d´lžka záznamu vynáso-
bená poˇctom záznamov v EF
2
5 – 6 FID 2
7 typ súboru:
• ’01’ = MF
• ’02’ = DF
• ’04’ = EF
1
9 – 11 podmienky prístupu (tabul’ka 4.1) 3
14 štruktúra EF:
• ’00’ = transparentná
• ’01’ = lineárne pevná
• ’03’ = cyklická
1
15 d´lžka záznamu 1
Tabul’ka 3.7: dáta odpovede na príkaz GET RESPONSE po príkaze SELECT na EF
3.3.3 READ RECORD
Tento príkaz slúži na ˇcítanie cyklickych záznamov a položiek záznamov s lineárne pevnou
d´lžkou. Ak je P2 = ’04’, znamená to adresovanie absolútne pomocou P1. Ak chcem preˇcítat’
prvý záznam, bude P1 = ’01’.
Poˇcet bytov v príklade 3.3.2: Komunikácia so SIM kartou pomocou READ RECORD ob-
sahujúcich telefónne ˇcíslo, je uložený v 14. byte dátovej ˇcasti R-APDU od konca (’06’ v prí-
klade). Nasleduje typ telefónneho ˇcísla – ’81’ pre národné ˇcíslo a ’91’ pre medzinárodné
ˇcíslo. Nasleduje samotné telefónne ˇcíslo v prehodenom slovoslede, doplnené znakmi ’FF’ –
v tomto prípade 0517733733. Na znakoch pred tým je uložený názov v telefónnom adresári,
v tomto prípade „Taxi Presov;/W“ uložení v 7-bitovom kódovaní.
10
3.3. NIEKTORÉ APDU PRÍKAZY
CLA INS P1 P2 Le
’A0’ ’B0’ ’00’ ’00’ d´lžka
Tabul’ka 3.8: príkaz READ BINARY
CLA INS P1 P2 Le
’A0’ ’B2’ ’xx’ ’04’ d´lžka
Tabul’ka 3.9: príkaz READ RECORD
VERYFI PIN(0000) ’A0 20 00 01 08 30 30 30 30 FF FF FF FF’
’90 00’
SELECT DF TELECOM ’A0 A4 00 00 02 7F 10’
’9F 16’
SELECT EF ADN ’A0 A4 00 00 02 6F 3A’
’9F 0F’
GET RESPONSE EF ADN ’A0 C0 00 00 0F’
’00 00 1B 58 6F 3A 04 00 11 00 22 01 02 01 1C 90 00’
READ 1. RECORD ’A0 B2 01 04 1C’
’54 61 78 69 20 50 72 65 73 6F 76 3B 2F 57 06 81 50
71 37 73 33 FF FF FF FF FF FF FF 90 00’
Príklad 3.3.2: Komunikácia so SIM kartou pomocou READ RECORD
11
Kapitola 4
Bezpeˇcnostné prvky
4.1 Prístupové kódy
Bez prístupového kódu PIN/PUK sa z karty nedajú zistit’ takmer žiadne údaje vd’aka po-
užitým šifrovacím algoritmom. Z tohto dôvodu sa pri forenznej analýze na zariadeniach,
pri ktorých nie je dostupný ani PIN ani PUK kód, vyskúšajú 3 štatisticky najpoužívanejšie
PIN kódy. Po neúspechu je SIM karta zablokovaná a orgány ˇcinné v trestnom konaní musia
požiadat’ operátora o dodanie PUK kódu. Problémom sú karty zo zahraniˇcia, kde je získa-
nie PUK kódu zd´lhavé. Vd’aka ochranným prvkom nie je možné urobit’ kópiu SIM karty so
všetkými dátami ani pri znalosti prístupových kódov.
4.1.1 CHV (PIN)
Personal Identification Number (PIN) je zastaraný termín pre Card Holder Verification in-
formation (CHV). Oba pojmy oznaˇcujú 4 – 8-miestny kód slúžiaci na autentizáciu užívatel’a
voˇci SIM karte. CHV zaberá na karte 8 bytov, kde sú povolené len numerické znaky. Ak
si užívatel’ zvolí CHV1 kratší než 8 znakov, rozdiel sa doplní pomocou ret’azca ’FF’. Po-
skytovatel’ SIM karty nastaví PIN1/BPIN na predvolenú hodnotu (väˇcšinou 4-miestnu) a
užívatel’ovi je odporúˇcané si ju po prvom zapnutí zmenit’. Po zadaní 3 nesprávnych PIN
kódov sa mobil zablokuje a na jeho opätovné sfunkˇcnenie je potrebné zadat’ PUK kód.
4.1.1.1 CHV1 (PIN1)
PIN1 kód je nutný na zapnutie mobilnej stanice a normálne využívanie SIM karty mobil-
nou stanicou. Bez autentizácie týmto kódom sa nedajú využívat’ služby SIM karty okrem
núdzového volania.
4.1.1.2 CHV2 (PIN2)
CHV2 kód slúži na správu niektorých menších funkcionalít na karte a používa sa len na
ADF. Túto hodnotu pozná iba mobilný operátor, rovnako ako PUK2 kód. Blokáciou CHV2
kódu nedochádza k narušeniu bežnej funkcionality SIM karty.
12
4.2. OCHRANA PRÍSTUPOVÝCH KÓDOV
4.1.1.3 BPIN (MPIN)
Banking PIN (BPIN), alebo obˇcas nazývaný Mobile Banking PIN (MPIN) je kód distribu-
ovaný spolu s PIN1, PUK1 a BPUK kódmi (pod stieracími pol’ami) a SIM kartou. Tento
4-miestny kód slúži na prácu s GSM bankingom. Poskytuje vyššiu bezpeˇcnost’ pre služby
elektronického bankovníctva, ked’že je oddelený od CHV1 kódu. Blokáciou BPIN kódu ne-
dochádza k narušeniu bežnej funkcionality SIM karty.
4.1.2 PUK
PIN Unlock Key (PUK) je 8-miestny kód dodávaný poskytovatel’mi SIM kariet (PUK1 a
BPUK). Kódovanie PUK kódu je rovnaké ako kódovanie CHV kódu s rozdielom, že tento
ret’azec musí mat’ stále d´lžku práve 8 znakov. Ak sa PUK kód zadá 10-krát nesprávne, SIM
karta je natrvalo zablokovaná a je potrebné si zaobstarat’ novú. Pri trvalom zablokovaní SIM
karty neexistuje spôsob, akým by sa dali získat’ dáta na forenznú analýzu [14].
4.2 Ochrana prístupových kódov
Aj napriek tomu, že CHV1/2 sú uložené v EF súboroch, je zabezpeˇcenie EF so samotnými
prístupovými kódmi vysoké vd’aka dvom hl’adiskám:
• FID týchto EF nie sú verejne známe. Ked’že súbory sa dajú preˇcítat’, bolo by prav-
depodobne možné zistit’ nieˇco o danom EF súbore a analyzovat’ jeho obsah offline
[15].
• Poˇcítadlo zlých pokusov PINu je najprv znížené, až potom dôjde k samotnej verifi-
kácii PINu a v prípade správneho PINu je zvýšené. Toto hl’adisko je bezpeˇcné hlavne
voˇci odberovej analýze, kde ak by to bolo riešené iným spôsobom (najprv by prebeh-
la verifikácia a podl’a nej by sa poˇcítadlo znížilo/zvýšilo), bolo by možné prerušit’
napájanie, ak by bol PIN kód nesprávny, alebo naopak pokraˇcovat’ ako autentizova-
ný užívatel’ po úspešnej verifikácii.
4.3 Prístup k súborom
Každý súbor sa riadi špecifickými prístupovými pravidlami:
• ALW: akcia môže byt’ uskutoˇcnená stále (napríklad ˇcítanie LP)
• CHV1: akcia môže byt’ uskutoˇcnená iba ak bude splnená aspoˇn 1 z 3 podmienok:
– v priebehu momentálnej session bol poskytnutý správny CHV1
– CHV1 indikátor je nastavený na disable
– UNBLOCK CHV1 bol úspešne uskutoˇcnený v momentálnej session
13
4.3. PRÍSTUP K SÚBOROM
• CHV2: akcia môže byt’ uskutoˇcnená iba ak bude splnená aspoˇn 1 z 2 podmienok:
– v priebehu momentálnej session bol poskytnutý správny CHV1
– UNBLOCK CHV1 bol úspešne uskutoˇcnený v momentálnej session
• ADM: o tieto práva sa stará administratívna autorita
• NEV: akcia nemôže byt’ uskutoˇcnená nikdy cez SIM/ME (Mobile Equipment) roz-
hranie. SIM karta však môže uskutoˇcnit’ akciu vnútorne.
Úroveˇn prístupových pravidiel nie je hierarchická – napríklad ak zadám CHV2 kód, nemám
oprávnenie uskutoˇcˇnovat’ akcie s potrebným CHV1 oprávnením.
Ak zadám nejaký kód, mám oprávnenie robit’ akcie vyžadujúce tento kód až do konca
session.
Prístupové práva sa k danému EF zistia pomocou príkazu SELECT a jeho odpovede
v 9. – 11. byte. CHV1/2 status (enabled/disabled a poˇcet zostávajúcich pokusov) sa zistí
príkazom SELECT na akékol’vek DF alebo MF a jeho odpoved’ou na 19./20. byte.
Level Prístup
0 ALW
1 CHV1
2 CHV2
3 rezervované
4 – 14 ADM
15 NEV
Tabul’ka 4.1: Interpretácia bytu prístupových kódov
14
Kapitola 5
Štruktúra a obsah pamätí na SIM karte
• Read-Only Memory (ROM) je energeticky nezávislá pamät’ obsahujúca operaˇcný
systém karty a bezpeˇcnostné algoritmy.
• Random Access Memory (RAM) je energeticky závislá pamät’, v ktorej prebiehajú
výpoˇcty algoritmov a slúži aj ako vyrovnávacia pamät’.
• Electronicly-Erasable Programable Read-Only Memory (EEPROM) je energeticky ne-
závislý typ pamäte, v ktorom sú uložené úˇcastnícke dáta, napríklad ICCID, IMSI,
Ki...Ked’že má ale obmedzený poˇcet zápisov, je vyvinutá snaha zbytoˇcne neprepi-
sovat’ dáta, pokial’ to nie je nutné.
5.1 Hierarchia súborového systému na SIM karte
Súborový systém je uložený v pamäti EEPROM ako hierarchická stromová štruktúra. Každý
súbor je jednoznaˇcne identifikovatel’ný pomocou následnosti otvorených DF a identifikáto-
ru súboru (FID), ktorý má d´lžku 2 byty. Súbory teda nemajú klasický názov ako v bežnom
súborovom systéme na PC. Rozoznávame 3 druhy súborov:
• Master File (MF) je koreˇnovým (root) adresárom, ktorý môžeme prirovnat’ k linuxo-
vému „/“. Môže obsahovat’ 1 alebo viac DF/EF súborov. Adresa MF je ’3F00’.
• Dedicated File (DF) je ekvivalent prieˇcinkov (uzol v stromovej štruktúre), obsahuje
iba hlaviˇcku. Špeciálnym typom DF je Application Dedicated File (ADF), ktorý si
pod sebou uchováva všetky DF a EF patriace k danej aplikácii.
• Elementary File (EF) je ekvivalent súborov (list v stromovej štruktúre), obsahuje hla-
viˇcku aj telo.
Existujú 3 druhy štruktúry fyzického záznamu EF v súborovom systéme karty:
• transparentná (transparent) je sekvencia bytov s l’ubovol’ným prístupom. Celková
d´lžka súboru je definovaná v jeho hlaviˇcke.
• lineárna pevná (linear fixed) je sekvencia záznamov, kde má každá položka vopred
stanovenú d´lžku. Prvý záznam je indexovaný ˇcíslom 1. Poˇcet záznamov a ich celková
vel’kost’ sú definované v hlaviˇcke.
15
5.2. DÔLEŽITÉ EF
• cyklická (cyclic) slúži na uchovávanie údajov v chronologickom poradí. Ked’ boli
všetky sloty na záznamy využité, po pridaní nového záznamu sa prepíše najstaršia
položka (FIFO). Poˇcet záznamov a ich celková vel’kost’ sú definované v hlaviˇcke.
Niektoré zdroje uvádzajú aj lineárny zoznam s variabilnou d´lžkou. Túto možnost’ však
štandard GSM 11.11 [6] nešpecifikuje.
Všetky súbory na smart kartách sú objektovo orientované. Z toho vyplýva, že musia byt’
najprv vyselektované a až potom sa s nimi dá pracovat’.
EF FID DF štruktúra ˇcítanie zápis
ADN 6F3A TELECOM linear fixed CHV1 CHV1
HPLMN 6F31 GSM transparent CHV1 ADM
ICCID 2FE2 MF transparent ALW NEV
IMSI 6F07 GSM transparent CHV1 ADM
KC 6F20 GSM transparent CHV1 CHV1
KCGPRS 6F52 GSM transparent CHV1 CHV1
LND 6F44 TELECOM cyclic CHV1 CHV1
LOCI 6F7E GSM transparent CHV1 CHV1
LP 6F05 GSM transparent ALW CHV1
MSISDN 6F40 TELECOM linear fixed CHV1 CHV1
PHASE 6FAE GSM transparent ALW ADM
SMS 6F3C TELECOM linear fixed CHV1 CHV1
SPN 6F46 GSM transparent ALW ADM
SST 6F38 GSM transparent CHV1 ADM
Tabul’ka 5.1: niektoré EF a ich vlastnosti
5.2 Dôležité EF
5.2.1 ADN
Abbreviated Dialing Numbers sú telefónne ˇcísla uložené spolu s dodatoˇcnou informáciou
(textovým ret’azcom), ktoré môžu byt’ pohodlne vyvolané z telefónu. Bežná SIM karta má
pamät’ na 250 kontaktov v tomto telefónnom zozname.
5.2.2 HPLMN
Home Public Land Mobile Network search period udržuje informácie o ˇcasovom intervale
pre vyhl’adávanie domácej siete. Tento údaj sa uvádza v minútach a je obvykle nastavený
na 5 minút.
16
5.2. DÔLEŽITÉ EF
5.2.3 ICCID
Integrated Circuit Card Identification je unikátne ˇcíslo SIM karty, ktoré nemôže byt’ zmene-
né za žiadnych okolností a je fyzicky vytlaˇcené na líci SIM karty. ICCID sa dá analyzovat’
pomocou online analyzátora [9] a podl’a ITU-T E.118 [2] pozostáva z 19 ˇcíslic.
89 420 2 039961122830 2
Príklad 5.2.1: ICCID ˇcíslo
• Prvá dvojica znamená Major Industry Identifier (MII) (89 v príklade znaˇcí použitie
na telekomunikaˇcné úˇcely).
• ˇDalšie 1 až 3 ˇcíslice sú Mobile Country Code (MCC) zadané v odporúˇcaní E.164 [3]
(420 v príklade je ˇCeská republika [13]).
• ˇDalšie 1 až 2 ˇcíslice sú Mobile Network Code (MNC), alebo Issuer Identifier, ktoré sa
viažu na konkrétnu krajinu (2 v príklade je operátor O2 [10]).
• Zvyšné ˇcíslice (s výnimkou poslednej) sú Individual Account Identification Number
(IAIN), ktoré si vytvára samotný operátor.
• Posledná ˇcíslica je kontrolný súˇcet spoˇcítaný pomocou Luhnovho algoritmu (ˇcíslo 2
v príklade).
Pri spojení MII, MCC a MNC vznikne maximálne 7-miestne ˇcíslo, ktoré sa nazýva Issuer
Identificatoin Number. V príklade je to ˇcíslo 894202.
Obrázok 5.1: slovenské a ˇceské údaje od Telefónica O2 [4]
17
5.2. DÔLEŽITÉ EF
5.2.4 IMSI
International Mobile Subscriber Identity je unikátne ˇcíslo v GSM systéme o maximálnej d´lž-
ke 15 znakov, ktoré jednoznaˇcne identifikuje úˇcastníka siete. Dá sa analyzovat’ napríklad
pomocou online analyzátora [9]. Pozostáva z 3-miestneho ˇcísla MCC, ktoré identifikuje kra-
jinu; 2-miestneho (európsky štandard) alebo 3-miestneho (severoamerický štandard) MNC,
ktoré identifikuje mobilného operátora v danej krajine a maximálne 10-miestne Mobile Sub-
scription Identification Number (MSIN), ktoré pridel’uje mobilný operátor v danej krajine na
jednoznaˇcnú identifikáciu úˇcastníka siete. IMSI sa normálne neprenáša vzduchom v plain-
texte, aby sa neprezradila lokácia daného úˇcastníka siete. Namiesto toho sa na identifikáciu
posiela TMSI spolu s LAI.
Pri realizácii telefónneho hovoru je najprv potrebné preložit’ telefónne ˇcíslo volaného na
IMSI (pomocou databázy, ktorá mapuje telefónne ˇcísla na IMSI) a hovor je potom presme-
rovaný na aktuálnu polohu daného IMSI.
Príklad: 230 02 1900572323. MCC = 230 pre ˇCeskú republiku [13], MNC = 02 pre O2,
MSIN = 1900572323.
MCC-MNC Operátor
230-01 T-Mobile
230-02 230-02
230-03 Vodafone
230-99 RD Centre
Tabul’ka 5.2: zoznam MNC aktívnych ˇceských operátorov k dˇnu 09.04.2012
5.2.5 Kc, KcGPRS
Cipher Key je tajný symetrický kl’úˇc slúžiaci na šifrovanie dát zasielaných vzduchom medzi
mobilnou stanicou a základˇnou.
5.2.6 Ki
Individual Key alebo Authentication Key je tajný 128-bitový symetrický kl’úˇc neznámy uží-
vatel’ovi, ktorý slúži na autentizáciu a generovanie šifrovacích kl’úˇcov. Ki bolo špeciálne
navrhnuté tak, aby sa nedalo kompromitovat’ pomocou smart-card rozhrania. Ki sa nikdy
neposiela do siete ani do mobilného telefónu. Všetky operácie teda prebiehajú vo vnútri
SIM. Na starších SIM kartách však bola objavená chyba v GSM kryptografii, umožˇnujúca
zistit’ Ki a tým pádom klonovat’ SIM karty [17].
5.2.7 LND
Last Number Dialed slúži na uschovanie posledných volaných ˇcísel. Tento súbor je cyklickej
štruktúry, takže najstaršie dáta sa prepíšu novšími v prípade nedostatku vol’ných záznamov.
18
5.2. DÔLEŽITÉ EF
ˇCíslo samotné sa ukladá na posledných 14 bytoch, kde prvý byte urˇcuje d´lžku ˇcísla, druhý
nesie informáciu o medzinárodnosti hovoru (’81’ pre národný a ’91’ pre medzinárodný) a
d’alej nasledujú byty so samotným telefónnym ˇcíslom uložené s prehodenými polovicami
bytov prípadne doplnené sprava ’FF’.
Príklad na posledných 14 bytov: ’07 91 24 91 70 21 43 65 FF FF FF FF FF FF’. ˇCíslo je dlhé
7 bytov, ide o medzinárodný hovor (takže sa v praxi pred ˇcíslo pridajú znaky ’00’). ˇCíslo
teda vyzerá: 00421907123456.
Niektoré mobilné telefóny pred toto ˇcíslo pridávajú aj textový ret’azec s informáciou
o volanom ˇcísle podl’a adresára.
5.2.8 LOCI
Location information drží momentálne informácie o lokácii. Prvých 8 znakov udáva Tem-
porary Mobile Subscriber Identity (TMSI), d’alších 10 znakov je LAI, nasledujú 2 znaky pre
TMSI TIME, ktoré sa už ale nevyužívajú a sú nastavené na ’FF’ a posledné 2-ˇcíslie znamená
status (tabul’ka 5.3).
hodnota status
00 Updated
01 Not updated
02 Forbidden PLMN
03 Forbidden location area
Tabul’ka 5.3: status TMSI
Príklad: ’1EBB5FCB 230F027002 FF 00’. TMSI = ’1EBB5FCB’, LAI = ’230F027002’, TMSI
TIME = ’FF’ (nepoužívané), status = aktualizovaný.
5.2.8.1 LAI
Location Area Identity je unikátne ˇcíslo lokálnej stanice operátora. Toto ˇcíslo je uložené na
SIM karte, aby zariadenie vedelo, s ktorou stanicou má karta komunikovat’. Po presunutí na
inú stanicu sa LAI novej stanice pridá na SIM kartu tak, že ostatné LAI ostanú zachované.
Toto je výhoda pre forenzných analytikov, pretože môžu urˇcit’ geografickú polohu, kde sa
karta nachádzala, ked’ bola zapnutá. LAI sa skladá z 3 ˇcíslic MCC, 2 – 3 ˇcíslic MNC a 4 ˇcíslic
Local Area Code (LAC), ktoré umožˇnuje maximálne 65536 staníc v jednom GSM PLMN.
Príklad: ’230 F02 7002’. MCC = ’230’ ( ˇCeská republika), MNC = ’02’ (operátor O2), LAC
= ’7002’.
5.2.9 LP
Language Preferences je súbor, ktorý udržuje informácie o preferovaných jazykoch zorade-
ných podl’a priority. Tento súbor sa riadi štandardom GSM 03.38 [7].
19
5.2. DÔLEŽITÉ EF
5.2.10 MSISDN
Mobile Station ISDN Number znamená telefónne ˇcíslo SIM karty. Je to avšak nepovinný
údaj, takže ho niektorí operátori na SIM karte neimplementujú.
5.2.11 PHASE
Obsahuje informácie o fáze – fáza oznaˇcuje postupné evoluˇcné štádiá vývoja GSM systému
a je priamo zodpovedná za funkcionalitu obsiahnutú v SIM kartách. Fáza 1 obsahovala iba
pár základných služieb pre komunikácie v GSM využitie IMSI a šifrovania. Fáza 2 bol vel’mi
zavedený štandard, ktorý ale nemohol podliehat’ zmenám. Oproti tomu Fáza 2+ umožˇnuje
pridávanie nových funkcionalít.
Fáza v EF je kódovaná takto: ’00’ pre fázu 1; ’02’ pre fázu 2; ’03’ pre fázu 2+.
fáza 1 fáza 2 fáza 2+
autentizácia SIM karty v sieti PIN2 SDN
ochrana dát na SIM karte
PIN kódom
FDN High-Speed Circuit-
Switched Data (HSCSD)
telefónny adresár PLMN Over The Air (OTA)
SMS konferenˇcné hovory SIM ToolKit (STK)
roaming posledné volané ˇcísla Barred Dialing Numbers
(BDN)
prenos hlasu GSM 1800 MHz GPRS
Tabul’ka 5.4: zoznam niektorých funkcionalít fáz
5.2.12 SMS
Short Message Service je súbor obsahujúci niekol’ko 176 bytových správ. Ukladanie SMS
je špecifikované v štandarde GSM 03.40[5]. Ked’že pamät’ EEPROM má obmedzený poˇcet
zápisov, ked’ užívatel’ vymaže SMS zo SIM karty, ich obsah sa automaticky nepremaže na
samé ’FF’, ale miesto toho sa nastaví 1. byte záznamu na ’00’, ˇco znamená vol’nú pozíciu.
Po vymazaní sú teda staré SMS stále nedotknuté, kým ich neprepíšu novšie správy. Ak
je správa kratšia než maximálna d´lžka, je doplnená sprava znakmi ’FF’. Samotný textový
obsah SMS správy má iba 140 oktetov a môže byt’ kódovaný v 3 rôznych kódovaniach.
Existujú „dlhé SMS“ nazývané aj „multi-segmentové SMS“, ktoré sa dajú poslat’ pomo-
cou viacerých normálnych SMS. Na zaˇciatku (prvých 7 bytov) sa k nim ale pridáva User
Data Header (UDH) s informáciami o segmentácii, a preto sa do nich vojde menší poˇcet
znakov. Úlohou mobilného telefónu je spojit’ multi-segmentové SMS a ukázat’ z nich užíva-
tel’ovi iba 1 dlhú SMS správu.
20
5.2. DÔLEŽITÉ EF
kódovanie normálna SMS dlhá SMS
7-bit 160 153
8-bit 140 134
16-bit (UCS-2) 70 67
Tabul’ka 5.5: poˇcty znakov v daných kódovaniach
5.2.13 SPN
Service Provider Name je 17 bytov vel’ký súbor, ktorý si v sebe udržiava meno mobilné-
ho operátora, kódovaného pomocou GSM 03.38 [7]. Ak je meno menšie než maximum, je
doplnené sprava znakmi ’FF’.
5.2.14 SST
SIM Service Table obsahuje tabul’ku, ktorá obsahuje informácie o dostupných a aktivova-
ných službách na SIM karte, ktoré sú doplnkovými službami ku základným hlasovým služ-
bám. Služby sú definované v štandarde GSM 11.11 [6].
21
Kapitola 6
Prehl’ad aplikácií na prácu so SIM kartami
Na internete je k dispozícii pomerne málo použitel’ných nástrojov na prácu so SIM karta-
mi, ktoré zvládajú PC/SC špecifikácie. Vybral som z nich tie, ktoré majú dostupné aspoˇn
skúšobné verzie.
6.1 Dekart: SIM Manager 3.1
Obrázok 6.1: SIM Manager
SIM Manager je komerˇcný software na ˇcítanie, ale aj zmenu, vymazávanie a pridávanie
údajov na SIM karte. Jeho cena je 29USD.
Bez autentizácie PINom je možné zistit’ poˇcet zostávajúcich zlých pokusov PIN1/2 a
PUK1/2, ICCID, fázu, SPN a ATR a následne ich uložit’ do csv súboru.
22
6.2. SIMCARDEXPLORER 1.1.2
Po autentizácii PINom sa dá zistit’ IMSI a posledná známa lokácia SIM karty. Okrem to-
ho sa nasledujúce údaje dajú nielen ˇcítat’, ale aj menit’ a mazat’ (ak to daný súbor povol’uje
a mám požadované autentizaˇcné kódy): telefónny zoznam, SMS, PLMN, zakázané PLMN,
SDN, FDN, LND, MSISDN. Získané informácie sa dajú exportovat’ do niekol’kých formátov.
Program podporuje aj vytvorenie kópie SIM karty, konkrétne prekopíruje vybrané z vyššie
uvedených údajov na inú SIM kartu. Pritom môže ponechat’ alebo zmazat’ dáta na ciel’ovej
SIM karte. Je podporovaná zmena PIN kódu, vymazanie všetkých dát na SIM karte alebo
import kontaktov z Google, Yahoo alebo iTunes. V nastaveniach je možnost’ zobrazenia vy-
mazaných SMS správ, aj ked’ je defaultne vypnutá. SMS správy je možné úplne vymazat’
(prepísat’ znakmi ’FF’), obnovit’ z vymazaných, alebo vymazat’.
6.2 SimCardExplorer 1.1.2
Obrázok 6.2: SimCardExplorer
SimCardExplorer je vol’ne dostupný software dostupný v 3 jazykových mutáciách (an-
23
6.3. CLASSICALSOFT: WINSIM PROFESSIONAL 1.0
gliˇctina, francúzština, španielˇcina). Jeho posledná verzia vyšla v roku 2007.
Bez PINu zobrazuje ATR a možnost’ odblokovania PIN1/2 kódov, ale aj možnost’ pre-
ˇcítania EF súborov, ktoré majú nastavené prístupové práva na ˇcítanie ALW. Obsah týchto
súborov však nie je dostupný v l’udsky ˇcitatel’nej podobe, ale v HEX.
Ako jeden z mála z dostupných programov dokáže zobrazit’ SST, a to v prehl’adnej ta-
bul’ke s farebným zvýraznením ne/aktívnych a ne/dostupných služieb. Dokáže tiež preˇcí-
tat’ mnohé EF a poskytnút’ ich detaily (popis, typ súboru, FID, vel’kost’ dát a samotné dáta
v HEX). Interpretovat’ do l’udsky ˇcitatel’ného formátu však vie okrem SST iba SMS, LND,
FDN, MSISDN a telefónny zoznam. Pri ˇcítaní položiek s diakritikou má problém (konkrétne
v názvoch kontaktov v UCS-2 kódovaní s prvým bytom ’81’ nepíše správne znaky a s pr-
vým bytom rovným ’80’ nevypíše na danom mieste žiaden ret’azec), rovnako ako pri ˇcítaní
multi-segmentových SMS, kde zobrazuje na konci samotného textu SMS správy UDH v ne-
ˇcitatel’nej forme. SMS dokáže úplne vymazat’, vymazat’ a obnovit’. Položky v ADN doká-
že vytvárat’, mazat’ a editovat’. Ako iné programy, aj tento zvláda zmenu a odblokovanie
PIN1/2 kódov, ale ako jeden z mála umožˇnuje aj zmenu PIN1 identifikátora na disable, ˇcím
umožní prístup ku karte bez zadania PIN1 kódu.
6.3 Classicalsoft: WinSIM Professional 1.0
WinSIM Professional je dostupný iba v 1 verzii, ktorá vyšla v roku 2008. Licencia pre 1 poˇcí-
taˇc stojí 500USD. Pre bežných užívatel’ov je tento nástroj neprínosný, pretože neprezentuje
žiadne dáta v ˇcitatel’nej podobe.
Program slúži na prácu s APDU príkazmi. Má preddefinované všetky bežné APDU prí-
kazy, ktoré musia SIM karty podporovat’. Silnou stránkou tohto programu je podpora skrip-
tovania APDU príkazov, možnost’ breakpointov alebo export logov s príkazmi, dátovými
odpoved’ami a SW1 + SW2.
Asi najunikátnejšia vlastnost’ tohto programu je možnost’ preˇcítania informácií o akom-
kol’vek DF/EF na karte. Pre DF zobrazuje ich ID, typ (MF/DF), alokovanú pamät’, poˇcet
DF a poˇcet EF, ktoré obsahuje. Pre EF zobrazuje FID, typ (EF), vel’kost’, typ súboru, status a
podmienky prístupu. Samotné súbory sa dajú aj preˇcítat’, ale iba ich HEX podoba, aj to až
po zadaní d´lžky súboru.
6.4 Woron Scan 1.09
Woron Scan je vol’ne šíritel’ný program, ktorý vznikol vd’aka ˇclenom fóra KIEVSAT. An-
tivírové programy od spoloˇcnosti ESET ho však detekujú ako trójskeho koˇna. Ako jeden
z mála dostupných nástrojov dokáže na starých SIM kartách zistit’ Ki, ˇco môže trvat’ cca
4 hodiny. Okrem Ki zistí IMSI, ICCID, ATR, poˇcet zostávajúcich PIN1/2 PUK1/2 pokusov,
zmenit’ PIN1, odblokovat’ PIN1/2, zobrazit’ a exportovat’ telefónny zoznam a pridávat’ a
menit’ jeho položky. Položky v telefónnom zozname však nezobrazuje všetky správne – ne-
ráta s kódovaním GSM_DEFAULT, takže napríklad ’05’, ˇco je v danom kódovaní znak „é“,
zobrazí ako prázdny.
24
6.5. COMPELSON: MOBILEDIT! FORENSIC 6.1.0.1634
Obrázok 6.3: WinSIM Professional
6.5 Compelson: MOBILedit! Forensic 6.1.0.1634
MOBILedit! Forensic je komerˇcný, neustále aktualizovaný a vyvíjaný software na forenznú
analýzu mobilných telefónov a SIM kariet. Je využívaný zložkami FBI a CIA, je vysoko hod-
notený spoloˇcnost’ou NIST a umožˇnuje iba read-only mód, aby nedošlo k zmene niektorých
položiek a predišlo sa tak zniˇceniu dôkazov. Je dostupný v Lite verzii ktorá má zablokovanú
niektorú funkcionalitu. Cena je 399EUR bez DPH.
Program po pripojení PC/SC zariadenia zobrazuje poˇcet možných zlých pokusov za-
dania PINu a požaduje zadanie PIN kódu, alebo PUK kód s následnou zmenou PINu. Bez
zadania PINu vypíše ATR a ICCID. Ked’ ale chcem zadat’ PIN kód po tom, ako som zrušil
dialóg pri pripojení zariadenia, musím zariadenie odpojit’ a zapojit’ znovu, alebo vypnút’ a
zapnút’ program – program nepodporuje opätovné zadanie PINu inokedy ako pri pripojení
zariadenia.
Po autentizovaní PINom je možné zistit’ IMSI, fázu, LAI, poˇcet možných zlých pokusov
PIN1/2 a PUK1/2, telefónny adresár, posledné volané ˇcísla (LND), FDN, alebo preferované
a zakázané siete (so slovným popisom štátu a siete). SMS správy sú viditel’né bez príznaku
ˇci sú vymazané alebo nie. ˇDalej je možné pomocou tohto programu odblokovat’ PIN1/2
25
6.5. COMPELSON: MOBILEDIT! FORENSIC 6.1.0.1634
Obrázok 6.4: Woron Scan
pomocou PUK1/2, aj samotná zmena PIN1/2. Výhodou je možnost’ zálohovania všetkých
získaných dát do súboru.
Po aktivácii v platenej verzii programu je možné obnovit’ vytvorené zálohy, exporto-
vat’ údaje do rôznych formátov alebo generovat’ forenzné reporty jedným kliknutím, ˇco
eliminuje l’udský faktor. Program dokáže vygenerovat’ reporty aj z predošlých pripojených
zariadení, nie iba zo zariadenia, ktoré je momentálne pripojené.
26
6.5. COMPELSON: MOBILEDIT! FORENSIC 6.1.0.1634
Obrázok 6.5: MOBILedit! Forensic Lite
27
Kapitola 7
Praktická ˇcast’
Program Simple SIM Reader bol vytvorený v Jave v JDK7 pomocou vol’ne šíritel’ného vý-
vojového prostredia NetBeans IDE. Na komunikáciu so SIM kartou používa balíˇcek ja-
vax.smartcardio a na interpretáciu samotného textového obsahu SMS správ knižnicu smsj-
20051126.jar [20], konkrétne balíˇcky org.marre.sms. Ked’že Java neobsahuje znakovú sadu
GSM_DEFAULT, využil som ju z knižnice JCharset [12].
7.1 GUI
Obrázok 7.1: Simple SIM Reader
28
7.2. VYPISOVANÉ ÚDAJE BEZ ZNALOSTI PIN KÓDU
Návrh GUI je jednoduchý, ale úˇcelný. Tvorí ho jedno vel’ké textové pole a 4 základné
menu položky. Do textového pol’a sa vypisujú všetky údaje získané zo SIM karty, dajú sa
l’ahko skopírovat’ alebo uložit’ do textového súboru. Menu, chybové hlásenia, ako aj vypi-
sované atribúty sú v angliˇctine.
7.1.1 File
Nachádzajú sa tu 2 možnosti – Save, ktorý uloží obsah textového okna do textového súboru
a Exit, ktorý vypne celý program.
7.1.2 Card
Tlaˇcidlo Connect ustanoví spojenie s prvou ˇcítaˇckou kariet, ktorú dostane a so SIM kartou
v nej. Táto možnost’ je dostupná iba ak nie je v programe otvorené žiadne spojenie na SIM
kartu. Po pripojení na kartu sa táto možnost’ zneprístupní až do stlaˇcenia Disconnect. Touto
vol’bou sa zruší spojenie so SIM kartou a ˇcítaˇckou.
7.1.3 Data
Najdôležitejšia ˇcast’ na celom GUI, ktorá sa stará o vypisovanie dát a autentizáciu PIN kó-
dom. Možnost’ Clear jednoducho vymaže obsah textového okna, Read without PIN vypíše
všetky informácie, ktoré sa podarilo zistit’ bez znalosti PIN kódu. Položka Read with PIN
je neprístupná, pokial’ sa užívatel’ vopred úspešne neautentizoval znalost’ou PIN kódu a
vypisuje všetky informácie, ktoré sa podarilo zistit’ vd’aka znalosti PINu.
Možnost’ Enter PIN je zodpovedná za autentizovanie PINom. Ak užívatel’ zadá PIN
o d´lžky menej ako 4 znaky alebo viac ako 8 znakov, PIN sa neposiela na SIM kartu, ale
program upozorní užívatel’a na zlú d´lžku PINu. Rovnako, ak sa v PINe nachádzajú iné ako
numerické znaky, PIN sa neposiela na SIM kartu a užívatel’ je na túto skutoˇcnost’ upozorne-
ný. Po úspešnej autentizácii PINom sa zneprístupní jeho opätovné zadanie, ktoré sa znovu
sprístupní až po odpojení karty.
7.1.4 Help
Má zatial’ iba jedinú položku About. V nej sú informácie o konkrétnej verzii programu,
mojom mene a kontaktnom emaile.
7.2 Vypisované údaje bez znalosti PIN kódu
Ked’ je program úspešne pripojený na SIM kartu, dokáže z nej preˇcítat’ mnohé informácie,
ktoré majú prístupové práva na ˇcítanie nastavené na ALW.
Vypíše ATR, ICCID (s rozpársovanými MII, MCC, MNC, IIN, IAIN a ˇcíslicu kontrolného
súˇctu), SPN, PHASE, PIN 1/2 a PUK 1/2 statusy (initialised alebo not initialised) a poˇcet ich
zostávajúcich pokusov a preferované jazyky.
29
7.3. VYPISOVANÉ ÚDAJE PO AUTENTIZOVANÍ PIN KÓDOM
7.3 Vypisované údaje po autentizovaní PIN kódom
Po úspešnom pripojení na SIM kartu a po zadaní správneho PIN kódu je program schopný
preˇcítat’ omnoho viac informácií. Konkrétne tie, ktoré majú práva na ˇcítanie nastavené na
CHV1.
Zobrazuje sa IMSI s rozpársovanými MCC a názvom danej krajiny, MNC a názvom da-
ného operátora a MSIN. Názvy krajiny v MCC a operátora v MNC sú zatial’ funkˇcné iba pre
Slovensko a ˇCeskú republiku. ˇDalej sa zobrazí LOCI a jeho rozpársované informácie TMSI,
LAI, MCC, MNC, LOC, TMSI TIME a Location Update Status.
Ked’že niektoré mobilné telefóny nezaznamenávajú na SIM kartu posledné volané ˇcísla,
táto položka je niekedy prázdna. Ak to daný mobil využíva, zobrazí sa tam bud’ telefón-
ne ˇcíslo, alebo pri niektorých SIM kartách aj názov volaného kontaktu spolu s telefónnym
ˇcíslom.
Kc, KcGPRS, HPLMN sú d’alšie informácie, ktoré sú vypisované, a to bez akejkol’vek
interpretácie.
Telefónny zoznam je vypisovaný v l’udsky ˇcitatel’nej podobe – poradové ˇcíslo kontaktu,
jeho názov a telefónne ˇcíslo, ktoré je vypisované s prefixom 00, ak ide o medzinárodné ˇcíslo.
Môže sa stat’, že sú niektoré položky vypisované až ku koncu ADN záznamu – posledné
ˇcísla väˇcšinou okupujú vopred definované ˇcísla mobilným operátorom. Program nevypi-
suje prázdne telefónne záznamy, aj ked’ ich musí preˇcítat’. Výpis samotného telefónneho
zoznamu trvá dlhší ˇcas, cca 7 sekúnd pre 250 záznamov.
Posledná vec, ktorú program vypisuje, sú SMS správy. Vypisuje ich poradové ˇcíslo, zá-
znam o vymazaní (vypisuje kompletne aj vymazané SMS), ˇcas prijatia správy, ˇcíslo odosie-
latel’a, príznak, ˇci je daná SMS multi-segmentová a ak je tak, jej offset a samozrejme samotný
text správy.
7.4 Vnútorná štruktúra programu
Program je štruktúrovaný podl’a logických celkov. Obsahuje dátové triedy, ktoré si o se-
be iba nesú informácie – Contact, DF, DatabaseOfEF, EF, ICCID, IMSI, LOCI a SMS;
výnimky BadStatusWordException, NoReaderFoundException, WrongLengthOf-
PINException, WrongPINCharactersException a WrongPINException, triedu GUI
zastrešujúcu celé grafické rozhranie, triedu SwingWorkerGUI, ktorá sa stará o plynulé vy-
pisovanie dát bez znalosti a so znalost’ou PIN kódu bez toho, aby zamrzlo hlavné okno
programu.
7.4.1 CardManager
Je trieda, ktorá zistí všetky pripojené terminály, dokáže sa pripojit’ na prvý terminál, ktorý
vidí a na SIM kartu, ktorá je v ˇnom. Sprostredkováva aj samotné odpojenie od karty a ter-
minálu, vie verifikovat’ PIN1 vložený ako String alebo byte[]. V poslednom rade slúži na
samotné zasielanie APDU príkazov do karty vo forme byte[] a získavanie R-APDU.
30
7.5. KOMPLIKÁCIE
7.4.2 ApduWorker
ApduWorker pracuje na logicky vyššej úrovni – vytvára APDU príkazy, ktoré preposiela
do triedy CardManager. Funkcie, ktoré sa dajú použit’, sú select(), getResponse(),
readBinary() a readRecord(). V argumentoch majú tieto funkcie už iba FID súboru, na
ktorý chcú danú operáciu aplikovat’ (select() a getResponse()), prípadne byte[] pre-
došlej odpovede na getResponse() (readBinary() a readRecord()) alebo poradové
ˇcíslo záznamu, ktorý chcem ˇcítat’ (readRecord()). Všetky tieto funkcie vracajú byte[], kto-
rý využijú funkcie o logickú úroveˇn vyššie.
7.4.3 Getters
Getters pracuje logicky nad triedou ApduWorker. Väˇcšina jeho funkcií vracia String (na-
príklad getPhase()), dátovú entitu (napríklad getIMSI()), alebo List dátových entít
(getListOfSMS()).
7.4.4 WriteIntoSystemOut
Ako už názov napovedá, táto trieda sa stará o výpis informácií na System.out. Využíva
triedu Getters a všetky informácie sú v l’udsky ˇcitatel’nej podobe vypísané aj s popisom.
Má 2 základné metódy pre výpis, ktoré používajú ostatné metódy v tejto triede – write-
DataWithoutAuthentication() a writeDataWithAuthentication(), ktoré sa sta-
rajú o výpis všetkých informácií, ktoré sa dajú zistit’ bez znalosti PINu a po úspešnej auten-
tizácii PINom.
7.5 Komplikácie
7.5.1 Dekódovanie SMS
Pre kompresiu je samotný text 7-bit SMS správy kódovaný do oktetov tak, že na zvyšný 1
bit je uložená d’alšia informácia. Na zakódovanie desiatich znakov teda postaˇcuje 9 bytov.
Nemal som problém získat’ dané byte[] obsahujúce text SMS správy – problém som ho mal
dekódovat’ do zrozumitel’ného textu. Na internete som našiel knižnicu SMSJ [20], z ktorej
som využil tento prevod.
7.5.2 Dekódovanie názvu kontaktu v ADN
Väˇcšinu telefónnych ˇcísel mám uložených s diakritikou a ked’ som sa ich snažil interpreto-
vat’, vznikli z toho splete špeciálnych znakov. Napríklad položka „Aleš“ (’41 6C 65 61’) sa
zobrazila ako „$ Ale£“ (’81 06 02 41 6C 65 E1’).
Textové údaje v mieste mena na poˇciatku ADN záznamu môžu byt’ uložené v GSM_-
DEFAULT alebo 16-bit UCS2 kódovaní [21]. Pokial’ sú uložené v GSM_DEFAULT a interpre-
tujú sa ako ASCII hodnoty, väˇcšinou nevzniká na prvý pohl’ad žiaden problém – každý byte
31
7.5. KOMPLIKÁCIE
sa interpretuje ako jeden znak (8. bit je nastavený na 0). Ked’že ale tabul’ka GSM_DEFAULT
obsahuje na prvých miestach iné znaky ako ASCII, nie je tento postup ideálne riešenie. Na-
príklad znak ’05’ má v GSM_DEFAULT hodnotu „é“, kdežto v ASCII je to biely znak. Ako
charset som použil vol’ne dostupnú knižnicu JCharset [12].
Pri použití znakov, ktoré sa nenachádzajú v GSM_DEFAULT sa používa kódovanie UCS2.
To môže mat’ 3 rôzne varianty (GSM 11.11, Annex B [6]), v závislosti na prvom byte.
Ak je prvý byte rovný ’80’, potom sú všetky d’alšie byty 16 bitové, kedy je jeden znak
kódovaný dvojicou bytov. Výsledný kód znaku vznikne spojením danej dvojice – napríklad
zo znakov ’01 7D 00 69’ vzniknú 2 znaky: „Ž“ (zápis v UTF-16 je „U+017D“) a „i“ (zápis
v UTF-16 je „U+0069“).
Ak je prvý znak rovný ˇcíslu ’81’, nasledujúci byte kóduje poˇcet znakov v ret’azci, ktorý
chceme dostat’ a d’alší byte kóduje bity 15 – 8 vo výslednom 16-bitovom ˇcísle. Ostatné cifry
sú vyplnené nulami. Vznikne nám teda vzor „0xxx xxxx x000 0000“. Nasledujúce byty bud’to
kódujú samy 1 znak (majú 8. bit rovný nule), alebo využívajú vzor uvedený vyššie (ak majú
8. bit nastavený na 1). V tom prípade sa ich bity 7 – 1 pridajú ako bity 7 – 1 predchádzajúceho
vzoru. Vznikne nám teda vzor 16-bit ˇcísla „0xxx xxxx xyyy yyyy“. Napríklad ’81 04 02 41 6C
65 E1’ hovorí o tom, že výsledný ret’azec má 4 znaky. Vzor pomocou prefixu ’02’ je v tomto
prípade„0000 0001 0000 0000“. Nasleduje znak ’41’ („A“), ’6C’ („l“), ’65’ („e“) a znak ’E1’.
Tento znak má na svojom 8. bite jednotku, a tým sa bude interpretovat’ pomocou suffixu
do vopred daného vzoru. Tým z neho vznikne znak „0000 0001 0110 0001“, ˇco je znak „š“
(v UTF-16 „U+0161“). Z príkladu nám teda vznikol ret’azec„Aleš“.
Posledným možným prípadom je, ked’ sa prvý byte rovná ˇcíslu ’82’. Vtedy sa nasledu-
júci byte znovu rovná poˇctu znakov v ret’azci. Tentokrát však nasledujúce 2 byty kódujú
celú šestnástkovú bázu. ˇDalšie byty kódujú samotné znaky – ak má daný byte na 8. mies-
te 0, je to samostatný znak. Ak má na tomto mieste jednotku, jeho hodnota v 7 – 1 bite sa
pripoˇcítava k báze a vznikne daný znak. Napríklad ’82 07 00 E1 41 75 AC 6B 6F 76 80’ ho-
vorí o tom, že výsledný ret’azec má 7 znakov. Pri spojení znakov ’00 E1’ nám vznikne báza
’00E1’. Znak ’42’ je („B“), ’75’ („u“), ’AC’ má v 8. bite jednotku, a preto jeho 7 – 1 bity pri-
poˇcítane k báze, z ˇcoho nám vznikne znak „ˇc“ („U+010D“), ’6B’ („k“), ’6F’ („o“), ’76’ („v“)
a ’80’ je znova nutné interpretovat’ sˇcítaním s bázou, z ˇcoho vznikne znak „á“ („U+00E1“).
Výsledný dekódovaný ret’azec je teda „Buˇcková“.
Na internete som nenašiel žiadnu použitel’nú knižnicu, ani zdrojový kód v akomkol’vek
jazyku, ktorý by mi pomohol k riešeniu tohoto prevodu. Vd’aka tomu, že som implemen-
toval využitie GSM_DEFAULT kódovania a všetky možnosti koverzie USC-2 kódovania a
vd’aka natívnej podpore UTF-16 pri práci s ret’azcami v jave dokáže môj program interpre-
tovat’ správne znaky s nižším kódom aj všetky exotické znaky v názve kontaktov, ˇco mnohé
z mnou testovaných programov nevedeli úplne bezchybne dekódovat’.
7.5.3 Interpretácia ICCID
S interpretáciou ˇcísel v ICCID a ich významu som mal problém pre nekompatibilitu niekto-
rých zdrojov. Podl’a Forensics Wiki [8] je na bytoch 7 – 10 uložená informácia o mesiaci a
32
7.6. ˇDALŠÍ VÝVOJ
roku výroby SIM karty a na d’alších 2 bytoch je uložený switch configuration code. Pri tes-
tovaní na niektorých SIM kartách mi však mesiac a rok výroby nesedel (napríklad „1561“).
Nakoniec som sa teda riadil priamo štandardom ITU-T E.118 [2].
Pre zaujímavost’ som zaslal email so žiadost’ou o d’alšie informácie k danej téme na
emaily ˇceskej, slovenskej aj anglickej spoloˇcnosti Telefónica O2 a slovenskému a anglickému
Orange. Zo slovenského Orange mi po 9 dˇnoch odpovedali, že mojej požiadavke sa nedá
vyhoviet’. Zo slovenského O2 mi odpísali informaˇcne prínosnú odpoved’ (pozri obrázok
5.1), ktorá neobsahuje žiadne údaje o roku výroby karty, ani o switch configuration code, ale
má zase definovanú prvú ˇcíslicu v IAIN ako Vendor. Nie som si však istý, ˇci to používajú aj
iní operátori ako O2, a preto som tento údaj nevyzdvihol.
7.5.4 Menšie komplikácie
ˇDalšie problémy, ktoré sprevádzali vývoj programu, bolo napríklad vypisovanie položiek
ADN a SMS v reálnom ˇcase (ked’že moje metódy sú schopné vrátit’ kolekcie s danými po-
ložkami, napríklad ListSMS a samotné dátové triedy SMS a ADN majú implementované
metódy toString() na vypisovanie informácií o sebe), ale to som vyriešil výpisom na
System.out už pri nap´lˇnaní danej kolekcie. Ked’ som už postupne vypisoval všetky polož-
ky v reálnom ˇcase, v pôvodnej verzii programu som mal problém so zamrznutím hlavného
okna, kým dané metódy na výpis všetkých prvkov nedobehli. To som ale l’ahko vyriešil po-
mocou implementácie triedy SwingWorker, do ktorej som dané výpisy umiestnil pre svoju
zvýšenú ˇcasovú nároˇcnost’.
Problémom bolo pre mˇna samotné vypisovanie položiek v GUI – pri vypisovaní par-
ciálnych dát mi totižto vypisovaný text nechcelo pripájat’ k pôvodnemu, ktorý bol stále
premazávaný novším textom. To som vyrešil presmerovaním System.out na danú textovú
komponentu pomocou triedy TextAreaOutputStream [16].
7.6 ˇDalší vývoj
Plánovaná je podpora multijazyˇcnosti, exportovanie do XML a HTML, zmena PIN1/2 kódu,
možnost’ odblokovania PIN1/2 kódov pomocou PUK1/2, povolenie a zakázanie PIN1/2,
špeciálne terminálové okno na vypisovanie samotnej komunikácie pomocou APDU s mož-
ným exportom, vypísanie celého súborového systému na SIM karte spolu s detailnými in-
formáciami o konkrétnom DF/EF (typ, prístupové práva, vel’kost’), editovanie SMS správ,
telefónneho adresára a niektorých iných EF, zväˇcšenie databázy krajín k MCC a operátorov
k MNC, nevratné mazanie SMS správ, zmena flagu zmazaných SMS správ na prijaté, alebo
možnost’ výberu z nájdených terminálov.
33
Kapitola 8
Záver
V rámci tejto bakalárskej práce bol vytvorený program, ktorým je možné vypísat’ a uložit’
väˇcšinu zaujímavých údajov uložených na SIM karte. Akýkol’vek užívatel’ tak môže tento
nástroj za pomoci PC/SC ˇcítaˇcky smart kariet, alebo špeciálnej ˇcítaˇcky SIM kariet použit’.
Pri nezadaní PINu je užívatel’ schopný zistit’ o SIM karte jej ATR, ICCID, názov operá-
tora, ktorý vydal danú SIM kartu, fázu, preferované jazyky a statusy PIN 1/2 a PUK 1/2
kódov s poˇctom zostávajúcich pokusov.
Po zadaní správneho PIN1 kódu je d’alej možné získat’ IMSI, LOCI, šifrovací kl’úˇc Ki
spolu so šifrovacím kl’úˇcom pre GPRS, periódu vyhl’adávania siete, telefónny adresár kon-
taktov a SMS správy (vrátane tých, ktoré boli vymazané).
Tieto získané údaje si užívatel’ môže následne uložit’ to textového súboru, v ktorom mô-
žu byt’ uložené dáta ku viacerým SIM kartám.
34
Referencie
[1] BBC News. Tracking a suspect by mobile phone [Online]. 2005-08-03 [cit. 2011-11-12].
Dostupné z: http://news.bbc.co.uk/2/hi/technology/4738219.stm. 1
[2] ITU-T Recommendation E.118. SERIES E: TELEPHONE NETWORK AND ISDN: Ope-
ration, numbering, routing and mobile service – International operation – General
provisions concerning Administrations [Online]. 2006-05-11 [cit. 2012-04-01]. Dostup-
né z: http://www.itu.int/rec/dologin_pub.asp?lang=eid=T-REC-E.
118-200605-I!!PDF-Etype=items. 5.2.3, 7.5.3
[3] COMPLEMENT TO ITU-T RECOMMENDATION E.164. LIST OF ITU-T RECOM-
MENDATION E.164 ASSIGNED COUNTRY CODES [Online]. 2011-11-01 [cit. 2012-
04-01]. Dostupné z: http://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-E.
164D-11-2011-PDF-E.pdf. 5.2.3
[4] STUBNIAK, Ivan. Telefónica Slovakia, s.r.o. Odpoved [Online]. Andrej ŠIMKO.
2012-04-27 14:19; [cit. 2012-05-07]. Dostupné z: http://www.itu.int/dms_pub/
itu-t/opb/sp/T-SP-E.164D-11-2011-PDF-E.pdf. Odpoved’ z oddelenia
starostlivosti o zákazníka. 5.1, A
[5] 3GPP TS 03.40. Technical realization of the Short Message Service (SMS) [Online]. Ver.
7.5.0. 2001-12 [cit. 2012-04-03]. Dostupné z: http://www.3gpp.org/ftp/Specs/
archive/03_series/03.40/0340-750.zip. 5.2.12
[6] 3GPP TS 11.11. 3rd Generation Partnership Project; Technical Specification Group Ter-
minals Specification of the Subscriber Identity Module - Mobile Equipment (SIM - ME)
interface [Online]. Ver. 8.14.0. 2007-06 [cit. 2012-04-03]. Dostupné z: http://www.
3gpp.org/ftp/Specs/archive/11_series/11.11/1111-8e0.zip. 5.1,
5.2.14, 7.5.2
[7] TS 100 900. Digital cellular telecommunications system (Phase 2+); Alphabets and
language-specific information (GSM 03.38 version 7.2.0 Release 1998) [Online]. Ver.
7.2.0. 1999-07 [cit. 2012-04-05]. Dostupné z: http://www.3gpp.org/ftp/Specs/
archive/11_series/11.11/1111-8e0.zip. 5.2.9, 5.2.13
[8] SIM Cards: ICCID In: GARFINKEL, Simson. Forensics Wiki. [Online]. 2012-05-
15 [cit. 2012-04-08]. Dostupné z: http://www.forensicswiki.org/w/index.
php?title=SIM_Cardsoldid=10310. 7.5.3
[9] International Numbering Plans B.V. International Numbering Plans: Number
analysis tools [Online]. c2012 [cit. 2012-04-09]. Dostupné z: http://www.
numberingplans.com/?page=analysis. 5.2.3, 5.2.4
35
[10] International Numbering Plans B.V. International Numbering Plans: Numbering
plans for mobile networks (IMSI) [Online]. c2012 [cit. 2012-04-08]. Dostupné z:
http://www.numberingplans.com/?page=planssub=imsinr. 5.2.3
[11] ISO 7816-4. ISO 7816-4 Smart Card Standard [Online]. Posledné úpravy 2011-
07-01 [cit. 2012-04-06]. Dostupné z: http://www.cardwerk.com/smartcards/
smartcard_standard_ISO7816-4.aspx. 1.1, 3
[12] ROTHMAN, Amichai. JCharset [Online]. Ver. 1.3. c2012 [cit. 2012-05-11]. Dostupné z:
http://www.freeutils.net/source/jcharset/. 7, 7.5.2
[13] sendega.com Mobile country codes (MCC) and Mobile network codes (MNC) [Onli-
ne]. Posledné úpravy 2012-03-28 [cit. 2012-04-09]. Dostupné z: http://mcclist.
com/. 5.2.3, 5.2.4
[14] ORGO ˇN, Miloš. KOVÁ ˇC, Adrián. Forenzná analýza a bezpeˇcnost’ mobilných telefó-
nov [DOC dokument]. ˇCíslo revízie 5. [cit. 2011-11-11]. V dobe citácie nepublikované.
4.1.2
[15] SMITH, Greg. SIM PIN Challenge [online]. 2009-01-08 [cit. 2012-04-26]. http://
trewmte.blogspot.com/2009/01/sim-pin-challenge.html. 4.2
[16] HITE, John. Redirecting System.out to a JTextArea [online]. 2010-04-
05 [cit. 2012-04-28]. http://blog.johnhite.com/2010/04/05/
redirecting-systemout-to-a-jtextarea/. 7.5.4
[17] Brookson, Charles. Smart card cloning is easy! [online]. 2005 [cit. 2012-04-09]. http:
//www.brookson.com/gsm/cardclone.pdf. 5.2.6
[18] RANKL, Wolfgang. EFFING, Wolfgang. Smart Card Handbook 3. vyd. Chiches-
ter: Wiley, 2003. 1088 s. http://www.wrankl.de/SCH/SCH.html. ISBN 04-708-
5668-8. 2.1, 3.2.1
[19] RANKL, Wolfgang. The Smart Card Tables [online]. Posledné úpravy 2008-06-31 [cit.
2012-04-26]. http://www.wrankl.de/SCTables/SCTables.html. 3
[20] ERIKSSON, Markus. SMS library for the Java platform [online]. 2006-03-01 [cit. 2012-
05-07]. http://smsj.sourceforge.net/. 7, 7.5.1
[21] TS 23.038. 3rd Generation Partnership Project; Technical Specification Group Co-
re Network and Terminals; Alphabets and language-specific information [Online].
Ver. 10.0.0. 2011-03 [cit. 2012-05-10]. Dostupné z: http://www.3gpp.org/ftp/
Specs/archive/23_series/23.038/23038-a00.zip. 7.5.2
36
Dodatok A
Zoznam elektronických príloh
• simpleSimReader prieˇcinok s NetBeans projektom
• simpleSimReaderdistsimpleSimReader.jar spustitel’ná verzia programu
• simpleSimReaderdistjavadoc vygenerovaný javadoc
• textová ˇcast’ prieˇcinok s textovou ˇcast’ou
37
Slovník
ADF Application DF
ADN Abbreviated Dialing Numbers
APDU Application Protocol Data Unit
BDN Barred Dialing Numbers
BPIN Banking PIN
C-APDU Command APDU
DF Dedicated File
EEPROM Electronicly-Erasable Programable Read-Only Memory
EF Elementary File
GSM Global System for Mobile communication
HPLMN Home Public Land Mobile Network search period
HSCSD High-Speed Circuit-Switched Data
CHV Card Holder Verification information
IAIN Individual Account Identification Number
ICC Integrated Circuit Card
ICCID Integrated Circuit Card Identification
IIN Issuer Identification Number
IMSI International Mobile Subscriber Identity
ISDN Integrated Services Digital Network
Kc Cipher Key
Ki Individual Key
LAC Local Area Code
LAI Location Area Identity
LND Last Number Dialed
LOCI Location Information
38
SLOVNÍK
LP Language Preferences
MCC Mobile Country Code
MF Master File
MII Major Industry Identifier
MNC Mobile Network Code
MPIN Mobile banking PIN
MSIN Mobile Subscription Identification Number
MSISDN Mobile Station ISDN Number
OTA Over The Air
PC/SC Personal Computer/Smart Card
PIN Personal Identification Number
PUK PIN Unlock Key
RAM Random Access Memory
R-APDU Response APDU
ROM Read-Only Memory
SIM Subscriber Identity Module
SMS Short Message Service
SPN Service Provider Name
SST SIM Service Table
STK SIM ToolKit
TMSI Temporary Mobile Subscriber Identity
UCS-2 2-bytový Universal Character Set
UDH User Data Header
UTF UCS Transformation Format
39
Zoznam obrázkov
5 Štruktúra a obsah pamätí na SIM karte . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 slovenské a ˇceské údaje od Telefónica O2 [4] 17
6 Prehl’ad aplikácií na prácu so SIM kartami . . . . . . . . . . . . . . . . . . . . . . . .
6.1 SIM Manager 22
6.2 SimCardExplorer 23
6.3 WinSIM Professional 25
6.4 Woron Scan 26
6.5 MOBILedit! Forensic Lite 27
7 Praktická ˇcast’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1 Simple SIM Reader 28
40
Zoznam tabuliek
2 Smart karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Príkazy SIM kariet 5
3 Komunikácia s kartou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 C-APDU 6
3.2 R-APDU 7
3.3 Niektoré chybové kódy 7
3.4 príkaz GET RESPONSE 8
3.5 niektoré dôležité dáta odpovede na príkaz GET RESPONSE po príkaze
SELECT na MF/DF 8
3.6 statusu kódov CHV1/2, PUK1/2 9
3.7 dáta odpovede na príkaz GET RESPONSE po príkaze SELECT na EF 10
3.8 príkaz READ BINARY 11
3.9 príkaz READ RECORD 11
4 Bezpeˇcnostné prvky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Interpretácia bytu prístupových kódov 14
5 Štruktúra a obsah pamätí na SIM karte . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 niektoré EF a ich vlastnosti 16
5.2 zoznam MNC aktívnych ˇceských operátorov k dˇnu 09.04.2012 18
5.3 status TMSI 19
5.4 zoznam niektorých funkcionalít fáz 20
5.5 poˇcty znakov v daných kódovaniach 21
41

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Forenzná analýza SIM kariet

  • 1. MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY }w¡¢£¤¥¦§¨!#$%123456789@ACDEFGHIPQRS`ye| Forenzná analýza SIM kariet BAKALÁRSKA PRÁCA Andrej Šimko Brno, jar 2012
  • 2. Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní po- užíval alebo z nich ˇcerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj. Vedúci práce: Ing. Mgr. Zdenˇek ˇRíha, Ph.D. ii
  • 3. Zhrnutie Ciel’om tejto práce je vytvorit’ softwarový nástroj s GUI, ktorý bude pomocou terminálu podporujúceho PC/SC rozhranie schopný ˇcítat’ a interpretovat’ do l’udsky ˇcitatel’nej podo- by niektoré dôležité údaje zo SIM karty – najprv bez nutnosti zadania PIN kódu, a potom (ak si to užívatel’ želá) aj s jeho zadaním. V teoretickej ˇcasti je popísaná problematika súborov na SIM karte, princíp oprávnení a komunikácia pomocou APDU príkazov. iii
  • 4. Kl’úˇcové slová SIM karta, APDU, elementary file, forenzná analýza, ISO 7816-4 iv
  • 5. Obsah 1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Štruktúra práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Smart karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 História . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Výhody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Bezkontaktné ˇcipové karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Kontaktné ˇcipové karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.5 Špecifiká SIM kariet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Komunikácia s kartou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1 C-APDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 R-APDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.1 Chybové kódy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Niektoré APDU príkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3.1 GET RESPONSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3.2 READ BINARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3.3 READ RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4 Bezpeˇcnostné prvky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1 Prístupové kódy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1.1 CHV (PIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1.1.1 CHV1 (PIN1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1.1.2 CHV2 (PIN2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1.1.3 BPIN (MPIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.1.2 PUK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 Ochrana prístupových kódov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3 Prístup k súborom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5 Štruktúra a obsah pamätí na SIM karte . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1 Hierarchia súborového systému na SIM karte . . . . . . . . . . . . . . . . . . . 15 5.2 Dôležité EF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.2.1 ADN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.2.2 HPLMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.2.3 ICCID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.2.4 IMSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.2.5 Kc, KcGPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.2.6 Ki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.2.7 LND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.2.8 LOCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2.8.1 LAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2.9 LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2.10 MSISDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2.11 PHASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 v
  • 6. 5.2.12 SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2.13 SPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2.14 SST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6 Prehl’ad aplikácií na prácu so SIM kartami . . . . . . . . . . . . . . . . . . . . . . . 22 6.1 Dekart: SIM Manager 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2 SimCardExplorer 1.1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.3 Classicalsoft: WinSIM Professional 1.0 . . . . . . . . . . . . . . . . . . . . . . . 24 6.4 Woron Scan 1.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.5 Compelson: MOBILedit! Forensic 6.1.0.1634 . . . . . . . . . . . . . . . . . . . . 25 7 Praktická ˇcast’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7.1 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7.1.1 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.1.2 Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.1.3 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.1.4 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.2 Vypisované údaje bez znalosti PIN kódu . . . . . . . . . . . . . . . . . . . . . . 29 7.3 Vypisované údaje po autentizovaní PIN kódom . . . . . . . . . . . . . . . . . 30 7.4 Vnútorná štruktúra programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7.4.1 CardManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7.4.2 ApduWorker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.4.3 Getters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.4.4 WriteIntoSystemOut . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.5 Komplikácie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.5.1 Dekódovanie SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.5.2 Dekódovanie názvu kontaktu v ADN . . . . . . . . . . . . . . . . . . . 31 7.5.3 Interpretácia ICCID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.5.4 Menšie komplikácie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.6 ˇDalší vývoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 8 Záver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 A Zoznam elektronických príloh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Slovník . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 vi
  • 7. Kapitola 1 Úvod Subscriber Identity Module (SIM) je kontaktný typ ˇcipovej karty, ktorý slúži na identifikáciu, autentizáciu a autorizáciu úˇcastníka v mobilnej sieti. K tomu je potrebná logická a fyzická adresa zariadenia (podobne ako IP a MAC). V prípade telefónnej siete je fyzickou adresou unikátne IMSI ˇcíslo napevno naprogramované v ˇcase výroby a logickou adresou je tele- fónne ˇcíslo asociované so SIM kartou. ˇDalej SIM karta zabezpeˇcuje integritu (užívatel’ nie je schopný zmenit’ dáta na karte), nepopieratel’nost’ (odosielatel’ môže zistit’, ˇci príjemca správu prijal), dôveryhodnost’ (dáta prenášané vzduchom sú z dôvodu súkromia užívatel’a šifrované) a ochranu identity. SIM karty sú dnes používané na každom kroku – najˇcastejšie v mobilných telefónoch alebo pri pripojení na mobilný internet pomocou poˇcítaˇcov a iných zariadení. Ako si mnohí l’udia uvedomujú, SIM karta obsahuje aj citlivé údaje o úˇcastníkovi – napríklad volané ˇcísla, adresár kontaktov, poslednú známu lokáciu alebo SMS správy. Na forenzné úˇcely sa údaje zo SIM karty dnes používajú bežne. Známy je napríklad prí- pad z roku 2005, kedy sa po neúspešných samovražedných bombových útokoch v Londýne podarilo talianskej polícii vypátrat’ a zatknút’ podozrivého vd’aka IMEI a IMSI kódom po- sielaným mobilným telefónom [1]. Ciel’om tejto práce je vyvinút’ nástroj, ktorý vypíše dostupné údaje zistené z danej SIM karty. 1.1 Štruktúra práce V úvodnej kapitole 2. Smart karty sa nachádza struˇcný úvod do problematiky ˇcipových kariet, história, výhody spojené s ich používaním a špecifiká samotých SIM kariet. ˇCast’ 3. Komunikácia s kartou naˇcrtáva komunikáciu pomocou APDU príkazov, ktoré podrobne popisuje, spolu s detailným pohl’adom na niektoré vybrané dôležité APDU prí- kazy, definované v štandarde ISO 7816-4 [11]. Sú tu taktiež príklady samotnej komunikácie ako zo strany terminálu, tak zo strany karty. 4. Bezpeˇcnostné prvky popisuje rôzne prístupové kódy využívané v SIM kartách, ria- denie prístupu k samotným EF súborom na karte, ako aj komplexný pohl’ad na samotnú bezpeˇcnost’. V kapitole 5. Štruktúra a obsah pamätí na SIM karte sú rozpísané typy pamätí, použitý súborový systém a jeho špecifiká a druhy súborov, ktoré existujú na SIM karte. Rozoberajú sa tu informácie o EF súboroch, ktoré sú nositel’mi samotných dát – SMS, telefónneho zozna- 1
  • 8. 1.1. ŠTRUKTÚRA PRÁCE mu, poslednej známej lokácie, jazykových preferencií, unikátnych kódov a iných údajov. Pri špeciálnych ˇcíslach, ako napríklad ICCID, je uvedená interpretácia významu ich samotných ˇcíslic. V ˇcasti 6. Prehl’ad aplikácií na prácu so SIM kartami sú popísané tie programy, ktoré sú dostupné aspoˇn v skúšobnej verzii. Uvedené sú klady a zápory, unikátnosti funkcionality, obrázky samotných GUI rozhraní a v prípade platenej licencie cena. Posledná kapitola 7. Praktická ˇcast’ popisuje mnou vytvorený nástroj, ktorý som nazval Simple SIM Reader – jeho užívatel’ské rozhranie, funkcionalitu, schopnosti, vnútornú štruk- túru a niektoré implementaˇcné detaily a myšlienky na budúci vývoj. 2
  • 9. Kapitola 2 Smart karty Smart karta, ˇcipová karta, alebo ICC (Integrated Circuit Card) je typicky plastová karta, kto- rá v sebe ukrýva ˇcip s elektronikou – pamät’ou a ˇcasto aj s mikroprocesorom. Na komuniká- ciu je potrebné špeciálne zariadenie – ˇcítaˇcka (terminál), ktorá slúži ako medzivrstva medzi kartou a d’alším systémom, napríklad bankomatom, mobilným telefónom alebo poˇcítaˇcom. Výroba týchto kariet každoroˇcne stúpa vd’aka ich všestrannému využitiu v bankovníctve, telekomunikáciách, zdravotníctve, doprave alebo zábave. Postupne sa tak vytláˇcajú staršie technológie založené na strojovom ˇcítaní – napríklad magnetické pásky alebo ˇciarové kódy. Karty môžeme delit’ napríklad podl’a komunikaˇcného média na kontaktné a bezkontaktné. 2.1 História Zaˇciatkom 50. rokov 19. storoˇcia bolo vd’aka nízkym cenám syntetických PVC materiálov možné nahradit’ dovtedajšie papierové karty, ktoré boli náchylné na poškodenie, novými plastovými kartami. Prvé celoplastové karty zaˇcala vydávat’ spoloˇcnost’ Diners Club. Boli urˇcené iba pre vybranú skupinu l’udí a slúžili aj ako ukazovatel’ vyššieho sociálneho statusu. Nástup spoloˇcností Visa a MasterCard na trh viedol k masovému rozšíreniu plastových kariet slúžiacich na platenie. Základné údaje, ako napríklad meno vydavatel’a, boli vytlaˇce- né na karte v normálnej podobe, zatial’ ˇco údaje o vlastníkovi karty a samotné ˇcíslo karty boli vytlaˇcené v embosovanej podobe. Úˇcel týchto kariet bol zo zaˇciatku jednoduchý – ukla- danie dát chránené proti vytváraniu falzifikátov. Na to slúžil podpis vlastníka a vizuálne elementy na karte. Bezpeˇcnost’ týchto kariet však ˇcasom prestala postaˇcovat’ a preto nastúpili karty s mag- netickým prúžkom, na ktorom boli uložené digitálne dáta v strojovo ˇcitatel’nej podobe. Týmto sa zaˇcal prechod z papierových transakcií na elektronické spracovávanie dát. Aj na- priek zvýšeniu bezpeˇcnosti, ktoré bolo aj vd’aka zavedeniu PIN kódu, boli však karty stále málo bezpeˇcné. S dostupným zariadením sa totiž mohli všetky dáta na páske ˇcítat’, mazat’ alebo menit’. S nástupom elektronických obvodov sa otvorili nové možnosti a zaˇciatkom 70. rokov zaˇcali vznikat’ prvé ˇcipové karty. Aj ked’ patent na integrovaný obvod na identifikaˇcnej karte bol vytvorený v Nemecku v roku 1968, pre vysokú cenu a nedokonalú výrobnú technológiu sa ešte muselo poˇckat’ na ich uplatnenie v praxi. V roku 1984 nastal prelom, ked’ sa francúzskej spoloˇcnosti pre telekomunikáciu úspešne podarilo pretestovat’ telefónne karty. Pionierom technológie smart kariet teda neboli platob- 3
  • 10. 2.2. VÝHODY né, ale telefónne karty. Koncom roku 1986 existovalo vo Francúzsku už niekol’ko miliónov telefónov so smart kartami [18]. Tieto karty však stále slúžili na analógové telefonovanie a využívali magnetický pásik. Stále narastajúcim vývojom technológií boli implementované stále nové technológie aj na smart karty – magnetické pásiky zaˇcali byt’ nahradzované kartami s ˇcipom, EPROM pamäte boli nahradené EEPROM, vzrastal výpoˇctový výkon procesorov, ktoré mohli robit’ aj zložitejšie matematické a kryptografické operácie a rástlo aj samotné dátové úložisko. 2.2 Výhody Medzi hlavné výhody patrí to, že ˇcipové karty sú l’ahko prenosné a dokážu sami vyko- návat’ výpoˇcty. To znamená, že oproti starším technológiám, ako sú napríklad magnetické pásky, ktoré slúžili iba na uchovávanie dát, nemusia ˇcipové karty bez patriˇcnej autentizácie prezradit’ takmer žiadnu informáciu, ktorá je na nich uložená. Vd’aka tomu môžu podporo- vat’ bezpeˇcné úložisko dát, identifikáciu alebo autentizáciu. Jediná ˇcipová karta môže byt’ naprogramovaná na mnohé úˇcely zároveˇn – otváranie dverí kancelárie, požiˇciavanie kníh v knižnici, pracovanie s niekol’kými bankovými úˇctami. Alebo môže napríklad povol’ovat’ bezhotovostné platby iba ak je v blízkosti iného unikátneho zariadenia vopred spárovaného s ˇcipovou kartou (napríklad mobilný telefón), ˇco znamená výrazné zvýšenie bezpeˇcnosti. Možnost’ využívat’ ˇcipovú kartu na viaceré úˇcely zároveˇn zvyšuje pohodlnost’ pre užívate- l’ov – v peˇnaženke môžu namiesto 5 rôznych kariet nosit’ jedinú. Táto karta môže teoreticky obsahovat’ aj medicínske údaje nositel’a a v prípade núdze výrazne pomôct’ pri poskytovaní prvej pomoci. 2.3 Bezkontaktné ˇcipové karty Bezkontaktné ˇcipové karty využívajú RF indukciu, ktorá dovol’uje komunikáciu karty s ˇcí- taˇckou v jej bezprostrednej blízkosti. Tie získavajú na popularite napríklad vd’aka elektro- nickým pasom, alebo cestným platobným systémom. 2.4 Kontaktné ˇcipové karty Kontaktné ˇcipové karty majú približne 1 cm2 vel’kú viditel’nú pozlátenú kontaktnú plochu, ktorá vyžaduje, aby bola karta vložená do ˇcítaˇcky. 2.5 Špecifiká SIM kariet SIM karta má v plnej vel’kosti rozmery 85,60 mm × 53,98 mm × 0,76 mm. Pozostáva z mikro- procesora, ROM, RAM, EEPROM a sériového I/O rozhrania. Podporuje T=0 komunikaˇcný protokol definovaný v ISO/IEC 7816-3. APDU príkazy podporované SIM kartami sú uve- dené v tabul’ke 2.1 4
  • 11. 2.5. ŠPECIFIKÁ SIM KARIET INS Názov 0E Erase Binary 20 Verify 70 Manage Channel 82 External Authenticate 84 Get Challenge 88 Internal Authenticate A4 Select File B0 Read Binary B2 Read Record C0 Get Respose C2 Envelope CA Get Data D0 Write Binary D2 Write Record D6 Update Binary DA Put Data DC Update Record E2 Append Record Tabul’ka 2.1: Príkazy SIM kariet 5
  • 12. Kapitola 3 Komunikácia s kartou So SIM kartou sa komunikuje pomocou Application Protocol Data Unit (APDU) príkazov, špecifikovaných v štandarde ISO 7816-4, ktorý je zdarma dostupný na adrese [11]. APDU je medzinárodný štandard na aplikaˇcnej vrstve (7. v ISO-OSI modely). Zoznam APDU príka- zov, definovaných aj v iných štandardoch, je možné nájst’ na adrese [19]. 3.1 C-APDU Command APDU slúži na zasielanie príkazov z ˇcítaˇcky do SIM karty. Skladá sa z hlaviˇcky, ktorá je povinne prítomná a má pevne stanovenú d´lžku a z tela, ktoré má variabilnú d´lžku alebo nemusí byt’ prítomné vôbec. Povinná hlaviˇcka Volitel’né telo CLA INS P1 P2 Lc DATA Le Tabul’ka 3.1: C-APDU Class of Instruction (CLA) indikuje typ príkazu. Ak je táto hodnota ’A0’, znamená to po- užitie pre GSM; ’0X’ znamená ISO definované príkazy a ’8X’ indikuje kreditnú kartu kom- patibilnú s EMV štandardom, alebo aplikaˇcne špecifické využitie. CLA sa tiež využíva na indikovanie zabezpeˇcenej komunikácie alebo logických kanálov. Instruction (INS) kóduje samotný príkaz. Využitý môže byt’ takmer celý adresný priestor tohto bytu s výnimkou nepárnych kódov (kvôli využitiu T = 0 protokolu). P1 a P2 sú parametre, ktoré udávajú dodatoˇcné informácie o príkaze definovanom v INS. Length of command (Lc) indikuje d´lžku dát v zasielanom príkaze. Length expected (Le) indikuje d´lžku oˇcakávanej odpovede. Ak je táto hodnota ’00’, ter- minál oˇcakáva vrátenie správy s maximálnou možnou d´lžkou. Vd’aka možnosti vynechat’ niektoré ˇcasti APDU môžu nastat’ 4 situácie zloženia C- APDU: hlaviˇcka hlaviˇcka Le hlaviˇcka Le DATA hlaviˇcka Lc DATA Le 6
  • 13. 3.2. R-APDU 3.2 R-APDU Response APDU slúži na zasielanie príkazov z karty terminálu ako odpoved’ na C-APDU. Skladá sa z volitel’ného tela a povinného zakonˇcenia. D´lžka dátovej ˇcasti tela závisí na pred- chádzajúcom APDU a jeho Le. Aj napriek pevne stanovenému Le však môže byt’ dátová ˇcast’ prázdna (jej d´lžka sa rovná nule) v prípade, ked’ ˇcipová karta zahlási chybu. Chyby sú kódované pomocou Status Word 1 a 2 (SW1 a SW2). Štruktúra R-APDU môže vyzerat’ takto: SW1 SW2 DATA SW1 SW2 Volitel’né telo Povinné zakonˇcenie DATA SW1 SW2 Tabul’ka 3.2: R-APDU 3.2.1 Chybové kódy Prehl’ad chybových kódov môžeme nájst’ v knihe Smart Card Handbook [18], kapitole 16.10.8: Smart card return codes. Chybové kódy môžeme rozdelit’ na 2 kategórie podl’a toho, ˇci sa predošlý proces uskutoˇcnený pomocou C-APDU ukonˇcil úspešne alebo neúspešne. Pre úspešné ukonˇcenie sa používa najmä ’9000’ (všetko prebehlo v poriadku) a ’9Fxx’, kde ’xx’ znaˇcí, kol’ko bytov dát sa dá získat’ príkazom GET RESPONSE. SW1 || SW2 Význam ’6700’ zlá d´lžka ’6A00’ zlý P1 alebo P2 parameter ’9804’ verifikácia PINu neúspešná Tabul’ka 3.3: Niektoré chybové kódy 7
  • 14. 3.3. NIEKTORÉ APDU PRÍKAZY 3.3 Niektoré APDU príkazy 3.3.1 GET RESPONSE CLA INS P1 P2 Le ’A0’ ’C0’ ’00’ ’00’ d´lžka Tabul’ka 3.4: príkaz GET RESPONSE Použitie príkaz GET RESPONSE závisí na predošlom príkaze. Ak sa použije po príkaze SELECT, GET RESPONSE vráti hlaviˇcku daného MF/DF/EF. Ked’že po získaní ATR je implicitne vyselektovaný MF, je tento príkaz možné použit’ aj ihned’. V Le sa zadá d´lžka súboru, ktorá bola vrátená v SW2 po príkaze SELECT. Byte Popis D´lžka 3 – 4 Celková vel’kost’ pamäte vyselektovaného DF, ktorá nie je alokovaná žiadnemu DF ani EF pod vyselektovaným DF. 2 5 – 6 FID 2 7 typ súboru: • ’01’ = MF • ’02’ = DF • ’04’ = EF 1 15 Poˇcet DF, ktoré sú priamymi potomkami momentálne vyselektovaného DF. 1 16 Poˇcet EF, ktoré sú priamymi potomkami momentálne vyselektovaného DF. 1 19 CHV1 status (tabul’ka 3.6) 1 20 PUK1 status (tabul’ka 3.6) 1 21 CHV2 status (tabul’ka 3.6) 1 22 PUK2 status (tabul’ka 3.6) 1 Tabul’ka 3.5: niektoré dôležité dáta odpovede na príkaz GET RESPONSE po príkaze SE- LECT na MF/DF b8=0: kód neinicializovaný; b8=1: kód inicializovaný b4 – b1: poˇcet zostávajúcich pokusov na zadanie zlého kódu (’0’ znamená zablokovaný) 8
  • 15. 3.3. NIEKTORÉ APDU PRÍKAZY b8 b7 b6 b5 b4 b3 b2 b1 Tabul’ka 3.6: statusu kódov CHV1/2, PUK1/2 3.3.2 READ BINARY Vd’aka predošlému príkazu GET RESPONSE vieme z jeho 3. – 4. bytu odpovede, akú d´lžku transparentného súboru môžeme oˇcakávat’. R-APDU nám v dátovej ˇcasti vráti HEX repre- zentáciu binárnych dát. VERYFI PIN(0000) ’A0 20 00 01 08 30 30 30 30 FF FF FF FF’ ’90 00’ SELECT DF GSM ’A0 A4 00 00 02 7F 20’ ’9F 16’ SELECT EF IMSI ’A0 A4 00 00 02 6F 07’ ’9F 0F’ GET RESPONSE EF IMSI ’A0 C0 00 00 0F’ ’00 00 00 09 6F 07 04 00 1B 00 1B 01 02 00 00 90 00’ READ BINARY ’A0 B0 00 00 09’ ’08 29 13 10 31 00 84 48 30 90 00’ Príklad 3.3.1: Komunikácia so SIM kartou pomocou READ BINARY ’08’ v príklade 3.3.1: Komunikácia so SIM kartou pomocou READ BINARY znamená, že IMSI je kódované na 8 bytoch. Byty, ktoré nesú samotné IMSI, sú uložené v prehode- nej podobe, takže výsledné IMSI je v tomto prípade 231011300488403. SW kód je ’9000’, ˇco znamená, že je všetko v poriadku. 9
  • 16. 3.3. NIEKTORÉ APDU PRÍKAZY Byte Popis D´lžka 3 – 4 vel’kost’ EF: • pre transparentný EF: d´lžka tela EF • pre cyklický alebo lineárne pevný EF: d´lžka záznamu vynáso- bená poˇctom záznamov v EF 2 5 – 6 FID 2 7 typ súboru: • ’01’ = MF • ’02’ = DF • ’04’ = EF 1 9 – 11 podmienky prístupu (tabul’ka 4.1) 3 14 štruktúra EF: • ’00’ = transparentná • ’01’ = lineárne pevná • ’03’ = cyklická 1 15 d´lžka záznamu 1 Tabul’ka 3.7: dáta odpovede na príkaz GET RESPONSE po príkaze SELECT na EF 3.3.3 READ RECORD Tento príkaz slúži na ˇcítanie cyklickych záznamov a položiek záznamov s lineárne pevnou d´lžkou. Ak je P2 = ’04’, znamená to adresovanie absolútne pomocou P1. Ak chcem preˇcítat’ prvý záznam, bude P1 = ’01’. Poˇcet bytov v príklade 3.3.2: Komunikácia so SIM kartou pomocou READ RECORD ob- sahujúcich telefónne ˇcíslo, je uložený v 14. byte dátovej ˇcasti R-APDU od konca (’06’ v prí- klade). Nasleduje typ telefónneho ˇcísla – ’81’ pre národné ˇcíslo a ’91’ pre medzinárodné ˇcíslo. Nasleduje samotné telefónne ˇcíslo v prehodenom slovoslede, doplnené znakmi ’FF’ – v tomto prípade 0517733733. Na znakoch pred tým je uložený názov v telefónnom adresári, v tomto prípade „Taxi Presov;/W“ uložení v 7-bitovom kódovaní. 10
  • 17. 3.3. NIEKTORÉ APDU PRÍKAZY CLA INS P1 P2 Le ’A0’ ’B0’ ’00’ ’00’ d´lžka Tabul’ka 3.8: príkaz READ BINARY CLA INS P1 P2 Le ’A0’ ’B2’ ’xx’ ’04’ d´lžka Tabul’ka 3.9: príkaz READ RECORD VERYFI PIN(0000) ’A0 20 00 01 08 30 30 30 30 FF FF FF FF’ ’90 00’ SELECT DF TELECOM ’A0 A4 00 00 02 7F 10’ ’9F 16’ SELECT EF ADN ’A0 A4 00 00 02 6F 3A’ ’9F 0F’ GET RESPONSE EF ADN ’A0 C0 00 00 0F’ ’00 00 1B 58 6F 3A 04 00 11 00 22 01 02 01 1C 90 00’ READ 1. RECORD ’A0 B2 01 04 1C’ ’54 61 78 69 20 50 72 65 73 6F 76 3B 2F 57 06 81 50 71 37 73 33 FF FF FF FF FF FF FF 90 00’ Príklad 3.3.2: Komunikácia so SIM kartou pomocou READ RECORD 11
  • 18. Kapitola 4 Bezpeˇcnostné prvky 4.1 Prístupové kódy Bez prístupového kódu PIN/PUK sa z karty nedajú zistit’ takmer žiadne údaje vd’aka po- užitým šifrovacím algoritmom. Z tohto dôvodu sa pri forenznej analýze na zariadeniach, pri ktorých nie je dostupný ani PIN ani PUK kód, vyskúšajú 3 štatisticky najpoužívanejšie PIN kódy. Po neúspechu je SIM karta zablokovaná a orgány ˇcinné v trestnom konaní musia požiadat’ operátora o dodanie PUK kódu. Problémom sú karty zo zahraniˇcia, kde je získa- nie PUK kódu zd´lhavé. Vd’aka ochranným prvkom nie je možné urobit’ kópiu SIM karty so všetkými dátami ani pri znalosti prístupových kódov. 4.1.1 CHV (PIN) Personal Identification Number (PIN) je zastaraný termín pre Card Holder Verification in- formation (CHV). Oba pojmy oznaˇcujú 4 – 8-miestny kód slúžiaci na autentizáciu užívatel’a voˇci SIM karte. CHV zaberá na karte 8 bytov, kde sú povolené len numerické znaky. Ak si užívatel’ zvolí CHV1 kratší než 8 znakov, rozdiel sa doplní pomocou ret’azca ’FF’. Po- skytovatel’ SIM karty nastaví PIN1/BPIN na predvolenú hodnotu (väˇcšinou 4-miestnu) a užívatel’ovi je odporúˇcané si ju po prvom zapnutí zmenit’. Po zadaní 3 nesprávnych PIN kódov sa mobil zablokuje a na jeho opätovné sfunkˇcnenie je potrebné zadat’ PUK kód. 4.1.1.1 CHV1 (PIN1) PIN1 kód je nutný na zapnutie mobilnej stanice a normálne využívanie SIM karty mobil- nou stanicou. Bez autentizácie týmto kódom sa nedajú využívat’ služby SIM karty okrem núdzového volania. 4.1.1.2 CHV2 (PIN2) CHV2 kód slúži na správu niektorých menších funkcionalít na karte a používa sa len na ADF. Túto hodnotu pozná iba mobilný operátor, rovnako ako PUK2 kód. Blokáciou CHV2 kódu nedochádza k narušeniu bežnej funkcionality SIM karty. 12
  • 19. 4.2. OCHRANA PRÍSTUPOVÝCH KÓDOV 4.1.1.3 BPIN (MPIN) Banking PIN (BPIN), alebo obˇcas nazývaný Mobile Banking PIN (MPIN) je kód distribu- ovaný spolu s PIN1, PUK1 a BPUK kódmi (pod stieracími pol’ami) a SIM kartou. Tento 4-miestny kód slúži na prácu s GSM bankingom. Poskytuje vyššiu bezpeˇcnost’ pre služby elektronického bankovníctva, ked’že je oddelený od CHV1 kódu. Blokáciou BPIN kódu ne- dochádza k narušeniu bežnej funkcionality SIM karty. 4.1.2 PUK PIN Unlock Key (PUK) je 8-miestny kód dodávaný poskytovatel’mi SIM kariet (PUK1 a BPUK). Kódovanie PUK kódu je rovnaké ako kódovanie CHV kódu s rozdielom, že tento ret’azec musí mat’ stále d´lžku práve 8 znakov. Ak sa PUK kód zadá 10-krát nesprávne, SIM karta je natrvalo zablokovaná a je potrebné si zaobstarat’ novú. Pri trvalom zablokovaní SIM karty neexistuje spôsob, akým by sa dali získat’ dáta na forenznú analýzu [14]. 4.2 Ochrana prístupových kódov Aj napriek tomu, že CHV1/2 sú uložené v EF súboroch, je zabezpeˇcenie EF so samotnými prístupovými kódmi vysoké vd’aka dvom hl’adiskám: • FID týchto EF nie sú verejne známe. Ked’že súbory sa dajú preˇcítat’, bolo by prav- depodobne možné zistit’ nieˇco o danom EF súbore a analyzovat’ jeho obsah offline [15]. • Poˇcítadlo zlých pokusov PINu je najprv znížené, až potom dôjde k samotnej verifi- kácii PINu a v prípade správneho PINu je zvýšené. Toto hl’adisko je bezpeˇcné hlavne voˇci odberovej analýze, kde ak by to bolo riešené iným spôsobom (najprv by prebeh- la verifikácia a podl’a nej by sa poˇcítadlo znížilo/zvýšilo), bolo by možné prerušit’ napájanie, ak by bol PIN kód nesprávny, alebo naopak pokraˇcovat’ ako autentizova- ný užívatel’ po úspešnej verifikácii. 4.3 Prístup k súborom Každý súbor sa riadi špecifickými prístupovými pravidlami: • ALW: akcia môže byt’ uskutoˇcnená stále (napríklad ˇcítanie LP) • CHV1: akcia môže byt’ uskutoˇcnená iba ak bude splnená aspoˇn 1 z 3 podmienok: – v priebehu momentálnej session bol poskytnutý správny CHV1 – CHV1 indikátor je nastavený na disable – UNBLOCK CHV1 bol úspešne uskutoˇcnený v momentálnej session 13
  • 20. 4.3. PRÍSTUP K SÚBOROM • CHV2: akcia môže byt’ uskutoˇcnená iba ak bude splnená aspoˇn 1 z 2 podmienok: – v priebehu momentálnej session bol poskytnutý správny CHV1 – UNBLOCK CHV1 bol úspešne uskutoˇcnený v momentálnej session • ADM: o tieto práva sa stará administratívna autorita • NEV: akcia nemôže byt’ uskutoˇcnená nikdy cez SIM/ME (Mobile Equipment) roz- hranie. SIM karta však môže uskutoˇcnit’ akciu vnútorne. Úroveˇn prístupových pravidiel nie je hierarchická – napríklad ak zadám CHV2 kód, nemám oprávnenie uskutoˇcˇnovat’ akcie s potrebným CHV1 oprávnením. Ak zadám nejaký kód, mám oprávnenie robit’ akcie vyžadujúce tento kód až do konca session. Prístupové práva sa k danému EF zistia pomocou príkazu SELECT a jeho odpovede v 9. – 11. byte. CHV1/2 status (enabled/disabled a poˇcet zostávajúcich pokusov) sa zistí príkazom SELECT na akékol’vek DF alebo MF a jeho odpoved’ou na 19./20. byte. Level Prístup 0 ALW 1 CHV1 2 CHV2 3 rezervované 4 – 14 ADM 15 NEV Tabul’ka 4.1: Interpretácia bytu prístupových kódov 14
  • 21. Kapitola 5 Štruktúra a obsah pamätí na SIM karte • Read-Only Memory (ROM) je energeticky nezávislá pamät’ obsahujúca operaˇcný systém karty a bezpeˇcnostné algoritmy. • Random Access Memory (RAM) je energeticky závislá pamät’, v ktorej prebiehajú výpoˇcty algoritmov a slúži aj ako vyrovnávacia pamät’. • Electronicly-Erasable Programable Read-Only Memory (EEPROM) je energeticky ne- závislý typ pamäte, v ktorom sú uložené úˇcastnícke dáta, napríklad ICCID, IMSI, Ki...Ked’že má ale obmedzený poˇcet zápisov, je vyvinutá snaha zbytoˇcne neprepi- sovat’ dáta, pokial’ to nie je nutné. 5.1 Hierarchia súborového systému na SIM karte Súborový systém je uložený v pamäti EEPROM ako hierarchická stromová štruktúra. Každý súbor je jednoznaˇcne identifikovatel’ný pomocou následnosti otvorených DF a identifikáto- ru súboru (FID), ktorý má d´lžku 2 byty. Súbory teda nemajú klasický názov ako v bežnom súborovom systéme na PC. Rozoznávame 3 druhy súborov: • Master File (MF) je koreˇnovým (root) adresárom, ktorý môžeme prirovnat’ k linuxo- vému „/“. Môže obsahovat’ 1 alebo viac DF/EF súborov. Adresa MF je ’3F00’. • Dedicated File (DF) je ekvivalent prieˇcinkov (uzol v stromovej štruktúre), obsahuje iba hlaviˇcku. Špeciálnym typom DF je Application Dedicated File (ADF), ktorý si pod sebou uchováva všetky DF a EF patriace k danej aplikácii. • Elementary File (EF) je ekvivalent súborov (list v stromovej štruktúre), obsahuje hla- viˇcku aj telo. Existujú 3 druhy štruktúry fyzického záznamu EF v súborovom systéme karty: • transparentná (transparent) je sekvencia bytov s l’ubovol’ným prístupom. Celková d´lžka súboru je definovaná v jeho hlaviˇcke. • lineárna pevná (linear fixed) je sekvencia záznamov, kde má každá položka vopred stanovenú d´lžku. Prvý záznam je indexovaný ˇcíslom 1. Poˇcet záznamov a ich celková vel’kost’ sú definované v hlaviˇcke. 15
  • 22. 5.2. DÔLEŽITÉ EF • cyklická (cyclic) slúži na uchovávanie údajov v chronologickom poradí. Ked’ boli všetky sloty na záznamy využité, po pridaní nového záznamu sa prepíše najstaršia položka (FIFO). Poˇcet záznamov a ich celková vel’kost’ sú definované v hlaviˇcke. Niektoré zdroje uvádzajú aj lineárny zoznam s variabilnou d´lžkou. Túto možnost’ však štandard GSM 11.11 [6] nešpecifikuje. Všetky súbory na smart kartách sú objektovo orientované. Z toho vyplýva, že musia byt’ najprv vyselektované a až potom sa s nimi dá pracovat’. EF FID DF štruktúra ˇcítanie zápis ADN 6F3A TELECOM linear fixed CHV1 CHV1 HPLMN 6F31 GSM transparent CHV1 ADM ICCID 2FE2 MF transparent ALW NEV IMSI 6F07 GSM transparent CHV1 ADM KC 6F20 GSM transparent CHV1 CHV1 KCGPRS 6F52 GSM transparent CHV1 CHV1 LND 6F44 TELECOM cyclic CHV1 CHV1 LOCI 6F7E GSM transparent CHV1 CHV1 LP 6F05 GSM transparent ALW CHV1 MSISDN 6F40 TELECOM linear fixed CHV1 CHV1 PHASE 6FAE GSM transparent ALW ADM SMS 6F3C TELECOM linear fixed CHV1 CHV1 SPN 6F46 GSM transparent ALW ADM SST 6F38 GSM transparent CHV1 ADM Tabul’ka 5.1: niektoré EF a ich vlastnosti 5.2 Dôležité EF 5.2.1 ADN Abbreviated Dialing Numbers sú telefónne ˇcísla uložené spolu s dodatoˇcnou informáciou (textovým ret’azcom), ktoré môžu byt’ pohodlne vyvolané z telefónu. Bežná SIM karta má pamät’ na 250 kontaktov v tomto telefónnom zozname. 5.2.2 HPLMN Home Public Land Mobile Network search period udržuje informácie o ˇcasovom intervale pre vyhl’adávanie domácej siete. Tento údaj sa uvádza v minútach a je obvykle nastavený na 5 minút. 16
  • 23. 5.2. DÔLEŽITÉ EF 5.2.3 ICCID Integrated Circuit Card Identification je unikátne ˇcíslo SIM karty, ktoré nemôže byt’ zmene- né za žiadnych okolností a je fyzicky vytlaˇcené na líci SIM karty. ICCID sa dá analyzovat’ pomocou online analyzátora [9] a podl’a ITU-T E.118 [2] pozostáva z 19 ˇcíslic. 89 420 2 039961122830 2 Príklad 5.2.1: ICCID ˇcíslo • Prvá dvojica znamená Major Industry Identifier (MII) (89 v príklade znaˇcí použitie na telekomunikaˇcné úˇcely). • ˇDalšie 1 až 3 ˇcíslice sú Mobile Country Code (MCC) zadané v odporúˇcaní E.164 [3] (420 v príklade je ˇCeská republika [13]). • ˇDalšie 1 až 2 ˇcíslice sú Mobile Network Code (MNC), alebo Issuer Identifier, ktoré sa viažu na konkrétnu krajinu (2 v príklade je operátor O2 [10]). • Zvyšné ˇcíslice (s výnimkou poslednej) sú Individual Account Identification Number (IAIN), ktoré si vytvára samotný operátor. • Posledná ˇcíslica je kontrolný súˇcet spoˇcítaný pomocou Luhnovho algoritmu (ˇcíslo 2 v príklade). Pri spojení MII, MCC a MNC vznikne maximálne 7-miestne ˇcíslo, ktoré sa nazýva Issuer Identificatoin Number. V príklade je to ˇcíslo 894202. Obrázok 5.1: slovenské a ˇceské údaje od Telefónica O2 [4] 17
  • 24. 5.2. DÔLEŽITÉ EF 5.2.4 IMSI International Mobile Subscriber Identity je unikátne ˇcíslo v GSM systéme o maximálnej d´lž- ke 15 znakov, ktoré jednoznaˇcne identifikuje úˇcastníka siete. Dá sa analyzovat’ napríklad pomocou online analyzátora [9]. Pozostáva z 3-miestneho ˇcísla MCC, ktoré identifikuje kra- jinu; 2-miestneho (európsky štandard) alebo 3-miestneho (severoamerický štandard) MNC, ktoré identifikuje mobilného operátora v danej krajine a maximálne 10-miestne Mobile Sub- scription Identification Number (MSIN), ktoré pridel’uje mobilný operátor v danej krajine na jednoznaˇcnú identifikáciu úˇcastníka siete. IMSI sa normálne neprenáša vzduchom v plain- texte, aby sa neprezradila lokácia daného úˇcastníka siete. Namiesto toho sa na identifikáciu posiela TMSI spolu s LAI. Pri realizácii telefónneho hovoru je najprv potrebné preložit’ telefónne ˇcíslo volaného na IMSI (pomocou databázy, ktorá mapuje telefónne ˇcísla na IMSI) a hovor je potom presme- rovaný na aktuálnu polohu daného IMSI. Príklad: 230 02 1900572323. MCC = 230 pre ˇCeskú republiku [13], MNC = 02 pre O2, MSIN = 1900572323. MCC-MNC Operátor 230-01 T-Mobile 230-02 230-02 230-03 Vodafone 230-99 RD Centre Tabul’ka 5.2: zoznam MNC aktívnych ˇceských operátorov k dˇnu 09.04.2012 5.2.5 Kc, KcGPRS Cipher Key je tajný symetrický kl’úˇc slúžiaci na šifrovanie dát zasielaných vzduchom medzi mobilnou stanicou a základˇnou. 5.2.6 Ki Individual Key alebo Authentication Key je tajný 128-bitový symetrický kl’úˇc neznámy uží- vatel’ovi, ktorý slúži na autentizáciu a generovanie šifrovacích kl’úˇcov. Ki bolo špeciálne navrhnuté tak, aby sa nedalo kompromitovat’ pomocou smart-card rozhrania. Ki sa nikdy neposiela do siete ani do mobilného telefónu. Všetky operácie teda prebiehajú vo vnútri SIM. Na starších SIM kartách však bola objavená chyba v GSM kryptografii, umožˇnujúca zistit’ Ki a tým pádom klonovat’ SIM karty [17]. 5.2.7 LND Last Number Dialed slúži na uschovanie posledných volaných ˇcísel. Tento súbor je cyklickej štruktúry, takže najstaršie dáta sa prepíšu novšími v prípade nedostatku vol’ných záznamov. 18
  • 25. 5.2. DÔLEŽITÉ EF ˇCíslo samotné sa ukladá na posledných 14 bytoch, kde prvý byte urˇcuje d´lžku ˇcísla, druhý nesie informáciu o medzinárodnosti hovoru (’81’ pre národný a ’91’ pre medzinárodný) a d’alej nasledujú byty so samotným telefónnym ˇcíslom uložené s prehodenými polovicami bytov prípadne doplnené sprava ’FF’. Príklad na posledných 14 bytov: ’07 91 24 91 70 21 43 65 FF FF FF FF FF FF’. ˇCíslo je dlhé 7 bytov, ide o medzinárodný hovor (takže sa v praxi pred ˇcíslo pridajú znaky ’00’). ˇCíslo teda vyzerá: 00421907123456. Niektoré mobilné telefóny pred toto ˇcíslo pridávajú aj textový ret’azec s informáciou o volanom ˇcísle podl’a adresára. 5.2.8 LOCI Location information drží momentálne informácie o lokácii. Prvých 8 znakov udáva Tem- porary Mobile Subscriber Identity (TMSI), d’alších 10 znakov je LAI, nasledujú 2 znaky pre TMSI TIME, ktoré sa už ale nevyužívajú a sú nastavené na ’FF’ a posledné 2-ˇcíslie znamená status (tabul’ka 5.3). hodnota status 00 Updated 01 Not updated 02 Forbidden PLMN 03 Forbidden location area Tabul’ka 5.3: status TMSI Príklad: ’1EBB5FCB 230F027002 FF 00’. TMSI = ’1EBB5FCB’, LAI = ’230F027002’, TMSI TIME = ’FF’ (nepoužívané), status = aktualizovaný. 5.2.8.1 LAI Location Area Identity je unikátne ˇcíslo lokálnej stanice operátora. Toto ˇcíslo je uložené na SIM karte, aby zariadenie vedelo, s ktorou stanicou má karta komunikovat’. Po presunutí na inú stanicu sa LAI novej stanice pridá na SIM kartu tak, že ostatné LAI ostanú zachované. Toto je výhoda pre forenzných analytikov, pretože môžu urˇcit’ geografickú polohu, kde sa karta nachádzala, ked’ bola zapnutá. LAI sa skladá z 3 ˇcíslic MCC, 2 – 3 ˇcíslic MNC a 4 ˇcíslic Local Area Code (LAC), ktoré umožˇnuje maximálne 65536 staníc v jednom GSM PLMN. Príklad: ’230 F02 7002’. MCC = ’230’ ( ˇCeská republika), MNC = ’02’ (operátor O2), LAC = ’7002’. 5.2.9 LP Language Preferences je súbor, ktorý udržuje informácie o preferovaných jazykoch zorade- ných podl’a priority. Tento súbor sa riadi štandardom GSM 03.38 [7]. 19
  • 26. 5.2. DÔLEŽITÉ EF 5.2.10 MSISDN Mobile Station ISDN Number znamená telefónne ˇcíslo SIM karty. Je to avšak nepovinný údaj, takže ho niektorí operátori na SIM karte neimplementujú. 5.2.11 PHASE Obsahuje informácie o fáze – fáza oznaˇcuje postupné evoluˇcné štádiá vývoja GSM systému a je priamo zodpovedná za funkcionalitu obsiahnutú v SIM kartách. Fáza 1 obsahovala iba pár základných služieb pre komunikácie v GSM využitie IMSI a šifrovania. Fáza 2 bol vel’mi zavedený štandard, ktorý ale nemohol podliehat’ zmenám. Oproti tomu Fáza 2+ umožˇnuje pridávanie nových funkcionalít. Fáza v EF je kódovaná takto: ’00’ pre fázu 1; ’02’ pre fázu 2; ’03’ pre fázu 2+. fáza 1 fáza 2 fáza 2+ autentizácia SIM karty v sieti PIN2 SDN ochrana dát na SIM karte PIN kódom FDN High-Speed Circuit- Switched Data (HSCSD) telefónny adresár PLMN Over The Air (OTA) SMS konferenˇcné hovory SIM ToolKit (STK) roaming posledné volané ˇcísla Barred Dialing Numbers (BDN) prenos hlasu GSM 1800 MHz GPRS Tabul’ka 5.4: zoznam niektorých funkcionalít fáz 5.2.12 SMS Short Message Service je súbor obsahujúci niekol’ko 176 bytových správ. Ukladanie SMS je špecifikované v štandarde GSM 03.40[5]. Ked’že pamät’ EEPROM má obmedzený poˇcet zápisov, ked’ užívatel’ vymaže SMS zo SIM karty, ich obsah sa automaticky nepremaže na samé ’FF’, ale miesto toho sa nastaví 1. byte záznamu na ’00’, ˇco znamená vol’nú pozíciu. Po vymazaní sú teda staré SMS stále nedotknuté, kým ich neprepíšu novšie správy. Ak je správa kratšia než maximálna d´lžka, je doplnená sprava znakmi ’FF’. Samotný textový obsah SMS správy má iba 140 oktetov a môže byt’ kódovaný v 3 rôznych kódovaniach. Existujú „dlhé SMS“ nazývané aj „multi-segmentové SMS“, ktoré sa dajú poslat’ pomo- cou viacerých normálnych SMS. Na zaˇciatku (prvých 7 bytov) sa k nim ale pridáva User Data Header (UDH) s informáciami o segmentácii, a preto sa do nich vojde menší poˇcet znakov. Úlohou mobilného telefónu je spojit’ multi-segmentové SMS a ukázat’ z nich užíva- tel’ovi iba 1 dlhú SMS správu. 20
  • 27. 5.2. DÔLEŽITÉ EF kódovanie normálna SMS dlhá SMS 7-bit 160 153 8-bit 140 134 16-bit (UCS-2) 70 67 Tabul’ka 5.5: poˇcty znakov v daných kódovaniach 5.2.13 SPN Service Provider Name je 17 bytov vel’ký súbor, ktorý si v sebe udržiava meno mobilné- ho operátora, kódovaného pomocou GSM 03.38 [7]. Ak je meno menšie než maximum, je doplnené sprava znakmi ’FF’. 5.2.14 SST SIM Service Table obsahuje tabul’ku, ktorá obsahuje informácie o dostupných a aktivova- ných službách na SIM karte, ktoré sú doplnkovými službami ku základným hlasovým služ- bám. Služby sú definované v štandarde GSM 11.11 [6]. 21
  • 28. Kapitola 6 Prehl’ad aplikácií na prácu so SIM kartami Na internete je k dispozícii pomerne málo použitel’ných nástrojov na prácu so SIM karta- mi, ktoré zvládajú PC/SC špecifikácie. Vybral som z nich tie, ktoré majú dostupné aspoˇn skúšobné verzie. 6.1 Dekart: SIM Manager 3.1 Obrázok 6.1: SIM Manager SIM Manager je komerˇcný software na ˇcítanie, ale aj zmenu, vymazávanie a pridávanie údajov na SIM karte. Jeho cena je 29USD. Bez autentizácie PINom je možné zistit’ poˇcet zostávajúcich zlých pokusov PIN1/2 a PUK1/2, ICCID, fázu, SPN a ATR a následne ich uložit’ do csv súboru. 22
  • 29. 6.2. SIMCARDEXPLORER 1.1.2 Po autentizácii PINom sa dá zistit’ IMSI a posledná známa lokácia SIM karty. Okrem to- ho sa nasledujúce údaje dajú nielen ˇcítat’, ale aj menit’ a mazat’ (ak to daný súbor povol’uje a mám požadované autentizaˇcné kódy): telefónny zoznam, SMS, PLMN, zakázané PLMN, SDN, FDN, LND, MSISDN. Získané informácie sa dajú exportovat’ do niekol’kých formátov. Program podporuje aj vytvorenie kópie SIM karty, konkrétne prekopíruje vybrané z vyššie uvedených údajov na inú SIM kartu. Pritom môže ponechat’ alebo zmazat’ dáta na ciel’ovej SIM karte. Je podporovaná zmena PIN kódu, vymazanie všetkých dát na SIM karte alebo import kontaktov z Google, Yahoo alebo iTunes. V nastaveniach je možnost’ zobrazenia vy- mazaných SMS správ, aj ked’ je defaultne vypnutá. SMS správy je možné úplne vymazat’ (prepísat’ znakmi ’FF’), obnovit’ z vymazaných, alebo vymazat’. 6.2 SimCardExplorer 1.1.2 Obrázok 6.2: SimCardExplorer SimCardExplorer je vol’ne dostupný software dostupný v 3 jazykových mutáciách (an- 23
  • 30. 6.3. CLASSICALSOFT: WINSIM PROFESSIONAL 1.0 gliˇctina, francúzština, španielˇcina). Jeho posledná verzia vyšla v roku 2007. Bez PINu zobrazuje ATR a možnost’ odblokovania PIN1/2 kódov, ale aj možnost’ pre- ˇcítania EF súborov, ktoré majú nastavené prístupové práva na ˇcítanie ALW. Obsah týchto súborov však nie je dostupný v l’udsky ˇcitatel’nej podobe, ale v HEX. Ako jeden z mála z dostupných programov dokáže zobrazit’ SST, a to v prehl’adnej ta- bul’ke s farebným zvýraznením ne/aktívnych a ne/dostupných služieb. Dokáže tiež preˇcí- tat’ mnohé EF a poskytnút’ ich detaily (popis, typ súboru, FID, vel’kost’ dát a samotné dáta v HEX). Interpretovat’ do l’udsky ˇcitatel’ného formátu však vie okrem SST iba SMS, LND, FDN, MSISDN a telefónny zoznam. Pri ˇcítaní položiek s diakritikou má problém (konkrétne v názvoch kontaktov v UCS-2 kódovaní s prvým bytom ’81’ nepíše správne znaky a s pr- vým bytom rovným ’80’ nevypíše na danom mieste žiaden ret’azec), rovnako ako pri ˇcítaní multi-segmentových SMS, kde zobrazuje na konci samotného textu SMS správy UDH v ne- ˇcitatel’nej forme. SMS dokáže úplne vymazat’, vymazat’ a obnovit’. Položky v ADN doká- že vytvárat’, mazat’ a editovat’. Ako iné programy, aj tento zvláda zmenu a odblokovanie PIN1/2 kódov, ale ako jeden z mála umožˇnuje aj zmenu PIN1 identifikátora na disable, ˇcím umožní prístup ku karte bez zadania PIN1 kódu. 6.3 Classicalsoft: WinSIM Professional 1.0 WinSIM Professional je dostupný iba v 1 verzii, ktorá vyšla v roku 2008. Licencia pre 1 poˇcí- taˇc stojí 500USD. Pre bežných užívatel’ov je tento nástroj neprínosný, pretože neprezentuje žiadne dáta v ˇcitatel’nej podobe. Program slúži na prácu s APDU príkazmi. Má preddefinované všetky bežné APDU prí- kazy, ktoré musia SIM karty podporovat’. Silnou stránkou tohto programu je podpora skrip- tovania APDU príkazov, možnost’ breakpointov alebo export logov s príkazmi, dátovými odpoved’ami a SW1 + SW2. Asi najunikátnejšia vlastnost’ tohto programu je možnost’ preˇcítania informácií o akom- kol’vek DF/EF na karte. Pre DF zobrazuje ich ID, typ (MF/DF), alokovanú pamät’, poˇcet DF a poˇcet EF, ktoré obsahuje. Pre EF zobrazuje FID, typ (EF), vel’kost’, typ súboru, status a podmienky prístupu. Samotné súbory sa dajú aj preˇcítat’, ale iba ich HEX podoba, aj to až po zadaní d´lžky súboru. 6.4 Woron Scan 1.09 Woron Scan je vol’ne šíritel’ný program, ktorý vznikol vd’aka ˇclenom fóra KIEVSAT. An- tivírové programy od spoloˇcnosti ESET ho však detekujú ako trójskeho koˇna. Ako jeden z mála dostupných nástrojov dokáže na starých SIM kartách zistit’ Ki, ˇco môže trvat’ cca 4 hodiny. Okrem Ki zistí IMSI, ICCID, ATR, poˇcet zostávajúcich PIN1/2 PUK1/2 pokusov, zmenit’ PIN1, odblokovat’ PIN1/2, zobrazit’ a exportovat’ telefónny zoznam a pridávat’ a menit’ jeho položky. Položky v telefónnom zozname však nezobrazuje všetky správne – ne- ráta s kódovaním GSM_DEFAULT, takže napríklad ’05’, ˇco je v danom kódovaní znak „é“, zobrazí ako prázdny. 24
  • 31. 6.5. COMPELSON: MOBILEDIT! FORENSIC 6.1.0.1634 Obrázok 6.3: WinSIM Professional 6.5 Compelson: MOBILedit! Forensic 6.1.0.1634 MOBILedit! Forensic je komerˇcný, neustále aktualizovaný a vyvíjaný software na forenznú analýzu mobilných telefónov a SIM kariet. Je využívaný zložkami FBI a CIA, je vysoko hod- notený spoloˇcnost’ou NIST a umožˇnuje iba read-only mód, aby nedošlo k zmene niektorých položiek a predišlo sa tak zniˇceniu dôkazov. Je dostupný v Lite verzii ktorá má zablokovanú niektorú funkcionalitu. Cena je 399EUR bez DPH. Program po pripojení PC/SC zariadenia zobrazuje poˇcet možných zlých pokusov za- dania PINu a požaduje zadanie PIN kódu, alebo PUK kód s následnou zmenou PINu. Bez zadania PINu vypíše ATR a ICCID. Ked’ ale chcem zadat’ PIN kód po tom, ako som zrušil dialóg pri pripojení zariadenia, musím zariadenie odpojit’ a zapojit’ znovu, alebo vypnút’ a zapnút’ program – program nepodporuje opätovné zadanie PINu inokedy ako pri pripojení zariadenia. Po autentizovaní PINom je možné zistit’ IMSI, fázu, LAI, poˇcet možných zlých pokusov PIN1/2 a PUK1/2, telefónny adresár, posledné volané ˇcísla (LND), FDN, alebo preferované a zakázané siete (so slovným popisom štátu a siete). SMS správy sú viditel’né bez príznaku ˇci sú vymazané alebo nie. ˇDalej je možné pomocou tohto programu odblokovat’ PIN1/2 25
  • 32. 6.5. COMPELSON: MOBILEDIT! FORENSIC 6.1.0.1634 Obrázok 6.4: Woron Scan pomocou PUK1/2, aj samotná zmena PIN1/2. Výhodou je možnost’ zálohovania všetkých získaných dát do súboru. Po aktivácii v platenej verzii programu je možné obnovit’ vytvorené zálohy, exporto- vat’ údaje do rôznych formátov alebo generovat’ forenzné reporty jedným kliknutím, ˇco eliminuje l’udský faktor. Program dokáže vygenerovat’ reporty aj z predošlých pripojených zariadení, nie iba zo zariadenia, ktoré je momentálne pripojené. 26
  • 33. 6.5. COMPELSON: MOBILEDIT! FORENSIC 6.1.0.1634 Obrázok 6.5: MOBILedit! Forensic Lite 27
  • 34. Kapitola 7 Praktická ˇcast’ Program Simple SIM Reader bol vytvorený v Jave v JDK7 pomocou vol’ne šíritel’ného vý- vojového prostredia NetBeans IDE. Na komunikáciu so SIM kartou používa balíˇcek ja- vax.smartcardio a na interpretáciu samotného textového obsahu SMS správ knižnicu smsj- 20051126.jar [20], konkrétne balíˇcky org.marre.sms. Ked’že Java neobsahuje znakovú sadu GSM_DEFAULT, využil som ju z knižnice JCharset [12]. 7.1 GUI Obrázok 7.1: Simple SIM Reader 28
  • 35. 7.2. VYPISOVANÉ ÚDAJE BEZ ZNALOSTI PIN KÓDU Návrh GUI je jednoduchý, ale úˇcelný. Tvorí ho jedno vel’ké textové pole a 4 základné menu položky. Do textového pol’a sa vypisujú všetky údaje získané zo SIM karty, dajú sa l’ahko skopírovat’ alebo uložit’ do textového súboru. Menu, chybové hlásenia, ako aj vypi- sované atribúty sú v angliˇctine. 7.1.1 File Nachádzajú sa tu 2 možnosti – Save, ktorý uloží obsah textového okna do textového súboru a Exit, ktorý vypne celý program. 7.1.2 Card Tlaˇcidlo Connect ustanoví spojenie s prvou ˇcítaˇckou kariet, ktorú dostane a so SIM kartou v nej. Táto možnost’ je dostupná iba ak nie je v programe otvorené žiadne spojenie na SIM kartu. Po pripojení na kartu sa táto možnost’ zneprístupní až do stlaˇcenia Disconnect. Touto vol’bou sa zruší spojenie so SIM kartou a ˇcítaˇckou. 7.1.3 Data Najdôležitejšia ˇcast’ na celom GUI, ktorá sa stará o vypisovanie dát a autentizáciu PIN kó- dom. Možnost’ Clear jednoducho vymaže obsah textového okna, Read without PIN vypíše všetky informácie, ktoré sa podarilo zistit’ bez znalosti PIN kódu. Položka Read with PIN je neprístupná, pokial’ sa užívatel’ vopred úspešne neautentizoval znalost’ou PIN kódu a vypisuje všetky informácie, ktoré sa podarilo zistit’ vd’aka znalosti PINu. Možnost’ Enter PIN je zodpovedná za autentizovanie PINom. Ak užívatel’ zadá PIN o d´lžky menej ako 4 znaky alebo viac ako 8 znakov, PIN sa neposiela na SIM kartu, ale program upozorní užívatel’a na zlú d´lžku PINu. Rovnako, ak sa v PINe nachádzajú iné ako numerické znaky, PIN sa neposiela na SIM kartu a užívatel’ je na túto skutoˇcnost’ upozorne- ný. Po úspešnej autentizácii PINom sa zneprístupní jeho opätovné zadanie, ktoré sa znovu sprístupní až po odpojení karty. 7.1.4 Help Má zatial’ iba jedinú položku About. V nej sú informácie o konkrétnej verzii programu, mojom mene a kontaktnom emaile. 7.2 Vypisované údaje bez znalosti PIN kódu Ked’ je program úspešne pripojený na SIM kartu, dokáže z nej preˇcítat’ mnohé informácie, ktoré majú prístupové práva na ˇcítanie nastavené na ALW. Vypíše ATR, ICCID (s rozpársovanými MII, MCC, MNC, IIN, IAIN a ˇcíslicu kontrolného súˇctu), SPN, PHASE, PIN 1/2 a PUK 1/2 statusy (initialised alebo not initialised) a poˇcet ich zostávajúcich pokusov a preferované jazyky. 29
  • 36. 7.3. VYPISOVANÉ ÚDAJE PO AUTENTIZOVANÍ PIN KÓDOM 7.3 Vypisované údaje po autentizovaní PIN kódom Po úspešnom pripojení na SIM kartu a po zadaní správneho PIN kódu je program schopný preˇcítat’ omnoho viac informácií. Konkrétne tie, ktoré majú práva na ˇcítanie nastavené na CHV1. Zobrazuje sa IMSI s rozpársovanými MCC a názvom danej krajiny, MNC a názvom da- ného operátora a MSIN. Názvy krajiny v MCC a operátora v MNC sú zatial’ funkˇcné iba pre Slovensko a ˇCeskú republiku. ˇDalej sa zobrazí LOCI a jeho rozpársované informácie TMSI, LAI, MCC, MNC, LOC, TMSI TIME a Location Update Status. Ked’že niektoré mobilné telefóny nezaznamenávajú na SIM kartu posledné volané ˇcísla, táto položka je niekedy prázdna. Ak to daný mobil využíva, zobrazí sa tam bud’ telefón- ne ˇcíslo, alebo pri niektorých SIM kartách aj názov volaného kontaktu spolu s telefónnym ˇcíslom. Kc, KcGPRS, HPLMN sú d’alšie informácie, ktoré sú vypisované, a to bez akejkol’vek interpretácie. Telefónny zoznam je vypisovaný v l’udsky ˇcitatel’nej podobe – poradové ˇcíslo kontaktu, jeho názov a telefónne ˇcíslo, ktoré je vypisované s prefixom 00, ak ide o medzinárodné ˇcíslo. Môže sa stat’, že sú niektoré položky vypisované až ku koncu ADN záznamu – posledné ˇcísla väˇcšinou okupujú vopred definované ˇcísla mobilným operátorom. Program nevypi- suje prázdne telefónne záznamy, aj ked’ ich musí preˇcítat’. Výpis samotného telefónneho zoznamu trvá dlhší ˇcas, cca 7 sekúnd pre 250 záznamov. Posledná vec, ktorú program vypisuje, sú SMS správy. Vypisuje ich poradové ˇcíslo, zá- znam o vymazaní (vypisuje kompletne aj vymazané SMS), ˇcas prijatia správy, ˇcíslo odosie- latel’a, príznak, ˇci je daná SMS multi-segmentová a ak je tak, jej offset a samozrejme samotný text správy. 7.4 Vnútorná štruktúra programu Program je štruktúrovaný podl’a logických celkov. Obsahuje dátové triedy, ktoré si o se- be iba nesú informácie – Contact, DF, DatabaseOfEF, EF, ICCID, IMSI, LOCI a SMS; výnimky BadStatusWordException, NoReaderFoundException, WrongLengthOf- PINException, WrongPINCharactersException a WrongPINException, triedu GUI zastrešujúcu celé grafické rozhranie, triedu SwingWorkerGUI, ktorá sa stará o plynulé vy- pisovanie dát bez znalosti a so znalost’ou PIN kódu bez toho, aby zamrzlo hlavné okno programu. 7.4.1 CardManager Je trieda, ktorá zistí všetky pripojené terminály, dokáže sa pripojit’ na prvý terminál, ktorý vidí a na SIM kartu, ktorá je v ˇnom. Sprostredkováva aj samotné odpojenie od karty a ter- minálu, vie verifikovat’ PIN1 vložený ako String alebo byte[]. V poslednom rade slúži na samotné zasielanie APDU príkazov do karty vo forme byte[] a získavanie R-APDU. 30
  • 37. 7.5. KOMPLIKÁCIE 7.4.2 ApduWorker ApduWorker pracuje na logicky vyššej úrovni – vytvára APDU príkazy, ktoré preposiela do triedy CardManager. Funkcie, ktoré sa dajú použit’, sú select(), getResponse(), readBinary() a readRecord(). V argumentoch majú tieto funkcie už iba FID súboru, na ktorý chcú danú operáciu aplikovat’ (select() a getResponse()), prípadne byte[] pre- došlej odpovede na getResponse() (readBinary() a readRecord()) alebo poradové ˇcíslo záznamu, ktorý chcem ˇcítat’ (readRecord()). Všetky tieto funkcie vracajú byte[], kto- rý využijú funkcie o logickú úroveˇn vyššie. 7.4.3 Getters Getters pracuje logicky nad triedou ApduWorker. Väˇcšina jeho funkcií vracia String (na- príklad getPhase()), dátovú entitu (napríklad getIMSI()), alebo List dátových entít (getListOfSMS()). 7.4.4 WriteIntoSystemOut Ako už názov napovedá, táto trieda sa stará o výpis informácií na System.out. Využíva triedu Getters a všetky informácie sú v l’udsky ˇcitatel’nej podobe vypísané aj s popisom. Má 2 základné metódy pre výpis, ktoré používajú ostatné metódy v tejto triede – write- DataWithoutAuthentication() a writeDataWithAuthentication(), ktoré sa sta- rajú o výpis všetkých informácií, ktoré sa dajú zistit’ bez znalosti PINu a po úspešnej auten- tizácii PINom. 7.5 Komplikácie 7.5.1 Dekódovanie SMS Pre kompresiu je samotný text 7-bit SMS správy kódovaný do oktetov tak, že na zvyšný 1 bit je uložená d’alšia informácia. Na zakódovanie desiatich znakov teda postaˇcuje 9 bytov. Nemal som problém získat’ dané byte[] obsahujúce text SMS správy – problém som ho mal dekódovat’ do zrozumitel’ného textu. Na internete som našiel knižnicu SMSJ [20], z ktorej som využil tento prevod. 7.5.2 Dekódovanie názvu kontaktu v ADN Väˇcšinu telefónnych ˇcísel mám uložených s diakritikou a ked’ som sa ich snažil interpreto- vat’, vznikli z toho splete špeciálnych znakov. Napríklad položka „Aleš“ (’41 6C 65 61’) sa zobrazila ako „$ Ale£“ (’81 06 02 41 6C 65 E1’). Textové údaje v mieste mena na poˇciatku ADN záznamu môžu byt’ uložené v GSM_- DEFAULT alebo 16-bit UCS2 kódovaní [21]. Pokial’ sú uložené v GSM_DEFAULT a interpre- tujú sa ako ASCII hodnoty, väˇcšinou nevzniká na prvý pohl’ad žiaden problém – každý byte 31
  • 38. 7.5. KOMPLIKÁCIE sa interpretuje ako jeden znak (8. bit je nastavený na 0). Ked’že ale tabul’ka GSM_DEFAULT obsahuje na prvých miestach iné znaky ako ASCII, nie je tento postup ideálne riešenie. Na- príklad znak ’05’ má v GSM_DEFAULT hodnotu „é“, kdežto v ASCII je to biely znak. Ako charset som použil vol’ne dostupnú knižnicu JCharset [12]. Pri použití znakov, ktoré sa nenachádzajú v GSM_DEFAULT sa používa kódovanie UCS2. To môže mat’ 3 rôzne varianty (GSM 11.11, Annex B [6]), v závislosti na prvom byte. Ak je prvý byte rovný ’80’, potom sú všetky d’alšie byty 16 bitové, kedy je jeden znak kódovaný dvojicou bytov. Výsledný kód znaku vznikne spojením danej dvojice – napríklad zo znakov ’01 7D 00 69’ vzniknú 2 znaky: „Ž“ (zápis v UTF-16 je „U+017D“) a „i“ (zápis v UTF-16 je „U+0069“). Ak je prvý znak rovný ˇcíslu ’81’, nasledujúci byte kóduje poˇcet znakov v ret’azci, ktorý chceme dostat’ a d’alší byte kóduje bity 15 – 8 vo výslednom 16-bitovom ˇcísle. Ostatné cifry sú vyplnené nulami. Vznikne nám teda vzor „0xxx xxxx x000 0000“. Nasledujúce byty bud’to kódujú samy 1 znak (majú 8. bit rovný nule), alebo využívajú vzor uvedený vyššie (ak majú 8. bit nastavený na 1). V tom prípade sa ich bity 7 – 1 pridajú ako bity 7 – 1 predchádzajúceho vzoru. Vznikne nám teda vzor 16-bit ˇcísla „0xxx xxxx xyyy yyyy“. Napríklad ’81 04 02 41 6C 65 E1’ hovorí o tom, že výsledný ret’azec má 4 znaky. Vzor pomocou prefixu ’02’ je v tomto prípade„0000 0001 0000 0000“. Nasleduje znak ’41’ („A“), ’6C’ („l“), ’65’ („e“) a znak ’E1’. Tento znak má na svojom 8. bite jednotku, a tým sa bude interpretovat’ pomocou suffixu do vopred daného vzoru. Tým z neho vznikne znak „0000 0001 0110 0001“, ˇco je znak „š“ (v UTF-16 „U+0161“). Z príkladu nám teda vznikol ret’azec„Aleš“. Posledným možným prípadom je, ked’ sa prvý byte rovná ˇcíslu ’82’. Vtedy sa nasledu- júci byte znovu rovná poˇctu znakov v ret’azci. Tentokrát však nasledujúce 2 byty kódujú celú šestnástkovú bázu. ˇDalšie byty kódujú samotné znaky – ak má daný byte na 8. mies- te 0, je to samostatný znak. Ak má na tomto mieste jednotku, jeho hodnota v 7 – 1 bite sa pripoˇcítava k báze a vznikne daný znak. Napríklad ’82 07 00 E1 41 75 AC 6B 6F 76 80’ ho- vorí o tom, že výsledný ret’azec má 7 znakov. Pri spojení znakov ’00 E1’ nám vznikne báza ’00E1’. Znak ’42’ je („B“), ’75’ („u“), ’AC’ má v 8. bite jednotku, a preto jeho 7 – 1 bity pri- poˇcítane k báze, z ˇcoho nám vznikne znak „ˇc“ („U+010D“), ’6B’ („k“), ’6F’ („o“), ’76’ („v“) a ’80’ je znova nutné interpretovat’ sˇcítaním s bázou, z ˇcoho vznikne znak „á“ („U+00E1“). Výsledný dekódovaný ret’azec je teda „Buˇcková“. Na internete som nenašiel žiadnu použitel’nú knižnicu, ani zdrojový kód v akomkol’vek jazyku, ktorý by mi pomohol k riešeniu tohoto prevodu. Vd’aka tomu, že som implemen- toval využitie GSM_DEFAULT kódovania a všetky možnosti koverzie USC-2 kódovania a vd’aka natívnej podpore UTF-16 pri práci s ret’azcami v jave dokáže môj program interpre- tovat’ správne znaky s nižším kódom aj všetky exotické znaky v názve kontaktov, ˇco mnohé z mnou testovaných programov nevedeli úplne bezchybne dekódovat’. 7.5.3 Interpretácia ICCID S interpretáciou ˇcísel v ICCID a ich významu som mal problém pre nekompatibilitu niekto- rých zdrojov. Podl’a Forensics Wiki [8] je na bytoch 7 – 10 uložená informácia o mesiaci a 32
  • 39. 7.6. ˇDALŠÍ VÝVOJ roku výroby SIM karty a na d’alších 2 bytoch je uložený switch configuration code. Pri tes- tovaní na niektorých SIM kartách mi však mesiac a rok výroby nesedel (napríklad „1561“). Nakoniec som sa teda riadil priamo štandardom ITU-T E.118 [2]. Pre zaujímavost’ som zaslal email so žiadost’ou o d’alšie informácie k danej téme na emaily ˇceskej, slovenskej aj anglickej spoloˇcnosti Telefónica O2 a slovenskému a anglickému Orange. Zo slovenského Orange mi po 9 dˇnoch odpovedali, že mojej požiadavke sa nedá vyhoviet’. Zo slovenského O2 mi odpísali informaˇcne prínosnú odpoved’ (pozri obrázok 5.1), ktorá neobsahuje žiadne údaje o roku výroby karty, ani o switch configuration code, ale má zase definovanú prvú ˇcíslicu v IAIN ako Vendor. Nie som si však istý, ˇci to používajú aj iní operátori ako O2, a preto som tento údaj nevyzdvihol. 7.5.4 Menšie komplikácie ˇDalšie problémy, ktoré sprevádzali vývoj programu, bolo napríklad vypisovanie položiek ADN a SMS v reálnom ˇcase (ked’že moje metódy sú schopné vrátit’ kolekcie s danými po- ložkami, napríklad ListSMS a samotné dátové triedy SMS a ADN majú implementované metódy toString() na vypisovanie informácií o sebe), ale to som vyriešil výpisom na System.out už pri nap´lˇnaní danej kolekcie. Ked’ som už postupne vypisoval všetky polož- ky v reálnom ˇcase, v pôvodnej verzii programu som mal problém so zamrznutím hlavného okna, kým dané metódy na výpis všetkých prvkov nedobehli. To som ale l’ahko vyriešil po- mocou implementácie triedy SwingWorker, do ktorej som dané výpisy umiestnil pre svoju zvýšenú ˇcasovú nároˇcnost’. Problémom bolo pre mˇna samotné vypisovanie položiek v GUI – pri vypisovaní par- ciálnych dát mi totižto vypisovaný text nechcelo pripájat’ k pôvodnemu, ktorý bol stále premazávaný novším textom. To som vyrešil presmerovaním System.out na danú textovú komponentu pomocou triedy TextAreaOutputStream [16]. 7.6 ˇDalší vývoj Plánovaná je podpora multijazyˇcnosti, exportovanie do XML a HTML, zmena PIN1/2 kódu, možnost’ odblokovania PIN1/2 kódov pomocou PUK1/2, povolenie a zakázanie PIN1/2, špeciálne terminálové okno na vypisovanie samotnej komunikácie pomocou APDU s mož- ným exportom, vypísanie celého súborového systému na SIM karte spolu s detailnými in- formáciami o konkrétnom DF/EF (typ, prístupové práva, vel’kost’), editovanie SMS správ, telefónneho adresára a niektorých iných EF, zväˇcšenie databázy krajín k MCC a operátorov k MNC, nevratné mazanie SMS správ, zmena flagu zmazaných SMS správ na prijaté, alebo možnost’ výberu z nájdených terminálov. 33
  • 40. Kapitola 8 Záver V rámci tejto bakalárskej práce bol vytvorený program, ktorým je možné vypísat’ a uložit’ väˇcšinu zaujímavých údajov uložených na SIM karte. Akýkol’vek užívatel’ tak môže tento nástroj za pomoci PC/SC ˇcítaˇcky smart kariet, alebo špeciálnej ˇcítaˇcky SIM kariet použit’. Pri nezadaní PINu je užívatel’ schopný zistit’ o SIM karte jej ATR, ICCID, názov operá- tora, ktorý vydal danú SIM kartu, fázu, preferované jazyky a statusy PIN 1/2 a PUK 1/2 kódov s poˇctom zostávajúcich pokusov. Po zadaní správneho PIN1 kódu je d’alej možné získat’ IMSI, LOCI, šifrovací kl’úˇc Ki spolu so šifrovacím kl’úˇcom pre GPRS, periódu vyhl’adávania siete, telefónny adresár kon- taktov a SMS správy (vrátane tých, ktoré boli vymazané). Tieto získané údaje si užívatel’ môže následne uložit’ to textového súboru, v ktorom mô- žu byt’ uložené dáta ku viacerým SIM kartám. 34
  • 41. Referencie [1] BBC News. Tracking a suspect by mobile phone [Online]. 2005-08-03 [cit. 2011-11-12]. Dostupné z: http://news.bbc.co.uk/2/hi/technology/4738219.stm. 1 [2] ITU-T Recommendation E.118. SERIES E: TELEPHONE NETWORK AND ISDN: Ope- ration, numbering, routing and mobile service – International operation – General provisions concerning Administrations [Online]. 2006-05-11 [cit. 2012-04-01]. Dostup- né z: http://www.itu.int/rec/dologin_pub.asp?lang=eid=T-REC-E. 118-200605-I!!PDF-Etype=items. 5.2.3, 7.5.3 [3] COMPLEMENT TO ITU-T RECOMMENDATION E.164. LIST OF ITU-T RECOM- MENDATION E.164 ASSIGNED COUNTRY CODES [Online]. 2011-11-01 [cit. 2012- 04-01]. Dostupné z: http://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-E. 164D-11-2011-PDF-E.pdf. 5.2.3 [4] STUBNIAK, Ivan. Telefónica Slovakia, s.r.o. Odpoved [Online]. Andrej ŠIMKO. 2012-04-27 14:19; [cit. 2012-05-07]. Dostupné z: http://www.itu.int/dms_pub/ itu-t/opb/sp/T-SP-E.164D-11-2011-PDF-E.pdf. Odpoved’ z oddelenia starostlivosti o zákazníka. 5.1, A [5] 3GPP TS 03.40. Technical realization of the Short Message Service (SMS) [Online]. Ver. 7.5.0. 2001-12 [cit. 2012-04-03]. Dostupné z: http://www.3gpp.org/ftp/Specs/ archive/03_series/03.40/0340-750.zip. 5.2.12 [6] 3GPP TS 11.11. 3rd Generation Partnership Project; Technical Specification Group Ter- minals Specification of the Subscriber Identity Module - Mobile Equipment (SIM - ME) interface [Online]. Ver. 8.14.0. 2007-06 [cit. 2012-04-03]. Dostupné z: http://www. 3gpp.org/ftp/Specs/archive/11_series/11.11/1111-8e0.zip. 5.1, 5.2.14, 7.5.2 [7] TS 100 900. Digital cellular telecommunications system (Phase 2+); Alphabets and language-specific information (GSM 03.38 version 7.2.0 Release 1998) [Online]. Ver. 7.2.0. 1999-07 [cit. 2012-04-05]. Dostupné z: http://www.3gpp.org/ftp/Specs/ archive/11_series/11.11/1111-8e0.zip. 5.2.9, 5.2.13 [8] SIM Cards: ICCID In: GARFINKEL, Simson. Forensics Wiki. [Online]. 2012-05- 15 [cit. 2012-04-08]. Dostupné z: http://www.forensicswiki.org/w/index. php?title=SIM_Cardsoldid=10310. 7.5.3 [9] International Numbering Plans B.V. International Numbering Plans: Number analysis tools [Online]. c2012 [cit. 2012-04-09]. Dostupné z: http://www. numberingplans.com/?page=analysis. 5.2.3, 5.2.4 35
  • 42. [10] International Numbering Plans B.V. International Numbering Plans: Numbering plans for mobile networks (IMSI) [Online]. c2012 [cit. 2012-04-08]. Dostupné z: http://www.numberingplans.com/?page=planssub=imsinr. 5.2.3 [11] ISO 7816-4. ISO 7816-4 Smart Card Standard [Online]. Posledné úpravy 2011- 07-01 [cit. 2012-04-06]. Dostupné z: http://www.cardwerk.com/smartcards/ smartcard_standard_ISO7816-4.aspx. 1.1, 3 [12] ROTHMAN, Amichai. JCharset [Online]. Ver. 1.3. c2012 [cit. 2012-05-11]. Dostupné z: http://www.freeutils.net/source/jcharset/. 7, 7.5.2 [13] sendega.com Mobile country codes (MCC) and Mobile network codes (MNC) [Onli- ne]. Posledné úpravy 2012-03-28 [cit. 2012-04-09]. Dostupné z: http://mcclist. com/. 5.2.3, 5.2.4 [14] ORGO ˇN, Miloš. KOVÁ ˇC, Adrián. Forenzná analýza a bezpeˇcnost’ mobilných telefó- nov [DOC dokument]. ˇCíslo revízie 5. [cit. 2011-11-11]. V dobe citácie nepublikované. 4.1.2 [15] SMITH, Greg. SIM PIN Challenge [online]. 2009-01-08 [cit. 2012-04-26]. http:// trewmte.blogspot.com/2009/01/sim-pin-challenge.html. 4.2 [16] HITE, John. Redirecting System.out to a JTextArea [online]. 2010-04- 05 [cit. 2012-04-28]. http://blog.johnhite.com/2010/04/05/ redirecting-systemout-to-a-jtextarea/. 7.5.4 [17] Brookson, Charles. Smart card cloning is easy! [online]. 2005 [cit. 2012-04-09]. http: //www.brookson.com/gsm/cardclone.pdf. 5.2.6 [18] RANKL, Wolfgang. EFFING, Wolfgang. Smart Card Handbook 3. vyd. Chiches- ter: Wiley, 2003. 1088 s. http://www.wrankl.de/SCH/SCH.html. ISBN 04-708- 5668-8. 2.1, 3.2.1 [19] RANKL, Wolfgang. The Smart Card Tables [online]. Posledné úpravy 2008-06-31 [cit. 2012-04-26]. http://www.wrankl.de/SCTables/SCTables.html. 3 [20] ERIKSSON, Markus. SMS library for the Java platform [online]. 2006-03-01 [cit. 2012- 05-07]. http://smsj.sourceforge.net/. 7, 7.5.1 [21] TS 23.038. 3rd Generation Partnership Project; Technical Specification Group Co- re Network and Terminals; Alphabets and language-specific information [Online]. Ver. 10.0.0. 2011-03 [cit. 2012-05-10]. Dostupné z: http://www.3gpp.org/ftp/ Specs/archive/23_series/23.038/23038-a00.zip. 7.5.2 36
  • 43. Dodatok A Zoznam elektronických príloh • simpleSimReader prieˇcinok s NetBeans projektom • simpleSimReaderdistsimpleSimReader.jar spustitel’ná verzia programu • simpleSimReaderdistjavadoc vygenerovaný javadoc • textová ˇcast’ prieˇcinok s textovou ˇcast’ou 37
  • 44. Slovník ADF Application DF ADN Abbreviated Dialing Numbers APDU Application Protocol Data Unit BDN Barred Dialing Numbers BPIN Banking PIN C-APDU Command APDU DF Dedicated File EEPROM Electronicly-Erasable Programable Read-Only Memory EF Elementary File GSM Global System for Mobile communication HPLMN Home Public Land Mobile Network search period HSCSD High-Speed Circuit-Switched Data CHV Card Holder Verification information IAIN Individual Account Identification Number ICC Integrated Circuit Card ICCID Integrated Circuit Card Identification IIN Issuer Identification Number IMSI International Mobile Subscriber Identity ISDN Integrated Services Digital Network Kc Cipher Key Ki Individual Key LAC Local Area Code LAI Location Area Identity LND Last Number Dialed LOCI Location Information 38
  • 45. SLOVNÍK LP Language Preferences MCC Mobile Country Code MF Master File MII Major Industry Identifier MNC Mobile Network Code MPIN Mobile banking PIN MSIN Mobile Subscription Identification Number MSISDN Mobile Station ISDN Number OTA Over The Air PC/SC Personal Computer/Smart Card PIN Personal Identification Number PUK PIN Unlock Key RAM Random Access Memory R-APDU Response APDU ROM Read-Only Memory SIM Subscriber Identity Module SMS Short Message Service SPN Service Provider Name SST SIM Service Table STK SIM ToolKit TMSI Temporary Mobile Subscriber Identity UCS-2 2-bytový Universal Character Set UDH User Data Header UTF UCS Transformation Format 39
  • 46. Zoznam obrázkov 5 Štruktúra a obsah pamätí na SIM karte . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 slovenské a ˇceské údaje od Telefónica O2 [4] 17 6 Prehl’ad aplikácií na prácu so SIM kartami . . . . . . . . . . . . . . . . . . . . . . . . 6.1 SIM Manager 22 6.2 SimCardExplorer 23 6.3 WinSIM Professional 25 6.4 Woron Scan 26 6.5 MOBILedit! Forensic Lite 27 7 Praktická ˇcast’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Simple SIM Reader 28 40
  • 47. Zoznam tabuliek 2 Smart karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Príkazy SIM kariet 5 3 Komunikácia s kartou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 C-APDU 6 3.2 R-APDU 7 3.3 Niektoré chybové kódy 7 3.4 príkaz GET RESPONSE 8 3.5 niektoré dôležité dáta odpovede na príkaz GET RESPONSE po príkaze SELECT na MF/DF 8 3.6 statusu kódov CHV1/2, PUK1/2 9 3.7 dáta odpovede na príkaz GET RESPONSE po príkaze SELECT na EF 10 3.8 príkaz READ BINARY 11 3.9 príkaz READ RECORD 11 4 Bezpeˇcnostné prvky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Interpretácia bytu prístupových kódov 14 5 Štruktúra a obsah pamätí na SIM karte . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 niektoré EF a ich vlastnosti 16 5.2 zoznam MNC aktívnych ˇceských operátorov k dˇnu 09.04.2012 18 5.3 status TMSI 19 5.4 zoznam niektorých funkcionalít fáz 20 5.5 poˇcty znakov v daných kódovaniach 21 41