Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Jak se klonují SIM karty

aktualizováno 
Zabezpečení GSM má od roku 1998 vážné trhliny. Vlivem úniku popisu algoritmu A38 a následného útoku na něj lze již více než čtyři roky určit v některých případech tajný identifikační klíč příslušející k dané SIM kartě a získat tak i přístup k jejímu účtu. Přestože MoU (Memorandum of Understanding, sdružení operátorů GSM sítí) ve svém oficiálním prohlášení z té doby útok na autentizační algoritmus poněkud zlehčilo, zdá se, že pomalu dozrává čas na nějaké dodatečné zabezpečení, nebo možná i nějaké radikálnější řešení. To je ovšem zcela v kompetenci jednotlivých operátorů GSM

Jak jsme již dříve napsali, má zabezpečení GSM vážné trhliny. V úvodu se podívejme na to, jak jsou vedeni účastníci v GSM síti a jak jsou jejich telefonní účty zabezpečeny.

Každý účastník má přiděleno unikátní číslo IMSI (International Mobile Subsciber Identification), které je uloženo na SIM kartě a sestaveno tak, že je ve všech GSM sítích na světě zajištěna jeho jedinečnost. Obsahuje jednak označení domovské sítě účastníka a dále jeho účastnické číslo v této síti. Nejedná se přitom přímo o jeho telefonní číslo. To je přiřazeno v databázi u jeho operátora. IMSI se používá v okamžiku, kdy mobilní telefon žádá o přihlášení do GSM sítě, tedy vždy po zapnutí telefonu. SIM karty Tato procedura se označuje jako IMSI ATTACH a je při ní účastníkovi přidělena tzv. dočasná identita, číslo TMSI. Pod tímto číslem je potom účastník v GSM síti přihlášen. Toto uspořádání přináší mnoho výhod. Mimo to, že usnadňuje změnu telefonního čísla účastníka, tzv. MSISDN, znesnadňuje i případný pokus o odposlech mobilního telefonu ze vzduchu prostě tím, že účastník dostane přiděleno jiné TMSI. Útočník tak má pod jedním číslem identifikovaného vždy jiného účastníka. Vlastní prověření identity účastníků (autentizaci) však může GSM síť provádět i jindy. Záleží na jejím nastavení.

Aby si GSM síť dokázala prověřit, že dané IMSI, které v okamžiku přihlášení od mobilního telefonu obdržela, skutečně přísluší té správné SIM kartě, je na ní uloženo ještě jedno číslo, které je ovšem tajné a nedá se ze SIM karty přečíst. Toto číslo, kterému se říká Ki (identifikační klíč) se spolu s náhodným číslem číslem, které síť do karty pošle, zpracuje autentizačním algoritmem. Vypočítaný výsledek, kterému se říká SRES (Signed Response), mobilní telefon pošle zpět síti a ta porovná, zda je shodný s tím, který si pro kontrolu spočítala sama. Na základě porovnání těchto dvou výsledků je pak karta přijata nebo odmítnuta, na displeji se objeví nápis "Neregistrovaná karta". Zatímco autentizační algoritmus A3 je ve všech kartách dané GSM sítě stejný, klíče jednotlivých karet se liší. Spolu s číslem IMSI jednoznačně identifikují účet účastníka. Tento proces, který se provádí obvykle právě při přihlášení telefonu do sítě, se nazývá autentizace a v GSM síti ji má na starosti tzv. autentizační centrum (AuC). Nejčastěji používaným autentizačním algoritmem v GSM sítích je dnes COMP128. Používají jej skoro všechny sítě na světě. Výjimky lze spočítat na prstech jedné ruky, jednou z nich je například německá síť D1.

