SIM karta pod lupou: jak SIM karta komunikuje?

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

V květnu se zřejmě vrátí ikonická Nokia 3210, kdysi to byl přelomový model

24. března 2024  8:01

Současný vlastník značky Nokia na poli mobilních telefonů, firma HMD (Human Mobile Devices –...

Banka spustila mobilní datové balíčky. Funguje to i zákazníkům z Česka

26. března 2024  12:06

Virtuální banka Revolut spouští virtuálního celosvětového operátora. Zákazníci si mohou kupovat...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Z bídného začátku roku se radují. Vypadá to na velký návrat

21. března 2024  7:02

Zřejmě to vypadá na velký návrat. Huawei začíná drtit své domácí konkurenty, přitom jeho produkty...

Trvalo to. Nový nejlepší fotomobil světa konečně koupíte i v Česku

26. března 2024  7:02

Konečně nastává situace, že nejlepší fotomobil v žebříčku DxO Mark je dostupný i na našem trhu....

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Pochlubili se, že se pochlubí. Značky ze sebe dělají slibotechny

25. března 2024  7:02

Jedním z trochu nečekaných trendů veletrhu MWC v Barceloně se stala oznámení o tom, že firmy nějaké...

Toho telefonu je pouze pro Čínu škoda. Udělal by parádu i u nás

28. března 2024  12:06

Xiaomi má nový trhák. Model Civi 4 Pro trhá předprodejní rekordy, ale jen na domácím čínském trhu....

U foťáků se blýská na lepší časy, naznačuje výsledek testu nového xiaomi

28. března 2024  7:02

Čínská značka Xiaomi trochu na poli fotomobilů v uplynulých letech tápala. Ukazuje to mimo jiné...

Kartónek Steva Jobse se vydražil za neuvěřitelnou sumu

28. března 2024

Vizitku slavného ředitele společnosti Apple si někdo pořídil za pořádný balík peněz. Přidanou...

Smartphonům od Googlu raketově rostou prodeje tam, kde kraluje Apple

27. března 2024  7:02

Prodeje smartphonů Pixel od Googlu se mohou pochlubit neskutečným nárůstem prodejů. Tedy prozatím...

Rána pro britskou monarchii. Princezna Kate má rakovinu, chodí na chemoterapii

Britská princezna z Walesu Kate (42) se léčí s rakovinou. Oznámila to sama ve videu na sociálních sítích poté, co se...

Smoljak nechtěl Sobotu v Jáchymovi. Zničil jsi nám film, řekl mu

Příběh naivního vesnického mladíka Františka, který získá v Praze díky kondiciogramu nejen pracovní místo, ale i...

Rejžo, jdu do naha! Balzerová vzpomínala na nahou scénu v Zlatých úhořích

Eliška Balzerová (74) v 7 pádech Honzy Dědka přiznala, že dodnes neví, ve který den se narodila. Kromě toho, že...

Pliveme vám do piva. Centrum Málagy zaplavily nenávistné vzkazy turistům

Mezi turisticky oblíbené destinace se dlouhá léta řadí i španělská Málaga. Přístavní město na jihu země láká na...

Kam pro filmy bez Ulož.to? Přinášíme další várku streamovacích služeb do TV

S vhodnou aplikací na vás mohou v televizoru na stisk tlačítka čekat tisíce filmů, seriálů nebo divadelních...