6. Architektura telefonních karet

Ve své podstatě zde nejde o "pravé" smart-karty, neboť neobsahují žádný vlastní procesor. Tyto karty vlastně představují pouze jistý typ nonvolatilní paměti, která je dostupná pomocí jednoduchého sériového komunikačního protokolu. O vlastní řízení přístupu se stará pouze poměrně jednoduchá kombinační logika, v lepším případě je použit nějaký jednoduchý konečný automat. S tím, že tyto karty nejsou vybaveny vlastním procesorem, který by například samostatně prováděl autentizaci a šifrování čtených či zapisovaných dat, též velice úzce souvisí jejich bezpečnost. Ta, jak uvidíme za okamžik, se zde zajišťuje spíše na principech ryze fyzikálních (použitý typ paměti) než pomocí matematických kouzel.
Dalo by se říct, že existují dva reprezentativní zástupci. Jednak je to typ ST1200, který se kromě ČR používá rovněž ve Francii, Španělsku, Mexiku, Švédsku a Finsku. Druhý typ, který má pravděpodobně označení řady ST1300 se používá hlavně na Slovensku a v Německu. Tento druhý typ je o něco chytřejší než ST1200. V této práci se jen zaměříme na karty typu ST1200.

Schéma paměti

Nyní víme, že nemůžeme od těchto karet čekat víc než obyčejnou paměť. V tomto případě těchto karet jde o 256 bitů paměti typu EPROM. jejíž strukturu je možné vidět na přiloženém obrázku.
Schéma paměti ST1200Zde vidíme, že prvních 96 bitů paměti tvoří hlavičku, která v sobě nese takové informace, jako je počet jednotek, sériové číslo, kontrolní součet atd. Zbylých 160 bitů paměti se označuje jako pole jednotek a slouží k zaznamenávání počtu protelefonovaných impulzů. Ty se zde zaznamenávají v podobě jednotkových bitů, přičemž platí, že co jeden bit nastavený na jedničku, to jedna odepsaná jednotka. Dále platí nepsané pravidlo, že blok jednotkových bitů by měl tvořit souvislou posloupnost od počátku pole jednotek. Za zmínku též stojí fakt, že první dvě jednotky jsou vždy odepsány už při výrobě karty jako součást výstupní kontroly. Při bližší prohlídce hlavičky zjistíte, že díky tomuto testování jsou karty vždy vyráběny na počet jednotek, který je o dvě vyšší než je hodnota vyražená na obalu karty. Přímo z právě popsané struktury těchto karet (dalo by se vlastně říkat též pamětí), je ihned patrné, proč se prodávají karty na maximálně 150 jednotek. Víc bych se jich totiž na kartu už nevešlo. Proč 150 a ne 158? To proto, že poslední bajt z pole jednotek je vyhrazen pro zvláštní účely (označení prázdné karty apod.)
Jako zvláštní příklad použití popsaného pole jednotek si můžeme uvést karty španělské. Zdejší telefonní automaty dělí pole jednotek na takzvaný rychlý a pomalý čítač. Bitové dotace na tyto dva čítače se přitom liší podle toho, na jaký počet jednotek (zde udáváno v pesetách) je karta určena. Tak např. pro kartu za 2000 Pta má pomalý čítač velikost 60 bitů, takže na rychlý zbývá rovných 90 (u těchto karet nebývá použito prvních osm bitů – slouží pro testovací účely). Výsledný počet protelefonovaných jednotek, vztažených na danou měnu, se přitom počítá jako 10*slow_cnt + fast_cnt, kde slow_cnt, respektive fast_cnt představuje počet odepsaných jednotek v poli pomalého, respektive rychlého čítače. Vlastní posloupnost jednotkových bitů v obou čítačích přitom nemusí být souvislá – důležitá je vždy pozice posledního bitu.

Komunikační protokol

K přístupu do paměti se používá jednoduchý sériový protokol, se kterým je možné provádět tři základní operace: resetovat kartu, provést přesun na další bit a nastavit daný bit do stavu logická 1. První dvě operace jsou určeny zejména ke čtení obsahu karty, kdy je na výstupní pin v synchronizaci se spádovou hranou hodin (ty generuje telefonní automat) zaslán vždy další bit v pořadí msb. .. lsb počínaje adresou nula. Pomocí operace reset je možné kdykoliv nulovat vnitřní čítač karty a číst ji znovu od začátku. Poslední ze zmíněných akcí, kterou je zápis jednotky, se (jak už jistě tušíte) používá při odpisu impulzu. Ačkoliv by to mělo být z daného obrázku patrné, pro jistotu ještě dodávám, že operace zápisu a čtení využívají stejný čítač adres. Pokud tedy chceme nějaký bit nastavit do hodnoty logická jedna, pak nejdříve musíme pomocí n taktů hodin nastavit adresu na danou pozici a poté provést zápis. To, jestli se po skončení zápisu přesune čítač na další bit nebo ne, je dáno tím, zda spádová hrana hodin přijde před (nebo současně se) spádovou hranou signálu R’/W nebo až po ní. V prvním případě zůstane hodnota čítače nezměněna, zatímco ve druhém případě se tento ukazatel přesune na další bit.
Komunikační protokol ST1200

