ipové karty, standardy PKCS#11, PKCS#15 Pod pojmem ipová karta (smart card) dnes rozumíme integrovaný obvod, zalisovaný v njakém nosii a obsahující procesor s dostaten velkou pamtí a software (operaní systém ipu apod.). ipové karty mohou obecn sloužit k ukládání libovolných datových struktur (pamové ipové karty), dnes se však spíše hovoí o kryptografických ipových kartách, které slouží k ukládání klíového materiálu pípadn k operacím s tmito klíi. ipové karty poskytují dvou-faktorovou bezpenost: nco, co mám (ipová karta) a nco, co znám (heslo - PIN). Navíc umožují rozšíení o další bezpenostní prvky, jako jsou magnetické proužky, integrované antény, natištné informace (fotografie, jméno, identifikaní íslo, árový kód, apod.). Jedinou ipovou kartou lze tak ešit bezpenost informaního systému, objektovou bezpenost, docházkový systém apod. Existují rzné druhy ipových karet: o Kontaktní ipové karty - pro komunikaci je kartu nutné vložit do teky tak, aby došlo k propojení vodivých kontakt. o Bezkontaktní ipové karty - vybavené bezkontaktním rádiovým rozhraním pracujícím na principu elektromagnetické indukce a penosu informací elektromagnetickým polem (to slouží zárove pro napájení ipu v kart). o Hybridní karty - karta vybavená dvma ipy, kontaktním a bezkontaktním. o Duální karty - kontaktní i bezkontaktní rozhraní obsluhuje jeden ip. (StarCos2.5DI, StarCos3) ipové karty jsou pedmtem standardizace skupinu ISO/IEC. Kontaktními ipovými kartami se zabývá ISO 7816 1-6. Bezkontaktní ipové karty specifikuje zejména ISO/IEC 14443. ISO 7816 http://www.ttfn.net/techno/smartcards http://www.cardwerk.com/smartcards/smartcard_standards.aspx Specifikuje o ISO 7816-1 Fyzickou podobu kontaktní ipové karty: rozmry, tloušku, odolnost v ohybu (Podélná deformace 2cm s frekvencí 30 ohyb za minutu. Píná deformace 1cm s frekvencí 30 ohyb za minutu.) 1
o ISO 7816-2 Polohu ipu, polohu kontakt o ISO 7816-3 Elektrické charakteristiky naptí v kontaktech, proud o ISO 7816-4 Charakteristiky signálové komunikace na rozhraní ipové karty návaznost, frekvence (timing). APDU. o ISO 7816-5 aplikací o ISO 7816-6 íselné identifikátory a registraní procedury pro identifikátory Interdisciplinární datové prvky (Interindustry data elements) Pro komunikaní rozhraní ipové karty jsou definovány dva penosové protokoly T=0 a T=1. Protokol T=0 je znakov orientovaný, oddluje požadavky a odpovdi na požadavky. Protokol T=1 je orientovaný blokov, požadavky a odpovdi nejsou striktn oddlovány; proto je efektivnjší. Pro bezkontaktní ipové karty je definován penosový protokol T=CL. APDU - Application Protocol Data Unit APDU je jednotný formát zpráv definovaný nad protokoly T=0 a T=1. Jedná se o nízkoúrovový protokol, pomocí kterého mohou s kartou komunikovat specializované aplikace (PKCS#11, CSP). Struktura APDU: DATA Le Lc P2 P1 INS CLA Aplikace SW1 SW2 DATA Karta CLA tída instrukce. 0x00 standardní instrukce, 0x08 proprietární instrukce výrobce ipu INS vlastní instrukce P1, P2 parametry instrukce Lc velikost dat pedávaných do karty v rámci píkazu v bytech Le velikost dat oekávaných v odpovdi v bytech DATA v obou pípadech transportovaná data 2
SW1-SW2 Návratové kódy píkazu. SW2 definováno v závislosti na SW1. Pi použití protokolu T=0 jsou posílány pouze SW1,2, data jsou posílána samostatn po dalším píkazu. Operaní systém ipové karty ipová karta je ízena kódem, který implementuje píkazy komunikaního rozhraní ISO APDU a spravuje data na kart. Tento kód se nazývá operaní systém ipové karty; pouze na tomto operaním systému, který je implementován výrobcem, závisí k emu je ipovou kartu možné použít a pomocí jakých píkaz jsou dostupné požadované funkce. OS je uložen v ROM (Read Only Memory) pamti karty, do ní je zapsán pi výrob ipu. V závislosti na vlastnostech operaního systému lze ipové karty rozdlit na o statické ipové karty - umožují íst data, zapisovat data a pracovat s daty (sem patí velká vtšina (kryptografických) karet, které jsou dnes na trhu - ActivCard, Gemplus, Datakey, Schlumberger Cryptoflex, StarCos, SIM karty) o dynamické ipové karty - jsou schopny do karty nahrát programový kód a prostednictvím tohoto kódu mnit chování karty. Tyto karty je dále možno dlit podle nahraného programového kódu. Mezi nejrozšíenjší v souasné dob patí JavaCards nebo MULTOS. Souborový systém ipové karty ipová karta slouží k ukládání (citlivých) dat, k jejich tení, pípadn k práci s tmito daty. Uložení dat na ipové kart je definováno pomocí tzv. souborového systému. Souborový systém lze pirovnat ke struktue dat na disku PC: o MF Master File. Koenový adresá/disk o DF Dedicated File. Adresá aplikace o EF Elementary File. Datový soubor o Speciální soubory - EF, jejichž obsah je interpretován OS ipové karty (soukromé klíe, ) Píklad: DF pro uchovávání PKCS#15 objekt. Se souborovým systémem pracují aplikace prostednictvím píkaz APDU. Data jsou na ipové kart uložena ve form objekt a jejich atribut. Napíklad soukromý klí tedy není uložen v jednom EF, ale nkolika rzných, kdy v jednom jsou uložena vlastní data, v jiném píznak, že se jedná o soukromý klí, v dalším, že algoritmus soukromého klíe je RSA, apod. Aplikace, která prostednictvím APDU k datm pistupuje, se v jednotlivých píkazech odkazuje na jednotlivé atributy, 3
nikoliv na celá data. Atributem objektu je napíklad i píznak, jedná-li se o soukromý nebo veejný objekt ipové karty. Proto je, na rozdíl od zmiované analogie se souborovým systémem v poítai, velice obtížné nastavovat napíklad pístupová práva k jednotlivým datovým typm. Komunikace s ipovou kartou Na úrovni APDU: Toto rozhraní je spolené pro všechny ipové karty, tímto zpsobem tedy eliminujeme nekompatibilitu mezi jednotlivými typy karet nebo rznými OS. Na druhou stranu potebujeme pesnou znalost vnitní struktury ipové karty. Kontaktní ipová karta je k poítai pipojena vždy pomocí teky ipových karet; komunikace mezi tekou a poítaem není pokryta ádnou závaznou specifikací. Proto vznikla ada API, které zajišují transport APDU píkaz do ipové karty a penesení odpovdí zpt. Tyto API na jednu stranu poskytují co nejjednodušší rozhraní smrem k aplikaci, na druhou stranu se snaží podporovat maximální množství teek. Píkladem takového API je PC/SC. PC/SC (Personal Computer/Smart Card) De-facto standard pro práci s kontaktními ipovými kartami. API, které aplikacím poskytuje množinu funkcí pro práci se tekami a výmnu APDU píkaz s ipovou kartou. Pítomnost PC/SC knihoven vyžaduje napíklad PKCS#11 modul. http://www.pcscworkgroup.com/specifications/overview.php Na úrovni API (Application Interface): Vyšší komunikaní úrove. Komunikace s kartou probíhá pesn definovaným rozhraním za využití ovladae (PKCS#11, CSP, OpenCS, ) pro konkrétní typ karty. Ovladae (knihovny) pro komunikaci s konkrétní ipovou kartou dodává výrobce karty. Ten definuje i souborový systém ipové karty. Pokud tedy zasáhnu do souborového systému ipové karty, musím upravit i komunikaní knihovny. PKCS#15 - Cryptographic Token Information Format Standard http://www.rsasecurity.com/rsalabs/node.asp?id=2141 Standard specifikuje, jak mají být na ipové kart uloženy kryptografické údaje, definuje strukturu aplikací v kryptografických tokenech (ipové karty, kryprografické tokeny, sw. tokeny), identifikátory soubor a jejich obsah. PKCS#15 definuje základní typy kryptografických údaj: o klíe, 4
o certifikáty, o autentizaní data o ostatní data (specifická pro aplikace) Každý z tchto typ se dále dlí: o klíe symetrický klí, soukromý klí, veejný klí, o certifikáty X.509, ostantí o autentizaní data PIN, biometrické údaje, o ostatní data (specifická pro aplikace) PKCS#15 dále dlí objekty na kart na soukromé a veejné, pístup k soukromým objektm je chránn njakou autentizaní procedurou. V pípad sw. tokenu mohou být soukromá data chránna kryptografickými prostedky. Pístup pro tení k veejným objektm nemusí být nijak omezen, omezení modifikace veejných objekt je závislé na implementaci. Velice problematická je pro tento standard nekompatibilita jednotlivých ipových karet z hlediska kryptografických píkaz. V podstat neexistují dv ipové karty rzných výrobc, na kterých by se kryptografické píkazy provádly pomocí stejného sledu APDU píkaz. Existuje tedy standard pro formát kryptografických údaj na ipové kart, aplikace, která by na tomto standardu stavla, by ale potebovala pro každou ipovou kartu samostatný kód, který by píkazy aplikace pevádl na APDU píkazy pro danou kartu. PKCS#11 - Cryptographic Token Interface Standard http://www.rsasecurity.com/rsalabs/node.asp?id=2133 Definuje rozhraní kryptografických token (hw. i sw.). Dává výet API (Cryptoki - Cryptographic Token Interface) pro zaízení, na kterých se uchovávají a provozují kryptografické operace. Cryptoki rozlišuje dva typy uživatel kryptografického tokenu - Secutiry Officer a Bžný uživatel. Podle typu jsou uživateli piazena pístupová práva. Bžnému uživateli je dovoleno pistupovat k soukromým objektm karty (po úspšné autentizaci). Security Officer má právo inicializovat ipovou kartu, mnit uživatelské PINy a manipulovat s veejnými objekty karty. Místo na ipové kart: 32KB ipová karta 12KB OS 6KB Personalizace (souborový systém) 14KB Zbývá pro uložení dat 5
6