Telefonní seznam FDN i čítač provolané částky AcM je nedílnou součástí SIM karty. Když se podíváte do předchozích článků o SIM kartách, zjistíte, jakým způsobem telefon s obsahem seznamu zachází. Jedná se o aplikace instrukcí READ/UPDATE RECORD, případně SEEK. Do souboru AcM pak zapisuje prostřednictvím instrukce INCREASE počet protelefonovaných pětihaléřů, jak je v souboru PUCT definovaná měna a jí odpovídající počet jednotek. V samotné kartě je sice soubor FDN chráněn kódem PIN2/PUK2, který je již zablokovaný Eurotelem, avšak komunikace mezi kartou a telefonem není nijak kódovaná, a proto je možné v okamžiku, kdy je telefon v režimu omezeného volání (pouze FDN), odpojit Go kartu a propojit telefon s mikrokontrolérem, který na chvilku za Go kartu zaskočí a dodá do telefonu vlastní verzi FDN.
Když potom volíte na telefonu, který je v režimu FDN (omezená funkce), telefonní číslo, telefon předtím než ho odešle do sítě, nahlédne do FDN a rozhodne podle jeho obsahu, jestli je volání povoleno či nikoli. A snadno domyslíte, co se přihodí, když si telefon v seznamu FDN v takovémto případě přečte následující: cokoli,0x12,0x81,"+". Jediné, čím budete omezeni, je to, že čísla budete nuceni zadávat v mezinárodním tvaru, aby první znak čísla bylo "+". Do mikrokontroléru budete muset naprogramovat jednoduchý kontextový analyzátor protokolu T0 a vlastní FDN seznam, aby ho telefon při čtení akceptoval. Analyzátor zjistí výběr souboru FDN a při jeho čtení odpojí mikrokontrolér Go kartu od telefonu a podstrčí mu přes datovou linku svůj vlastní obsah. Aby tento trik fungoval, nemusela být Go karta nabitá. Blokové schéma zapojení je zde:
Podobná, na programování ještě jednodušší situace je druhý případ se "zahazováním" AoC. Uspořádání zapojení se nemění i princip je velmi podobný. Dokonce, když oželíme komfort, není třeba programovat ani analyzátor protokolu T0. AoC totiž funguje skutečně pouze při odečítání kreditu při hovoru, takže můžeme použít obyčejný přepínač. Telefon však v tomto případě nesmí být v omezeném módu (po rehabilitaci některého ze souborů IMSI, LOCI), karta Go tedy musí být nabitá. Tarifikace AoC probíhá při navázání spojení a v průběhu hovoru. Při ní je telefonem do karty posílán odečítaný kredit. Ten se prostřednictvím instrukce INCREASE načítá v souboru AcM. Jakákoli data poslaná do AcM mají tedy za následek snížení zůstatku na kartě. Aby nedošlo k INCREASE AcM na kartě, provede mikrokontrolér příslušnou komunikaci s telefonem stejně, jako by to provedla Go karta. Výsledkem je, že karta Go ztratí přehled o odepisované částce a kredit je stále stejný. Odečítání kreditu za odeslané SMS zprávy a jiné služby (melodie, loga, obrazkové SMS) však nefunguje cestou AoC, je prováděno podobně jako nabíjení cestou Sicap SMS zpráv, ale tyto služby v době, kdy trik bylo možné použít, ještě s Go kartou nefungovaly.
V roce 1997 jsme udělali pokus se zahazováním AoC. Použili jsme program, který umí interpretovat instrukce INCREASE, SELECT, STATUS a GET RESPONSE, a naprogramovali jsme jej do mikrokontroléru PIC16C54. Analyzátor protokolu T0 jsme nedělali, protože AoC může přicházet jedině v průběhu hovoru, takže stačilo použít jen obyčejný přepínač, kterým jsme vždycky po vytočení čísla odpojili datový vodič od Go karty a připojili jej do mikrokontroléru. Výsledek vidíte na přiloženém obrázku.
Volání lze uskutečnit, kredit na Go kartě se nezmění ani dnes, ale Eurotel cenu volání registruje a při vyčerpání kreditu poskytování služby omezí. V roce 1998 to však neplatilo. Mohli jste volat stále.
A jaké je poučení?
Popsaný trik má mnohem obecnější podstatu, než pouhé obelstění systému Go. Umožňuje totiž za vhodných podmínek narušit logickou celistvost struktury čipové karty, která je obvykle vnímána jako nedělitelná, a tím obejít jednu z jejích podstatných vlastností. Pravdou ale je, že jednodušší než popisované triky a mnohem více používaná metoda "šetření" kreditu v dobách začátků Go bylo využívání chyby ve firmware telefonů Ericsson, takže Eurotel mohl tomuto problému čelit. Stačilo autentizovat kartu v době provádění INCREASE AcM. V případě Ericssonů s chybným firmwarem, které v tu chvíli nekomunikovaly s kartou a byly největším problémem v síti, by v okamžiku autentizace síť přišla na to, že telefon nemůže správně prokázat svou identitu, a spojení by mohlo být přerušeno. Namísto toho Eurotel odpojoval zákazníky, kteří triků s telefonem využívali, a poukazoval na to, že přístroje nepoužívají v souladu s návodem. Kdo ví, zda by tento článek vůbec vznikl, kdyby Eurotel šel cestou této přidané autentizace.
Od doby vzniku Go karty tedy musel Eurotel udělat z bezpečnostních důvodů v systému své předplacenky podstatné změny (nadřazená evidence kreditu mimo kartu), jejichž důsledkem je i skutečnost, že reklamní slogan: "kredit přímo na displeji" nemusí být vždy zcela pravdivý. Závěrem link na předchozí díl článku a slovníček zkratek:
Slovníček zkratek |
|
AoC |
Adivice of Charge funkce umožňující přenos tarifikačnícch jednotek do SIM karty |
ACM |
Acumulated Call Meter soubor na SIM kartě, do kterého se ukládá cena za hovory |
AccMax |
Soubor na SIM kartě, do kterého se ukádá limit ceny hovorů |
FDN |
Fixed Dialing Numbers telefonní seznam pevné volby, definovatelný po zadání PIN2. V Go karty jsou PIN2/PUK2 zablokovány a ve FDN jsou čísla *88 a 15X (tísňová volání a Go linka) |
GET_RESPONSE |
Instrukce SIM karty pro zjišťování stavu souborů ap. |
IMSI |
International Mobile Subscriber Identification soubor na SIM kartě, kde je uložena identifikace účastníka |
LOCI |
soubor na SIM kartě, do kterého telefon ukládá informace o aktuální provozní oblasti a buňce |
PUCT |
soubor na SIM kartě, ve kterém se nachází cena za jednotku AoC a použitá měna |
READ |
instrukce SIM karty pro přenos dat z karty do telefonu |
RECORD |
záznam v rámci souboru na SIM kartě (část telefonního seznamu ADN nebo FDN - jméno, číslo) |
SELECT |
instrukce SIM karty pro výběr souborů |
STATUS |
instrukce SIM karty pro čtení jejího stavu |
SMS |
ShortMessage krátká textová zpráva |
SIM |
Subscriber Identification Module účastnická karta |
T0 |
Komunikační protokol mezi kartou a telefonem |