Autentizační algoritmus prováděný SIM kartou (tedy ten, za jehož pomoci se vypočítá SRES) se v terminologii GSM označuje A3. Jeho vstupem jsou 128b dlouhé číslo RAND a identifikační klíč SIM karty Ki, který je stejně dlouhý. Výsledek SRES je pak tvořen 32bity. V případě COMPu128 je pak vlastně pomocí stejného algoritmu získán i klíč pro šifrování hovoru Kc. Algoritmus na jeho získání se označuje A8. Mechanizmus funguje tak, že do karty pošleme 128bitů dlouhé RAND a karta vrátí stejně 96bitů dlouhý výsledek. Z něho se ukrojí prvních 32bitů a ty se použijí jako SRES. Zbytek (který, jak uvidíme dále, má posledních 10bitů nulových) tvoří klíč Kc a zůstává v mobilním telefonu, který jej použije k šifrování hovoru jako klíč Kc. Z tohoto důvodu se také často hovoří o algoritmu A3A8, nebo A38.

V čem spočívá klonování?

Jednoduše řečeno, v získání karty se stejnou identitou, jakou má originál. Z výše uvedeného plyne, že k tomu potřebujeme dvě věci: IMSI a Ki. IMSI je v kartě chráněno kódem PIN1 a po jeho zadání nám nic nebrání toto číslo přečíst. U Ki je situace složitější. Karta SIM, lépe řečeno její operační systém, nám tento klíč nesdělí. Ovšem díky vlastnostem COMP128 je možné klíč určit. V textu se dále budeme zabývat právě tím, jak je možné Ki příslušející k nějaké SIM kartě získat. V dalším kroku je potom třeba IMSI a Ki přenést do nějakého zařízení, které se jako SIM karta bude chovat, v ideálním případě do nějaké prázdné SIM karty, která tak získá identitu originálu. V roce 1998, kdy došlo k prvnímu útoku, však takové prázdné SIM karty nebyly k dispozici. Funkci karty celkem dobře může zastoupit počítač PC, nebo i jiný, vybavený softwarem pro simulaci SIM karty. O samotné funkci karty jsme psali už dříve v seriálu o SIM kartách. Přibližně dva roky jsou již ale k dispozici čipové karty s integrovanými mikrokontroléry firmy Microchip. Waffer Silver a Waffer Gold Výtečně se hodí PIC16X84 s připojenou I2C pamětí 24C16 nebo 24C65, nebo s procesorem PIC16C877. Waffer Gold Dobře ale mohou posloužit i RS232 Seasonkarty s procesory RISC od firmy ATMEL. Na obrázcích si můžete prohlédnout interface k sériovému rozhraní RS232 Season, které s příslušným softwarem může jako SIM karta v notebooku posloužit. Takovým vhodným softwarem je např. SIM_EMU, jehož zdroj byl ve své době v Computer Chaos Clubu v Německu, nebo ASIM, který je uživatelsky velmi příjemný, a navíc vám umožní podrobně sledovat, co telefon z karty právě čte nebo do ní zapisuje, jaké náhodné číslo síť poslala a jaký je v danou chvíli platný SRES a Kc.

Vytvoření kostry SIM karty v mikrokontroléru integrovaném v čipové kartě pak s sebou přináší zajímavý efekt. V programu karty je možné pamatovat na možnost změny IMSI a Ki a získat tak více karet v jedné. Jednotlivé identity lze pak jednoduše vázat např. na zadaný PIN, jehož volbou pak je možné mezi uloženými účty (rozuměj kartami) přepínat. Na tomto principu stojí aplikace s tzv. Gold waffer kartou a Silver kartou.

Jak je možné Ki z karty určit?