Bezpečnost ST1200

Kartu ST1200 chrání především princip, na kterém je založena její paměť. Celý trik bránící nežádoucímu "dobíjení" karty je zde vystavěn na tom, že použitá paměť je typu EPROM. To znamená, že pomocí komunikačního protokolu (a potažmo elektronického působení vůbec) je do ní možné zapsat pouze hodnotu jedna (prakticky to asi bude invertovaná nula). Daný bit reprezentující telefonní jednotku tak můžeme pouze "odpálit" bez možnosti návratu zpět.
Čistě teoreticky by mělo být možné kartu po odleptání ochranných pryskyřic a po následném vystavení tvrdému UV záření smazat. Tato věc má však ještě jeden háček, a tím je pojistka chránící oblast hlavičky před zápisem. Ta je propálena při výrobě karty po naprogramování hlavičkové části. Pokud bychom tedy nakrásně kartu výše popsaným způsobem vymazali, pak bychom zároveň přišli o hlavičku, kterou by už díky zmíněné pojistce nebylo možné obnovit. Dodejme ještě, že tato pojistka také úspěšně brání zvýšení počátečního počtu jednotek zapsáním jedničky do 24 bitu hlavičky (z 50jednotkové karty bychom tak vyrobili 150jednotkovou).
Ať tak či onak, přes nějaké "ošálení" vytelefonované karty cesta za bezplatnými telefonáty zjevně nevede. Samozřejmě, mohly se vyskytnout ojedinělé případy, kdy se různým "trápením" karty podařilo část jednotek obnovit, ale to jsou spíše světlé výjimky. To, co však před pár lety doslova zahýbalo českými sdělovacími prostředky, byly téměř dokonalé padělky těchto karet.

Principy padělání

Hlavní cesta k napadení systémů založených na těchto kartách nevede přes manipulaci s existující kartou, nýbrž přes vytvoření vlastního exempláře. Zde bych se rád zaměřil na dva základní typy těchto padělků s možným naznačením obranných mechanismů, které na ně "zabírají".
První typ, označovaný podle svého vzhledu jako "vrabčí hnízdo", v podstatě představuje napodobení karty pomocí stejných stavebních prvků, z jakých se skládá originál. Najdeme zde tedy čítač adres, paměť EEPROM (nevím, který hacker by si tam dal dobrovolně EPROM) a něco málo kombinační logiky kolem. Hlavní nevýhoda a tím i zranitelnost těchto padělků vyplývá z toho, že klasická součástková základna je přece jen o něco málo větší než původní čip na kartě. I když zruční hackeři většinou všechny obvody dovedně zbrousí a zalepí do celistvého bloku ukrytého na spodní straně karty, přece jen je na první pohled vidět, že jde o padělek. Navíc do automatů firmy Landis&Gyr není vůbec možné tyto karty vzhledem k jejich velkým rozměrům zastrčit. Tam, kde by snad selhaly mechanické ochrany, kartu tohoto typu většinou spolehlivě odhalí detektor kovů a magnetického pole (pokud pracuje tak, jak má).
Druhý typ padělků používá stále oblíbenější procesory PIC 16C84 či jim podobné, které mají tu zásadní výhodu, že po zbroušení je lze bez větších problémů zalepit přímo do původní karty. Odpadají tak starosti s mechanickými zábranami. Na karty s těmito procesory jsou většinou krátké i detektory kovů a magnetického pole. Na první pohled tedy samé výhody a mohlo by se zdát, že tyto karty jsou neodhalitelné. To však neplatí zcela stoprocentně, neboť jejich hlavní problém se jmenuje rychlost. Zatímco "vrabčí hnízda" mohou bez problémů pracovat zhruba na stejných hodinových frekvencích jako originální karty, zde to díky nezanedbatelné délce instrukčního cyklu dost dobře není možné. Navíc tyto karty musí mít z čistě teoretického hlediska problémy s ošetřováním takzvaných asynchronních událostí. To je okamžik, při kterém se najednou mění více vstupních signálů. Zatímco kombinační logika "vrabčího hnízda" takové stavy hravě zvládne, procesorem řízený model na nich většinou úspěšně pohoří. Jedna taková "vychytávka" týkající se atypického resetování je uvedena v přiloženém průběhu karty. Podle internetovských undergroundových zdrojů byl tento průběh dlouhou dobu příčinou bezesných nocí mnoha hackerů.
 


<--<-^->-->



 



Semestrální projekt z Číslicových počítačů II.
Autoři: Lumír Návrat, Jakub Konštacký, Zdeněk Šmíd, Pavel Oplatek