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ší

Příchod sítí 5G je plánován na rok 2020
Nástup sítí 5G je zase o něco blíže. První vysílače jsou v Berlíně

Berlín Příchod sítí 5G je plánován až na rok 2020, ale k důležitým milníkům dochází už teď. Společnost Deutsche Telekom spustila první evropské vysílače umožňující...  celý článek

Nokia 9
Skvělý start, hodnotí analytici návrat Nokie na trh

Návrat značky Nokia na trh byl doprovázen řadou analýz, které předpovídaly úspěch, nebo naopak krach. Nakonec to vypadá, že se návrat legendární značky může...  celý článek

Za nový iPhone 8 si nechal na ruku vytetovat logo T-Mobilu
Chtěl iPhone zdarma a tak si nechal vytetoval logo T-Mobilu

Neobvyklý způsob, jak si pořídit nový mobil, zvolil muž z USA. Domluvil se s ředitelem T-Mobilu, že si nechá vytetovat logo tohoto operátora na ruku výměnou za...  celý článek

TrueDepth fotoaparát u iPhonu X
Čelní foťák iPhonu X doženou ostatní nejdřív za dva roky, tvrdí analytik

Příchod iPhonu X očekávají nejspíše desítky milionů applistů z celého světa. Po třech letech okoukaného designu totiž přijde zcela nový přístroj s obřím...  celý článek

Huawei Mate 10 Pro
Má skvělou výbavu a podle výrobce je lepší než iPhone X

Mnichov (od zpravodajů Mobil.iDNES.cz) Huawei v Mnichově představuje nové modely Mate 10. Trojice novinek patří ve svých segmentech na špičku. Ceny jsou překvapivě výhodné.  celý článek

Další z rubriky

Nahradí otisky prstů skener obličeje?
Měla to být největší inovace roku, ale nezvládl ji ani Apple

Dlouhé měsíce se o ní mluvilo, měl ji mít Samsung S8, pak to měla být klíčová vlastnost nového iPhonu. Jestliže výrobci už umí displeje zahnout a roztáhnout...  celý článek

Google koupil Apple za 9 miliard dolarů?
Svět se nestačil divit. Google koupil Apple, psaly burzovní zprávy

O menší šok na burze se postaral známý akciový index světa, Dow Jones. Omylem totiž vydal falešnou zprávu, že firma Google koupila za směšných 9 miliard dolarů...  celý článek

Scotty Allen s iPhonem 7, do kterého přidal sluchátkový port
Nadšenec se podomácku zbavil největší chyby nových iPhonů

Internetový kutil Scotty Allen se skutečně nezastaví před žádným obtížným úkolem. Poté, co si letos v dubnu podomácku sestavil z náhradních dílů funkční iPhone...  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.