COMPUTERWORLD
Specializovaný týdeník o výpočetní technice

Seriál
o bezpečnosti
a informačním soukromí

Část 55 - CW 31/98

Čipové karty

Petr Hanáček

Čipová karta (smart card) je plastická karta o velikosti běžné platební karty, která obsahuje zabudovaný čip. Tento čip slouží jako paměť, na které jsou uložena data. Často je však čipová karta natolik inteligentní, že obsahuje na svém čipu samostatný jednočipový procesor, který může provádět různé výpočty, včetně kryptografických operací. Skutečnost, že tento procesor je umístěn v jediném čipu, zajišťuje odolnost čipové karty proti útoku a karta při svých výpočtech není závislá na poměrně zranitelném vnějším prostředí. Vzhledem k těmto vlastnostem jsou čipové karty často využívány v aplikacích, které požadují silné zabezpečení dat a bezpečné provádění kryptografických operací v prostředí, které není bezpečné.

Typy čipových karet

Čipové karty jsou dvojího druhu -- kontaktní a bezkontaktní. Kontaktní čipové karty se dají snadno rozeznat podle typického tvaru osmice kontaktů, jak je známe například z telefonních karet. Kontaktní karta musí být v okamžiku její činnosti zasunuta v konektoru nebo v takzvané čtečce. Bezkontaktní kartu může její majitel držet v ruce nebo nosit připnutou na svém oděvu, protože používají pro styk s vnějším světem a pro napájení elektromagnetickou indukční smyčku.

Karta se skládá ze 3 základních částí: z plastového nosiče o rozměrech 85,60 mm x 53,98 mm x 0,80 mm, z plošného spoje, který obsahuje 8 kontaktů konektoru a z čipu integrovaného obvodu. Schopnosti čipové karty jsou dány schopnostmi jejího čipu. Podle jejich schopností dělíme čipové karty na 3 skupiny: na paměťové čipové karty, na paměťové čipové karty se speciální logikou a na procesorové čipové karty.

Paměťové čipové karty

Obsahují na svém čipu pouze elektricky programovatelnou polovodičovou paměť (obvykle typu EEPROM nebo EPROM). Tato paměť slouží pro zapamatování údajů, které jsou z karty přečteny při jejím zasunutí do čtečky. Údaje, uložené na kartě, jsou obvykle údaje o držiteli karty. Paměťové karty jsou nejvíce používány jako zdravotní karty, které obsahují zdravotní informace o držiteli karty.

Karty se speciální logikou

Obsahují na svém čipu opět elektricky programovatelnou polovodičovou paměť, která však bývá doplněna nějakou speciální logickou funkcí. Příkladem takovéto logiky může být ochrana přístupu k datům na kartě pomocí hesla nebo PINu (pak zpravidla hovoříme o paměťové kartě chráněné PINem). Jiným příkladem může být paměťová karta, do které lze pouze zapisovat logické jedničky a nikoli logické nuly (přibližně takto funguje klasická telefonní karta) nebo karta, která obsahuje čítač nějakých jednotek (tyto karty se obvykle používají jako předplatní, telefonní nebo parkovací karty).

Procesorové karty

Jsou nejuniverzálnější skupinou. Na svém čipu mají jednočipový mikroprocesor, který je schopen sám provádět více či méně složité výpočty. Mezi tyto výpočty velmi často patří schopnost zašifrovat nebo dešifrovat data pomocí klíče, který je uložen na kartě, což dává tomuto typu karet značné možnosti pro kryptografickou autentizaci nebo pro realizaci platebních transakcí. Jelikož tyto čipové karty patří k nejuniverzálnějším a v oblasti zabezpečení k nejpoužívanějším, budeme se dále v tomto článku zabývat pouze kontaktními procesorovými čipovými kartami.

Kontaktní procesorové čipové karty

Kontaktní procesorová čipová karta je spojena vnějším světem konektorem. Ačkoli ISO standard 7816-2 definuje 8 kontaktů tohoto konektoru, v praxi se z nich využívá pouze 5 nebo 6. Dva z těchto kontaktů (Vcc a Vss) slouží pro napájení karty. Karta je vždy napájena externě a pro napájení se používá napětí 5 V. Kontakt Reset slouží pro resetování procesoru karty. Kontakt I/O je použit pro vstup příkazů a dat do karty a pro výstup dat z karty. Kontakt Clk slouží jako vstup externích hodin pro procesor a jako referenční kmitočet pro vstup a výstup dat přes kontakt I/O. Standard ISO 7816 předepisuje použití externích hodin s kmitočtem 3,5795 MHz a přenosové rychlosti 9 600 Baudů. U některých nových karet je možno později kartu přeprogramovat pro použití jiného hodinového kmitočtu a jiné přenosové rychlosti -- toto přeprogramování ale všechny karty neumějí a karta nemusí vždy pracovat spolehlivě. Kontakt Vpp je určen pro přivedení vyššího napájecího napětí, které je nezbytné pro zápis a mazání pamětí EPROM a EEPROM. V moderních kartách se tento kontakt již nevyužívá, protože tyto karty si potřebné programovací napětí generují samy na čipu z napájecího napětí.

