Upload
oksystem
View
209
Download
5
Embed Size (px)
Citation preview
Spojujeme software, technologie a služby
Specifikace pro správu čipových karet
Systém GlobalPlatform
Ivo Rosol
ředitel divize vývoje
Praha, 19.5.2011
Spojujeme software, technologie a služby
GlobalPlatform je nezisková organizace, která identifikuje,
vyvíjí a publikuje specifikace (mezinárodní průmyslové de-
facto 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
GlobalPlatform
2
Spojujeme software, technologie a služby
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ří.
Global Platform - specifikace pro správu čipových
karet
3
Spojujeme software, technologie a služby
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é kartyPrá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
Cíl prezentace
4
Spojujeme software, technologie a služby
Architektura čipové karty se systémem GP
5
Spojujeme software, technologie a služby
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
Výklad pojmů 1/6
6
Spojujeme software, technologie a služby
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 LoadFile. Load File Data Block Hash je povinný parametr příkazů INSTALL (forload) v případech, kdy se používá Delegated Management (Load Fileobsahuje Token) a/nebo když Load File obsahuje DAP blok.
Výklad pojmů 2/6
7
Spojujeme software, technologie a služby
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ýchoperací 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.
Výklad pojmů 3/6
8
Spojujeme software, technologie a služby
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 (AuthorisedManagement), 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
Výklad pojmů 4/6
9
Spojujeme software, technologie a služby
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 LoadFile (na rozdíl o Token není součástí struktury datové části APDU), obsahující AID domény a Load File Data BlockSignature.
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.
Výklad pojmů 5/6
10
Spojujeme software, technologie a služby
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.
Výklad pojmů 6/6
11
Spojujeme software, technologie a služby
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
OPEN – GlobalPlatform Environment
12
Spojujeme software, technologie a služby
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.
Správa obsahu GP karty prostřednictvím domén
13
Spojujeme software, technologie a služby
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.
Nahrání obsahu karty a instalace aplikace
14
Spojujeme software, technologie a služby 15
Executable Load File
(package)
Executable Module
(applet)
instance aplikace
v paměti čipové karty
Aplikace v paměti čipové karty
Spojujeme software, technologie a služby
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 AplikaceAID aplikace, unikátní na kartě (AID aplikace může být stejné jako AID „jejího“ Executablemodule)
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
GlobalPlatform Registry
16
Spojujeme software, technologie a služby
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]
Poznámky k registru
17
Spojujeme software, technologie a služby
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 SecureChannel Protocol pro bezpečnou komunikaci mezi externím vlastníkem domény a doménou.
Bezpečnostní domény 1/3
18
Spojujeme software, technologie a služby
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)
Bezpečnostní domény 2/3
19
Spojujeme software, technologie a služby
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.
Bezpečnostní domény 3/3
20
Spojujeme software, technologie a služby
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 CardReset, případně implicitly selectable
Má právo Card Reset, pokud není jiná aplikace s tímto právem Automaticky získává právo CardReset, 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), CardImage 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.
Doména vydavatele
21
Spojujeme software, technologie a služby
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.
Hierarchie domén
22
Spojujeme software, technologie a služby
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.
Vztah aplikace a asociované domény
23
Spojujeme software, technologie a služby
Domény obsahují kryptografické klíče pro podporu SecureChannel 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“)
Klíče domény
24
Spojujeme software, technologie a služby
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).
Životní cyklus aplikace
25
Spojujeme software, technologie a služby
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.
Životní cyklus domény
26
Spojujeme software, technologie a služby
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 registryupdate]. Na danou doménu pak práva podléhající restrikci nelze uplatnit. Toto nastavení je ireverzibilní.
Práva bezpečnostních domén a aplikací
27
Spojujeme software, technologie a služby
# 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)
Práva bezpečnostních domén a aplikací 1/3
28
Spojujeme software, technologie a služby
# Právo Popis
6 CVM
Management
Aplikace má právo na správu sdíleného CVM – Cardholder Verification
Method – globální PIN
7 Mandated DAP
Verification
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.
Práva bezpečnostních domén a aplikací 2/3
29
Spojujeme software, technologie a služby
# 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.
Práva bezpečnostních domén a aplikací 3/3
30
Spojujeme software, technologie a služby
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, CardTerminate, Trusted Path, CVM Management, CardReset, FinalApplication and Receipt Generation.
Pravidla pro přiřazení práv
31
Spojujeme software, technologie a služby
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éhokó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
Mechanismy GP pro správu karty
32
Spojujeme software, technologie a služby
DAP – Data Authentization Patern
33
Spojujeme software, technologie a služby 34
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
Load Token
Spojujeme software, technologie a služby 35
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
Install Token
Spojujeme software, technologie a služby 36
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
Load Receipt
Spojujeme software, technologie a služby
Nahrání a instalace aplikace
37
Spojujeme software, technologie a služby
Schéma pro delegovanou správu se 2 doménami
38
Spojujeme software, technologie a služby
Schéma pro delegovanou správu se 3 doménami
39
Spojujeme software, technologie a služby
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)
Příklady užití a konfigurace domén
40
Spojujeme software, technologie a služby
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
Application(s)
x x x x x x x
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
make selectable]
x x x x x x x
INSTALL [for install and make
selectable]
P P x P P x P P x x x x x
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
GlobalPlatform APDU – seznam příkazů
41
Spojujeme software, technologie a služby
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
GlobalPlatform APDU
42
Spojujeme software, technologie a služby
Kód Hodnota Význam
CLA ´80´- ´8F´,
´C0´- ´CF´,
´E0´- ´EF´
Třída instrukce
INS ´E6´ Instrukce INSTALL
P1 ´xx´ Referenční řídící parametr 1
P2 ´00´,´01´,
´02´
Referenční řídící parametr 2
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
Příklad - APDU příkazu INSTALL
43
Formát APDU (short length):
Spojujeme software, technologie a služby
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]
Referenční řídící parametr P1 příkazu INSTALL
44
Spojujeme software, technologie a služby
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
P Délka otisku Load File Data Block
Load File Data Block
Hash
N Hodnota otisku Load File Data Block
Length of Load
Parameters Field
P 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
Příklad 1: Datové pole příkazu INSTALL [for load]
45
Spojujeme software, technologie a služby
Název P/N Význam
Length of Executable
Load File AID
P Délka AID Executable Load File
Executable Load File AID N Hodnota AID Executable Load File, jehož Executable Module bude instalován
Length of Executable
Module AID
P Délka AID Executable Module
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
Parameters Field
P Délka pole parametrů
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
Příklad 2: Datové pole příkazu INSTALL [for install]
46
Spojujeme software, technologie a služby
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íčů
Služby GP pro personalizaci aplikací
47
Spojujeme software, technologie a služby
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.
Global platform Global Services Applications
48
Spojujeme software, technologie a služby
CVM aplikace, pokud je přítomna na kartě, poskytuje mechanismus pro autentizaci -Cardholder Verification Method, který mohou použít všechnyaplikace. 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.
CVM aplikace
49
Spojujeme software, technologie a služby 50
Ing. Ivo Rosol, CSc.
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