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

SIM karta pod lupou: jak SIM karta komunikuje?

aktualizováno 
Jako Golem bez šému, i telefon je vám bez SIM karty k ničemu. Proč má některá karta více místa v telefonním seznamu než jiná? Jak je to s místem pro SMSky? Má ještě jiné funkce než ty, které jsou na první pohled zřejmé? Podívejte se na SIM kartu podrobněji.
Už jsme si řekli, že mimo napájecí vodiče vedou do karty ještě další tři, DATA, CLK a RESET. Po připojení napájecího napětí mezi vývody Vcc a GND karta očekává událost RESET. Ta nastane definováním logické hodnoty 0 nebo 1 na vývodu RESET. Jaká tato hodnota skutečně je, záleží na typu použitého procesoru. Některé reagují na 0, některé na 1, je to záležitost čistě hardwarová a norma s oběma eventualitami počítá. Telefon podle ní obvykle nejprve nastaví RESET do stavu 0 a vyšle do karty 40 000 hodinových cyklů přes vývod CLK a očekává reakci karty. Když karta neodpoví, udělá totéž ještě s RESETem ve stavu 1. Karta na událost RESET reaguje vysláním tzv. ATR sekvence (Answer To Reset). To je sled bytů, které jsou sériově vyslány na vývod DATA. Některé telefony se o to pokusí i několikrát. Neohlásí-li se karta, telefon ji odmítne. Jestliže karta reaguje, je nadále na vývodu RESET ustálena ta hodnota, při které nastala událost ATR. Data přitom karta vysílá asynchronně. Přenos jednoho byte je vidět na následujícím obrázku:

komunikacesim

Obr.3 Komunikace se SIM kartou a ošetřená paritní chyba

Rychlost komunikace na datovém rozhraní je 9600 bitů za vteřinu pro karty s vnitřním zdrojem hodin, nebo CLK/372 u karet, které vyžadují externí zdroj hodin. Když tedy použijeme externí zdroj hodin 3.58 MHz, bude karta s vnitřním zdrojem komunikovat stejnou rychlostí jako karta se zdrojem vnějším.

Data jsou přenášena sériově, po START-bitu v pořadí od nejnižšího do nejvyššího. Přenos je zabezpečen sudou paritou a následuje STOP-bit. Ten je dvojnásobné délky oproti ostatním a v jeho druhé polovině časového průběhu umožňuje hlášení chyb na straně příjemce. Případná chyba je ohlášena vysílajícímu stržením úrovně na vývodu DATA z 1 do hodnoty 0. Vysílající pak zopakuje tento špatně přijatý byte ještě jednou. Chyba se určí pomocí paritního bitu. Co se skrývá v ATR? Prvním bytem po události RESET, který SIM karta vyšle, je byte TS. Ten definuje způsob kódování následujících byte. Začíná vždy posloupností bitů "0110". Následující tři bity jsou buď 111 nebo 000 a rozlišuje se pomocí nich konvence, podle níž probíhá další komunikace s kartou. Stav 000 označuje inverzní konvenci, stav 111 konvenci přímou. Jaký je mezi nimi rozdíl? Přímá konvence má bity ve vyslaném byte seřazeny stejně jako při ATR - od nejnižšího k nejvyššímu - a logická 1 na vývodu DATA vyjadřuje stav 1, inverzní konvence je skutečně inverzní: datové bity jsou váhově otočeny, přenášejí se v opačném pořadí a logická 1 na vývodu DATA značí stav 0.

Další byte, který karta při ATR vyšle, je T0. Definuje strukturu ATR. Když má pátý bit v byte T0 nastaven do jedničky, je vysílán byte TA1, šestý bit v jedničce znamená vysílání TB1, sedmý TC1 a osmý TD1. Stejnou informaci pak ve své horní polovině nese byte TD1, takže se tyto znaky mohou v ATR několikrát opakovat. Ukončení vysílání těchto byte poznáme podle toho, že v TDn nejsou příslušné bity nastaveny do hodnoty jedna (jsou nulové), nebo není byte TDn vůbec vyslán. čtyři spodní bity byte T0 a TDn. V těch je v případě protokolu T0 (což je i případ SIM karty) počet byte T1...Tk, které se označují jako historářové. Zde by měly být uloženy informace o výrobci čipu, operačním systému a další služební data.

atrstruktura

Obr.4 Struktura ATR