Mimo interface pro styk s vnějším světem obsahuje procesorová čipová karta mikroprocesor a paměti. V současné době má převážná většina čipových karet 8bitový mikroprocesor s instrukční sadou kompatibilní buď s jednočipovými mikroprocesory Intel, nebo Motorola. Pokud má karta provádět kryptografické operace s veřejným klíčem, které jsou značně výpočetně náročné (např. pomocí algoritmů RSA nebo DSS), je vybavena speciálním hardwarovým koprocesorem pro operace modulární aritmeticky s velkými čísly. Paměť bývá v čipové kartě rozdělena na několik oblastí, které jsou realizovány různou technologií. Karta obsahuje paměť RAM (Random Access Memory), která při vyjmutí karty ze čtečky ztrácí svůj obsah a slouží pouze pro uložení dočasných výsledků při výpočtech. Kapacita této paměti u většiny karet nepřevyšuje 512 bajtů. Další oblast paměti bývá realizována pamětí ROM (Read Only Memory), která je nepřepisovatelná a obsahuje operační systém karty a někdy také samotnou aplikaci karty. Kapacita této paměti bývá několik kilobajtů, výjimečně i několik málo desítek kilobajtů. Poslední část paměti je provedena technologií EEPROM (Electrically Erasable Programmable Read Only Memory), která je elektricky programovatelná a mazatelná. Na rozdíl od paměti RAM si však pamatuje informace i po vytažení karty ze čtečky a obsahuje všechny vitální informace aplikace. Kapacita této paměti do značné míry ovlivňuje použitelnost karty a na zvyšování kapacity této paměti bývá kladen největší tlak. U běžných současných karet bohužel kapacita paměti EEPROM obvykle nepřevyšuje 8 KB.

Logická struktura čipové karty

Paměť EEPROM, která obsahuje data aplikace, je nejdůležitější paměťovou oblastí čipové karty. Proto je strukturování těchto dat věnována velká pozornost. U dřívějších karet byl obsah paměti EEPROM adresován běžnou lineární adresou nebo byl v lepším případě rozdělen do zón. Tento přístup byl však málo flexibilní a byl záhy opuštěn. V současnosti je tato paměť u většiny moderních karet rozdělena na soubory. Tyto soubory mohou být organizovány do stromové struktury, podobně jako soubory u operačního systému MS-DOS nebo UNIX. Kořenový adresář je nazýván u čipové karty master file (MF), podadresář je nazýván dedicated file (DF) a datový soubor je v terminologii čipových karet elementary file (EF).

Podobně jako u operačního systému UNIX, je přístup k jednotlivým souborů chráněn pomocí přístupových práv. Tato přístupová práva jsou uživateli přidělena buď na základě toho, že zadá správně některé z definovaných hesel (která jsou nazývána PIN -- Personal Identification Number nebo CHV -- Cardholder Verification Value), nebo na základě úspěšného provedení některé kryptografické operace.

Pro manipulaci se soubory čipové karty slouží sada příkazů, které jsou definovány ve standardu ISO 7816. Tyto příkazy nepokrývají všechny potřebné činnosti a často jsou jednotlivými výrobci rozšiřovány o proprietární příkazy. Mezi nejdůležitější příkazy čipové karty patří například:

  • READ BINARY -- čte data ze souboru,

  • WRITE BINARY -- zapisuje data do souboru,

  • ERASE BINARY -- maže data v souboru,

  • SELECT FILE -- nastavuje "aktuální soubor", který může být implicitně použit v následujících příkazech,

  • VERIFY -- porovnává verifikační data (typicky heslo nebo PIN), zaslaná čtečkou kartě s hodnotou, uloženou v kartě,

  • INTERNAL AUTHENTICATE -- vypočítá autentizační odpověď z výzvy, zaslané čtečkou a tajemství (klíče), uloženého v kartě,

  • EXTERNAL AUTHENTICATE -- dostává jako vstup autentizační odpověď a v případě její správnosti nastaví podmínkové bity v kartě.

Standardy pro čipové karty

