Objavljeno:

Slepo zaupanje digitalnim dokazom – primer SIM kartic

Skupina varnostnih strokovnjakov in pravnikov iz ZDA, Sergey Bratus, Ashlyn Lembree in Anna Shubina so leta 2010 na konferenci TRUST 2010 predstavili zanimiv prispevek z naslovom Software on the Witness Stand: What Should It Take for Us to Trust It? (na voljo so tudi prosojnice iz predavanja).

V prispevku so izpostavili problematičnost zaupanja digitalnim dokazom. Dejstvo je, da se na sodiščih danes že rutinsko uporabljajo prometni podatki, ki jih beležijo ponudniki dostopa do interneta ter različni strežniki in druge omrežne naprave, podatki iz mobilnih telefonov, podatki iz digitalnih nadzornih videokamer, itd. Tudi pri digitalni forenziki digitalne dokaze išče in analizira različna programska oprema, saj je podatkov pogosto preveč, da bi jih lahko ročno, brez pomoči programov pregledal posamezni preiskovalec.

Težava, ki so jo izpostavili raziskovalci v svojem članku je, da sodišča digitalne dokaze, zlasti računalniško generirane digitalne dokaze praviloma dojemajo kot zaupanja vredne same po sebi (avtorji uporabljajo izraz inherently trustworthy evidence).

To ima posledice tudi na sam sodni postopek, saj imajo na (kazenskem) sodišču obtoženci oz. obramba pravico so soočenja s tožniki in (navzkrižnega) zaslišanja prič. Pri tem se postavlja zanimivo vprašanje, kaj storiti, če je »priča« računalnik oz. programska oprema? Čeprav se vprašanje na prvi pogled morda zdi akademsko, velja opozoriti na zanimiv sodni primer v ZDA State v. Chun (Supreme Court of New Jersey A-96-06, Docket No. 58,879), kjer je v sodnem postopku je pritožnica oporekala rezultatom testa alkoholiziranosti zaradi možnih napak v programski opremi elektronskega etilometra.

Pritožnica je zahtevala preveritev zanesljivosti delovanja elektronskega alkotesta Draeger Alcotest 7110 MKIII-C. Pridobili so izvorno kodo naprave in jo predali v analizo neodvisnemu podjetju Base One Technologies. Podjetje je v programski kodi naprave odkrilo 19.400 potencialnih napak, med njimi devet takšnih, ki bi lahko bistveno vplivale na rezultate meritve. Med drugim se je tudi izkazalo, da je naprava na precej nenavaden način izračunavala povprečje meritev,  saj je to počela na način, da je imela ena meritev veliko večji vpliv kot ostale. Vrhovno sodišče ZDA v konkretnem primeru sicer ni razveljavilo veljavnosti meritev alkoholiziranosti, je pa od proizvajalca zahtevalo odpravo napak v programski opremi elektronskega alkotesta.

Na problem zaupanja digitalnim dokazom bomo opozorili tudi v tem prispevku in sicer na primeru digitalnih dokazov na SIM kartici. Najprej pa nekaj osnov.

Nekaj osnov o SIM karticah

SIM kartica je tim. pametna kartica (vsebuje mikroprocesor), ki vsebuje podatke za avtentikacijo in avtorizacijo uporabnika mobilnega telefona v mobilnem omrežju. Vsebuje naslednje podatke:

  • ICCID številko,
  • IMSI številko,
  • avtentikacijski šifrirni ključ (Ki),
  • Local Area Identity (LAI),
  • številke za klic v sili (specifično za vsakega operaterja),
  • ostale podatke za prenos podatkov med operaterjem in naročnikom, kot npr. SMSC (Short Message Service Center) številko, Service Provider Name (SPN), Service Dialing Numbers (SDN), itd.

Poleg tega SIM kartica vsebuje še:

  • PIN in PUK kodo,
  • avtenikacijski algoritem,
  • algoritem generiranja šifrirnih ključev A8,
  • šifrirni ključ Kc, ki izvira iz Ki ključa,
  • logične kontrole za kontrolo dostopa do podatkov na kartici,
  • prostor za uporabniške podatke.

