Systém GlobalPlatform Specifikace pro správu čipových karet Ivo Rosol ředitel divize vývoje Praha, 19.5.2011
GlobalPlatform GlobalPlatform je nezisková organizace, která identifikuje, vyvíjí a publikuje specifikace (mezinárodní průmyslové defacto standardy) pro bezpečné a interoperabilní nasazení a správu aplikací na bezpečných čipových technologiích. Organizace má 3 výbory Card Committee, Device Commitee (bezdrátová multiaplikační zařízení), Systems Commitee (systémová infrastruktura- back-office). Bližší informace a specifikace lze nalézt na web adrese www.globalplatform.org 2
Global Platform - specifikace pro správu čipových karet Specifikace GlobalPlatform (GP) pro správu čipových karet s otevřeným systémem (Java Card, MULTOS): GP umožňuje vydavatelům čipových karet vytvářet jedno i víceaplikační systémy, které mohou pružně reagovat na budoucí požadavky. Specifikace GP tak chrání nejvýznamnější část investic do systému čipových karet infrastrukturu. Čipové karty, které mají implementován systém podle specifikací GP, umožňují používat bezpečný mechanismus nahrávání a instalace aplikací na kartu a zajistit tak řízení životního cyklu multiaplikačních karet. Návrh GP předpokládá, že vydavatel nechce nutně spravovat veškerý obsah karty, zejména ten obsah, který mu nepatří. 3
Cíl prezentace V přednášce budou diskutovány především následující mechanismy specifikace GP v2.2: Architektura čipové karty se systémem GP Výklad základních pojmů Životní cyklus aplikace a domény Správa obsahu čipové karty Práva aplikací a domén Práva ke klíčům Bezpečnostní operace při nahrávání kódu aplikace Delegovaná správa Příklady užití GlobalPlatform pro různé modely správy čipových karet 4
Architektura čipové karty se systémem GP 5
Výklad pojmů 1/6 Bezpečnostní domény jsou privilegované (systémové) aplikace (nikoli místa v paměti, do kterých se instalují aplikace), mají nastaveno právo #0 Security Domain. Obsahují kryptografické klíče, určené pro vytvoření bezpečného kanálu a pro autorizaci operací pro správu karty. Prostřednictvím domén se provádí (inicializuje) správa obsahu karty 6
Výklad pojmů 2/6 Load File soubor určený k nahrání na GP kartu, který obsahuje Load File Data Block a volitelně jeden nebo více DAP bloků. Výsledkem nahrání Load File je Executable Load File rezidentní na kartě a příslušný záznam v GP registru. Load File Data Block část Load File, která obsahuje jednu nebo více aplikací, případně knihoven. Struktura není předepsána GP, pro Java Card se jedná o CAP file. Load File Data Block Hash hodnotou je SHA-1 hash Load File Data Block. Hash se používá k ověření integrity Load File Data Block před tím, než OPEN vytvoří Executable Load File. Load File Data Block Hash je povinný parametr příkazů INSTALL (for load) v případech, kdy se používá Delegated Management (Load File obsahuje Token) a/nebo když Load File obsahuje DAP blok. 7
Výklad pojmů 3/6 Executable Load File výsledný kontejner rezidentní na kartě pro jeden nebo více vykonavatelných aplikačních modulů (Executable Module). Může být uložen v paměti ROM, nebo EEPROM jako výsledek operací INSTALL [for load] a následných operací LOAD File Data Block. Pozor, nejedná se o spustitelnou aplikaci, není provedena instalace. Má asociováno unikátní AID. Executable Module obsahuje kód vykonatelný na kartě pro jednu aplikaci (aplet), je obsažený v Executable Load File. Pozor, nejedná se o Selectable Application. Má asociováno unikátní AID. Application Spustitelná aplikace s unikátním AID, kterou lze vybrat příkazem SELECT. Vznikne instalací Executable Module. Obecně z jednoho Executable Module může být instalováno více instancí aplikace. 8
Výklad pojmů 4/6 Token (pověření k delegované správě, podpis APDU pro delegovanou správu) Token se vyskytují výhradně v souvislosti s delegovanou správou (Delegated Management) nebo autorizovanou správou (Authorised Management), kdy vnější entita není vlastníkem domény. Vlastník domény s právem Token Verification vytváří pomocí svého privátního klíče (RSA 1024) Token a poskytuje ho vlastníkovi domény (která má typicky právo DELEGATED MANAGEMENT), která provádí operaci správy obsahu karty. Během vykonávání této operace je Token verifikován na kartě doménou s právem Token Verification veřejným klíčem této domény. Token může být použit na více kartách. Pro každý typ správní operace existuje typ Tokenu (LOAD, INSTALL, MAKE SELECTABLE, EXTRADITION, REGISTRY UPDATE, DELETE). Token obsahuje podpis jedné, nebo více funkcí pro správu (v podstatě podpis APDU). Token je umístěn v datové části APDU INSTALL 9
Výklad pojmů 5/6 DAP block (podpis kódu aplikace) DAP block je určen pro ověření autenticity Load File Data Block pomocí ověření Load File Data Block Signature, který je generován externí entitou, buď poskytovatelem aplikace, nebo kontrolní autoritou. DAP Block je TLV struktura, která je umístěna na začátku Load File (na rozdíl o Token není součástí struktury datové části APDU), obsahující AID domény a Load File Data Block Signature. Load File Data Block může být podepsán buď nesymetrickým privátním klíčem (RSA 1024), nebo 3DES2 klíčem, podpisuje se Load File Data Block Hash. Podpis v DAP Block ověřuje doména s právem DAP Verification. 10
Výklad pojmů 6/6 Receipt Podepsané potvrzení provedené operace správy čipové karty. Doména s právem Receipt Generation (jediná na kartě) vytváří potvrzenky správních operací při delegované správě s použitím klíče RSA 1024 nebo 3DES2. Potvrzenka se skládá z podpisu dat operace, která byla provedena, spolu s jedinečnými daty karty Card Unique Data. Potvrzenka je důkaz, že byl příkaz pro správu karty proveden. Potvrzenka (pokud je přítomna) je součástí APDU Response. 11
OPEN GlobalPlatform Environment OPEN je jádro systému GlobalPlatform, poskytuje prostředí a API pro aplikace pomocí následujících služeb: Nahrání kódu aplikací a s tím spojenou správu karet a paměti Instalaci aplikací nahraných na kartu Výběr aktivní aplikace a směrování příkazů na aktivní aplikaci Vlastnictví a údržba Global Platform Registry, jako základní zdroj informací pro správu karty 12
Správa obsahu GP karty prostřednictvím domén Správa obsahu karty se provádí prostřednictvím bezpečnostních domén. Správou obsahu rozumíme nahrávání kódu (load), instalaci aplikací, přemístění aplikace do jiné domény (extradition), změnu obsahu GP registru včetně práv aplikací a smazání obsahu karty. 13
Nahrání obsahu karty a instalace aplikace Nahrání (load) slouží k přidání kódu do přepisovatelné persistentní paměti (EEPROM). Nahrání může být provedeno do domény provádějící instalaci, nebo do jiné domény, pak se jedná o tzv. implicitní extradici. Instalace slouží k vytvoření vykonavatelného kódu z předem nahraného aplikačního kódu (zapíše instanci do registru GP, nastaví práva instance, spustí metodu aplikace install (Java Card), která s využitím instalačních parametrů alokuje paměť instance, vytvoří objekty instance, a registruje aplikaci v systému Java Card). Instalace může proběhnout současně s procesem nahrání, bezprostředně poté, nebo kdykoli později. Doména s právem AUTHORISED_MANAGEMENT nebo DELEGATED_MANAGEMENT může nahrát aplikaci do libovolné domény. 14
Aplikace v paměti čipové karty Executable Load File (package) Executable Module (applet) instance aplikace v paměti čipové karty 15
GlobalPlatform Registry Všechny aplikace, včetně všech domén a všechny Executable Load File musí mít záznam v GP registru. GP Registr obsahuje následující data (formát není stanoven): Data Aplikace AID aplikace, unikátní na kartě (AID aplikace může být stejné jako AID jejího Executable module) stav životního cyklu aplikace (týká se i Executable Load File/Module) paměť, která je k dispozici pro tuto aplikaci práva aplikace (App Privileges) příznak implicitní aplikace přiřazené AID Security Domain identifikace poskytovatele aplikace identifikace globální služby poskytované Global Service aplikací (například globální PIN) Data karty (uložena podobně jako data aplikací) Čítače alokace paměti pro aplikace 16
Poznámky k registru Aplikace nemusí znát AID své domény, je to zapsáno v registru (aplikace lze přesouvat mezi doménami, nebylo by vhodné, aby AID domény bylo zapsáno v aplikaci). Aplikace by měla znát své vlastní AID SD má také asociováno vlastní AID, nebo AID jiné SD (hierarchie SD) Datové struktury GP registru nejsou určené, jsou implementačně závislé Pokud GP podporuje volitelnou správu paměti, čítače v GP registru registrují v bajtech alokaci persistentní (EEPROM) i RAM paměti zvlášť pro kód a data. Požadavky aplikace na paměť jsou definovány v rámci příkazů INSTALL [for load] a INSTALL [for install] 17
Bezpečnostní domény 1/3 Bezpečnostní domény jsou privilegované (systémové) aplikace (nikoli místa v paměti, do kterých se instalují aplikace), mají nastaveno právo #0 Security Domain. Obsahují kryptografické klíče, určené pro vytvoření bezpečného kanálu a pro autorizaci operací pro správu karty. Prostřednictvím domén se provádí (inicializuje) správa obsahu karty. Podle svého určení rozeznáváme 3 typy domén - doména vydavatele, kontrolní autority a aplikační domény. Všechny typy domén provádějí práci s klíči (key management), šifrování, dešifrování, vytvoření a ověření elektronického podpisu pro vlastníky domény. Každá doména implementuje Secure Channel Protocol pro bezpečnou komunikaci mezi externím vlastníkem domény a doménou. 18
Bezpečnostní domény 2/3 Všechny karty mají povinnou jedinou doménu vydavatele. Poskytovatelé aplikací mohou mít svojí vlastní doménu ke správě svých aplikací, s klíči, které jsou nezávislé na vydavateli karty. APDU příkazy jsou přijímány doménou do které patří aplikace, a prostřednictvím GP Trusted Framework posílány aplikaci. Každý Load File, Executable Module má AID a přiřazené AID své Security Domain a může používat její kryptografické funkce. Každá doména je odpovědna za správu svých klíčů. Klíče domény lze využít pro aplikace této domény pro bezpečnou komunikaci při personalizaci a pro bezpečnou komunikaci při běhu aplikace (pokud aplikace nemá vlastní klíče pro SM) 19
Bezpečnostní domény 3/3 Dodatečné bezpečnostní domény mohou volitelně udržovat svá identifikační data pro CMS: Identifikační číslo poskytovatele (vlastníka) domény identifikátor používaný pro CMS, typicky obsahuje identifikaci vlastníka domény podle ISO 7812 Security Domain Image Number - - identifikátor používaný pro správu aplikací v rámci CMS k jednoznačné identifikaci domény na kartě Security Domain Management Data data popisující vlastnosti domény, například jaký SC protokol použít pro komunikaci s doménou. Tato data jsou vrácena v odpovědi na příkazy SELECT a GET DATA. Tato data, pokud existují, musí být k dispozici prostřednictvím příkazu GET DATA. 20
Doména vydavatele Doména vydavatele pracuje stejně jako ostatní domény, ale má následující speciální vlastnosti: Je první aplikace instalovaná na kartě, je povinná pro každou kartu. GP nedefinuje způsob vzniku domény vydavatele na kartě a nepředepisuje, aby byla doména vydavatele zavedena a instalována stejně jako ostatní aplikace (domény) Je asociována sama se sebou a není možné provést její extradici (asociaci s jinou doménou) Nemá svůj životní cyklus, používá (dědí) životní cyklus karty Je vybrána příkazem SELECT bez parametrů, nebo pokud není jiná aplikace s právem Card Reset, případně implicitly selectable Má právo Card Reset, pokud není jiná aplikace s tímto právem Automaticky získává právo Card Reset, pokud je smazána doména s tímto právem Má právo Final Application, pokud není jiná aplikace s tímto právem,aautomaticky získává právo Final Application, pokud je smazána doména s tímto právem Je vybrána příkazem SELECT bez parametrů Stává se implicitně vybranou aplikací, pokud je smazána implicitně vybraná aplikace Vlastní data Issuer Identification Number (identifikuje vydavatele a tím i příslušný CMS), Card Image Number (jednoznačně identifikuje kartu v CMS), Card Recognition Data (popisuje kartu pro CMS typ karty, jaký Secure Channel Protocol podporuje). Tato data musí být k dispozici prostřednictvím příkazu GET DATA. 21
Hierarchie domén Každý Executable Load File je zpočátku asociován s doménou, prostřednictvím které byl nahrán, může však být implicitně nebo explicitně přemístěn do jiné domény. Hierarchie domén začíná v kořenové doméně, která je asociována sama se sebou. Na počátku je jediná kořenová doména ISD. Další nezávislý kořen je možné vytvořit pomocí extradice domény s asociací sama na sebe. Aplikace musí být po instalaci personalizována a musí obdržet své aplikační klíče a personalizační data, k tomu se využívá služeb asociované domény. Aplikace (včetně domén) mohou používat kryptografické služby své asociované domény. 22
Vztah aplikace a asociované domény Aplikace (včetně domén) mohou používat služby asociované domény pro vytvoření Secure Cannel Session a další kryptografické služby domény pro personalizaci a při runtime. Je to výhodné, pokud aplikace nemá vlastní klíče a pokud to dovoluje bezpečnostní politika aplikace. Doména je schopna přijmout příkaz STORE DATA určený pro některou z aplikací domény. Doména příkaz rozbalí a předá aplikaci. 23
Klíče domény Domény obsahují kryptografické klíče pro podporu Secure Channel Protocol a pro autorizaci příkazů pro správu. Klíče mají nastaveny typ (DES/TDES/AES/HMAC/RSA, mód a formát uložení) a použití klíče. Práva ke klíčům jsou uložena v rámci přístupového byte. Přístupová práva ke klíčům uloženým v doméně jsou následující: Klíče může používat pouze doména (hodnota 01 ) Klíče mohou používat autorizovaní uživatelé různí od vlastníka, například aplikace asociované s doménou (hodnota 02 ) Klíče mohou používat libovolní autorizovaní uživatelé včetně vlastníka, tedy vlastní doména i její aplikace (hodnota 00 ) 24
Životní cyklus aplikace Stav INSTALLED Stav INSTALLED znamená, že vykonavatelný kód aplikace je sestaven, aplikaci je přidělena paměť a pro aplikaci je vytvořen záznam v registru GP. Zatímco záznam v registru je dostupný autentizovaným vnějším entitám, samotnou aplikaci dosud nelze vybrat. Ve stavu INSTALLED se nepředpokládá, že je aplikace personalizovaná. Stav SELECTABLE Přechod ze stavu INSTALLED do SELECTABLE je nevratný, potřebné oprávnění k provedení přechodu má doména s právem Authorised Management nebo Delegated Management. Aplikace v tomto stavu je schopna být vybrána a přijímat příkazy od externí entity. Aplikační stavy instalované aplikace jsou odpovědností aplikace a GP je nedefinuje. Stav LOCKED Přechod do stavu LOCKED je možný z jakéhokoli stavu aplikace, včetně stavů definovaných aplikací. Tento přechod většinou reprezentuje bezpečnostní opatření, které může iniciovat samotná aplikace, doména této aplikace a doména s právem Global Lock. Přechod je reverzibilní, zpětný přechod nemůže iniciovat zablokovaná aplikace, pouze přímo nebo nepřímo přiřazená doména. V kterémkoli stavu životního cyklu aplikace může být aplikace smazána. Paměťový prostor aplikace je uvolněn a příslušný záznam v registru smazán a GP nevede žádnou informaci o smazaných aplikacích (tudíž neexistuje stav DELETED). 25
Životní cyklus domény Stav INSTALLED Pro doménu ve stavu INSTALLED vytvořen záznam v registru GP. Zatímco záznam v registru je dostupný autentizovaným vnějším entitám, samotnou doménu dosud nelze vybrat, ani ji nelze asociovat s aplikací Stav SELECTABLE Doména ve stavu SELECTABLE je schopna být vybrána a přijímat příkazy (příkazy pro personalizaci domény), dosud ale nemá instalovány klíče. Nemůže tudíž být asociována s Executable Load File ani s aplikacemi a aplikace nemohou využívat její služby. Přechod ze stavu INSTALLED do SELECTABLE je ireverzibilní. Stav PERSONALISED Přechod ze stavu SELECTABLE do stavu PERSONALISED je ireverzibilní. Doména v tomto stavu má instalovány klíče, může být vybraná externí entitou, asociovaná s Executable Load File nebo s aplikacemi a poskytovat své služby asociovaným aplikacím. Stav LOCKED Tento přechod většinou reprezentuje bezpečnostní opatření, které může iniciovat samotná doména, asociovaná (nadřízená) doména této domény, aplikace a doména s právem Global Lock. V tomto stavu doména nemůže být použita pro delegovanou správu a instalaci aplikací. Operace DAP Verification, Extradition a další služby domény nejsou v tomto stavu dostupné. Přechod je reverzibilní, zpětný přechod může iniciovat pouze nadřízená doména, nebo aplikace a doména s právem Global Lock. V kterémkoli stavu životního cyklu domény může být doména smazána. Paměťový prostor domény je uvolněn a příslušný záznam v registru smazán a GP nevede žádnou informaci o smazaných doménách. 26
Práva bezpečnostních domén a aplikací Práva aplikací jsou uložena (pouze) v GP registru. Právo nastavit práva má entita, která je schopna provést příkaz INSTALL [for install], nebo INSTALL [for make selectable]. Právo změnit práva má entita schopná provést příkaz INSTALL [for registry update]. Práva pro aplikaci (doménu) se nastavují při instalaci, v datovém poli příkazu INSTALL [for install]. V APDU jsou práva mapována jednotlivými bity v rámci 3 byte. Aplikaci jednotlivých práv lze omezit prostřednictvím parametru Restrict ( Tag D9 ] v rámci příkazu INSTALL [for registry update]. Na danou doménu pak práva podléhající restrikci nelze uplatnit. Toto nastavení je ireverzibilní. 27
Práva bezpečnostních domén a aplikací 1/3 # Právo Popis 0 Security Domain Aplikace je Security Domain 1 DAP Verification Aplikace (pouze Doména) je schopna ověřit DAP, musí být současně nastaveno právo Security Domain. Toto právo se nastavuje pro doménu poskytovatele aplikace, která ověřením DAP ověří integritu a autenticitu nahrané aplikace. 2 Delegated Management Aplikace (pouze Doména, současně musí být nastaveno právo Security Domain) je schopna provádět delegovanou správu (provádět příkazy LOAD, INSTALL, DELETE, EXTRADITE) s autorizací jinou (na kartě jedinou) doménou, která má právo Token Verification. Doména s právem Delegated Management může provést LOAD do kterékoli domény, cílová doména může ovšem provést kontrolu DAP, pokud má právo DAP Verification. Pokud ale nemá současně právo Global Delete, může mazat pouze svoje aplikace, které jsou s ní přímo nebo nepřímo asociovány. Může přesunovat (extradition) do jiné domény pouze svoje aplikace, které jsou s ní přímo nebo nepřímo asociovány. 3 Card Lock Aplikace má právo zablokovat kartu 4 Card Terminate Aplikace má právo ukončit kartu 5 Card Reset Aplikace má právo modifikovat Historical Bytes (část ATR) 28
Práva bezpečnostních domén a aplikací 2/3 # Právo Popis 6 CVM Management 7 Mandated DAP Verification Aplikace má právo na správu sdíleného CVM Cardholder Verification Method globální PIN Aplikace (pouze Doména) je schopna a vyžaduje ověřit DAP pro všechny operace LOAD, musí být současně nastaveno právo Security Domain a DAP Verification. Jedná se o doménu Kontrolní autority. 8 Trusted Path Aplikace (doména) je schopna využít GlobalPlatform Trusted Environment pro komunikaci mezi aplikacemi. 9 Authorised Management Aplikace (pouze Doména) je schopna provádět samostatnou (nikoliv delegovanou) správu obsahu karty (provádět příkazy LOAD, INSTALL, DELETE, EXTRADITE ). Nepotřebuje autorizační token k této činnosti ani doménu s právem Token Verification, musí mít současně nastaveno právo Security Domain. Pokud ale nemá současně právo Global Delete, může mazat pouze svoje aplikace, které jsou s ní přímo nebo nepřímo asociovány. Doména s tímto právem může provést LOAD do kterékoli domény, cílová doména může ovšem provést kontrolu DAP, pokud má právo DAP Verification. 29
Práva bezpečnostních domén a aplikací 3/3 # Právo Popis 10 Token Verification Aplikace (pouze jediná Doména na kartě) je schopna ověřit Token pro delegovanou správu. Neznamená to ale, že má právo na správu obsahu karty. Externí vlastník privátního klíče vytváří Token pro delegovanou správu. 11 Global Delete Aplikace může smazat libovolný obsah karty, i když patří do jiné domény 12 Global Lock Aplikace může zamknout (dočasně zablokovat) nebo odemknout libovolnou aplikaci, i když patří do jiné domény 13 Global Registry Aplikace má přístup k libovolnému záznamu v GP Registru 14 Final Application Jediná aplikace, která je přístupná ve stavu životního cyklu CARD_LOCKED a TERMINATED 15 Global Service Aplikace poskytuje globální služby ostatním aplikacím na kartě 16 Receipt Generation Aplikace je schopna generovat potvrzenky správních operací při delegované správě. Doména má čítač potvrzení, který inkrementuje při generování každé potvrzenky (max 32767). Toto právo samotné neumožňuje provádět správní operace. 30
Pravidla pro přiřazení práv Pouze jediná aplikace může mít přiřazeno právo Card Reset nebo Final Application, pokud je taková aplikace smazána, právo přejde na doménu vydavatele Authorised Management a Delegated Management nemohou být nastaveny současně, ostatní práva mohou být nastavena v libovolné kombinaci V předchozích verzích GP byla pouze práva 0-7 Doména vydavatele má v počátku nastavenu množinu práv: Security Domain, Authorized Management, Global Registry, GlobalLock, Global Delete, Token Verification, Card Lock, Card Terminate, Trusted Path, CVM Management, CardReset, Final Application and Receipt Generation. 31
Mechanismy GP pro správu karty Kryptografická podpora GP pro správu karty zahrnuje následující mechanismy: Load File Data Block Hash - je obsahem pole příkazu INSTALL [for load] pro kontrolu integrity nahrávaného kódu Data Authentication Patern (DAP) podpis Load File Data Block pro ověření integrity a autenticity kódu Delegated Management Token podpis funkce pověření pro správu (load, install, delete ) Receipts důkaz provedení správní operace 32
DAP Data Authentization Patern 33
Load Token Load Token zajišťuje: Na kartu může být nahrán pouze kód (Load File Data Block), jehož otisk je obsažen v podepsaném Token Executable Load File a všechny obsažené moduly mohou být asociovány pouze s doménou uvedenou v Token Vydavatel Token může být pouze entita vlastnící klíče domény s právem Token Verification 34
Install Token Install Token zajišťuje: Může být instalován pouze Executable Module, který je součástí Executable Load File, jejichž AID je uvedeno v Token Instance aplikace bude mít uvedené AID Pro aplikaci mohou být nastavena pouze práva uvedená v Token Mohou být použity pouze parametry uvedené v Token 35
Load Receipt Install Token zajišťuje: Může být instalován pouze Executable Module, který je součástí Executable Load File, jejichž AID je uvedeno v Token Instance aplikace bude mít uvedené AID Pro aplikaci mohou být nastavena pouze práva uvedená v Token Mohou být použity pouze parametry uvedené v Token 36
Nahrání a instalace aplikace 37
Schéma pro delegovanou správu se 2 doménami 38
Schéma pro delegovanou správu se 3 doménami 39
Příklady užití a konfigurace domén Vydavatel karty, jediná doména, jediná aplikace, nebo více aplikací vydavatele (všechny aplikace patří vydavateli karty, který je instaluje a spravuje) Víceaplikační karta, pouze doména vydavatele, více dodavatelů aplikací (všechny aplikace autorizuje, instaluje a spravuje vydavatel karty) Víceaplikační karta, doména vydavatele, více domén dodavatelů aplikací, kontrolní autorita (aplikace autorizované kontrolní autoritou instaluje vydavatel karty do domén dodavatelů aplikací) Víceaplikační karta, doména vydavatele, více domén dodavatelů aplikací, delegovaná správa, kontrolní autorita (aplikace mohou instalovat vlastníci domén s právem Authorised Management nebo Delegated Management) 40
GlobalPlatform APDU seznam příkazů Příkaz OP READY INITIALIZED SECURED LOCKED TERMINAT ED AM DM SD AM DM SD AM DM SD FA SD FA SD DELETE executable Load File x x x x x x x DELETE executable Load File and x x x x x x x Application(s) DELETE Application P x P x P x x x x x DELETE Key x x x x GET DATA P P P P P P P P P P x P x GET STATUS P P P P x x x INSTALL [for load] x x x x x x x INSTALL [for install] x x x x x x x INSTALL [for load, install and x x x x x x x make selectable] INSTALL [for install and make P P x P P x P P x x x x x selectable] INSTALL [for make selectable] x x x x x x x INSTALL [for extradition] x x x x x x x INSTALL [for registry update] x x x x x x x INSTALL [for personalization] x x x x LOAD x x x x x x x PUT KEY P P P x x x x SELECT P P P P P P P P P P x x x SET STATUS P P P P x x x STORE DATA P P P x x x x 41
GlobalPlatform APDU Příkazy GP mají formu APDU s délkou max 255 byte. Class byte určuje, že se jedná o GP příkaz a použití a typ Secure Messaging. Parametry P1 a P2 upřesňují příkaz, například pro INSTALL hodnota P1 určuje pro co je INSTALL určen (for load, for install, for extradition, for make selectable ) Tagy objektů GP jsou rezervovány hodnoty C0 DD, E0 FD, DF 1F DF 7F, FF 1F FF 7F 42
Příklad - APDU příkazu INSTALL Formát APDU (short length): CLA Kód Hodnota Význam 80-8F, C0 - CF, E0 - EF Třída instrukce INS E6 Instrukce INSTALL P1 xx Referenční řídící parametr 1 P2 00, 01, Referenční řídící parametr 2 02 Lc xx Délka datového pole Data xxxx Datové pole instalační data a volitelně MAC Le 00 Budou přijata všechna návratová data 43
Referenční řídící parametr P1 příkazu INSTALL B8 B7 B6 B5 b B4 B3 B2 B1 Význam 0 - - - - - - - Poslední (nebo jediný) příkaz INSTALL 1 - - - - - - - Následují další příkazy INSTALL - 1 0 0 0 0 0 0 INSTALL [for registry update] - 0 1 0 0 0 0 0 INSTALL [for personalization] - 0 0 1 0 0 0 0 INSTALL [for extradition] - 0 0 0 1 - - 0 INSTALL [for registry update] - 0 0 0-1 - 0 INSTALL [for install] - 0 0 0 - - 1 0 INSTALL [for load] 44
Příklad 1: Datové pole příkazu INSTALL [for load] Název P/N Význam Length of Load File AID P Délka AID budoucího Executable Load File Load File AID P Hodnota AID budoucího Executable Load File Length of Security Domain AID P Délka AID domény, do které bude Load File nahrán Security Domain AID N Hodnota AID domény, do které bude Load File nahrán Length of Load File Data Block Hash Load File Data Block Hash Length of Load Parameters Field P N P Délka otisku Load File Data Block Hodnota otisku Load File Data Block Délka pole parametrů Load Parameters Field N Pole parametrů (systémové a aplikační) Length of Load Token P Délka Load Token Load Token N Load Token 45
Příklad 2: Datové pole příkazu INSTALL [for install] Název P/N Význam Length of Executable P Délka AID Executable Load File Load File AID Executable Load File AID N Hodnota AID Executable Load File, jehož Executable Module bude instalován Length of Executable P Délka AID Executable Module Module AID Executable Module AID N Hodnota AID Executable Module, jehož kód bude instalován Length of Application AID P Délka AID aplikace, která bude výsledkem instalace Application AID P Hodnota AID aplikace, která bude výsledkem instalace Length of Privileges P Počet byte práv, která budou nastavena pro aplikaci Privileges P Práva Length of Install P Délka pole parametrů Parameters Field Install Parameters Field P Pole parametrů (systémové a aplikační) Length of Install Token P Délka Install Token Install Token N Install Token pověření pro instalaci 46
Služby GP pro personalizaci aplikací Aplikace musí být po instalaci personalizována a musí obdržet své aplikační klíče a personalizační data. Aplikace mohou používat služby asociované domény pro vytvoření Secure Channel Session a další kryptografické služby domény pro personalizaci, pokud nemá aplikace vlastní klíče a pokud to dovoluje bezpečnostní politika aplikace. Doména je schopna přijmout příkaz STORE DATA určený pro některou z aplikací domény (příkazem SELECT je vybrána doména místo aplikace). Doména příkaz rozbalí a předá aplikaci jako blob Aplikace je schopna využívat kryptografické služby domény (autentizaci, SM) pro personalizaci Příkaz PUT KEY slouží k zápisu, nebo výměně kryptografických klíčů 47
Global platform Global Services Applications Na kartě může být přítomna jedna nebo více globálních aplikací, které jsou od ostatních aplikací odlišeny právem Global Service. Aplikace poskytující globální služby jsou instalovány do některé domény, právo Global Service je možné nastavit při instalaci aplikace (INSTALL [for install]), nebo později při aktualizaci registru (INSTALL [for registry update]). Právo na správu Global Services Applications má aplikace s právem CVM Management. Jména pro globální služby (může být více než jedno) se při instalaci nastavují pomocí Global Services Parameters, jména jsou buď rezervovaná pro GP nebo individuální (A0 FE). GP má rezervována jména 81 Secure Channel, 82 GP Cardholder Verification Method. Aplikace přistupují ke globálním službám prostřednictvím GP API. 48
CVM aplikace CVM aplikace, pokud je přítomna na kartě, poskytuje mechanismus pro autentizaci -Cardholder Verification Method, který mohou použít všechny aplikace. Na kartě může být vice CVM aplikací, každá může nabízet vice CV metod. GP standardizuje jednu CVM aplikaci globální PIN (Personal identification Verification), s rezervovaným identifikátorem 11. CVM nabývají následujících stavů: ACTIVE nastavena hodnota CVM a Retry Limit INVALID_SUBMISSION pokud selže CVM autentizace VALIDATED úspěšná CVM autentizace, Retry Counter je resetován BLOCKED po opakovaném selhání CVM autentizace a dosažení hodnoty Retry Limit. Zablokovaný stav nekončí koncem relace s kartou, pouze privilegovaná aplikace může odblokovat, změnit CVM hodnotu nebo Retry limit. 49
Ing. Ivo Rosol, CSc. rosol@oksystem.cz OKsystem s.r.o. Na Pankráci 125 140 21 Praha 4 tel: +420 236 072 250 www.oksystem.cz Otázky? Děkujeme za pozornost 50