180 likes | 455 Views
Open Platform on Java Card. Introduction by Ingeborg Sandow. 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. Specifications.
E N D
Open Platform on Java Card Introduction by Ingeborg Sandow
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
Specifications • Open Platform Card Specification Version 2.0.1’ • GlobalPlatform Card Specification Version 2.1 available at: • www.visa.com • www.globalplatform.org
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
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
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
Life Cycle Models (1) Card Manager Life Cycle OP_READY INITIALIZED SECURED CM_LOCKED TERMINATED
Life Cycle Models (2) Load File Life Cycle LOADED DELETED (logically or physically)
Life Cycle Models (3) Application Life Cycle INSTALLED SELECTABLE PERSONALIZED DELETED (logically or physically) BLOCKED LOCKED
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
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().
OP APIOPSystem (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().
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.
OP APIProviderSecurityDomain (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().