Podívejte se teď na to, jak algoritmus COMP128 funguje: Pracuje nad 256bitů dlouhým vektorem (X[0..31] of byte) v osmi cyklech. Při inicializaci algoritmu se horní polovina vektoru (X[16]..X[32]) naplní náhodným číslem RAND(128b=16B) a spodní polovina se vždy před začátkem každého z těchto osmi cyklů přepíše stejně velkým klíčem Ki (X[0]..X[15]). Po provedení každého cyklu zůstává mezivýsledek v horní polovině vektoru, zatímco spodní polovina se vždy znovu přepíše hodnotou Ki. A takto se postupuje do dalšího cyklu algoritmu. Každý z těchto osmi průběhů cyklu obsahuje další cyklus, jenž se pětkrát opakuje a provádí úpravu hodnot v jednotlivých bajtech vektoru X. Průběhům tohoto cyklu se říká rundy. V nich se vektor rozděluje na 16 dvojic bajtů, které se navzájem ovlivňují (viz program a hodnoty v tabulce). Podstatné přitom je, že tabulky (table[0] .. table[4]) zúží vždy výstup z dané rundy o jeden bit. Po provedení všech pěti rund je v jednotlivých bytech vektoru X pouze čtyřbitový obsah. S ním se pak s výjimkou posledního z osmi průběhů cyklu provádí ještě bitová permutace (viz algoritmus).

Schéma klonování

Wagnerův, Goldbergův a Bricenův útok z roku 1998 využívá toho, že po první a druhé rundě jsou na sobě závislé jen bajty s indexy i, i+8, i+16 a i+24. Přitom navíc dojde ve druhé rundě k zúžení hodnot příslušných bajtů vektoru X z osmi na sedm bitů (viz výše). Hodnoty ve spodní polovině vektoru jsou konstantní a tvoří je bajty X[i] a X[i+8] klíče Ki. Zato hodnoty X[i+16] a X[i+24] lze měnit, jsou totiž součástí náhodného čísla RAND. Ponecháme-li tedy zbylé bajty RAND konstantní a budeme-li měnit jen bajty X[i+16] a X[i+24] , tedy RAND[i] a RAND[i+8], projeví se to pouze u 28 bitů výstupu.

Další postup při určování tajného klíče Ki spočívá v nalezení tzv. kolizí. To jsou stejné výsledky na výstupu COMP128 získané z různých hodnot RAND, ve kterých měníme právě popsané dva bajty. Protože přitom dochází k zobrazování množiny se spočetností 232 na množinu se spočetností 228, tedy 16 krát menší, měli bychom stejný výsledek někdy obdržet. Ze SIM karty obdržíme v případě kolize stejné výsledky autentizační funkce. Pravděpodobnost toho, kolikrát budeme muset algoritmus COMP128 s různými hodnotami RAND vytvořenými podle výše uvedeného pravidla spustit, aby taková nastala, určuje tzv. narozeninový paradox. Pro jednoduchost uveďme jen prostý fakt, že k poloviční pravděpodobnosti nalezení kolize při hledání jednoho páru klíče je zapotřebí přibližně 23 200 provedení COMPu128. Pro nalezení celého klíče je tedy zapotřebí teoreticky průměrně 8 × 23200 = 185600 pokusů. Běžná SIM karta je schopna autentizační funkci provést asi pětkát až šestkrát za vteřinu při standardním kmitočtu hodinového generátoru 3,58 MHz. Pro naklonování karty bychom tedy potřebovali průměrně 10 hodin 20 minut. SIM kartu je ovšem možné i přetaktovat. V tomto případě se nám povede čas potřebný pro určení klíče úměrně zkrátit. Při našich redakčních testech se nám povedlo rozběhnout kartu na téměř trojnásobku základní frekvence.

Jestliže jsme nalezli kolizi, máme nyní dvě dvojice RAND[i] a RAND[i+8], které mají s hledanými bajty klíče na svědomí stejný výsledek v druhé rundě v X[i, i+8, i+16, i+28]. Postačí nám tedy prohledat 216 (65536) možných kombinací hodnot Ki[i], Ki[i+8] a najít z nich tu, která s nalezenými hodnotami RAND[i], RAND[i+8] dá ve vektoru X v druhé rundě stejné hodnoty X[i,i+8,i+16,i+24]. Nalezené hodnoty jsou příslušnými bajty klíče Ki. Stejný postup je potřeba osmkrát zopakovat a najít tak celý klíč Ki.