V ATR je ale zakleto více informací. Týkají se maximálního proudu Vpp, programovacího napětí a dalších záležitostí týkajících se hardware karty. Pro bližší informace odkazujeme na normu ISO7816. A jak se se SIMkou komunikuje dál? Dodržuje se příslušná konvence, která byla definovaná v ATR sekvenci. Protokol T0 staví SIM kartu jednoznačně do pasivní role, příkazy vždy zadává telefon (a jemu zas GSM síť nebo uživatel). Příkaz do karty se skládá z hlavičky, datové části a dvojice byte SW1 a SW2, které určují, jaký je stav operace po jejím provedení (indikace chyb). Hlavička má strukturu: CLA, INS, P1, P2, P3 CLA je třída instrukce, v případě GSM má vždy hodnotu A0. INS je instrukční kód, nejnižší bit tohoto byte je je vždy nulový, vyšší polovina nesmí obsahovat hodnotu šest nebo devět. P1, P2 závisí na typu instrukce a slouží k adresování. P3 určuje počet datových byte, které se budou přenášet. Zde je malá záludnost v tom, že při přenosu dat ze SIMky do telefonu nulová hodnota tohoto byte znamená přenos 256ti byte. V opačném směru pak nejsou přeášena žádná data (P3=0).

Příkaz
INS
P1
P2
P3
směr přenosu dat
SELECT

00
00
02
I/O
STATUS
F2
00
00
délka
O
READ BINARY
B0
offset vyšší
offset nižší
délka
O
UPDATE BINARY
D6
offset vyšší
offset nižší
délka
I
READ RECORD
B2
číslo záznamu
mód
délka
O
UPDATE RECORD
DC
číslo záznamu
mód
délka
I
SEEK
A2
00
typ/mód
délka
I/O
INCREASE
32
00
00
03
I/O
VERIFY CHV
20
00
CHV1/2
08
I
CHANGE CHV
24
00
CHV1/2
10
I
DISABLE CHV
26
00
01
08
I
ENABLE CHV
28
00
01
08
I
UNBLOCK CHV
2C
00
*
10
I
INVALIDATE
04
00
00
00

REHABILITATE
44
00
00
00

RUN GSM ALGORITHM
88
00
00
10
I/O
SLEEP
FA
00
00
00

GET RESPONSE
C0
00
00
délka
O
TERMINAL PROFILE
10
00
00
délka
I
ENVELOPE
C2
00
00
délka
I/O
FETCH
12
00
00
délka
O
TERMINAL RESPONSE
14
00
00
délka
I

*) Pro CHV1=00; pro CHV2=02

Tabulka 1. Kódování příkazů pro SIM kartu

Nadřízený tedy pošle do karty hlavičku. Ta mu odpoví bytem ACK,NULL nebo SW1. Význam těchto byte je v tabulce:

Odpověď

Hodnota byte

Význam

ACK

INS

 

INS+1

 

NOT( INS)

NOT(INS+1)

Vpp neaktivní, následuje přenos všech dat (podle P3)

Vpp aktivní, následuje přenos všech dat (podle P3)

Vpp neaktivní, přenáší se 1 byte dat

Vpp aktivní, následuje přenos 1 byte dat

NULL

60

bez přenosu dat, Vpp beze změn

SW1

SW1

Vpp neaktivní, následuje přenos SW2

Tabulka 2. Odpověď karty, hodnoty byte ACK

Byte, který je přijat jako odpověď má význam pro telefon, který se podle jeho hodnoty a významu v daném okamžiku zachová (zapne nebo vypne programovací napětí, vyšle příslušný počet byte do karty ap.). Jak je vidět z tabulky, SIM karta si může říci o čas, jestliže je její procesor zaměstnán zpracováním dat. Už samotný zápis do paměti EEPROM totiž trvá nějakých 10ms, což může při zápisu do většího počtu buněk trvat poměrně dlouho. Dělá to tak, že odpoví bytem s hodnotou not (INS) nebo not (INS+1); telefon (nadřízený) pak může do karty poslat jen jeden byte. Ten karta kvituje opět tímto bytem. Má-li opět stejnou hodnotu, přenese se po datové lince opět jen jeden byte, a procesor v kartě tak získává čas. Když ale dojde v průběhu této komunikace ke změně ACK byte na hodnotu INS nebo (INS+1), dojde k přenosu všech zbylých dat (podle parametru P3).

