Applet Card PDF
Applet Card PDF
Applet Card PDF
3
Technical Manual
Version 1.2 January
2007
1
CONTENTS
1. Overview.....................................................................................................3
1.1. Revision History...............................................................................3
1.2. References .....................................................................................3
1.3. Trademarks....................................................................................3
2. Basic specification....................................................................................3
2.1. Java Card Features .........................................................................3
2.2. Visa GlabalPlatform Features..........................................................3
2.3. Security Features.............................................................................4
2.3.1. Cipher......................................................................................................... 4
2.3.2. Signature....................................................................................................4
2.3.3. Message Digest .......................................................................................... 4
2.3.4. Key Builder .................................................................................................4
3. Communications ........................................................................................4
3.1. Supported protocols.........................................................................4
3.2. Supported speeds............................................................................4
4. Hardware Specification............................................................................5
5. Applets...................................................................................................... 5
5.1. Issuer Security Domain..................................................................5
5.1.1. Supported Commands.............................................................................. 5
5.1.2. Example of Secure Channel Initiation........................................................6
5.2. Supplementary Security Domain ..................................................6
5.3. Certification Applet.........................................................................6
5.3.1. Examples of Certificate Applet installation................................................6
5.3.2. AID Information.........................................................................................6
6. Notes on Implementation.........................................................................6
6.1. CHANNEL......................................................................................6
6.1.1. MANAGE CHANNEL Command ..............................................................6
6.2. Proprietary Commands..................................................................7
6.2.1. GET CARD-PROFILE DATA Command .................................................... 7
6.2.2. GET CARD-INFO DATA Command........................................................... 7
2
1. Overview
1.1. Revision History
Version 1.0 Initial draft
Version 1.0.1 “6.2 Proprietary Commands” added
Version 1.1 Release draft
Version 1.2 5.1, 5.1.2 updated.
1.2. References
[1] GlobalPlatform Card Specification Version 2.1.1 March 2003
http://www.globalplatform.org
[2] Visa GlobalPlatform 2.1.1 Card Implementation Requirements Version 1.0 May
2003
[3] EMV Integrated Circuit Card Specifications for Payment System 4.1, May 2004
http://www.emvco.com
[4] ISO/IEC 7816, Information technology - Identification cards – Integrated
circuits(s) cards with contacts – Part 4 : Interindustry commands for interchange,
September 1995
1.3. Trademarks
Sun, Sun Microsystems, Java, Java Card and Java Card S are trademarks of Sun
Microsystems, Inc.
2. Basic specification
Card is a “Java Card” implementation conforming to “Visa GlobalPlatform 2.1.1
Card Implementation Requirement” and “Java Card 2.2.1”.
Card is implemented on Samsung S3CC9P9 smart card
controller which has 160 Kbytes ROM and 32 Kbytes EEPROM. It has VSDC 2.5.1
and PSE 2.2 as its ROM applets.
2.1. Java Card Features
Card supports all features of “Java Card 2.2.1” including RMI,
Multiple Logical Channels and Garbage Collection.
2.2. Visa GlabalPlatform Features
Card conforms to Configuration 3 implementation specified in
“Visa GlobalPlatform 2.1.1 Card Implementation Requirement”.
Following features are supported.
Public key DAP Verification
Mandated DAP Verification
SCP02 with implementation option ‘15’
Global PIN via CVM interface
Deprecated API of Open Platform 2.0.1
EMV Level 1 requirements
Delegated Management
Optional feature. The availability of this optional feature is at
the discretion of the issuer.
2.3. Security Features
3
2.3.1. Cipher
Following algorithms are supported.
DES_CBC : NOPAD, ISO9797_M1, ISO9797_M2
DES_ECB : NOPAD, ISO9797_M1, ISO9797_M2
RSA : NOPAD, PKCS1 (maximum length of 1024 bits)
RSA_CRT : NOPAD, PKCS1 (maximum length of 2048 bits)
SEED_CBC : NOPAD, NRPAD (domestically used in South Korea)
SEED_ECB : NOPAD, NRPAD (domestically used in South Korea)
2.3.2. Signature
MODE_SIGN and MODE_VERIFY of following algorithms are supported.
DES_MAC8 : NOPAD, ISO9797_1_M2_ALG3,
ISO9797_M1, ISO9797_M2
RSA_SHA : PKCS1, ISO9796
2.3.3. Message Digest
Following algorithms are supported.
MD5
SHA-1
2.3.4. Key Builder
Following key types are supported.
TYPE_DES
TYPE_DES_TRANSIENT_DESELECT
TYPE_DES_TRANSIENT_RESET
TYPE_RSA_PUBLIC (with maximum key length of 1024 bits)
TYPE_RSA_PRIVATE (with maximum prime length of 1024 bits)
TYPE_RSA_CRT_PRIVATE (with maximum prime length of 1024
bits)
Keys with following key length are supported.
LENGTH_DES
LENGTH_DES3_2KEY
RSA key length that is a multiple of 32 bits between 512 bits and
1024 bits
RSA CRT prime length that is a multiple of 16 bits between 256 bits
and 512 bits. Also supports prime length of 1024 bits.
3. Communications
3.1. Supported protocols
ISO7816 T=0 direct convention [default]
ISO7816 T=1 direct convention
3.2. Supported speeds
At the default clock rate of 3.57 MHz, the following communication speeds can be
attained:
9600 bit/sec [default]
19200 bit/sec
38400 bit/sec
115200 bit/sec
4. Hardware Specification
4
Samsung Electronics S3CC9P9
CPU 16-bit Calm 16 series
ROM 160 Kbytes
EEPROM 32 Kbytes
RAM 6 Kbytes
Operating Temperature -25℃ ~ 85℃
Operating Voltage 2.7 V ~ 5.5 V
5. Applets
Card has the Issuer Security Domain, Supplementary Security Domain
and six ROM applets (Certification Applet, eBook, ATM Applet, K-Cash, PSE and
VSDC). Capabilities of the Issuer Security Domain and these ROM applets are
described in this section.
Issuer Security Domain
Supplementary Security Domain
Certification Applet
5
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
5.1.1.4. INITIALIZE UPDATE
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
The ISD supports Secure Channel Protocol ‘02’ and specifically
implementation option ‘15’.
5.1.1.5. EXTERNAL AUTHENTICATE
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
The ISD supports Secure Channel Protocol ‘02’ and specifically
implementation option ‘15’.
5.1.1.6. PUT KEY
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
5.1.1.7. STORE DATA
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
5.1.1.8. GET DATA
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
5.1.1.9. GET STATUS
This command is used by the ISD only to retrieve Executable Load File,
Executable Module, ISD and Application Life Cycle data.
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
Card does not support retrieval of data relating to Executable
Load Files and their Executable Modules. Therefore, for this command with
P1 value equal to '0x10', card returns 0x6A81.
And, Card can respond to a command with 256-byte-length of
data maximally.
5.1.1.10. SET STATUS
This command is used by the ISD only to change the Life Cycle of the card
and to lock or unlock an Application.
All requirements specified in Visa GlobalPlatform 2.1.1 Card
Implementation Requirements version 1.0 are implemented.
5.1.2. Example of Secure Channel Initiation
Following is an example of secure channel initiation.
Send 80 50 00 00 08
11 22 33 44 55 66 77 88 (Host challenge)
Response 61 1C (Status Word)
Send 00 C0 00 00 1C
Response 00 00 61 72 01 27 23 90 99 45 (Key diversification data)
FF 02 (Key information)
00 00 (Sequence Counter)
3D 02 9C 31 C7 89 (Card challenge)
10 91 59 B6 9D D1 E8 F7 (Card cryptogram)
90 00 (Status Word)
Send 84 82 00 00 10
6C AB F3 4A CF AA 6C CB F3 46 3E BD 51 AE 8A 55 (Host
6
cryptogram and MAC)
Response 90 00 (Status Word)
6. Notes on Implementation
Following section briefly describes notes on Card implementation.
6.1. CHANNEL
Card has two logical channels. One is used for basic logical
channel and the other one is used for supplementary logical channels.
6.1.1. MANAGE CHANNEL Command
The MANAGE CHANNEL command opens and closes logical channels.
Further information of MANAGE CHANNEL command is described in
ISO/EIC 7816-4[4].
6.1.1.1. Secure Messaging
According to ISO/EIC 7816-4[4], four Secure Messaging (hereinafter
referred to as “SM”) options exists and are indicated in lower nibble of CLA
of APDU command.
Card only supports ‘No SM or no SM indication’ for MANAGE
CHANNEL command. In other words, lower nibble of CLA of MANAGE
CHANNEL command should be ‘0’.
If any other value is used for lower nibble of CLA of MANAGE CHANNEL
command, Card will return status word indicating error or
warning.
6.1.1.2. Behavior of Card
Upon receiving MANAGE CHANNEL command, Card first checks if
command requests SM by analyzing lower nibble of CLA. If MANAGE
CHANNEL command requests SM, Card returns 0x6882 indicating
“secure messaging not supported”[4]. For example, Card returns
0x6882 for MANAGE CHANNEL command ’04 70 P1 P2 00’, ’08 70 P1 P2 00’
and ‘0C 70 P1 P2 00’ with P1, P2 be combination of any value between
0x00 to 0xFF.
After checking CLA for SM, Card opens or closes logical channel
7
according to the command received.