Global Platform Presentation C:\Path - filename - san page 1 Open Platform on Java Card Introduction by Ingeborg Sandow
Global Platform Presentation C:\Path - filename - san page 2 Content Specifications Overview Card Architecture Card Manager Tasks Security Domain Tasks Functionality of Provider Security Domains Life Cycle Models APDU-Interface Card Manager OP API
Global Platform Presentation C:\Path - filename - san page 3 Specifications Open Platform Card Specification Version 2.0.1’ GlobalPlatform Card Specification Version 2.1 available at:
Global Platform Presentation C:\Path - filename - san page 4 Overview
Global Platform Presentation C:\Path - filename - san page 5 Card Architecture
Global Platform Presentation C:\Path - filename - san page 6 Card Manager Tasks Loading, installation and deletion of applications Realization of the Card Issuers security with the support of a security domain Performing access checks on card global data Check of application privileges Administration of life cycles
Global Platform Presentation C:\Path - filename - san page 7 Security Domain Tasks Realization of the cryptographic functionality Key administration Methods for the personalization of the Card Manager i.e. loading of keys Cryptographic Support for Load File DAPs for Secure Messaging for the loading of keys
Global Platform Presentation C:\Path - filename - san page 8 Functionality of Provider Securtiy Domains Standard Provider Security Domain Methods supporting the loading of keys Implementation of the Secure Messaging Provider Security Domain with DAP verification privilege Performing the verification of the Load File Data Block Data Authentication Pattern(s) Provider Security Domains with Delegated Management privilege Security domains with the privilege to load, install and delete applications
Global Platform Presentation C:\Path - filename - san page 9 Life Cycle Models (1) Card Manager Life Cycle OP_READY INITIALIZED SECURED TERMINATEDCM_LOCKED
Global Platform Presentation C:\Path - filename - san page 10 Life Cycle Models (2) Load File Life Cycle LOADED DELETED (logically or physically)
Global Platform Presentation C:\Path - filename - san page 11 Life Cycle Models (3) Application Life Cycle INSTALLED SELECTABLE PERSONALIZED LOCKEDBLOCKEDDELETED (logically or physically)
Global Platform Presentation C:\Path - filename - san page 12 APDU-Interface Card Manager Administrative: –SELECT Secure Channel: –INITIALIZE UPDATE –EXTERNAL AUTHENTICATE Card Content Management: –DELETE –GET DATA –PUT DATA –GET STATUS –INSTALL –LOAD –PUT KEY PIN: –PIN CHANGE/UNBLOCK
Global Platform Presentation C:\Path - filename - san page 13 OP API OPSystem (1) Life Cycle administration The Card Manager Life Cycle can be accessed by applications with special privileges. Therefore the application can use the methods getCardManagerState(), lockCardManager() and terminateCardManager(). The application can get/modify its own state via getCardContentState() and setCardContentState(). ATR The historical bytes of the Answer To Reset (ATR) can be changed with setATRHistBytes().
Global Platform Presentation C:\Path - filename - san page 14 OP API OPSystem (2) PIN check The card global PIN inside the Card Manager is addressed by getTriesRemaining(), setPin() and verifyPin(). Access a ProviderSecurityDomain An application can grant access on its (Provider) SecurityDomain using the method getSecurityDomain().
Global Platform Presentation C:\Path - filename - san page 15 OP API ProviderSecurityDomain (1) Authentication An external authentication can be verified with the method verifyExternalAuthenticate() which uses the APDU buffer for the input parameters. Key management Key loading is supported by the method decryptVerifyKey(). The key(s) contained in a PUT_KEY APDU is/are encrypted and the key verification value is checked. If the check was successful, true is returned.
Global Platform Presentation C:\Path - filename - san page 16 OP API ProviderSecurityDomain (2) Secure Messaging 1. The secure session starts by setting up a secure channel via openSecureChannel(). 2. Encrypted APDUs are decrypted by the method unwrap(). 3. At the end the derived secure messaging keys are discarded inside the method closeSecureChannel().