Čipové karty jsou předmětem značného standardizačního úsilí. Vlastnosti čipových karet jsou pokryty především několika nejdůležitějšími standardy, které vydala mezinárodní standardizační organizace ISO. Mezi nejdůležitější standardy patří:

  • ISO 7810 -- Identifikační karty -- Fyzické charakteristiky karet. Tento standard mimo jiné definuje vnější rozměry karet.

  • ISO/IEC 7812 -- Identifikační karty -- Identifikace vydavatele.

  • ISO/IEC 7816 -- Identifikační karty -- Kontaktní karty s integrovanými obvody. Toto je nejdůležitější standard pro procesorové čipové karty. Skládá se z několika částí. Části 1--3 definují protokoly pro komunikaci karty s vnějším světem. Částí 4--6 definují podstatné části operačního systému procesorových čipových karet. Části 7 a 8 jsou rozšířením částí 4 a 6 o některé speciální vlastnosti.

  • ISO/IEC 10536 -- Identifikační karty -- Bezkontaktní karty s integrovanými obvody. Tento standard definuje protokol pro komunikaci bezkontaktních karet s okolím.

  • ISO standard ISO 10202-1, jehož název je "Bezpečnostní architektura finančních transakčních systémů používajících čipové karty", je už mnohem speciálněji zaměřený a zabývá se standardizací čipových karet pro aplikace, známé jako "elektronická peněženka".

Významným počinem v oblasti elektronických peněženek bylo vytvoření standardu pro použití čipových karet v elektronických platebních systémech, na kterém se dohodla Europay, VISA a MasterCard v roce 1994. Tento standard má název Integrated Circuit Card Specifications for Payment Systems (někdy se zkráceně nazývá EMV podle počátečních písmen institucí) a definuje podstatné části systému elektronické peněženky.

Aplikace čipových karet

Aplikace čipových karet jsou velmi rozmanité a je obtížné vyjmenovat všechny možné aplikace. Pokusíme se naznačit alespoň základní oblasti nasazení čipových karet.

Telefonní karty jsou nejrozšířenější a každému známá aplikace čipových karet. V současnosti jsou jako telefonní karty používány paměťové karty se speciální logikou, které neodpovídají standardům ISO 7816. Vzhledem k nevyhovujícím bezpečnostním vlastnostem těchto čipových karet jsou však v některých zemích už postupně nahrazovány modernějšími kartami s kryptografickým zabezpečením.

Čipová karta je také důležitou součástí systému digitálních mobilních telefonů GSM, kde je nazývána SIM modul (zkratka SIM znamená Subsriber Identity Module) a ve kterém hraje klíčovou úlohu v kryptografickém zabezpečení telefonního hovoru.

Zdravotní čipová karta slouží jako identifikační průkaz (potenciálního) pacienta a nosič informací o pacientovi.

Čipové karty jsou také klíčovou součástí mnoha systému placené televize, např. šířené kabelovým rozvodem nebo satelitním vysíláním a slouží jako "hlídač", zda si divák sledovaný kanál nebo pořad skutečně zaplatil.

Čipové karty hrají také důležitou úlohu při zabezpečení přístupu k počítačovým systémům, kde provádějí kryptografickou autentizaci uživatele a mohou sloužit i pro zabezpečení samotného přenosu dat.

Identifikační čipová karta může mít spoustu podob nebo názvů. Podle způsobu použití může fungovat jako elektronický služební průkaz, elektronický občanský průkaz, elektronický řidičský průkaz, studentská karta, průkaz ke vstupu do budovy apod.

Elektronické platební systémy s čipovými kartami (obvykle nazývané elektronické peněženky) mají sloužit jako náhrada hotovosti pro drobné platby. Jejich funkce je na první pohled podobná funkci magnetických platebních karet, avšak je zde několik významných rozdílů. Hlavní rozdíl spočívá v tom, že elektronická peněženka v sobě obsahuje elektronické peníze a je s ní tedy možno provádět transakce i bez on-line spojení s bankou. Dalším významným rozdílem je zvýšená bezpečnost oproti systémům s magnetickými kartami. PIN zákazníka je ověřován lokálně čipovou kartou a po určitém počtu pokusů o zadání nesprávného PINu se karta zablokuje.

Jednodušší variantou elektronických platebních karet jsou předplatní karty (např. parkovací karty) a věrnostní (anglicky loyalty) čipové karty. Tyto karty neobsahují elektronické peníze, ale tzv. žetony nebo body, které je možno směnit pouze za velmi omezený okruh zboží nebo služeb.

Příště se budeme podrobněji věnovat problematice bezpečnosti čipových karet.


| COMPUTERWORLD - seriál o bezpečnosti | COMPUTERWORLD | IDG CZ homepage |