Globalplatform Card Uicc Configuration: Member Release
Globalplatform Card Uicc Configuration: Member Release
Globalplatform Card Uicc Configuration: Member Release
UICC Configuration
Version 1.0.1
Member Release
January 2011
Document Reference: GPC_GUI_010
Table of contents
1 NORMATIVE REFERENCES ................................................................................................................................ 5
3 OVERVIEW ............................................................................................................................................................... 8
3.1 SECURITY DOMAINS ........................................................................................................................................... 8
3.2 REQUIRED APPLICATION PROGRAMMING INTERFACES ..................................................................................... 8
4 UICC SECURITY POLICIES.................................................................................................................................. 9
4.1 PRIVILEGES ......................................................................................................................................................... 9
4.2 ISSUER SECURITY DOMAIN............................................................................................................................... 10
4.3 SUPPLEMENTARY SECURITY DOMAINS ............................................................................................................ 10
4.3.1 Security Domain Hierarchies ................................................................................................................ 10
4.3.2 Security Domain Instantiation ............................................................................................................... 12
4.3.3 Security Domain Personalization ......................................................................................................... 13
4.4 SECURE CHANNEL ............................................................................................................................................ 14
4.4.1 Secure Channel Protocol Usage.......................................................................................................... 14
4.4.2 Secure Channel Interface Usage ......................................................................................................... 15
4.5 APPLICATIONS................................................................................................................................................... 16
5 DATA REQUIREMENTS ...................................................................................................................................... 17
5.1 AID VALUES...................................................................................................................................................... 17
5.2 ISSUER SECURITY DOMAIN............................................................................................................................... 17
5.2.1 Data Store ............................................................................................................................................... 17
5.2.1.1 Card Recognition Data (tag '66') .......................................................................................................... 17
5.2.2 Secure Channel Keys ............................................................................................................................ 18
5.2.3 Default Secure Channel Sequence Counter (tag 'C1') ..................................................................... 18
5.2.4 Key Information Template and Key Information Data (tags 'E0' and 'C0') ..................................... 18
5.3 SUPPLEMENTARY SECURITY DOMAINS PRESENT ON THE UICC..................................................................... 18
5.3.1 Data Store ............................................................................................................................................... 18
5.3.1.1 Security Domain Recognition Data...................................................................................................... 18
5.3.2 Secure Channel Keys ............................................................................................................................ 19
5.3.3 DAP Verification Key ............................................................................................................................. 19
5.3.4 Default Secure Channel Sequence Counter (tag 'C1') ..................................................................... 19
5.3.5 Key Information Template and Key Information Data (tags 'E0' and 'C0') ..................................... 19
5.3.6 Token Verification Key........................................................................................................................... 19
6 KEY USAGE ........................................................................................................................................................... 20
1 Normative References
Standard / Specification Description Ref
ETSI TS 102 225 (Release 7) Smart cards; Secured packet structure for UICC
based applications, European Telecommunications
[1]
Standards Institute Project Smart Card Platform (EP
SCP)
ETSI TS 102 226 (Release 7 + CR Smart cards; Remote APDU structure for UICC based
SCPt080562) applications, European Telecommunications
[2]
Standards Institute Project Smart Card Platform (EP
SCP)
GlobalPlatform Card Specification v 2.2.1 GlobalPlatform Card Specification v2.2.1 [3]
GP 2.1.1 to 2.2 Mapping Guidelines Implementation guidelines for mapping a
v1.0.1 GlobalPlatform card based on the Card Specification
[4]
v2.1.1 to a GlobalPlatform card compliant to Card
Specification v2.2.1.
GlobalPlatform Confidential Card Content Defines a mechanism for an Application Provider to
Management – Card Specification v2.2 – confidentially manage its own application when using [5]
Amendment A v1.0.1 a third party communications network.
ETSI TS 102 223 (Release 7) Smart Cards; Card Application Toolkit (CAT) [6]
ETSI TS 102 221 (Release 7) Smart cards; UICC-Terminal interface; Physical and
[7]
logical characteristics (Release 7)
ETSI TS 102 220 (Release 7 + CR Smart cards; ETSI numbering system for
[8]
SCPt080563 and SCPt080564) telecommunication application providers
GlobalPlatform Systems Scripting ECMA scripting standard for instructions for data
Language Specification v1.1.0 generation, personalization, and post-issuance [9]
purposes.
ISO/IEC 9796-2:2002 Information technology – Security techniques – Digital
signature schemes giving message recovery – Part 2: [10]
1
Integer factorization based mechanisms .
GlobalPlatform Systems Card GlobalPlatform Systems; Description of card
Customization Guide v1.0 customization process, components, and [11]
responsibilities.
PKCS#1 v1.5 RSA Encryption Standard, version 1.5, 1-November
[12]
1993
EMV Book 2 Security and Key EMV Integrated Circuit Card Specifications for
Management v4.2 Payment Systems – Book 2 Security and Key [13]
Management v4.2 June 2008
1
Notice that EMV Book 2 [13] – Appendix A.2 provides a simplified description of Digital Signature Scheme 1, using the
SHA-1 hash function and trailer field option 1, which is the variant actually used in the present document.
CA Controlling Authority
OTA Over-The-Air
CERT.CASD.AUT CASD Certificate holding a Public Key suitable for Signature Verification
Abbreviation Meaning
SK.CASD.CT CASD Private Key used for Decryption
3 Overview
This document specifies configuration requirements for implementing GlobalPlatform Specifications on the
UICC platform specified in ETSI specifications TS 102 221 [7], TS 102 223 [6], TS 102 225 [1] and TS 102
226 [2].
The provisions of the GP CS v2.2 Mapping Guidelines [4] and GP CS v2.2 Amd. A [5] shall apply as
specified in this document.
4.1 Privileges
Table 4-1 lists the privileges that shall be assigned to the Issuer Security Domain, to each instance of a
Supplementary Security Domain, and lists privileges that may be assigned to other Applications. To
facilitate product deployment, the platform supports all mandatory and optional privileges listed in this
table.
Security Domain
DAP Verification
Delegated Management
Card Lock
Card Terminate
Card Reset
CVM management
Mandated DAP Verification
Privileges
Trusted Path
Authorized Management
Token Verification
Global Delete
Global Lock
Global Registry
Final Application
Global Service
Receipt Generation
Ciphered Load File Data
Block
Additional Privilege Assignment Rules (beyond those defined in section 6.6 of the GP CS v2.2.1 [3])
1. A Security Domain shall not be able to extend its own privileges.
2. A Security Domain shall not be able to assign to another Security Domain, or any other Application,
any of the privileges listed below that it does not have itself:
• Global Delete
• Global Lock
• Global Registry
• Card Terminate
• Card Lock
3. Only the Issuer Security Domain can assign the Authorized Management and the Mandated DAP
privileges.
4. It shall only be possible to assign the Token Verification and Receipt Generation privileges to a
Security Domain with the Authorized Management privilege.
- If a personalized SD has the AM privilege, then none of its ancestor SDs (following the path
to the root of the hierarchy) has the AM privilege. Conversely, if a SD has the AM
privilege, no personalized SD found in its descendants (no SD found below it) has the AM
privilege
- A SD with the AM privilege can perform Card Content Management according to section 9 of
GP CS v2.2.1 [3]
- A SD shall accept installation if requested by an ancestor SD with the AM privilege or by an
SD with the DM privilege under an ancestor SD with the AM privilege
- A SD shall accept extradition according to section 4.3.2
- A SD shall accept deletion according to section 4.3.2
• The ISD is the only Security Domain able to
- Create a Security Domain with Authorized Management privilege
- Extradite a Security Domain with Authorized Management privilege
Applying these rules, the two following examples of hierarchies can be created:
Hierarchy Example 1
The root of this hierarchy is a Security Domain supporting Secure Channel Protocol '80' (SCP80). It does
not support Card Content Management.
The APSD 1 has Authorized Management. It uses its SCP02 over the SCP80 when accessed by the Link
Platform Operator (LPO).
The APSD 2 has Authorized Management. It uses its SCP80 and keys when accessed Over The Air.
APSD : LPO
SCP80
AM AM
APSD 1 APSD 2
SCP02 SCP80
Hierarchy Example 2
The APSD 1 is the root of this hierarchy. It provides card content management for the entire hierarchy.
The APSD 2 has no card content management privilege. It uses its SCP02 over the SCP80 when
accessed by the LPO.
The application relies on the SCP80 provided by APSD 1.
AM
APSD 1 : LPO
SCP80
APSD 2 Application
SCP02
b8 b7 b6 b5 b4 b3 b2 b1 Meaning
SD does not accept the operation (default policy if the tag is not
0 0 0 0 0
present)
1 0 - 0 - SD accepts the operation from an ancestor SD with AM privilege
SD accepts the operation from any SD in its hierarchy with AM
1 1 - 0 -
privilege
- - 1 0 - SD accepts the operation from Issuer Security Domain
SD accepts the operation from any SD with DM privilege under an
- - - - 1
ancestor SD with AM privilege
SD accepts the operation from every SD with AM privilege on the
1 1 1 1 -
Card
- - - - - X X X RFU, and set to '0'
Table 4-3: Encoding rules for tags '82', '83', and '87' defined in Table 4-2.
Note: The bit field may be encoded such that multiple rules apply. For example, the rule expressed by the
fourth row may be combined with the rules expressed in rows two or three. For tags '82' and '87', the value
may be composed of one or two bytes. If the value is composed of a single byte, then the policy applies to
both Applications and Executable Load Files. If the value is composed of two bytes, then the first
(leftmost) byte applies to Applications and the second (rightmost) byte applies to Executable Load Files.
If tag '82', '83' or '87' is not present, then the default policy shall apply for the corresponding operation
(equivalent to a value of '00' for any of these tags).
1. Pull Model, where APSD Secure Channel Keys are generated on-board, and retrieved by the
Application Provider. This scenario will be refered to as scenario #1 in the remaining sections of the
document.
2. Push Model, where APSD Secure Channel Keys are pushed to the card. This model has two
variants for which the origin and the integrity of the pushed keys are ensured by two distinct
mechanisms:
A. One based on the use of an Application Provider Public Key Certificate, signed by the
Controlling Authority. This scenario will be refered to as scenario #2.A in the remaining
sections of this document.
B. Another one based on the use of a temporary Secure Channel Key Set populated by the
LPO (or the entity that created the Security Domain). This scenario will be refered to as
scenario #2.B in the remaining sections of this document.
A card compliant with the UICC configuration may provide support for one or more of these scenarios that
are detailed in section 10.
In these cases, the CASD is installed and fully personalized prior to submission to an issuer (e.g. MNO).
When the CASD is not present on the card, none of these scenarios are supported.
APSD2
SCP02
2. Security Domain having one complete Key Set for a Secure Channel;
a. When the targeted Security Domain has a SCP80 Key Set, the security of the remote
APDU command string is unwrapped by the Security Domain itself and processed as
specified in [2]. Any attempt to initiate a SCP02 Secure Channel within the command
script shall be rejected.
b. When the targeted Security Domain does not have a SCP80 Key Set, the remote APDU
command string is not trusted. The Security Domain may use its own SCP02 Secure
Channel to secure each command received in the remote APDU command string
2. If the Secure Channel is SCP02, the SecureChannel interface is used to process the security of
each command received in the remote APDU command string according to appendix E of GP CS
v2.2.1 [3].
4.5 Applications
The requirements are defined in section 2.4 of the GP CS v2.2 Mapping Guidelines [4].
5 Data Requirements
The following requirements are for support of data within OPEN and Security Domains.
5.2.4 Key Information Template and Key Information Data (tags 'E0' and 'C0')
These requirements are defined in section 3.24 of [4].
5.3.5 Key Information Template and Key Information Data (tags 'E0' and 'C0')
These requirements are defined in section 3.3.5 of [4].
6 Key Usage
Each Security Domain requires keys for Secure Messaging and to perform the functions associated with
its privileges. The Key Version Numbers identifying these keys are listed below.
• Key Version number range ('20' to '2F') is reserved for SCP02
o Key identifier '01' defines the encryption key as specified in sections 3.3.2 and 4 of the GP
CS v2.2 Mapping Guidelines [4]
o Key identifier '02' defines the MAC key as specified in sections 3.3.2 and 4 of [4]
o Key identifier '03' defines the data encryption key (DEK) as specified in sections 3.3.2 and
4 of [4]
• Key Version 'FF' is reserved for use by an Issuer Security Domain supporting SCP02, and cannot
be used for SCP80. This initial key set shall be replaced by a key set with a Key Version Number
in the ('20' to '2F') range.
• Key Version number range ('01' to '0F') is reserved for SCP80
• Key Version number '70' with Key Identifier '01' is reserved for the Token Key, which is either a
RSA public key or a DES key
• Key Version number '71' with Key Identifier '01' is reserved for the Receipt Key, which is a DES
key
• Key Version Number '11' is reserved for DAP as specified in ETSI TS 102 226 [2]
• Key Version Number '73' with Key Identifier '01' is reserved for the DAP verification key as
specified in sections 3.3.3 and 4 of [4], which is either an RSA public key or DES key
• Key Version Number '74' is reserved for the CASD Keys (cf. section 9.2)
o Key identifier '01' is reserved for PK.CA.AUT
o Key identifier '02' is reserved for SK.CASD.AUT (PK) and KS.CASD.AUT (Non-PK)
o Key identifier '03' is reserved for SK.CASD.CT (PK) and KS.CASD.CT (Non-PK)
• Key Version Number '75' with Key Identifier '01' is reserved for the key used to decipher the
Ciphered Load File Data Block described in section 4.8 of [5]. This key shall be a 16-byte DES
key. When ciphering the Load File Data Block, CBC mode with null ICV shall be used. Padding
shall be according to Annex B.4 of GP CS v2.2.1 [3].
An implementation of this configuration is not required to reject, but may do so, the loading of any of the
above keys when a Security Domain does not have the relevant usage privilege(s) for a key.
For a Security Domain that supports both SCP02 and SPC80 and receives an INITIALIZE UPDATE
command with a Key Version Number outside of the range reserved for SCP02, the command shall fail
and return a response of '6985'.
Initially for a Supplementary Security Domain on a UICC, no keys exist and the Security Domain uses the
keys of its associated Security Domain to set up a Secure Channel.
Management of any of the above keys is possible using either a PUT KEY command or the STORE DATA
command according to the following rules:
• If PUT KEY or STORE DATA is used within a Secure Channel according to SCP80, the provisions
of ETSI TS 102 226 [2] shall apply. For creating or updating keys with a KVN greater than '0F', the
DEK of the Secure Channel Key Set shall be used. It shall not be possible to use the DEK key
type single DES to update or create triple DES keys or RSA private keys, if any
• If PUT KEY or STORE DATA is used within a Secure Channel according to SCP02, SCP02 keys,
SCP80 keys and all other keys referenced in this document may be updated or created according
to section 6.9 of GP CS v2.2 Mapping Guidelines [4]
7 Delegated Management
8 APDU Commands
The commands described in this section are the following:
• DELETE
• GET DATA
• GET STATUS
• INSTALL
o INSTALL [for load]
o INSTALL [for install]
o INSTALL [for install and make selectable]
o INSTALL [for make selectable]
o INSTALL [for extradition]
o INSTALL [for registry update]
o INSTALL [for personalization]
• LOAD
• MANAGE CHANNEL
• PUT KEY (DES Keys)
• PUT KEY (RSA Public Key)
• SELECT
• SET STATUS
• STORE DATA
8.1 DELETE
Deletion of Applications or Executable Load Files is defined in section 11.2.2.3.1 of the GP CS v2.2.1 [3].
The recommendations regarding the command message data field, Card Life Cycle checks and status
words of section 6.1.2 of the GP CS v2.2 Mapping Guidelines [4] apply. The following overrides the
provisions in [4]: If the AID references the Issuer Security Domain, a response of '6A88' or '6985' is
returned.
The support of key deletion is optional. All of the Key Sets for a Security Domain may be deleted. If the
default Key Set is deleted, and one or more Key Sets remain, another Key Set becomes the new default
Key Set. The determination of the new default Key Set is UICC implementation-dependent.
The Key Set number is returned in the response to the INITIALIZE UPDATE command when executed
with the P1 = 0 (i.e. the default Key Set).
The presence of tags 'B6' and '9E' (Delete Token) is mandatory when the Security Domain processing this
command has the Delegated Management privilege.
The parameters P1 and P2 define the tag of the data object to be read. The following tags are processed:
Tag
Length (Le) Meaning
(P1,P2)
1
'00','42' Var Card Issuer or Security Domain Provider Identifcation Number
1
'00','45' Var Card or Security Domain Image Number
3
'00','EE' Var Card Profile Unique Identifier
1
'00','CF' '0A' User Key diversification data
1
'00','E0' Var Key Information Template
1
'00','C1' '04' Sequence Counter of the default Key Version Number (Implicit Key Version )
1
'00','C2' '02' Confirmation Counter (conditionally supported)
1
'00','66' Var Card Recognition Data
2
'FF','1F' Var Menu Parameters Tag
2
'FF','20' '03' Card Resources Tag
2
'FF','21' Var Extended Card Resources Tag
4
'7F','21' Var Security Domain’s certificate store
Data Field
In case of a GET DATA Menu Parameters the command data are coded as defined in [2].
In the other cases, the data field of the command message is empty unless a Message Authentication
Code is used.
8.4 INSTALL
This command is defined in section 6.6 of [4]. In this configuration, the Delegated Management and some
tags defined by ETSI are supported, and therefore some features have been added. All Card Content
Management rules defined in section 9 of [3] apply.
General
A UICC is not required to open more than one card content loading session at a time.
Load Token
If the Supplementary Security Domain performing the load has the Delegated Management privilege, then
the content of this field is present.
Application Privileges
The Application Privileges data field is checked against the list of privileges that are supported according
to Table 4-1.
Install Parameters
The tag 'CB' shall be supported; however its presence in the data field is conditional.
Tags 'CA' and 'EA' are supported. Their presence and content are as defined in ETSI TS 102 226 [2].
Install Token
If the Supplementary Security Domain performing the install command has the Delegated Management
privilege, then the content of this field is present.
Application Privileges
The Application Privileges data field is checked against the list of privileges that are supported according
to Table 4-1.
Application AID
If this AID does not reference an Application associated to the Security Domain processing the command,
a response of '6985' is returned.
Extradition Token
If the Supplementary Security Domain performing the extradition has the Delegated Management privilege
the content of this field is present.
Application AID
The Application AID references an Application within the GlobalPlatform Registry that is associated to the
Security Domain to which this command is submitted. If this value does not reference an Application in the
GlobalPlatform Registry, a response of '6A88' is returned. If this value does not reference an Application
associated to the Security Domain to which this command is submitted, a response of '6985' is returned.
The successful processing of the above field results in the following:
The subsequent STORE DATA command(s) would be pre-processed by the Security Domain according to
the current Secure Channel prior the command being forwarded to the application being personalized. In
the case that the Associated Application is not a Security Domain, refer to section 11.11 of [3] and GP CS
v2.2 Amd A [5] for the structure of the subsequent STORE DATA commands. In the case that the
Associated Application is a Security Domain, refer to section 8.11.
If an attempt is made to personalize a Security Domain which is already in the PERSONALIZED life cycle
state during the processData() operation, it shall fail and return a response of '6985'.
8.5 LOAD
This command is defined in section 6.7 of the GP CS v2.2 Mapping Guidelines [4].
The Tag 'D4' is supported as defined in [5].
An implementation of this configuration shall support the presence of more than one DAP block in the
Load File.
Command Message
Both formats 1 and 2 are supported.
The following Key Type is supported:
Response Message
Response Message
8.9 SELECT
This command defined in section 6.11 of [4] and ETSI TS 102 221 [7].
8 7 6 5 4 3 2 1
b b b b b b b b Description
0 0 0 0 0 - - 1 Support for Confidential SD Personalization using Scenario #1
0 0 0 0 0 - 1 - Support for Confidential SD Personalization using Scenario #2.A
0 0 0 0 0 1 - - Support for Confidential SD Personalization using Scenario #2.B
x x x x x - - - RFU (0)
8 7 6 5 4 3 2 1
b b b b b b b b Description
x x x x x x x 1 Support for PK scheme
x x x x x x x - RFU (0)
Table 9-3: CASD Capability Information (Byte 2): Supported Scenario Options
Byte 1 indicates which Confidential SD Personalization scenarios are supported by the card:
- Bit B1.b1 indicates whether scenario #1 is supported
- Bit B1.b2 indicates whether scenario #2.A is supported
- Bit B1.b3 indicates whether scenario #2.B is supported
- Other bits are reserved for future use (RFU)
NOTE: Whether a particular scenario is supported or not, will depend on the following conditions:
- The implementation of the CASD actually provides support for this scenario
- The CASD has been personalized with the keys and certificates required for this scenario
Byte 2 provides further indications on scenario options that are supported by the card:
- Bit B2.b1 indicates whether a PK scheme shall be used in conjunction with supported scenarios
(as indicated in Byte 1). Usage of PK scheme shall always be indicated on a card supporting PK
cryptography. Non-PK schemes are reserved for Non-PK cards
Currently, only Scenario #1 (Pull Model) defines both a PK scheme and a Non-PK scheme.
Scenario #2.A and #2.B (Push Model) define only a PK scheme
- Other bits are reserved for future use (RFU)
- Using the PK scheme, the CASD holds a number of asymmetric keys and certificates to perform
Signature, Encyrption and Certificate Verification. All certificates stored and/or processed by the
CASD are signed off-card using a valid CA Private Key (SK.CA.AUT) and may be verified off-card
using corresponding CA Public Key (PK.CA.AUT). All asymmetric keys shall be 1024-bit RSA
2
keys
- Using the Non-PK scheme, the CASD holds two distinct 16-byte DES keys, one for decryption
(KS.CASD.CT) and one for signature verification (KS.CASD.AUT).
- The GET DATA command shall be used with tag '7F21' to retrieve CA certificate store, from which it
shall be possible to extract at least one of the following CASD certificates:
o CERT.CASD.AUT, a CASD certificate suitable for use with scenario #1
o CERT.CASD.CT, a CASD certificate suitable for use with scenario #2.A and #2.B
CASD certificates shall be bound to their hosting cards (e.g. CSN, IIN and/or CIN). Some other card
information, certified by the Controlling Authority, may also be included in these certificates (e.g.
security evaluation level).
The AP is required to check the validity of any CASD certificate retrieved from the card, using a valid
CA Public Key (hereafter referred to as PK.CA.AUT), and from each such certificate, it shall recover
the corresponding CASD Public Key.
The CASD shall be able to store the following certificates and keys:
- The STORE DATA command (see section 4.10 of GP CS v2.2 Amd. A [5]) shall be used to store the
following keys:
o CA Public Key: PK.CA.AUT (KVN='74', KID='01')
o CASD Private Key for Signature: SK.CASD.AUT (KVN='74', KID='02')
o CASD Private Key for Decryption: SK.CASD.CT (KVN='74', KID='03')
- The STORE DATA command shall be used with DGI '7F21' to store CA certificate store
3
The use of signature with message recovery is recommended to generate small-sized certificates.
2
In this configuration, some mechanisms have been tuned so that data returned to off-card entities can fit within GET
DATA responses. Typically, the length of RSA key pairs (CASD, APSD) has a direct impact on this. The use of longer
RSA keys may be enabled in future versions of this document.
3
A suitable signature algorithm is the one described in ISO/IEC 9796-2 [10], using Digital Signature Scheme 1, the SHA-
1 hash function and trailer field option 1.
Table 9-4 describes the structure of a certificate based on the use of signature with message recovery:
Table 9-5 describes data (TLV-encoded) signed using the CA Private Key (SK.CA.AUT, private
counterpart of PK.CA.AUT) to generate a Certificate with message recovery:
The data recovered from the verification of the signature (tag '5F37'), as described in [10], includes part
of tag '7F49', including tag '82' and part of tag '81' (Public Key Modulus leftmost bytes). Public Key
Modulus rightmost bytes (Remainder) are retrieved from tag '5F38'.
Note: The Subject Identifier is a unique identifier of the owner of the public key that is certified. The CA
Identifier is a unique identifier of the owner of the key pair that has been used to produce the certificate.
The PUT KEY command or the STORE DATA command (according to [5]) shall be used to store the
following keys:
o CASD Signature Key: KS.CASD.AUT (KVN='74', KID='02')
o CASD Encryption Key: KS.CASD.CT (KVN='74', KID='03')
INSTALL Response
INSTALL Response
INSTALL Response
INSTALL Response
Table 10-3: Data signed to generate the AP Public Key Certificate with Message Recovery
The CASD is responsible for verifying the certificate using PK.CA.AUT. More precisely, the APSD shall
provide the CASD with tag '7F21' (certificate), using the Authority interface in MODE_KEY_RECOVERY
mode. Upon successful verification, the CASD shall copy the following structure recovered from the
verification of the certificate, at the location specified by the APSD in the call to the
Authority.recoverKey() method:
Length Description
1 Public Key Exponent Length ('01' or '03')
1 or 3 Public Key Exponent Value
1 Public Key Modulus Length ('80')
Var. Public Key Modulus Value
Table 10-4: Key data recovered from AP Public Key Certificate verification
NOTE: The Public Key Modulus leftmost bytes are recovered from the verification of the signature
('5F37'). The Public Key Modulus rightmost bytes are recovered from the Public Key Modulus
Remainder ('5F38').
The certificate is sent to the card to store corresponding public key but there is no need for an off-card
entity to retrieve it. The certificate is discarded once the public key has been stored.
The AP Public Key (PK.AP.CT) shall be discarded as soon as a Secure Channel Key Set has been
successfully generated and the on-card generated secret has been sent back to the Application Provider.
The content of tag '8E' is a signature generated by the Controlling Authority over the concatenation of DGI
'00B8' and DGI '80B8', using Single DES + Final Triple DES algorithm (see GP CS v2.2.1 [3] – Appendix
B.1.2.2) with padding as defined in Annex B.4 of [3].
The APSD shall provide the CASD with the concatenation of DGI '00B8', '80B8' and '00AE', using the
Authority interface in MODE_KEY_RECOVERY mode. The CASD shall verify the signature provided
within tag '8E' (using KS.CASD.AUT) and decrypt DGI '80B8' (using KS.CASD.CT). The CASD shall then
copy the decrypted value of the KS.AP.CT at the location specified by the APSD in the call to the
Authority.recoverKey() method.
The APSD is then responsible for reading and storing KS.AP.CT.
The KS.AP.CT key shall be discarded as soon as a Secure Channel Key Set has been successfully
generated and the on-card generated secret has been sent back to the Application Provider.
- Depending on the type of the AP encryption key, symmetric (KS.AP.CT) or asymmetric (PK.AP.CT),
either RSA algorithm or Triple DES algorithm (CBC mode with NULL 8-byte ICV) shall be used to
encrypt the RGK. The length of the RGK is known. PKCS#1 v1.5 padding for encryption shall be
used in the case of RSA (see PKCS#1 [12]). Padding is not applied for Triple DES.
- The APSD shall then provide the CASD with the following data, using the Authority interface in
MODE_SIGN mode:
Length Description
1 Length of AP Security Domain AID
5-16 AP Security Domain AID
1 Length of Control Reference Information
Var. Control Reference Information (Content of 'A6')
1 Length of Encrypted RGK
Var. Encrypted RGK
Table 10-8: Pull Model - Data to be signed on-card by the CASD
If the CASD holds an asymmetric signing key (SK.CASD.AUT), a signature of above data shall be
generated according to ISO/IEC 9796-2 [10], using Digital Signature Scheme 1, the SHA-1 hash
function and trailer field option 1.
If the CASD holds a symmetric signing key (KS.CASD.AUT), a signature of above data shall be
generated using padding according to Annex B.4 of [3] and the Single DES + Final Triple DES
algorithm described in GP CS v2.2.1 [3] – Appendix B.1.2.2.
Length Description
1 Length of CASD Signature
Var. CASD Signature
1 Length of Remainder Data
Var. Remainder Data
According to signature with message recovery scheme [10], Remainder Data are those data
part of signed data (as described in Table 10-8) that would not be recovered from the
signature verification process.
The Application Provider shall recover signed data (including Encrypted RGK) by concatenating the data
recovered from the signature verification process and remainder data. Notice that if the APSD used DES
cryptography to obtain Encrypted RGK, the length of Remainder Data will be 0. The Application Provider
applies the same algorithm as the APSD to derive its Secure Channel Keys from the recovered RGK.
The Application Provider is now able to use its own keys to establish a Secure Channel session.
Figure 10-3: Scenario #2.A (Push Model with Application Provider Certificate)
GETGET
DATADATA
[PK.CASD.AUT]
['7F21']
Retrieve CA certificate store. CA certificate store is returned.
PK.CASD.AUT, PK.CASD.CERT
certificates
- Forward response to Application Provider.
- Application Provider verifies CERT.CASD.CT and
recovers PK.CASD.CT.
INSTALL Response
DGI '00A6' is used to provide identification data for pushed keys. The contents of DGI '00A6' are as
follows:
The content of DGI '8010' shall be decrypted using the Authority.recoverKey() method (based on
the use of SK.CASD.CT).
DGI '00AE' provides integrity data for the Secure Channel Keys.The content of DGI '00AE' is as follows:
The content of tag '9E' is a PKCS#1 v1.5 Block Type 01 signature (see PKCS#1 [12]) generated by the
Application Provider over the concatenation of DGI '00A6' and DGI '8010'. This signature shall be verified
by the APSD, using the Application Provider Public Key (PK.AP.AUT), before any attempt to store the
recovered Secure Channel Keys.
As soon as the Secure Channel Keys have been decrypted and the signature has been verified, they are
stored by the APSD according to supplied identification data. The APSD is now able to use its own Secure
Channel Keys.
Figure 10-4: Scenario #2.B (Push Model without Application Provider Certificate)
INSTALL Response
GETGET
DATADATA
[PK.CASD.AUT]
['7F21']
Retrieve CA certificate store. CA certificate store is returned.
PK.CASD.AUT,
certificates
PK.CASD.CERT
Application Provider verifies CERT.CASD.CT and
recovers PK.CASD.CT.
The LPO populates an initial, temporary set of SCP keys. To do so, the LPO may either:
- Open a secure link with the LPOSD, and use both INSTALL[for personalization] and STORE
DATA commands to send temporary SCP keys to the APSD or
- Using its own keys (as specified in section 4.4.1), open a secure link with the APSD and use the
PUT KEY command to send temporary SCP keys to the APSD.
The Secure Channel Protocol to which these keys are bound (either SCP80 or SCP02), shall be selected
according to KVN usage described in section 6, and may depend on whether the APSD supports one or
more Secure Channel Protocols. A secure link shall be established between the LPO and the AP to share
these keys.
The AP is now able to use these temporary keys to set up a SCP session with the APSD. In the case of a
SCP80 link, the AP is now required to use its own OTA platform (or at least, independent from the LPO).
The AP shall then
- Retrieve certificate CERT.CASD.CT from the CASD certificate store, check the certificate, using
PK.CA.AUT, and its content (in particular, card related data), and recover PK.CASD.CT
- Initiate a SCP session with the APSD, using temporary keys and at least the MAC security level.
- Load a new SCP Key Set encrypted using PK.CASD.CT
This is done in the same way as described in section 10.2.2, except for the following:
o The contents of DGI '00A6' shall be encoded as follows:
o There is no need to send DGI '00AE', as the origin and the integrity of the keys that are
pushed to the APSD are ensured by the current Secure Channel session
o Any Key Set installed prior to the one currently being pushed by the AP shall be discarded
upon successful storage of the new Key Set
As soon as the Secure Channel Keys have been decrypted by the CASD, using SK.CASD.CT, they
are stored by the APSD according to the supplied identification data.
The AP shall now initiate a new SCP session using its new keys, to perform other personalization steps. In
particular, it may now populate Secure Channel Keys for other supported protocols, if any.