ICCID oz. serijska številka SIM kartice

ICC-ID (Integrated Circuit Card ID) številka je identifikacijska številka SIM kartice. Shranjena je v sami SIM kartici, je pa tudi natisnjena oz. vgravirana na njeni površini. ICCID se generira v procesu tim. »personalizacije« SIM kartice. Številka je dolga 19 (za Phase 2 SIM kartice) ali 20 (za Phase 1 SIM kartice) znakov, sestavljena pa je iz naslednjih elementov, ki temeljijo na ISO/IEC standardu 7812:

  • identifikacijska številka izdajatelja (največ 7 cifer: prva dva znaka: Major Industry Identifier (MII) (za področje telekomunikacij je koda 89) / naslednji eden do trije znaki: oznaka države (za Slovenijo 386) / preostanek: identifikacija izdajatelja (npr. 40 za Simobil);

  • identifikacijska številka kartice (do 12 znakov: številka »računa« (account identification number) / en znak: kontrolna vsota izračunana po Luhnovem algoritmu).

IMSI in TMSI številka

IMSI številka služi kot identifikator naročnika v GSM omrežju. Identifikator telefonskega aparata pa je IMEI številka (International Mobile Equipment Identity), gre za neke vrste serijsko številko mobilne naprave (telefona).

IMSI številka je zapisana na SIM kartici. Na podlagi IMSI številke se mobilni uporabnik predstavi mobilnemu omrežju, omrežje pa mu »dodeli« naročniško telefonsko številko. Zaradi možnosti prisluškovanja in sledenja uporabnikom naj bi se IMSI številka po omrežju prenašala čim redkeje. Namesto nje se prenaša naključno generirana TMSI številka. IMSI se prenese preko omrežja v trenutku, ko se telefon vključi ali ko je potrebno obnoviti povezavo med IMSI in TMSI (oz. generirati nov TMSI). TMSI številka je omejena na lokacijsko območje, kar pomeni, da je potrebno nov TMSI generirati vsakič, ko se mobilni uporabnik premakne v novo lokacijsko območje. Lokacijska območja tvori ena ali več baznih postaj. Vsako lokacijsko območje ima svojo lastno kodo lokacijskega območja, kodo pa v intervalih oddajajo posebne bazne postaje in sicer tim. »base transceiver station« ali BTS v GSM omrežjih oziroma Node B v UMTS omrežjih.

Prve tri cifre IMSI številke označujejo kodo države – Mobile Country Code (MCC), sledita dva znaka (po evropskem oziroma trije znaki po severnoameriškem standardu) za oznako omrežja – Mobile Network Code (MNC). Preostanek je identifikacijska številka uporabnika – Mobile Subscriber Identification Number (MSIN). Mobile Country Code (MCC) koda za Slovenijo je 293. Oznaka 901 je oznaka za International Shared Codes. 901 08 služi za za identifikacijo telefona brez SIM kartice (za klice v sili). Naj dodamo, da v nekaterih državah ni mogoče opraviti klica v sili zgolj s telefonom, torej brez kakršnekoli SIM kartice.

Avtentikacijski šifrirni ključ (Ki)

Avtentikacijski šifrirni ključ ali Ki je 128-bitna spremenljivka, ki služi za avtentikacijo SIM kartice mobilnemu omrežju. Ki je unikaten in določen v procesu personalizacije. Shranjen je na SIM kartici in v podatkovni bazi mobilnega operaterja, v tim. Home Location Registru (HLR). Ki ključa ni mogoče izpisati, pač pa ima SIM kartica posebno funkcijo RUN GSM ALGORITHM, ki telefonu omogoča, da SIM kartici pošlje podatke, le-ta pa jih podpiše s Ki ključem.

Zaradi tega se uporabi SIM kartice v GSM omrežju ni mogoče izogniti, saj je SIM kartica nujno potreben element GSM omrežja. Zaradi slabe varnostne zasnove je bilo stare SIM kartice mogoče razmeroma enostavno klonirati oz. prekopirati Ki šifrirni ključ. To je bilo mogoče preko radijske povezave v nešifriranih omrežjih (več informacij o tem v članku GSM Cloning avtorjev Iana Goldberga in Marca Bricena iz leta 1998). Druga možnost je fizični dostop, kjer napadalec SIM kartici pošila poizvedbe (tim. challenge) in v cca. 4 do 8 urah iz nje izlušči Ki ključ (pri tem procesu je obstajala tudi cca. 40% verjetnost poškodovanja oz. uničenja kartice). Pri novejših SIM karticah je kloniranje bistveno težje.

Pomembno je tudi vedeti, da lahko napadalec, ki pridobi dostop do Ki ključa oz. SIM kartice, dešifrira pogovore med mobilnim aparatom in omrežjem. V primeru, da se ne uporablja tim. poudarjena zaupnost (ang. perfect forward secrecy), je mogoče pogovore dešifrirati tudi za nazaj (v primeru, da bi napadalec snemal GSM pogovore žrtve, in bi nato kasneje pridobil SIM kartico, bi lahko za nazaj dešifriral vse šifrirane pogovore).

Local Area Identity (LAI)

Vsako lokacijsko območje ima svojo unikatno identifikacijsko številko, ki je sestavljena iz:

  • E.212 mobilne oznake države (tri cifre, 293 za Slovenijo);
  • oznake mobilnega omrežja (Mobile Network Code – MNC, dva znaka, npr. 40 za Simobil);
  • oznake lokacijskega področja (Location Area Code, 5 znakov).

Podatke o lokaciji (Mobile Country Code, Mobile Network Code ter Local Area Code) oddaja mobilno omrežje na tim. Broadcast Control kanalu (BCCH). Mobilni telefon pa LAI številko shrani v SIM kartico. Ob spremembi lokacijskega območja, se podatek obnovi.

* * *

Če torej na kratko povzamemo, SIM kartica skrbi za avtentikacijo uporabnika v omrežju, na SIM kartici je shranjen šifrirni ključ, ki omogoča šifriranje pogovorov med mobilnim aparatom in bazno postajo v GSM omrežju, poleg tega pa je na SIM kartico mogoče shranjevati tudi določene uporabniške podatke. Najpomembnejši med njimi so seznam kontaktov uporabnika (tim. telefonski imenik) in SMS sporočila. Nekateri starejši mobilni telefoni pa so na SIM kartico shranjevali tudi zadnje klicane številke. Naj dodamo, da novejši mobilni telefoni uporabniških podatkov na SIM kartico praviloma ne shranjujejo, pač pa se ti podatki shranjujejo v telefon.

Branje uporabniških podatkov iz SIM kartice

V okviru forenzične preiskave SIM kartice iz le-te navadno želimo prebrati nekaj osnovnih identifikacijskih podatkov SIM kartice (npr. IMSI številko in ICCID številko) ter seznam kontaktov, SMS sporočila ter zadnje klicane številke.

Za branje teh podatkov iz SIM kartice potrebujemo PIN ali PUK kodo (razen, če PIN koda ni blokirana). Če PIN kode nimamo, je mogoče PUK kodo pridobiti od operaterja, v tem primeru je operaterju potrebno sporočiti ICCID serijsko številko, ki je natisnjena na SIM kartici. Poleg tega potrebujemo ustrezno strojno (čitalec SIM kartic) in programsko opremo.

Analiza SIM kartice.

Analiza SIM kartice z USB čitalcem.

Strojna oprema za branje vsebine SIM kartic je razmeroma poceni. USB čitalec SIM kartic lahko naročimo preko spleta (cena je slabe 3 EUR), lahko pa si ga celo izdelamo sami. Načrti za preprost čitalec SIM kartic so dostopni na spletni strani ameriške elektroinženirke Limor Fried na naslovu http://ladyada.net/make/simreader/index.html.

Čitalec SIM kartic

Čitalec SIM kartic.

Na tej spletni strani se nahaja tudi odprtkodna in brezplačna programska oprema za branje vsebine SIM kartic PySIMReader. Program lahko namestimo na računalnik z Linux, Windows ali Mac operacijskim sistemom (potrebujemo nameščen programski paket Python in knjižnici pySerial ter wxPython).

Uporaba programa je preprosta. Po zagonu se odpre glavno okno, kjer lahko izbiramo med branjem telefonskega imenika ali SMS sporočil oziroma iz menija izberemo možnost branja identifikacijskih podatkov SIM kartice, seznam zadnjih klicanih številk ali pa spremenimo oziroma blokiramo PIN kodo.

PySIMReader

Programska aplikacija PySIMReader.

Program omogoča, da si iz SIM kartice prebrana SMS sporočila ogledamo v oknu, omogoča pa tudi prikaz izbrisanih SMS sporočil (v kolikor seveda še niso bila prepisana z drugimi podatki). Pri vsakem SMS sporočilu lahko spremenimo njegov status (read / unread / deleted : prebrano / neprebrano / izbrisano). Sporočila lahko tudi izvozimo v tekstovno datoteko. Na podoben način lahko v tekstovno datoteko izvozimo tudi kontakte iz telefonskega imenika. Naj dodamo, da smo aplikacijo testirali z več različnimi SIM karticami, pri nekaterih SIM karticah operaterja Mobitel pa je v programu prišlo do napake in branje ni bilo mogoče.

Informacije o SIM kartici

Informacije o SIM kartici.

Pregled SMS sporočil.

Pregled SMS sporočil.

Branje telefonskega imenika.

Branje telefonskega imenika.

Ponarejanje digitalnih dokazov na SIM kartici

Aplikacija PySIMReader pa omogoča tudi zapisovanje podatkov na SIM kartico. Postopek je enostaven. V oknu, ki omogoča prikaz SMS sporočil v meniju File izberemo možnost Import. Izberemo tekstovno datoteko z SMS sporočili in program sporočila zapiše na kartico.

Urejanje tekstovne datoteke z SMS sporočili.

Urejanje tekstovne datoteke z SMS sporočili.

Urejanje posameznega SMS sporočila.

Urejanje posameznega SMS sporočila.

Seveda pa tekstovno datoteko pred tem lahko poljubno urejamo. Struktura datoteke z SMS sporočili je namreč zelo enostavna, saj vsebuje polja datum, konktakt pošiljatelja, številko operaterjevega centra za posredovanje sporočil ter vsebino sporočila (Date, From, SerivceCenter, Message). V navedena polja lahko vpišemo poljubne podatke (seveda morajo biti v ustreznem formatu), datoteko shranimo in jo prenesemo (zapišemo) na SIM kartico. Program PySIMReader sicer omogoča tudi neposredno urejanje vsebine sporočila in pošiljateljevega kontakta za vsako posamezno sporočilo posebej.

Če sedaj SIM kartico vstavimo v telefon, bodo prikazana ponarejena SMS sporočila. V prvem primeru smo izdelali SMS sporočilo iz prihodnosti (iz 15. oktobra 2014), v drugem primeru pa je pošiljatelj (njegovi podatki so ponarejeni) 12. januarja 2001 poslal »napoved« terorističnih napadov na WTC 11. septembra 2001.

Ponarejeno SMS sporočilo iz preteklosti...

Ponarejeno SMS sporočilo iz preteklosti...

... in ponarejeno SMS sporočilo iz prihodnosti.

... in ponarejeno SMS sporočilo iz prihodnosti.

Mimogrede, v primeru novejših telefonov je SMS sporočila je iz SIM kartice mogoče tudi prenesti in shraniti na telefon. Ponarejanje digitalnih dokazov v mobilnih telefonih (zlasti tim. pametnih telefonih) je sicer tudi mogoče in bo morda opisano v kakšnem drugem prispevku.

SMS sporočila prenešena iz SIM kartice na pametni telefon.

SMS sporočila prenesena iz SIM kartice na pametni telefon.

V primeru kazenske preiskave bi preiskovalci (verjetno) pregledali tudi prometne podatke pri operaterju. V primeru, da bi se izkazalo, da je na SIM kartici shranjeno SMS sporočilo, prometni podatki pri operaterju pa ne bi potrjevali, da je bilo SMS sporočilo zares poslano, bi bil to lahko že indic, da je vsebina SIM kartice morda ponarejena. Prometni podatki se v skladu z ZeKOM sicer hranijo 14 mesecev.

Težava pa je, če bi napadalec vzel obstoječe SMS sporočilo in mu spremenil samo vsebino, prometne podatke (kontakt pošiljatelja in datum ter čas pošiljanja sporočila) pa bi pustil nespremenjene. V tem primeru bi prometni podatki pri operaterju potrjevali, da je bilo sporočilo res poslano, forenzična analiza SIM kartice pa bi razkrila vsebino, za katero ne bi bilo mogoče ugotoviti ali je resnična ali morda ponarejena. (Pri tem se postavlja zanimiva analogija s pogovorom, kjer operater tudi zabeleži prometne podatke, ne pa tudi vsebine pogovora. V tem primeru je s pomočjo prometnih podatkov mogoče potrditi dejstvo obstoja komunikacije, vsebina pa je stvar izjav oseb, ki so bile udeležene v komunikaciji. Zanimivo je, da je v primeru SMS sporočil, katerih vsebina je shranjena, stopja zaupanja v resničnost vsebine SMS komunikacije bistveno višja kot v primeru govorne komunikacije, ki se ne shranjuje.)

Podobne zagate povezane s slepim zaupanjem digitalnim in računalniško generiranim podatkov izvirajo tudi iz možnosti pošiljanja ponarejenih SMS sporočil preko GSM omrežja, kar bo sicer stvar naslednjega prispevka. Le na kratko – zasnova GSM omrežja omogoča, da napadalec poljubnemu uporabniku mobilne telefonije pošlje SMS sporočilo iz poljubne telefonske številke (tudi iz njegove lastne). Prejemnik torej dobi SMS sporočilo s spremenjeno (ponarejeno) identifikacijo pošiljatelja. Podobno spreminjanje klicne identifikacije je mogoče tudi v primeru govornih klicev – torej je mogoče klicanje na način, da se klicani osebi na telefonskem aparatu izpiše poljubna telefonska številka. A kot rečeno o tem v enem prihodnjih prispevkov.

Sklep

V današnjem času – še bolj pa bo to veljalo v prihodnosti – je sodiščem predloženih čedalje več dokazov v digitalni obliki. Za razliko od drugih vrst dokazov pa sodišča (in enako velja za preiskovalce) digitalne dokaze, zlasti računalniško generirane, preveč samoumevno dojemajo kot zaupanja vredne, nepristranske in zanesljive. Da temu ni tako, smo pokazali na primeru forenzične analize SIM kartic. Stroški za to so minimalni, digitalne dokaze pa je mogoče ponarediti v nekaj minutah. Podobno velja tudi na drugih področjih – na področju preiskovanja računalnikov, mobilnih telefonov in drugih naprav, lahko celo v primeru datotek aktivnosti pri ponudnikih storitev, operaterjih in drugih tim. neodvisnih tretjih strankah.

Dejstvo namreč je, da računalniki že dolgo časa niso več zgolj »stroji« (že sama beseda stroj predpostavlja razmeroma zanesljivo, mehansko napravo), ki bi jim veljalo slepo zaupati. Pri obravnavi digitalnih in računalniško generiranih dokazov bi bilo namreč potrebno vedno pomisliti tudi na možnost, da so spremenjeni in se znebiti predpostavk na katerih temelji zaupanje vanje.

Kategorije: Digitalna forenzika, Informacijska tehnologija, Kazensko pravo
Ključne besede: GSM, kazensko pravo, ponarejanje digitalnih dokazov, SIM kartica