4.1.5 Card Verifiable Certificates
All changes in this version
Title changed
Before · SP 800-73-4
Card Verifiable Certificates
After · SP 800-73-5
Card Verifiable Certificates
Control changed
Before · SP 800-73-4
Table 15 specifies the format for the secure messaging CVC, C ICC , and Table 16 specifies the format for the optional Intermediate CVC.
C ICC is used to authenticate the PIV Card Application. The specific data object tags and specified order must be used for both CVCs to allow the CVC processing within authentication protocols. The specific data object tags for C ICC and the optional Intermediate CVC are provided in Tables 15 and 16 , respectively.
The signature of the secure messaging CVC (DigitalSignature object) is calculated over the concatenation of the TLV encoded Credential Profile Identifier, Issuer Identification Number, Subject Identifier, CardHolderPublicKey Data Object, and Role Identifier, i.e., { '5F29' '01' '80' } || { '42' '08' IIN } || { '5F20' '10' GUID } || { '7F49' L1 { { '06' L2 OID } { '86' L3 '04' X Y } } } { '5F4C' '01' '00' }. Before signing the CVC the signer shall perform partial public-key validation [SP800-56A , Section 5.6.2.3.2] for the public key that will be placed in the Public Key object and shall verify that the PIV Card is in possession of the corresponding private key (see [SP800-56A , Section 5.6.2.2.3.2] and [SP800-57, Section 8.1.5.1.1.2] for discussions of methods to obtain assurance of private-key possession).
Table 15. Secure Messaging Card Verifiable Certificate Format Tag Tag Tag Length Name Value 0x7F21 Card Verifiable Certificate 0x5F29 1 Credential Profile Identifier 0x80
0x42 8 Issuer Identification Number The leftmost 8 bytes of the subjectKeyIdentifier in the content signing certificate needed to verify the signature on C ICC . 17 0x5F20 16 Subject Identifier GUID (Card UUID) 0x7F49 Variable CardHolderPublicKey Data Object 0x06 Variable Algorithm OID Possible values are: 0x2A8648CE3D030107 for ECDH (Curve P-256) or 0x2B81040022 for ECDH (Curve
17 If the public key needed to verify the signature on the secure messaging CVC appears in an Intermediate CVC, then the Issuer Identification Number shall be the value of the Subject Identifier in the Intermediate CVC. Tag Tag Tag Length Name Value P-384) 0x86 Variable Public Key object Coded as follows: 04 || X || Y, where X and Y are the coordinates of the point on the curve. See the “Value” column of Table 13 . 0x5F4C 1 Role Identifier 0x00 for card-application key CVC 0x5F37 Variable DigitalSignature object DigitalSignature ::= SEQUENCE { signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING } AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } algorithm is 1.2.840.10045.4.3.2 for ECDSA with SHA-256 (cipher suite 2) and 1.2.840.10045.4.3.3 for ECDSA with SHA- 384 (cipher suite 7). For both algorithms, the parameters field is absent. signatureValue is the DER encoding of signature result ECDSA-Sig-Value defined below. ECDSA-Sig-Value ::= SEQUENCE { r INTEGER, s INTEGER }
Table 16. Intermediate Card Verifiable Certificate Format
Tag Tag Tag Length Name Value 0x7F21 Card Verifiable Certificate 0x5F29 1 Credential Profile Identifier 0x80
0x42 8 Issuer Identification Number The leftmost 8 bytes of the subjectKeyIdentifier in the content signing certificate needed to verify the signature on the Intermediate CVC. 0x5F20 8 Subject Identifier The leftmost 8 bytes of the SHA-1 hash of the Public Key object. 0x7F49 Variable PublicKey Data Object 0x06 Variable Algorithm OID Possible values are: 0x2A8648CE3D030107 for ECDH (Curve P-256) or 0x2B81040022 for ECDH (Curve P-384) 0x86 Variable Public Key object Coded as follows: 04 || X || Y, where X and Y Tag Tag Tag Length Name Value are the coordinates of the point on the curve. See the “Value” column of Table 13 . 0x5F4C 1 Role Identifier 0x12 for card-application root CVC 0x5F37 Variable DigitalSignature object DigitalSignature ::= SEQUENCE { signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING } AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } algorithm is 1.2.840.113549.1.1.11 for RSA with SHA-256 and PKCS #1 v1.5 padding. The parameters field shall be NULL.
The signature of the Intermediate CVC (DigitalSignature object) is calculated over the concatenation of the TLV encoded Credential Profile Identifier, Issuer Identification Number, Subject Identifier, PublicKey Data Object, and Role Identifier, i.e., { '5F29' '01' '80' } || { '42' '08' IIN } || { '5F20' '08' SI } || { '7F49' L1 { { '06' L2 OID } { '86' L3 '04' X Y } } } { '5F4C' '01' '12' }. Before signing the CVC the signer shall perform partial public-key validation [SP800-56A , Section 5.6.2.3.2] for the public key that will be placed in the Public Key object and shall verify that the subject is in possession of the corresponding private key (see [SP800-56A , Section 5.6.2.2.3.2] and [SP800-57, Section 8.1.5.1.1.2] for discussions of methods to obtain assurance of private-key possession).
After · SP 800-73-5
Table 15 specifies the format for the secure messaging CVC, C ICC , and Table 16 specifies the format for the optional Intermediate CVC.
C ICC is used to authenticate the PIV Card Application. The specific data object tags and specified order must be used for both CVCs to allow the CVC processing within authentication protocols. The specific data object tags for C ICC and the optional Intermediate CVC are provided in Tables 15 and 16 , respectively.
The signature of the secure messaging CVC (DigitalSignature object) is calculated over the concatenation of the TLV encoded Credential Profile Identifier, Issuer Identification Number, Subject Identifier, CardHolderPublicKey Data Object, and Role Identifier, i.e., { '5F29' '01' '80' } || { '42' '08' IIN } || { '5F20' '10' GUID } || { '7F49' L1 { { '06' L2 OID } { '86' L3 '04' X Y } } } { '5F4C' '01' '00' }. Before signing the CVC the signer shall perform partial public-key validation [SP800-56A , Section 5.6.2.3.2] for the public key that will be placed in the Public Key object and shall verify that the PIV Card is in possession of the corresponding private key (see [SP800-56A , Section 5.6.2.2.3.2] and [SP800-57, Section 8.1.5.1.1.2] for discussions of methods to obtain assurance of private-key possession).
Table 15. Secure Messaging Card Verifiable Certificate Format Tag Tag Tag Length Name Value 0x7F21 Card Verifiable Certificate 0x5F29 1 Credential Profile Identifier 0x80
0x42 8 Issuer Identification Number The leftmost 8 bytes of the subjectKeyIdentifier in the content signing certificate needed to verify the signature on C ICC . 17 0x5F20 16 Subject Identifier GUID (Card UUID) 0x7F49 Variable CardHolderPublicKey Data Object 0x06 Variable Algorithm OID Possible values are: 0x2A8648CE3D030107 for ECDH (Curve P-256) or 0x2B81040022 for ECDH (Curve
17 If the public key needed to verify the signature on the secure messaging CVC appears in an Intermediate CVC, then the Issuer Identification Number shall be the value of the Subject Identifier in the Intermediate CVC. Tag Tag Tag Length Name Value P-384) 0x86 Variable Public Key object Coded as follows: 04 || X || Y, where X and Y are the coordinates of the point on the curve. See the “Value” column of Table 13 . 0x5F4C 1 Role Identifier 0x00 for card-application key CVC 0x5F37 Variable DigitalSignature object DigitalSignature ::= SEQUENCE { signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING } AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } algorithm is 1.2.840.10045.4.3.2 for ECDSA with SHA-256 (cipher suite 2) and 1.2.840.10045.4.3.3 for ECDSA with SHA- 384 (cipher suite 7). For both algorithms, the parameters field is absent. signatureValue is the DER encoding of signature result ECDSA-Sig-Value defined below. ECDSA-Sig-Value ::= SEQUENCE { r INTEGER, s INTEGER }
Table 16. Intermediate Card Verifiable Certificate Format
Tag Tag Tag Length Name Value 0x7F21 Card Verifiable Certificate 0x5F29 1 Credential Profile Identifier 0x80
0x42 8 Issuer Identification Number The leftmost 8 bytes of the subjectKeyIdentifier in the content signing certificate needed to verify the signature on the Intermediate CVC. 0x5F20 8 Subject Identifier The leftmost 8 bytes of the SHA-1 hash of the Public Key object. 0x7F49 Variable PublicKey Data Object 0x06 Variable Algorithm OID Possible values are: 0x2A8648CE3D030107 for ECDH (Curve P-256) or 0x2B81040022 for ECDH (Curve P-384) 0x86 Variable Public Key object Coded as follows: 04 || X || Y, where X and Y Tag Tag Tag Length Name Value are the coordinates of the point on the curve. See the “Value” column of Table 13 . 0x5F4C 1 Role Identifier 0x12 for card-application root CVC 0x5F37 Variable DigitalSignature object DigitalSignature ::= SEQUENCE { signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING } AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } algorithm is 1.2.840.113549.1.1.11 for RSA with SHA-256 and PKCS #1 v1.5 padding. The parameters field shall be NULL.
The signature of the Intermediate CVC (DigitalSignature object) is calculated over the concatenation of the TLV encoded Credential Profile Identifier, Issuer Identification Number, Subject Identifier, PublicKey Data Object, and Role Identifier, i.e., { '5F29' '01' '80' } || { '42' '08' IIN } || { '5F20' '08' SI } || { '7F49' L1 { { '06' L2 OID } { '86' L3 '04' X Y } } } { '5F4C' '01' '12' }. Before signing the CVC the signer shall perform partial public-key validation [SP800-56A , Section 5.6.2.3.2] for the public key that will be placed in the Public Key object and shall verify that the subject is in possession of the corresponding private key (see [SP800-56A , Section 5.6.2.2.3.2] and [SP800-57, Section 8.1.5.1.1.2] for discussions of methods to obtain assurance of private-key possession).