Když karta zpracovává data, nebyl dokončen příkaz a všechna potřebná data byla již přenesena, signalizuje to vysíláním byte NULL. O průběhu zpracování příkazu vyšle karta návratový kód složený z byte SW1 a SW2. Obecně platí, že správně vykonaná instrukce vrátí tento kód s hodnotou 90 00. GSM11.11 pak definuje pro dobrý průběh ještě návratový kód 9F XX. V tomto případě je navíc k dispozici ještě odpověď, kterou lze získat instrukcí GET RESPONSE s délkou dat XX. Některé jiné hodnoty SW1 a SW2 a jejich významy jsou v tabulce níže:

hodnota SW1

hodnota SW2

Význam

92

0X

příkaz správně proveden, ale až po použití vnitřní UPDATE RETRY rutiny, která byla Xkrát spuštěna. (problémy při zápisu do EEPROM)

92

40

problém s pamětí

94

00

nebyl vybrán soubor EF

94

02

špatná adresa (adresa mimo rozsah)

94

04

nenalezen identifikátor souboru

94

08

soubor nekonzistentní s příkazem

98

02

neinicializovaný CHV (nebyl zadán příslušný PIN)

98

04

- nespněná přístupová podmínka

- neúspěšná verifikace CHVpři posledním pokusu

- neúspěšná verifikace UNBLOCK CHVpři posledním pokusu

- chyba autentizace

98

08

v rozporu se stavem CHV

98

10

v rozporu se stavem IVALIDATE

98

40

 

- neúspěšná verifikace CHV, nezbývá žádný pokus

- neúspěšný pokus o UNBLOCK CHV, nezbývá žádný pokus

- CHV zablokován

- UNBLOCK CHV zablokován

98

50

INCREASE nemůže být provedena, Max. hodnota překročena

67

XX

nekorektní parametr P3 (špatná délka)

6B

XX #

nekorektní parametr P1 nebo P2 ##

6D

XX #

neznámý instrukční kód v příkazu

6E

XX #

špatná třída instrukce v příkazu

6F

XX #

technický problém bez bližší specifikace

# Tyto hodnoty „XX“ jsou specifikovány v ISO/IEC; jejich hodnota je předdefinovaná a je vždy „00“.

 

## Pokud nastane chyba v P1 nebo P2 v případě adresování záznamu (mimo rozsah), je vyslán návratový kód 94 02.

Tabulka 3. význam návratových kódů SW1, SW2



Témata: gsm, Reset, s-karta

Nejčtenější

Nový „levný“ iPhone má být hit. Prodat se ho má 100 milionů

Trojice iPhonů pro rok 2018

Apple chystá na letošní rok tři nové iPhony. Jedním z nich má být levnější model, který nebude mít OLED displej. A...

Nepoužívejte smartphony Huawei a ZTE, varují Američany FBI, CIA i NSA

Huawei Mate 10 Pro bude v USA k dostání u BestBuy

Huawei chtěl letos vzít útokem Spojené státy, a to s pomocí tamních klíčových operátorů. Z možné dohody však nakonec...



Vodafone extrémně vylepšuje rodinné tarify. Zadarmo přidává 8 GB a VDSL

Vodafone (ilustrační fotografie)

Není obvyklé, aby operátor výrazně vylepšil tarif a nesáhl na cenu. V případě inovovaných rodinných tarifů Red+ tomu...

Teď přijde řada na naše peníze. V Číně totiž končí zlaté časy

Xiaomi Mi 6

Čínský trh s chytrými telefony je největší na světě, ale loni se podle všeho dostal do potíží. Po letech růstu přišel...

Lidé si stěžovali na špatný signál. Rušil ho těžař bitcoinů

(Ilustrační snímek)

Newyorští zákazníci amerického operátora T-Mobile si stěžovali na znatelný šum během telefonních hovorů. Ukázalo se, že...

Další z rubriky

Lidé jsou závislí na smartphonech. Nevzdávají se jich ani v posteli

Ilustrační snímek

Smartphony nám usnadňují život, ale jak se říká, všeho s mírou. Podle evropského průzkumu společnosti Huawei se tím...

Za tisíce si udělají z mobilu dobrovolně těžítko

Kryty Roxxlyn

Z poměrně neobvyklého materiálu vyrábí pouzdra pro mobilní telefony firma Roxxlyn. Speciální kryt smartphone pokryje...

Nepoužívejte smartphony Huawei a ZTE, varují Američany FBI, CIA i NSA

Huawei Mate 10 Pro bude v USA k dostání u BestBuy

Huawei chtěl letos vzít útokem Spojené státy, a to s pomocí tamních klíčových operátorů. Z možné dohody však nakonec...

Najdete na iDNES.cz