Při hledání kolizí se mohou vyskytnout i tzv. falešné kolize. Mohou být způsobeny tím, že po provedení osmého cyklu v COMP128 (viz výše) se ze 128bitů z horní poloviny vektoru X přenese na výstup jen 96 a i z těch je navíc ještě posledních 10 bitů nulových. Ovšem pravděpodobnost toho, že bychom našli i k této falešné kolizi hodnoty příslušných bajtů klíče Ki je velmi malá.

Nyní byste měli mít představu o tom, jak může být SIM karta naklonována. Z textu je jasné, že ten, kdo chce kartu naklonovat, musí k ní mít přístup. Ke zjištění IMSI i k tomu, aby karta spustila provádění algoritmu A38, je navíc potřeba znát i kód PIN1 (PUK1). Jestliže se tedy chcete vyhnout nechtěnému naklonování vaší karty, měli byste mít zapnutou ochranu PIN1 a kartu raději nikomu nepůjčovat. Zprávy z poslední doby totiž ohlašují dramatické zkrácení doby nutné k naklonování a uvádějí potřebnou dobu v řádu jednotek minut.

V brzké době přineseme k tématu další, poněkud praktičtěji laděný materiál.





Nejčtenější

Apple iPhone 6 a iPhone 6 Plus
Apple vyprodává iPhony. Už stačí necelých 10 tisíc i na velký model

Apple v nejbližší době představí nové iPhony. Aby vyprázdnil sklady, vyprodává starší modely. V Česku tak tento týden klesla cena modelu 6 pod 10 tisíc korun.   celý článek

Počet objednávek na Galaxy S8 předčil dosavadní rekord předchůdce o 30 procent
Hlasový asistent Bixby vám poslouží i v Česku. Pokud mluvíte anglicky

Samsung uvolnil svého hlasového asistenta i na český trh, stále však umí jen anglicky a korejsky.  celý článek

Samsung Galaxy S8
Prodeje Galaxy S8 nemusí být růžové, pomoci by mohl Note 8

Samsung při zmínce o prodejích svého nového top modelu pouze sdělil, že se prodává nejlépe v historii, ale žádná čísla neuvedl. Nyní to vypadá, že prodeje...  celý článek

Ilustrační snímek
Chtěl se vyfotit na záchodě. Omylem vystřelil a dostal šest let

Striptýzové kluby slibují nevšední zážitky, střelba mezi ně ovšem nepatří. O takový netradiční zážitek se loni 17. prosince návštěvníkům klubu Lust ve...  celý článek

Samsung GearFit2 Pro
Náramek dovolí plavání i potápění. Přinese i podporu Spotify

Ačkoli bude hlavní hvězdou blížící se tiskové konference Samsungu v New Yorku již sedmá generace phabletu Note, jedinou odhalenou novinkou nebude. Spolu s ním...  celý článek

Další z rubriky

Nokia vyhrála patentovou válku s Applem
Nová Nokia získala patenty od Microsoftu. Původně patřily staré Nokii

Když před lety Microsoft spolkl finskou Nokii, součástí transakce byl i převod stovek hodnotných designových patentů. Server NokiaMob teď přišel s informací,...  celý článek

Během letu si chtěl natočit vedle letící letadlo, telefonu mu ovšem vypadl z...
Samsung mu vypadl z letícího letadla a nerozbil se

Může smartphone přežít pád ze 300 metrů, když i náraz z jen půlmetrové výšky mívá často fatální následky? Někdy zjevně ano. Třeba jeden tři roky starý Samsung...  celý článek

Tchajwanský průmyslový designér Chris Wu navrhl koncept chytrých hodinek s...
Tyto chytré hodinky jsou opravdu inovativní. Mají otočný displej

Chytré hodinky s operačním systémem jsou poměrně mladou záležitostí, na trhu se objevily poprvé před čtyřmi roky. Doposud se ovšem mezi uživatele nerozšířily...  celý článek

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.