Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Interfaces for Personal Identity Verification (Working Draft)

Part 1 – PIV Card Application Namespace, Data Model, and Representation

Authors
Affiliations
National Institute of Standards and Technology
National Institute of Standards and Technology
National Institute of Standards and Technology
National Institute of Standards and Technology
Electrosoft Services Inc.

Abstract

FIPS 201 defines the requirements and characteristics of government-wide interoperable identity credentials. It specifies that these identity credentials must be stored on a smart card and that additional common identity credentials, known as derived PIV credentials, may be issued by a federal department or agency and used when a PIV Card is not practical. This document contains the technical specifications to interface with the smart card to retrieve and use PIV identity credentials. The specifications reflect the design goals of interoperability and PIV Card functions. The goals are addressed by specifying a PIV data model, card edge interface, and application programming interface. Moreover, this document enumerates requirements for the options and branches in international integrated circuit card standards. The specifications go further by constraining interpretations of the normative standards to ease implementation, facilitate interoperability, and ensure performance in a manner tailored for PIV applications.

Keywords:authenticationFIPS 201identity credentiallogical access controlon-card biometric comparisonPersonal Identity Verificationphysical access controlsmart cardssecure messaging

1Introduction

Homeland Security Presidential Directive-12 (HSPD-12) called for the adoption of a common identification standard to govern the interoperable use of identity credentials to allow physical and logical access to federally controlled facilities and information systems. In response, Federal Information Processing Standard (FIPS) 201, Personal Identity Verification (PIV) of Federal Employees and Contractors 2, was developed to define reliable, government-wide identity credentials for use in applications such as access to federally controlled facilities and information systems. FIPS 201 supports multiple types of authenticators, including authenticators on smart cards (also known as PIV Cards) and derived PIV credential authenticators in various other form factors. This publication contains technical specifications to interface with PIV Cards to retrieve and use identity credentials. Other specifications, such as NIST Special Publication (SP) 800-157r1 (Revision 1), contain procedures and life cycle activities to issue, maintain, and use derived PIV credentials.

1.1Purpose

FIPS 201 defines processes for binding identities to authenticators, such as the PIV Card and derived PIV credentials used in the federal PIV system. SP 800-73-5 contains the technical specifications to interface with the PIV Card to retrieve and use the identity credentials. The specifications reflect the design goals of interoperability and PIV Card functions. The goals are addressed by specifying a PIV data model, card edge interface, and application programming interface. Moreover, this document enumerates requirements for the options and branches in international integrated circuit card (ICC) standards 34567. The specifications go further by constraining interpretations of the normative standards to ease implementation, facilitate interoperability, and ensure performance in a manner tailored for PIV applications.

1.2Scope

SP 800-73-5 specifies the PIV data model, application programming interface (API), and card interface requirements necessary to comply with the use cases, as defined in Section 6 of FIPS 201 and further described in this document. Interoperability is defined as the use of PIV identity credentials such that client-application programs, compliant card applications, and compliant ICCs CAN be used interchangeably by all information processing systems across federal agencies. SP 800-73-5 defines the PIV data elements’ identifiers, structure, and format, as well as the client API and card command interface for use with the PIV Card.

This document -- SP 800-73-5, Interfaces for Personal Identity Verification: Part 1 - PIV Card Application Namespace, Data Model, and Representation -- is a companion document to FIPS 201 and specifies the PIV Card Application Namespace, the PIV Data Model, and its logical representation on the PIV Card.

1.3Effective Date

These recommendations become effective upon final publication. New optional PIV Card features and deprecated PIV card features shall be phased in as part of new card stock acquisitions by federal department and agencies.

FIPS 201 compliance of PIV components and subsystems is provided in accordance with OMB through products and services from the U.S. General Services Administration’s (GSA) Interoperability Test Program and Approved Products and Services List.

1.4Audience and Assumptions

This document is intended for federal agencies and implementers of PIV systems. Readers are assumed to have a working knowledge of smart card standards and applications.

1.5Document Overview and Structure

All sections in this document are normative (i.e., mandatory for compliance) unless specified as informative (i.e., non-mandatory) and are structured as follows:

2PIV Card Application Namespaces

2.1Namespaces of the PIV Card Application

Names used on the PIV interfaces are drawn from three namespaces managed by NIST:

  1. Proprietary Identifier eXtension (PIX) of the NIST Registered Application Provider IDentifier (RID)

  2. ASN.1 object identifiers (OIDs) in the personal identity verification subset of the OIDs managed by NIST

  3. Basic Encoding Rules -- Cryptographic Algorithms and Key Sizes for PIV Tag Length Value (BER-TLV) tags of the NIST PIV coexistent tag allocation scheme

All unspecified names in these managed namespaces are reserved for future use.

All interindustry tags defined in ISO/IEC 7816, Information Technology -- Identification Cards -- Integrated Circuit(s) Card with Contacts 3, and used in the NIST coexistent tag allocation scheme without redefinition have the same meaning as they have in 3.

All unspecified values in the following identifier and value namespaces are reserved for future use:

2.2PIV Card Application AID

The Application IDentifier (AID) of the Personal Identity Verification Card Application (PIV Card Application) SHALL be:

A0 00 00 03 08 00 00 10 00 01 00

The AID of the PIV Card Application consists of the NIST RID A0 00 00 03 08 followed by the application portion of the NIST PIX indicating the PIV Card Application (00 00 10 00) and then the version portion of the NIST PIX 01 00 for the first version of the PIV Card Application. All other PIX sequences on the NIST RID are reserved for future use.

The PIV Card Application CAN be selected as the current application by providing the full AID as listed above or by providing the right-truncated version (i.e., without the two-byte version), as follows:

A0 00 00 03 08 00 00 10 00

3PIV Data Model Elements

This section describes the data elements for the personal identity verification data model.

A PIV Card Application SHALL contain seven mandatory interoperable data objects, two conditionally mandatory data objects, and MAY contain 27 optional data objects. The seven mandatory data objects for interoperable use are:

  1. Card Capability Container

  2. Card Holder Unique Identifier

  3. X.509 Certificate for PIV Authentication

  4. X.509 Certificate for Card Authentication

  5. Cardholder Fingerprints

  6. Cardholder Facial Image

  7. Security Object

The two data objects that are mandatory if the cardholder has a government-issued email account at the time of credential issuance are:

  1. X.509 Certificate for Digital Signature

  2. X.509 Certificate for Key Management

The 27 optional data objects are:

3.1Mandatory Data Elements

This section describes the seven mandatory data objects for interagency interoperable use.

3.1.1Card Capability Container

The Card Capability Container (CCC) is a mandatory data object whose purpose is to facilitate the compatibility of Government Smart Card Interoperability Specification (GSC-IS) applications with PIV Cards.

The CCC supports minimum capability for retrieval of the data model and, optionally, the application information specified in 8. The data model of the PIV Card Application SHALL be identified by data model number 0x10. Deployed applications use 0x00 through 0x04. This enables the GSC-IS application domain to correctly identify a new data model namespace and structure as defined in this document.

For PIV Card Applications, the PIV data objects exist in a namespace tightly managed by NIST, and a CCC discovery mechanism is not needed by client applications that are not based on GSC-IS. Therefore, all mandatory data elements of the CCC except for the data model number MAY optionally have a length value set to zero bytes (i.e., no value field will be supplied). Unused optional data elements SHALL be absent. Other than the data model number, the contents of the CCC data elements are out of scope for this specification.

The Security Object enforces integrity of the CCC according to the issuer.

3.1.2Card Holder Unique Identifier (CHUID)

The Card Holder Unique Identifier (CHUID) data object is defined in accordance with the Technical Implementation Guidance: Smart Card Enabled Physical Access Control Systems (TIG SCEPACS) 9. For this specification, the CHUID is common between the contact and contactless interfaces. For dual chip implementations, the CHUID is copied in its entirety between the two chips.

In addition to the requirements specified in TIG SCEPACS, the CHUID on the PIV Card SHALL meet the following requirements:

3.1.2.1Asymmetric Signature Field in CHUID

FIPS 201 requires inclusion of the asymmetric signature field in the CHUID data object. The asymmetric signature data element of the CHUID SHALL be encoded as a Cryptographic Message Syntax (CMS) external digital signature, as defined in RFC 5652 11.

The issuer asymmetric signature field is implemented as a SignedData type, as specified in 11, and SHALL include the following information:

The public key required to verify the digital signature SHALL be provided in the certificates field of the CMS external digital signature in a content signing certificate, which SHALL be issued under the id-fpki-common-pivcontentSigning policy of 13. The content signing certificate SHALL also include an extended key usage (extKeyUsage) extension asserting id-PIV-contentsigning. The content signing certificate SHALL NOT expire before the expiration of the card authentication certificate.

3.1.3X.509 Certificate for PIV Authentication

The X.509 Certificate for PIV Authentication and its associated private key, as defined in FIPS 201, is used to authenticate the card and the cardholder. The PIV Authentication private key and its corresponding certificate are only available over the contact interface or virtual contact interface (VCI). The read access control rule for the X.509 Certificate for PIV Authentication is “Always,” meaning that the certificate CAN be read without access control restrictions. The Public Key Infrastructure (PKI) cryptographic function (see Table 5) is protected with a Personal Identification Number (PIN) or on-card biometric comparison (OCC) access rule. In other words, private key operations using the PIV Authentication key require the PIN or OCC data to be submitted and verified, but a successful submission enables multiple private key operations without additional cardholder consent.

3.1.4X.509 Certificate for Card Authentication

FIPS 201 specifies the mandatory asymmetric Card Authentication key (CAK) as a private key that MAY be used to support physical access applications. The read access control rule of the corresponding X.509 Certificate for Card Authentication is “Always,” meaning that the certificate CAN be read without access control restrictions. The PKI cryptographic function (see Table 5) is under an “Always” access rule so private key operations CAN performed without access control restrictions. The asymmetric CAK is generated by the PIV Card Issuer in accordance with FIPS 140-2 requirements for key generation. An asymmetric CAK MAY be generated on-card or off-card. If an asymmetric CAK is generated off-card, the result of each key generation SHALL be injected into at most one PIV Card.

3.1.5Cardholder Fingerprints

The fingerprint data object specifies the primary and secondary fingerprints for off-card matching in accordance with FIPS 201 and NIST SP 800-76 14.

3.1.6Cardholder Facial Image

The facial image data object is used for automated facial authentication in attended and unattended modes (e.g., BIO-A or BIO), as well as automated facial authentication for PIV reissuance and verification data reset in accordance with FIPS 201-3. The facial image data object MAY also be used for visual authentication by a guard (VIS). However, this authentication mechanism has been deprecated in accordance with FIPS 201-3. The facial image data object SHALL be encoded as specified in NIST SP 800-76 14.

3.1.7Security Object

The Security Object is in accordance with Part 10 of Machine Readable Travel Documents (MRTD) 15. Tag 0xBA is used to map the ContainerIDs in the PIV data model to the 16 Data Groups specified in the MRTD. The mapping enables the Security Object to be fully compliant for future activities with identity documents.

The DG-number-to-Container-ID mapping object TLV in tag 0xBA encapsulates a series of three-byte sequences -- one for each PIV data object included in the Security Object. The first byte is the Data Group (DG) number, and the second and third bytes are the most and least significant bytes (respectively) of the Container ID value. The DG number assignment is arbitrary. However, the same number assignment applies to the DataGroupNumber in the DataGroupHash. This will ensure that the ContainerIDs in the mapping object refer to the correct hash values in the Security Object (0xBB).

The 0xBB Security Object is formatted according to 15. The Logical Data Structure (LDS) Security Object itself must be in ASN.1 DER format, formatted as specified in 15, Section 4.6.2.3. This structure is then inserted into the encapContentInfo field of the Cryptographic Message Syntax (CMS) object specified in 15, Section 4.6.2.2.

The card issuer’s content signing digital signature key used to sign the CHUID SHALL also be used to sign the Security Object. The signature field of the Security Object, tag 0xBB, SHALL omit the issuer’s content signing certificate since it is included in the CHUID. At a minimum, unsigned data objects SHALL be included in the Security Object if present, such as the Printed Information data object. For maximum protection against credential splicing attacks (credential substitution), it is recommended, however, that all PIV data objects be included in the Security Object except for the PIV X.509 certificates and the Secure Messaging Certificate Signer data object.

3.2Conditional Data Elements

The following two data elements are mandatory if the cardholder has a government-issued email account at the time of credential issuance. These two data elements, when implemented, SHALL conform to the specifications provided in this document.

3.2.1X.509 Certificate for Digital Signature

The X.509 Certificate for Digital Signature and its associated private key, as defined in FIPS 201, support the use of digital signatures for the purpose of document signing. The digital signature private key and its corresponding certificate are only available over the contact interface or VCI. The read access control rule for the X.509 Certificate for Digital Signing is “Always,” meaning that the certificate CAN be read without access control restrictions. The PKI cryptographic function (see Table 5) is protected with a “PIN Always” or “OCC Always” access rule. In other words, the PIN or OCC data must be submitted and verified every time immediately before a digital signature key operation. This ensures cardholder participation every time the private key is used for digital signature generation.[2]

3.2.2X.509 Certificate for Key Management

The X.509 Certificate for Key Management and its associated private key, as defined in FIPS 201, support the use of encryption for the purpose of confidentiality. The key management private key and its corresponding certificate are only available over the contact interface or VCI. This key pair MAY be escrowed by the issuer for key recovery purposes. The read access control rule for the X.509 certificate is “Always,” meaning that the certificate CAN be read without access control restrictions. The PKI cryptographic function (see Table 5) is protected with a “PIN” or “OCC” access rule. In other words, once the PIN or OCC data is submitted and verified, subsequent key management key operations CAN be performed without requiring the PIN or OCC data again. This enables multiple private key operations without additional cardholder consent.

3.3Optional Data Elements

When implemented, the 27 optional data elements of FIPS 201 SHALL conform to the specifications provided in this document.

3.3.1Printed Information

All FIPS 201 mandatory information printed on the card is duplicated on the chip in that data object. The printed information data object SHALL NOT be modified post-issuance. The Security Object enforces integrity of this information according to the issuer. This provides specific protection that the card information must match the printed information, mitigating alteration risks on the printed media.

3.3.2Discovery Object

If implemented, the Discovery Object is the 0x7E interindustry ISO/IEC 7816-6 template that nests interindustry data objects. For the Discovery Object, the 0x7E template nests two mandatory BER-TLV structured interindustry data elements: 1) tag 0x4F contains the AID of the PIV Card Application, and 2) tag 0x5F2F lists the PIN Usage Policy.

Tag 0x4F encodes the PIV Card Application AID as follows:

4F 0B A0 00 00 03 08 00 00 10 00 01 00

Tag 0x5F2F encodes the PIN Usage Policy in two bytes:

Table 1 lists the acceptable values for the first byte of the PIN Usage Policy and summarizes the meaning of each value.

Note: If Bit 6 of the first byte of the PIN Usage Policy is set to zero, then the second byte is RFU and SHALL be set to 0x00.

PIV Card Applications that implement the VCI or for which the Global PIN or OCC satisfy the PIV ACRs for PIV data object access and command execution SHALL implement the Discovery Object.

Table 1:First byte of PIN Usage Policy discovery

ValuePIV Card Application PINGlobal PINOCCVCIPairing Code Required
0x40x
0x48xxx
0x4Cxx
0x50xx
0x58xxxx
0x5Cxxx
0x60xx
0x68xxxx
0x6Cxxx
0x70xxx
0x78xxxxx
0x7Cxxxx

The encoding of the 0x7E Discovery Object is as follows:

{7E 12 {4F 0B A0 00 00 03 08 00 00 10 00 01 00} {5F 2F 02 xx yy}},

where xx and yy encode the first and second byte of the PIN Usage Policy, as described in this section.

The Security Object enforces integrity of the Discovery Object according to the issuer.

3.3.3Key History Object

Up to 20 retired key management private keys MAY be stored in the PIV Card Application. The Key History object provides information about the retired key management private keys that are present within the PIV Card Application.[4] Retired key management private keys are private keys that correspond to X.509 Certificates for Key Management that have expired, have been revoked, or have otherwise been superseded. The Key History object SHALL be present in the PIV Card Application if the PIV Card Application contains any retired key management private keys but MAY be present even if no such keys are present in the PIV Card Application. For each retired key management private key in the PIV Card Application, the corresponding certificate MAY either be present within the PIV Card Application or MAY only be available from an online repository.

The Key History object includes two mandatory fields, keysWithOnCardCerts and keysWithOffCardCerts, and one optional field, offCardCertURL. The keysWithOnCardCerts field indicates the number of retired private keys within the PIV Card Application for which the corresponding certificates are also stored within the PIV Card Application. The keysWithOffCardCerts field indicates the number of retired private keys within the PIV Card Application for which the corresponding certificates are not stored within the PIV Card Application. The numeric values in both keysWithOnCardCerts and keysWithOffCardCerts are represented as unsigned binary integers. The offCardCertURL field contains a URL that points to a file containing the certificates that corresponding to all of the retired private keys within the PIV Card Application, including those for which the corresponding certificate is also stored within the PIV Card Application. The offCardCertURL field SHALL be present if the keysWithOffCardCerts value is greater than zero and SHALL be absent if the values of both keysWithOnCardCerts and keysWithOffCardCerts are zero. The offCardCertURL field MAY be present if the keysWithOffCardCerts value is zero but the keysWithOnCardCerts value is greater than zero.

The file that is pointed to by the offCardCertURL field SHALL contain the DER encoding of the following data structure:

 OffCardKeyHistoryFile ::= SEQUENCE SIZE (1..20) OF SEQUENCE {
      keyReference             OCTET STRING (SIZE(1))
      cert                     Certificate
}

where keyReference is the key reference for the private key on the card, and cert is the corresponding X.509 certificate.[5] The offCardCertURL field SHALL have the following format:

http:// <DNS name> / <ASCII-HEX encoded SHA-256 hash of OffCardKeyHistoryFile>

The private keys for which the corresponding certificates are stored within the PIV Card Application SHALL be assigned to the lowest numbered key references reserved for retired key management private keys. For example, if keysWithOnCardCerts is 5, then the corresponding private keys SHALL be assigned to key references 82, 83, 84, 85, and 86.

The private keys for which the corresponding certificates are not stored within the PIV Card Application SHALL be assigned to the highest-numbered key references reserved for retired key management private keys. For example, if keysWithOffCardCerts is 3, then the corresponding private keys SHALL be assigned to key references 93, 94, and 95.

Private keys do not have to be stored within the PIV Card Application in the order of their age. However, if the certificates that corresponding to only some of the retired key management private keys are available within the PIV Card Application, then the certificates that are stored in the PIV Card Application SHALL be the ones that were most recently issued.

The Key History object is only available over the contact interface and VCI. The read access control rule for the Key History object is Always, meaning that it CAN be read without access control restrictions.

The Security Object enforces integrity of the Key History object according to the issuer.

3.3.4Retired X.509 Certificates for Key Management

These objects hold the X.509 Certificates for Key Management that corresponding to retired key management private keys, as described in Section 3.3.3. Retired key management private keys and their corresponding certificates are only available over the contact interface or VCI. The read access control rule for these certificates is “Always,” meaning that the certificates CAN be read without access control restrictions. The PKI cryptographic function (see Table 4) for all of the retired key management private keys is protected with a “PIN” or “OCC” access rule. In other words, once the PIN or OCC data is submitted and verified, subsequent key management key operations CAN be performed with any of the retired key management private keys without requiring the PIN or OCC data again. This enables multiple private key operations without additional cardholder consent.

3.3.5Cardholder Iris Images

The iris images data object specifies compact images of the cardholder’s irises. The images are suitable for use in iris recognition systems for automated identity verification. The iris images data object SHALL be encoded as specified in NIST SP 800-76 14.

3.3.6Biometric Information Templates Group Template

The Biometric Information Templates (BIT) Group data object encodes the configuration information of the OCC data. The encoding of the BIT Group Template SHALL be as specified in Table 7 of NIST SP 800-76 14. When OCC satisfies the PIV ACRs for PIV data objects access and command execution, both the Discovery Object and the BIT Group Template data object SHALL be present, and bit 5 of the first byte of the PIN Usage Policy SHALL be set. The BIT Group Template MAY be present when OCC does not satisfy the PIV ACRs for PIV data objects access but, if present, SHALL contain no BITs.[6] The Security Object enforces integrity of the BIT Group Template data object according to the issuer.

3.3.7Secure Messaging Certificate Signer

The Secure Messaging Certificate Signer data object, which SHALL be present if the PIV Card supports secure messaging for non-card management operations, contains the certificates needed to verify the signature on the secure messaging card verifiable certificate (CVC), as specified in SP 800-73-5 Part 2, Sec. 4.1.5.

The public key required to verify the digital signature of the secure messaging CVC is an ECC key. It SHALL be provided in either an X.509 Certificate for Content Signing or an Intermediate CVC. If the public key required to verify the digital signature of the secure messaging CVC is provided in an Intermediate CVC, then the format of the Intermediate CVC SHALL be as specified in SP 800-73-5 Part 2, Sec. 4.1.5, and the public key required to verify the digital signature of the Intermediate CVC SHALL be provided in an X.509 Certificate for Content Signing.

The X.509 Certificate for Content Signing SHALL be a digital signature certificate issued under the id-fpki-common-piv-contentSigning policy of 13. The X.509 Certificate for Content Signing SHALL also include an extended key usage (extKeyUsage) extension asserting id-PIV-content-signing. Additional descriptions for the PIV object identifiers are provided in Appendix B of FIPS 201-3. The X.509 Certificate for Content Signing needed to verify the digital signature of a secure messaging CVC or Intermediate CVC of a valid PIV Card[7] SHALL NOT be expired.

Note that the option to include an Intermediate CVC is included as a temporary measure to accommodate the use of certification authorities that do not support the issuance of X.509 certificates that contain elliptic curve subject public keys. A future version of SP 800-73 is expected to deprecate the Intermediate CVC data element.

3.3.8Pairing Code Reference Data Container

The Pairing Code Reference Data Container, which SHALL be present if the PIV Card supports the virtual contact interface, includes a copy of the PIV Card’s pairing code (see Section 5.1.3). The Security Object enforces the integrity of the Pairing Code Reference Data Container according to the issuer.

3.4Inclusion of Universally Unique Identifiers (UUIDs)

This specification provides support for two UUIDs on a PIV Card. The Card UUID is unique for each card, and it SHALL be present on all PIV Cards. The Cardholder UUID is a persistent identifier for the cardholder, and it is optional to implement. The requirements for these UUIDs are provided in the following subsections.

3.4.1Card UUID

FIPS 201 requires PIV Cards to include a Card UUID. The Card UUID SHALL be included on PIV Cards as follows:

  1. The value of the GUID data element of the CHUID data object SHALL be a 16-byte binary representation of a valid UUID 16. The UUID SHALL be version 1, 4, or 5, as specified in RFC 4122, Section 4.1.3 16.

  2. The same 16-byte binary representation of the UUID value SHALL be present as the value of an entryUUID attribute, as defined in RFC 4122 16, in any CMS-signed data object that is required to contain a pivFASC-N attribute on a PIV Card (i.e., in the mandatory cardholder fingerprint template and facial image data objects as well as in the optional cardholder iris images data object when present.

  3. If the PIV Card supports secure messaging and/or authentication using the secure messaging key, then the same 16-byte binary representation of the UUID value SHALL be used as the Subject Identifier in the secure messaging CVC, as specified in SP 800-73-5 Part 2, Sec. 4.1.5.

  4. The string representation of the same UUID value SHALL be present in the X.509 Certificate for PIV Authentication and the X.509 Certificate for Card Authentication in the subjectAltName extension encoded as a URI, as specified by RFC 4122, Section 3 16.

3.4.2Cardholder UUID

Optionally, a Cardholder UUID value MAY be included in the SAN extension of the X.509 certificate for PIV Authentication. The Cardholder UUID value SHALL be a 16-byte binary representation of a valid UUID encoded as a Uniform Resource Name (URN) and version 4, as specified in RFC 4122, Section 4.1.3 16. The identifier should be limited in scope to identify a PIV credential holder to their PIV credentials issued during PIV eligibility. The same Cardholder UUID value MAY optionally be present in the CHUID data object, as defined in Sec. 3.1.2.

3.5Data Object Containers and Associated Access Rules and Interface Modes

Table 2 defines a high-level view of the data model. Each on-card storage container is labeled as mandatory (M), optional (O), or conditional (C). The conditional data objects are the digital signature key and the key management key, which are mandatory if the cardholder has a government-issued email account at the time of credential issuance. This data model is designed to enable and support dual interface cards. For dual chip implementations for any container that can be accessed over both the contact interface and the contactless interface (including the virtual contact interface), the data object SHALL be copied into the corresponding containers on both chips.[8][9]

Table 2:Data Model Containers

Container NameContainerID.ContactContactlessM/O/C
Card Capability Container0xDB00AlwaysVCIM
Card Holder Unique Identifier0x3000AlwaysAlwaysM
X.509 Cert. for PIV Authentication0x0101AlwaysVCIM
Cardholder Fingerprints0x6010PINVCI and PINM
Security Object0x9000AlwaysVCIM
Cardholder Facial Image0x6030PINVCI and PINM
X.509 Cert. for Card Authentication0x0500AlwaysAlwaysM
X.509 Cert. for Digital Signature0x0100AlwaysVCIC
X.509 Cert. for Key Mgmt.0x0102AlwaysVCIC
Printed Information0x3001PIN or OCCVCI and (PIN or OCC)O
Discovery Object0x6050AlwaysAlwaysO
Key History Object0x6060AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 10x1001AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 20x1002AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 30x1003AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 40x1004AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 50x1005AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 60x1006AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 70x1007AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 80x1008AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 90x1009AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 100x100AAlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 110x100BAlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 120x100CAlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 130x100DAlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 140x100EAlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 150x100FAlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 160x1010AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 170x1011AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 180x1012AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 190x1013AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 200x1014AlwaysVCIO
Cardholder Iris Images0x1015PINVCI and PINO
Biometric Information Templates Group Template0x1016AlwaysAlwaysO
Secure Messaging Cert. Signer0x1017AlwaysAlwaysO
Pairing Code Reference Data Container0x1018PIN or OCCVCI and (PIN or OCC)O

Appendix A provides a detailed spreadsheet for the data model. ContainerIDs and tags within the containers for each data object are defined by this data model in accordance with SP 800-73-5 naming conventions.

4PIV Data Objects Representation

4.1Data Objects Definition

A data object is an item of information seen on the card command interface that has a specified name, a description of logical content, a format, and a coding. Each data object has a globally unique name called its object identifier (OID), as defined in ISO/IEC 8824-2:2002 17.

A data object whose data content is encoded as a BER-TLV data structure, as in ISO/IEC 8825-1:2002 18, is called a BER-TLV data object.

4.1.1Data Object Content

The content of a data object is the sequence of bytes that are said to be contained in or to be the value of the data object. The number of bytes in this byte sequence is referred to as the length of the data content as well as the size of the data object. The first byte in the sequence is regarded as being at byte position or offset zero in the content of the data object.

The data content of a BER-TLV data object MAY consist of other BER-TLV data objects. In this case, the tag of the data object indicates that the data object is a constructed data object. A BER-TLV data object that is not a constructed data object is called a primitive data object.

The PIV data objects are BER-TLV objects encoded as per 18. However, tag values of the PIV data object’s inner tag assignments do not conform to BER-TLV requirements[10] due to the need to accommodate legacy tags inherited from 8.

Before the card is issued, data objects that are created but not used SHALL be set to zero-length value.

4.2OIDs and Tags of PIV Card Application Data Objects

Table 3 lists the ASN.1 object identifiers and BER-TLV tags of the thirty-six PIV Card Application data objects. For the purpose of constructing PIV Card Application data object names in the CardApplicationURL in the CCC of the PIV Card Application, the NIST RID (A0 00 00 03 08) SHALL be used and the card application type SHALL be set to 00.

4.3Object Identifiers

Each of the data objects in the PIV Card Application has been provided with a BER-TLV tag and an ASN.1 OID from the NIST personal identity verification arc. These object identifier assignments are given in Table 3.

A data object SHALL be identified on the PIV client-application programming interface using its OID. An object identifier on the PIV client-application programming interface SHALL be a dot-delimited string of the integer components of the OID. For example, the representation of the OID of the CHUID on the PIV client-application programming interface is 2.16.840.1.101.3.7.2.48.0.

A data object SHALL be identified on the PIV Card Application card command interface using its BER-TLV tag. For example, the CHUID is identified on the card command interface to the PIV Card Application by the three-byte identifier 5FC102.

Table 2 lists the ACRs of the thirty-six PIV Card Application data objects.

Table 3:Object identifiers of the PIV data objects for interoperable use

Data Object for Interoperable UseASN.1 OIDBER-TLV TagM/O/C
Card Capability Container2.16.840.1.101.3.7.1.219.05FC107M
Card Holder Unique Identifier2.16.840.1.101.3.7.2.48.05FC102M
X.509 Cert. for PIV Authentication2.16.840.1.101.3.7.2.1.15FC105M
Cardholder Fingerprints2.16.840.1.101.3.7.2.96.165FC103M
Security Object2.16.840.1.101.3.7.2.144.05FC106M
Cardholder Facial Image2.16.840.1.101.3.7.2.96.485FC108M
X.509 Cert. for Card Authentication2.16.840.1.101.3.7.2.5.05FC101M
X.509 Cert. for Digital Signature2.16.840.1.101.3.7.2.1.05FC10AC
X.509 Cert. for Key Mgmt.2.16.840.1.101.3.7.2.1.25FC10BC
Printed Information2.16.840.1.101.3.7.2.48.15FC109O
Discovery Object2.16.840.1.101.3.7.2.96.807EO
Key History Object2.16.840.1.101.3.7.2.96.965FC10CO
Retired X.509 Cert. for Key Mgmt. 12.16.840.1.101.3.7.2.16.15FC10DO
Retired X.509 Cert. for Key Mgmt. 22.16.840.1.101.3.7.2.16.25FC10EO
Retired X.509 Cert. for Key Mgmt. 32.16.840.1.101.3.7.2.16.35FC10FO
Retired X.509 Cert. for Key Mgmt. 42.16.840.1.101.3.7.2.16.45FC110O
Retired X.509 Cert. for Key Mgmt. 52.16.840.1.101.3.7.2.16.55FC111O
Retired X.509 Cert. for Key Mgmt. 62.16.840.1.101.3.7.2.16.65FC112O
Retired X.509 Cert. for Key Mgmt. 72.16.840.1.101.3.7.2.16.75FC113O
Retired X.509 Cert. for Key Mgmt. 82.16.840.1.101.3.7.2.16.85FC114O
Retired X.509 Cert. for Key Mgmt. 92.16.840.1.101.3.7.2.16.95FC115O
Retired X.509 Cert. for Key Mgmt. 102.16.840.1.101.3.7.2.16.105FC116O
Retired X.509 Cert. for Key Mgmt. 112.16.840.1.101.3.7.2.16.115FC117O
Retired X.509 Cert. for Key Mgmt. 122.16.840.1.101.3.7.2.16.125FC118O
Retired X.509 Cert. for Key Mgmt. 132.16.840.1.101.3.7.2.16.135FC119O
Retired X.509 Cert. for Key Mgmt. 142.16.840.1.101.3.7.2.16.145FC11AO
Retired X.509 Cert. for Key Mgmt. 152.16.840.1.101.3.7.2.16.155FC11BO
Retired X.509 Cert. for Key Mgmt. 162.16.840.1.101.3.7.2.16.165FC11CO
Retired X.509 Cert. for Key Mgmt. 172.16.840.1.101.3.7.2.16.175FC11DO
Retired X.509 Cert. for Key Mgmt. 182.16.840.1.101.3.7.2.16.185FC11EO
Retired X.509 Cert. for Key Mgmt. 192.16.840.1.101.3.7.2.16.195FC11FO
Retired X.509 Cert. for Key Mgmt. 202.16.840.1.101.3.7.2.16.205FC120O
Cardholder Iris Images2.16.840.1.101.3.7.2.16.215FC121O
BIT Group Template2.16.840.1.101.3.7.2.16.227F61O
Secure Messaging Cert. Signer2.16.840.1.101.3.7.2.16.235FC122O
Pairing Code Reference Data Container2.16.840.1.101.3.7.2.16.245FC123O

5Data Types and Their Representation

This section describes the data types used in the PIV Client Application Programming Interface (SP 800-73-5, Part 3) and PIV Card Command Interface (SP 800-73-5, Part 2). Unless otherwise indicated, the representation SHALL be the same on both interfaces.

The data types are defined in Part 1 rather than in Parts 2 and 3 in order to achieve smart card platform independence from Part 1. Thus, non-government smart card programs can readily adopt the interface specifications in Parts 2 and 3 while customizing Part 1 to their own data model, data types, and namespaces.

5.1Key References

A key reference is a 1-byte reference data identifier that specifies a cryptographic key or PIN according to its PIV Key Type. Table 4, Table 5, and SP 800-78, Table 8 12, define the key reference values that SHALL be used on the PIV interfaces[11]. For example, the key reference values are used in a cryptographic protocol, such as an authentication or a signing protocol. Key references are only assigned to private and secret (symmetric) keys, PINs, PIN Unblocking Keys (PUKs), OCC, and the pairing code. All other PIV Card Application key reference values are reserved for future use.

In accordance with FIPS 201, no more than 10 consecutive activation retries for each of the activation methods (i.e., PIN and OCC attempts) SHALL be permitted. Issuers MAY further restrict the maximum retry limit to a lower value, as indicated in Table 4 below.[12]

Table 4:PIV Card Application authentication data references

Key Reference ValuePIV Reference Data TypeAuthenticable EntityContactContactlessRetry Counter ValueNumber of Unblocks
00Global PINCardholderAlwaysVCI10 or lowerPlatform Specific
80PIV Card Application PINCardholderAlwaysVCI10 or lowerIssuer Specific
81PIN Unblocking KeyPIV Card Application AdministratorAlwaysNeverIssuer SpecificIssuer Specific
96Primary Finger OCCCardholderAlwaysSM10 or lowerIssuer Specific
97Secondary Finger OCCCardholderAlwaysSM10 or lowerIssuer Specific
98Pairing CodeCardholderAlwaysSMIssuer SpecificIssuer Specific

Table 5:PIV Card Application key references

Key Reference Value (i.e., Key ID)

PIV Key Type

Administrator

Contact

Contactless

04

PIV Secure Messaging Key

PIV Card Application Administrator

Always

Always

9A

PIV Authentication Key

PIV Card Application Administrator

PIN or OCC

VCI and (PIN or OCC)

9B

PIV Card Application Administration Key

PIV Card Application Administrator

Always

Never

9C

Digital Signature Key

PIV Card Application Administrator

PIN Always or OCC Always

VCI and (PIN Always or OCC Always)

9D

Key Management Key

PIV Card Application Administrator

PIN or OCC

VCI and (PIN or OCC)

9E

Card Authentication Key

PIV Card Application Administrator

Always

Always

82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F, 90, 91, 92, 93, 94, 95

Retired Key Management Key

PIV Card Application Administrator

PIN or OCC

VCI and (PIN or OCC)

Secure messaging (SM) is defined in Section 5.4, and VCI is defined in Section 5.5. Table 2 of SP 800-73-5 Part 2 specifies the security conditions for each command.

When represented as a byte, the key reference occupies bits b8 and b5-b1, while b7 and b6 SHALL be set to 0. If b8 is 0, then the key reference names global reference data. If b8 is 1, then the key reference names application-specific reference data.

The access control rules for PIV data object access SHALL reference the PIV Card Application PIN and MAY optionally reference the cardholder Global PIN or OCC data. If the Global PIN is used by the PIV Card Application, then the Global PIN format SHALL follow the PIV Card Application PIN format defined in Sec. 2.4.3 of SP 800-73-5 Part 2.

PIV Card Applications with the Discovery Object and Bit 6 of the first byte of the PIN Usage Policy value set to one, as per Section 3.3.2, SHALL reference the PIV Card Application PIN and the cardholder Global PIN in the access control rules for PIV data object access. Additionally, the PIV Card Application card commands CAN change the status of the Global PIN and MAY change its reference data while the PIV Card Application is the currently selected application.

The rest of the document uses “PIN” to mean either the PIV Card Application PIN or the Global PIN.

5.1.1OCC Data

This document does not specify how the biometric reference data and comparison parameters are stored internally on the card. Moreover, the export of the biometric reference data SHALL NOT be allowed. Configuration data related to the biometric reference data MAY be read from the tag 0x7F61 BIT Group template data object (see Section 3.3.6). Configuration data is defined in Table 7 of NIST SP800-76 14. The fingerprints used for OCC MAY be taken from the full set of fingerprints collected for PIV background investigations and SHOULD be imaged from fingers not imaged for off-card one-to-one comparison.

5.1.2PIV Secure Messaging Key

If the PIV Card supports secure messaging, the PIV Secure Messaging key SHALL be generated on the PIV Card, and the PIV Card SHALL NOT permit exportation of the PIV Secure Messaging key. The cryptographic operations that use the PIV Secure Messaging key SHALL be available through the contact and contactless interfaces of the PIV Card. The PKI cryptographic function (see Table 5) is under an “Always” access rule, and, thus private key operations (i.e., use of the key to establish session keys for secure messaging) CAN be performed without access control restrictions.

The PIV Card SHALL store a corresponding secure messaging CVC to support validation of the public key by the relying party. The format for the secure messaging CVC SHALL be as specified in SP 800-73-5 Part 2, Sec. 4.1.5. The public key required to verify the digital signature of the secure messaging CVC SHALL be provided in a certificate in the Secure Messaging Certificate Signer data object, as specified in Section 3.3.7).

5.1.3Pairing Code

If the PIV Card supports the virtual contact interface, then it SHALL implement support for the pairing code. If implemented, the pairing code SHALL consist of eight decimal digits, and it SHALL be generated at random by the PIV Card Issuer. The results of each random pairing code generation SHALL be loaded onto -- at most -- one PIV Card and CANNOT be changed by the cardholder. The pairing code value for a PIV Card SHALL be stored in the Pairing Code Reference Data Container (see Section 3.3.8) on the card and MAY be printed on the back of the card in an agency-specific text area (i.e., Zones 9B or 10B). PIV Card Issuers MAY choose to provide the pairing code value to the cardholder in another manner, such as printing it on a slip of paper rather than printing it on the back of the card.[13]

Unlike the PIV Card Application PIN or the Global PIN, there are no restrictions on the caching of the pairing code by client applications. It is recommended that a client application that needs to communicate with a PIV Card over its virtual contact interface obtain the card’s pairing code during a registration step by asking the cardholder to enter the value or by reading it from the card over the contact interface from the Pairing Code Reference Data Container and then cache the pairing code until the card expires.[14] The client application MAY then connect to the card and establish a virtual contact interface with it whenever the card is within read-range of the client application’s contactless card reader without needing to prompt the cardholder.

5.2PIV Algorithm Identifier

A PIV algorithm identifier is a 1-byte identifier of a cryptographic algorithm. The identifier specifies a cryptographic algorithm and key size. For symmetric cryptographic operations, the algorithm identifier also specifies a mode of operation (i.e., ECB). SP 800-78, Table 9 lists the PIV algorithm identifiers for the cryptographic algorithms that MAY be recognized on the PIV interfaces.

5.3Cryptographic Mechanism Identifiers

Cryptographic mechanism identifiers are defined in Table 6. These identifiers serve as inputs to the GENERATE ASYMMETRIC KEY PAIR card command and the SP 800-73-5 Part 3 pivGenerateKeyPair() client API function call, which initiates the generation and storage of the asymmetric key pair.

Table 6:Cryptographic mechanism identifiers

Cryptographic Mechanism IdentifierDescriptionParameter
05RSA 3072Optional public exponent encoded big-endian
07RSA 2048Optional public exponent encoded big-endian
11ECC: Curve P-256None
14ECC: Curve P-384None

Higher strength keys are advised per SP 800-56 Part 1 starting in 2031. See SP 800-78-5, Tables 9 and 10, which reflect support for higher strength keys for PIV cards and supporting systems, where applicable.

All other cryptographic mechanism identifier values are reserved for future use.

5.4Secure Messaging and Authentication Using a Secure Messaging Key (SM-AUTH)

A PIV Card Application MAY optionally support SM. When secure messaging is established, the PIV Card Application is authenticated to the relying system, and a set of symmetric session keys are established. The symmetric session keys are used to provide confidentiality and integrity protection for the card commands that are sent to the card using secure messaging as well as for the responses from the PIV Card.

If implemented, SM for non-card management operations SHALL only be established using the PIV Secure Messaging key specified in Table 5 and the SM protocol in accordance with the specifications in Sec. 4 of SP 800-73-5 Part 2.

A PIV Card Application may optionally support authentication using the Secure Messaging key (SM-AUTH). When SM-AUTH is supported, the PIV Card and, therefore the cardholder is authenticated to the relying system.

5.5Virtual Contact Interface

The term “virtual contact interface (VCI)” is used in this document as shorthand for a security condition. As described in access control rules in this document and in SP 800-73-5 Part 2, all non-card management operations that are allowed over the contact interface MAY be carried out over the contactless interface if the VCI security condition is satisfied. Support for the VCI is optional.

The VCI security condition supports two different configurations for the establishment of the VCI. In the default (and recommended) configuration, the VCI is only established after both secure messaging has been established and the pairing code has been presented to the card using secure messaging. In the non-default configuration, the VCI is established through secure messaging without any further steps.

The VCI security condition is:

(command is submitted over secure messaging) AND (the Discovery Object is present) AND (Bit 4 of the first byte of the PIN Usage Policy is one) AND ((the security status indicator associated with the pairing code is TRUE) OR (Bit 3 of the first byte of the PIN Usage Policy is one))

PIV Card Applications that support the VCI SHALL support the configuration in which Bit 3 of the first byte of the PIN Usage Policy is set to zero (i.e., the configuration in which submission of the pairing code to the PIV Card Application is required to establish the VCI) and MAY additionally support the configuration in which Bit 3 of the first byte of the PIN Usage Policy is set to one. Card management systems (CMS) SHALL be configured to set Bit 3 of the first byte of the PIN Usage Policy to zero by default whenever the Discovery Object is present.

Requiring that the pairing code be submitted to the PIV Card Application in order to establish the VCI protects the previously contact-restricted X.509 certificates from skimming[15] and also protects PIN-based card activation from being blocked. While it is recommended that the default configuration of CMSs remain unchanged, the configuration of a CMS MAY be changed to set Bit 3 of the first byte of the PIN Usage Policy to one (i.e., to configure PIV Cards to establish VCIs without the submission of a pairing code) if the configuration change is approved by the designated approving authority (DAA) and if compensating controls are implemented to ensure that personally identifiable information (e.g., name, email address, and organization) CANNOT be skimmed from the PIV Card when in close proximity when the card is outside of its protective sleeve.

A DAA’s decision to approve the issuance of PIV Cards that implement the VCI without requiring the pairing code SHALL be based on a risk assessment that weighs the perceived benefit against the risk of unauthorized disclosure of cardholder data exposing previously contact-restricted X.509 certificates to skimming. The previously contact-restricted X.509 certificates include information about the cardholder, such as name and email address. Compensating controls SHALL be captured in the appropriate system security plan.[16] Systems that accept externally issued PIV Cards SHALL be able to accept PIV Cards with either VCI configuration.

5.6Status Words

A status word (SW) is a 2-byte value returned by a card command at the card edge. The first byte of a status word is referred to as SW1, and the second byte of a status word is referred to as SW2.

Recognized values of all SW1-SW2 pairs used as return values on the card command interface and their interpretation are given in Table 7. The descriptions of individual card commands provide additional information for interpreting returned status words.

Table 7:Status words

SW1SW2Meaning
61xxSuccessful execution where SW2 encodes the number of response data bytes still available
6300Verification failed
63CXVerification failed, X indicates the number of further allowed retries or resets
6882Secure messaging not supported
6982Security status not satisfied
6983Authentication method blocked
6987Expected secure messaging data objects are missing
6988Secure messaging data objects are incorrect
6A80Incorrect parameter in command data field
6A81Function not supported
6A82Data object or application not found
6A84Not enough memory
6A86Incorrect parameter in P1 or P2
6A88Referenced data or reference data not found
9000Successful execution

References

  1. National Institute of Standards and Technology. (2024). Interfaces for Personal Identity Verification (NIST Special Publication SP 800-73-5). National Institute of Standards. 10.6028/NIST.SP.800-73pt1-5
  2. National Institute of Standards and Technology. (2022). Personal Identity Verification (PIV) of Federal Employees and Contractors (Federal Information Processing Standards Publication FIPS 201-3). U.S. Department of Commerce. 10.6028/NIST.FIPS.201-3
  3. International Organization for Standardization/International Electrotechnical Commission. (2020). ISO/IEC 7816-4:2020 Identification cards – Integrated circuit cards – Part 4: Organization, security and commands for interchange. ISO/IEC. https://www.iso.org/standard/77180.html
  4. International Organization for Standardization/International Electrotechnical Commission. (2004). ISO/IEC 7816-5:2004 Identification cards – Integrated circuit cards – Part 5: Registration of application providers. ISO/IEC. https://www.iso.org/standard/34259.html
  5. International Organization for Standardization/International Electrotechnical Commission. (2023). ISO/IEC 7816-6:2023 Identification cards – Integrated circuit cards – Part 6: Interindustry data elements for interchange. ISO/IEC. https://www.iso.org/standard/77181.html
  6. International Organization for Standardization/International Electrotechnical Commission. (2021). ISO/IEC 7816-8:2021 Identification cards – Integrated circuit cards – Part 8: Commands and mechanisms for security operations. ISO/IEC. https://www.iso.org/standard/79893.html
  7. International Organization for Standardization/International Electrotechnical Commission. (2017). ISO/IEC 7816-9:2017 Identification cards – Integrated circuit cards – Part 9: Commands for card management. ISO/IEC. https://www.iso.org/standard/67802.html
  8. Schwarzhoff, T. T., Dray, J. F., Wack, J. P., Dalci, E., Goldfine, A., & Iorga, M. (2003). Government Smart Card Interoperability Specification, Version 2.1 (Techreport NIST IR 6887, 2003 Edition). National Institute of Standards. 10.6028/NIST.IR.6887e2003
  9. Government Smart Card Interagency Advisory Board. (2005). Technical Implementation Guidance: Smart Card Enabled Physical Access Control Systems (PACS v2.2), Version 2.3 [Techreport]. Government Smart Card Interagency Advisory Board. https://www.idmanagement.gov/docs/pacs-tig-scepacs.pdf
  10. Ferraiolo, H. (2018). Codes for Identification of Federal and Federally-Assisted Organizations (Techreport NIST SP 800-87 Rev. 2). National Institute of Standards. 10.6028/NIST.SP.800-87r2
  11. Housley, R. (2009). Cryptographic Message Syntax (CMS). IETF RFC 5652. 10.17487/RFC5652
  12. Ferraiolo, H., & Regenscheid, A. (2024). Cryptographic Algorithms and Key Sizes for Personal Identity Verification (Techreport NIST SP 800-78-5). National Institute of Standards. 10.6028/NIST.SP.800-78-5
  13. Federal Public Key Infrastructure Policy Authority. (2024). X.509 Certificate Policy for the U.S. Federal PKI Common Policy Framework (Techreport Version 2.8). Federal Public Key Infrastructure Policy Authority. https://www.idmanagement.gov/docs/fpki-x509-cert-policy-common.pdf
  14. National Institute of Standards and Technology. (2013). Biometric Specifications for Personal Identity Verification (NIST Special Publication SP 800-76-2). National Institute of Standards. 10.6028/NIST.SP.800-76-2
  15. International Civil Aviation Organization. (2008). Machine Readable Travel Documents, Part 3: Machine Readable Official Travel Documents, Volume 2: Specifications for Electronically Enabled MRTDs with Biometric Identification Capability (Techreport ICAO Document 9303; 3rd ed.). International Civil Aviation Organization. http://www.icao.int/publications/pages/publication.aspx?docnum=9303

APIV Data Model

The PIV data model number is 0x10, and the data model version number is 0x01.

The SP 800-73-5 specification does not provide mechanisms to read partial contents of a PIV data object. Individual access to the TLV elements within a container is not supported. For each container, compliant cards SHALL return all TLV elements of the container in the order listed in this appendix.

Both single-chip/dual-interface and dual-chip implementations are feasible. In the single-chip/dual-interface configuration, the PIV Card Application SHALL be provided with information regarding which interface is in use. In the dual-chip configuration, a separate PIV Card Application SHALL be loaded on each chip.[17]

Table 8:PIV data containers

Container DescriptionContainerIDBER-TLV TagMin Capacity (Bytes).ContactContactlessM/O/C
Card Capability Container0xDB005FC107170AlwaysVCIM
Card Holder Unique Identifier0x30005FC1022881AlwaysAlwaysM
X.509 Cert. for PIV Authentication (Key Ref. 9A)0x01015FC1051857AlwaysVCIM
Cardholder Fingerprints0x60105FC1034006PINVCI and PINM
Security Object0x90005FC1061336AlwaysVCIM
Cardholder Facial Image0x60305FC10812710PINVCI and PINM
X.509 Cert. for Card Authentication (Key Ref. 9E)0x05005FC1011857AlwaysAlwaysM
X.509 Cert. for Digital Signature (Key Ref. 9C)0x01005FC10A1857AlwaysVCIC
X.509 Cert. for Key Mgmt. (Key Ref. 9D)0x01025FC10B1857AlwaysVCIC
Printed Information0x30015FC109245PIN or OCCVCI and (PIN or OCC)O
Discovery Object0x60507E19AlwaysAlwaysO
Key History Object0x60605FC10C128AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 1 (Key Ref. 82)0x10015FC10D1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 2 (Key Ref. 83)0x10025FC10E1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 3 (Key Ref. 84)0x10035FC10F1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 4 (Key Ref. 85)0x10045FC1101895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 5 (Key Ref. 86)0x10055FC1111895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 6 (Key Ref. 87)0x10065FC1121895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 7 (Key Ref. 88)0x10075FC1131895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 8 (Key Ref. 89)0x10085FC1141895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 9 (Key Ref. 8A)0x10095FC1151895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 10 (Key Ref. 8B)0x100A5FC1161895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 11 (Key Ref. 8C)0x100B5FC1171895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 12 (Key Ref. 8D)0x100C5FC1181895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 13 (Key Ref. 8E)0x100D5FC1191895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 14 (Key Ref. 8F)0x100E5FC11A1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 15 (Key Ref. 90)0x100F5FC11B1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 16 (Key Ref. 91)0x10105FC11C1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 17 (Key Ref. 92)0x10115FC11D1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 18 (Key Ref. 93)0x10125FC11E1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 19 (Key Ref. 94)0x10135FC11F1895AlwaysVCIO
Retired X.509 Cert. for Key Mgmt. 20 (Key Ref. 95)0x10145FC1201895AlwaysVCIO
Cardholder Iris Images0x10155FC1217106PINVCI and PINO
Biometric Information Templates Group Template0x10167F6165AlwaysAlwaysO
Secure Messaging Cert. Signer0x10175FC1222471AlwaysAlwaysO
Pairing Code Ref. Data Container0x10185FC12312PIN or OCCVCI and (PIN or OCC)O

Note that all data elements of the following data objects are mandatory unless specified as optional or conditional. Also note that in all tables that follow, the values in the “Max. Bytes” columns denote the lengths of the value (V) fields of BER-TLV elements.

Table 9:Card Capability Container (0xDB00)

Data Element (TLV)TagTypeMax. Bytes
Card Identifier0xF0Fixed0 or 21
Capability Container version number0xF1Fixed0 or 1
Capability Grammar version number0xF2Fixed0 or 1
Applications CardURL0xF3Variable128
PKCS#150xF4Fixed0 or 1
Registered Data Model number0xF5Fixed1
Access Control Rule Table0xF6Fixed0 or 17
Card APDUs0xF7Fixed0
Redirection Tag0xFAFixed0
Capability Tuples (CTs)0xFBFixed0
Status Tuples (STs)0xFCFixed0
Next CCC0xFDFixed0
Error Detection Code0xFELRC0

Note that he previously deprecated optional Extended Application CardURL and Security Object Buffer data elements have been eliminated in this version of SP 800-73.

Table 10:Card Holder Unique Identifier (CHUID) (0x3000)

Data Element (TLV)TagTypeMax. Bytes
FASC-N0x30Fixed25
GUID0x34Fixed16
Expiration Date0x35Date (YYYYMMDD)8
Cardholder UUID (Optional)0x36Fixed16
Issuer Asymmetric Signature0x3EVariable2816
Error Detection Code0xFELRC0

Note that the Buffer Length, Organizational Identifier, and DUNS data elements have been eliminated in this version of SP 800-73.

The Error Detection Code is the same element as the Longitudinal Redundancy Code (LRC) in Technical Implementation Guidance: Smart Card Enabled Physical Access Control Systems (TIG SCEPACS) 9. It is present in the CHUID because TIG SCEPACS makes the LRC mandatory. However, this document makes no use of the Error Detection Code, and, therefore the length of the TLV value is set to 0 bytes (i.e., no value will be supplied).

Table 11:X.509 Certificate for PIV Authentication (0x0101)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
Error Detection Code0xFELRC0

Note that the MSCUID data element has been eliminated in this version. The certicate “Max. Bytes” column is the recommended length. The certificate size can exceed the indicated length value.

Table 12:Cardholder fingerprints (0x6010)

Data Element (TLV)TagTypeMax. Bytes
Fingerprint I & II0xBCVariable4000
Error Detection Code0xFELRC0

The fingerprint “Max. Bytes” column is the recommended length. The certificate that signed the Fingerprint I & II data element in the Cardholder Fingerprints data object can either be stored in the CHUID or in the Fingerprint I & II data element itself. For the latter, the “Max. Bytes” value quoted is a recommendation, and the signer certificate in CBEFF_SIGNATURE_BLOCK can exceed the “Max. Bytes.” Note that the use of separate content signing keys for biometric data and CHUID has been deprecated in FIPS 201-3. In future revisions, the CHUID and biometric elements will be signed with the same key. The content signing certificate will not be found in this data element but instead will be contained in the CHUID data element. Hence, the size will be as indicated in the table.

Table 13:Security Object (0x9000)

Data Element (TLV)TagTypeMax. Bytes
Mapping of DG to ContainerID0xBAVariable30
Security Object0xBBVariable1298
Error Detection Code0xFELRC0

Table 14:Cardholder facial image (0x6030)

Data Element (TLV)TagTypeMax. Bytes
Facial Image0xBCVariable12704
Error Detection Code0xFELRC0

The facial image “Max. Bytes” column is the recommended length. The certificate that signed the Facial Image data element (tag 0xBC) can be stored in the CHUID or in the Facial Image data element itself. For the latter, the “Max. Bytes” value quoted is a recommendation, and the signer certificate in CBEFF_SIGNATURE_BLOCK can exceed the “Max. Bytes.” Note that the use of separate content signing keys for biometric data and CHUID has been deprecated in FIPS 201-3. In future revisions, the CHUID and biometric elements will be signed with the same key. The content signing certificate will not be found in this data element but instead will be contained in the CHUID data element. Hence, the size will be as indicated in the table.

Table 15:Printed information (0x3001)

Data Element (TLV)TagTypeMax. Bytes
Name0x01Text (ASCII)125
Employee Affiliation0x02Text (ASCII)20
Expiration date0x04Date (YYYYMMMDD)9
Agency Card Serial Number0x05Text (ASCII)20
Issuer Identification0x06Fixed Text (ASCII)15
Organization Affiliation (Line 1) (Optional)0x07Text (ASCII)20
Organization Affiliation (Line 2) (Optional)0x08Text (ASCII)20
Error Detection Code0xFELRC0

Agencies SHOULD use tags 0x02, 0x07 and 0x08 to successfully match the printed information for verification on Zone 8F (Employee Affiliation) and Zone 10F (Agency, Department, or Organization) on the face of the card with the printed information stored electronically on the card.

Table 16:X.509 Certificate for Digital Signature (0x0100)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856[^22]
CertInfo0x71Fixed1
Error Detection Code0xFELRC0

Note that the MSCUID data element has been eliminated in this version. The certificate “Max. Bytes” column is the recommended length. The certificate size can exceed the indicated length value.

Table 17:X.509 Certificate for Key Management (0x0102)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856^22^
CertInfo0x71Fixed1
Error Detection Code0xFELRC0

Note that the MSCUID data element has been eliminated in this version.

Table 18:X.509 Certificate for Card Authentication (0x0500)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
Error Detection Code0xFELRC0

Note that the MSCUID data element has been eliminated in this version of SP 800-73. The certificate “Max. Bytes” column is the recommended length. The certificate size can exceed the indicated length value.

Table 19:Discovery Object (0x6050)

Data Element (TLV)TagTypeMax. Bytes
PIV Card Application AID0x4FFixed12
PIN Usage Policy0x5F2FFixed2

Table 20:Key History Object (0x6060)

Data Element (TLV)TagTypeMax. Bytes
keysWithOnCardCerts0xC1Fixed1
keysWithOffCardCerts0xC2Fixed1
offCardCertURL (Conditional)0xF3Variable118
Error Detection Code0xFELRC0

Note the numeric values indicated in keysWithOnCardCerts and keysWithOffCardCerts are represented as unsigned binary integers. The offCardCertURL data element shall be present if keysWithOffCardCerts is greater than zero and shall be absent if both keysWithOnCardCerts and keysWithOffCardCerts are zero. The offCardCertURL may be present if keyWithOffCardCerts is zero but keysWithOnCardCerts is greater than zero.

Table 21:Retired X.509 Certificate for Key Management 1 (0x1001)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Note that the optional MSCUID data element was deprecated in a previous version and eliminated in this version of SP 800-73. However, historic retired key management certificates MAY still include the MSCUID element, so it is retained as an optional data element above. This applies to all of the retired key management key objects represented in Table 21 through Table 40.

Note the certificate “Max. Bytes” column in the Retired X.509 Certificate for Key Management tables are the recommended lengths. The certificate size can exceed the indicated length value.

Table 22:Retired X.509 Certificate for Key Management 2 (0x1002)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 23:Retired X.509 Certificate for Key Management 3 (0x1003)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 24:Retired X.509 Certificate for Key Management 4 (0x1004)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Note the certificate “Max. Bytes” column is the recommended length. The certificate size can exceed the indicated length value.

Table 25:Retired X.509 Certificate for Key Management 5 (0x1005)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 26:Retired X.509 Certificate for Key Management 6 (0x1006)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 27:Retired X.509 Certificate for Key Management 7 (0x1007)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 28:Retired X.509 Certificate for Key Management 8 (0x1008)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 29:Retired X.509 Certificate for Key Management 9 (0x1009)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 30:Retired X.509 Certificate for Key Management 10 (0x100A)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 31:Retired X.509 Certificate for Key Management 11 (0x100B)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 32:Retired X.509 Certificate for Key Management 12 (0x100C)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 33:Retired X.509 Certificate for Key Management 13 (0x100D)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 34:Retired X.509 Certificate for Key Management 14 (0x100E)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 35:Retired X.509 Certificate for Key Management 15 (0x100F)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 36:Retired X.509 Certificate for Key Management 16 (0x1010)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 37:Retired X.509 Certificate for Key Management 17 (0x1011)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 38:Retired X.509 Certificate for Key Management 18 (0x1012)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 39:Retired X.509 Certificate for Key Management 19 (0x1013)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

Table 40:Retired X.509 Certificate for Key Management 20 (0x1014)

Data Element (TLV)TagTypeMax. Bytes
Certificate0x70Variable1856
CertInfo0x71Fixed1
MSCUID (Optional)0x72Variable38
Error Detection Code0xFELRC0

The CertInfo byte in the certificate data objects identified in this appendix SHALL be encoded as follows:

Table 41:CertInfo byte encoding

b8b7b6b5b4b3b2b1
RFU8RFU7RFU6RFU5RFU4IsX509CompressionTypeLsbCompressionTypeMsb

CompressionTypeMsb SHALL be 0 if the certificate is encoded in uncompressed form and 1 if the certificate is encoded using GZIP compression.[18] CompressionTypeLsb and IsX509 SHALL be set to 0 for PIV Card Applications. Thus, for a certificate encoded in uncompressed form, CertInfo SHALL be 0x00. For a certificate encoded using GZIP compression, CertInfo SHALL be 0x01.

Table 42:Cardholder iris images (0x1015)

Data Element (TLV)TagTypeMax. Bytes
Images for Iris0xBCVariable7100[^30]
Error Detection Code0xFELRC0

The Images for Iris “Max. Bytes” column is the recommended length. The certificate that signed the Images for Iris data element (tag 0xBC) can be stored in the CHUID or in the Images for Iris data element itself. For the latter, the “Max. Bytes” value quoted is a recommendation, and the signer certificate in CBEFF_SIGNATURE_BLOCK can exceed the “Max. Bytes.” Note that the use of separate content signing keys for biometric data and CHUID has been deprecated in FIPS 201-3. In future revisions, the CHUID and biometric elements will be signed with the same key. The content signing certificate will not be found in this data element but instead will be contained in the CHUID data element. Hence, the size will be as indicated in the table

Table 43:Biometric Information Templates Group Template (0x1016)

Data Element (TLV)TagTypeMax. Bytes
Number of Fingers0x02Fixed1
BIT for first Finger0x7F60Variable28
BIT for second Finger (Optional)0x7F60Variable28

Table 44:Secure Messaging Certificate Signer (0x1017)

Data Element (TLV)TagTypeMax. Bytes
X.509 Certificate for Content Signing0x70Variable1856
CertInfo0x71Fixed1
Intermediate CVC (Conditional)0x7F21Variable601
Error Detection Code0xFELRC0

The CertInfo byte in the Secure Messaging Certificate Signer data object SHALL provide information about the X.509 Certificate for Content Signing. The Intermediate CVC, if present, shall be stored in uncompressed form. The Intermediate CVC shall be absent if the X.509 Certificate for Content Signing contains the public key needed to verify the signature on the secure messaging CVC and shall be present otherwise.

Table 45:Pairing Code Reference Data Container (0x1018)

Data Element (TLV)TagTypeMax. Bytes
Pairing Code0x99Fixed Text (ASCII)8
Error Detection Code0xFELRC0

BPIV Authentication Mechanisms

PIV authentication mechanisms and application scenarios are described in this section to provide guidelines on the usage and behavior supported by the PIV Card. FIPS 201 describes PIV authentication as “the process of establishing confidence in the identity of the cardholder presenting a PIV Card” 2. The fundamental goal of using the PIV Card is to authenticate the identity of the cardholder to a system or person that is controlling access to a protected resource or facility. This end goal MAY be reached by various combinations of one or more of the validation steps described below:

B.1Authentication Mechanism Diagrams

This section describes the activities and interactions involved in interoperable usage and authentication of the PIV Card. The authentication mechanisms represent how a relying party will authenticate the cardholder (regardless of which agency issued the card) in order to provide access to its systems or facilities. These activities and interactions are represented in functional authentication mechanism diagrams. These diagrams are not intended to provide syntactical commands or API function names.

Each of the PIV authentication mechanisms described in this section can be broken into a sequence of one or more validation steps where Card, Credential, and Cardholder validation is performed. In the illustrations, the validation steps are marked as CardV, CredV, and HolderV to signify Card, Credential, and Cardholder validation, respectively.

Depending on the assurance provided by the actual sequence of validation steps in a given PIV authentication mechanism, relying parties can make appropriate decisions for granting access to protected resources based on a risk analysis.

B.1.1Authentication Using PIV Biometrics (BIO)

A diagram of the workflow for authentication using PIV biometrics for off-card matching.

Figure 1:Authentication using PIV Biometrics (BIO)

The assurance of authentication using PIV biometrics CAN be further increased if the live biometric sample is collected in an attended environment with a human overseeing the process. The attended biometric authentication mechanism (BIO-A) is illustrated in Figure 2.

A diagram of the workflow for authentication using PIV biometrics for off-card matching in an attended setting.

Figure 2:Authentication using PIV Biometrics Attended (BIO-A)

B.1.2Authentication Using PIV Authentication Key

Figure 3 shows the authentication mechanism using the PIV Authentication key.

A diagram of the workflow for authentication using PIV authentication key.

Figure 3:Authentication using PIV Authentication Key

B.1.3Authentication Using Card Authentication Key

Authentication mechanisms using the Card Authentication key are illustrated in Figure 4 and Figure 5. Figure 4 illustrates the use of the mandatory asymmetric Card Authentication key, while (#pt1-fig-symmetric-card-auth-key-deprecated) uses the deprecated, optional symmetric Card Authentication key for the authentication mechanism. Note that the symmetric card authentication key has been deprecated in FIPS 201-3 and MAY be removed in a future version of the standard.

A diagram of the workflow for authentication using an asymmetric card authentication key.

Figure 4:Authentication using an Asymmetric Card Authentication Key

A diagram of the workflow for authentication using a symmetric card authentication key which is deprecated in this version of the document.

Figure 5:Authentication using a Symmetric Card Authentication Key (DEPRECATED)

B.1.4Authentication Using OCC (OCC-AUTH)

The OCC-AUTH authentication mechanism is implemented by performing OCC over secure messaging. The PIV Application authenticates the PIV Card as part of the process of establishing secure messaging. When the live-scan fingerprint biometric is supplied to the card for OCC over secure messaging, both the request and the response are protected using message authentication codes (MAC), allowing the PIV Application on the local system to verify that the response has not been altered and that it was created by the PIV Card that was authenticated during the establishment of secure messaging.

The OCC-AUTH authentication mechanism is performed by establishing secure messaging as described in Sec. 4 of SP 800-73-5 Part 2 and then performing the VERIFY command, as illustrated in Figure 6.

A diagram of the workflow for authentication using On Card Comparison (OCC) of live-scan biometrics over secure messaging.

Figure 6:Authentication using OCC

B.1.5Authentication Using PIV Visual Credentials (Deprecated)

Figure 7 shows the deprecated authentication mechanism in which a human guard authenticates the cardholder using the visual credentials held by the PIV Card. The authentication mechanism has been deprecated in FIPS 201-3 and MAY be removed from a future edition of the standard.

A diagram of the workflow for authentication using PIV visual credentials which is deprecated in this version of the document.

Figure 7:Authentication using PIV Visual Credentials (DEPRECATED)

B.1.6Authentication Using PIV CHUID (Removed)

The content of this section has been removed since the CHUID as an authentication mechanism is no longer allowed under FIPS-201. However, the CHUID data element itself remains on-card to support other authentication mechanisms. For example, the BIO and BIO-A authentication mechanisms use the CHUID data element as a source for the card’s expiration date. The CHUID data element also provides the content signing certificate for these authentication mechanisms as well as unique identifiers for PACS ACLs.

B.1.7Authentication Using Secure Messaging Key (SM-AUTH)

If the PIV Card supports the secure messaging protocol, then the secure messaging key, corresponding CVC, and key establishment protocol (see Sec. 4 of SP 800-73-5 Part 2) CAN be used for authentication of the PIV Card and the cardholder (SM-AUTH). The secure messaging protocol authenticates the PIV Card via the secure messaging key. Any established session keys SHALL be zeroized after authentication if bits b3 and b4 of subsequent command CLA bytes are set to zero.

Figure 8 shows the authentication mechanism using the secure messaging key.

A diagram of the workflow for authentication using the secure messaging key.

Figure 8:Authentication using the Secure Messaging Key

B.2Summary Table

Table 46 summarizes the types of validation activities that are included in each of the PIV authentication mechanisms described earlier in this section.

Table 46:Summary of PIV authentication mechanisms

PIV Authentication MechanismCard Validation Steps (CardV)Credential Validation Steps (CredV)Cardholder Validation Steps (HolderV)
PIV BiometricExpiration check CHUID signature check PIV Bio signature check Match CHUID FASC-N with PIV Bio FASC-NPossession of Card Match PIN provided by Cardholder Match Cardholder bio with PIV bio
PIV Biometric (Attended)Expiration check CHUID signature check PIV Bio signature check Match CHUID FASC-N with PIV Bio FASC-NPossession of Card Match PIN provided by Cardholder Match of Cardholder bio to PIV bio in view of attendant
PIV Authentication KeyPerform challenge and response with a PIV asymmetric key, and validate signature on responseCertificate validation of a PIV certificatePossession of Card Match PIN or OCC data provided by Cardholder
Asymmetric Card Authentication KeyPerform challenge and response with a PIV asymmetric Card Authentication key, and validate signature on responseCertificate validation of a PIV certificatePossession of Card
Secure Messaging KeyPerform key agreement to establish session keysCertificate validation of a Secure Messaging Card Verifiable CertificatePossession of Card
Symmetric Card Authentication Key (Deprecated)Perform challenge and response with a PIV symmetric keyPossession of Card
On-card Biometric ComparisonEstablish Secure MessagingCertificate validation of a PIV certificatePossession of Card Match OCC data provided by Cardholder
PIV Visual Authentication (Deprecated)Counterfeit, tamper, and forgery checkExpiration checkPossession of Card Match of card visual characteristics with cardholder

CPIV Algorithm Identifier Discovery

Relying parties interact with many PIV Cards with the same native key type implemented by different key sizes and algorithms.[21] For example, a relying party performing the authentication mechanism described in Appendix B.1.2 CAN expect to perform a challenge and response cryptographic authentication with a 3072-bit or a 2048-bit RSA key or an ECDSA (Curve P-256 or Curve P-384) key.

This appendix describes recommended procedures for key size and algorithm discovery (PIV algorithm ID discovery) to facilitate cryptographic authentication initiated by the relying party to make appropriate decisions for granting access to logical networks and systems as well as physical access control systems. The discovery procedure is defined in terms of asymmetric and symmetric cryptographic authentication.

C.1PIV Algorithm Identifier Discovery for Asymmetric Cryptographic Authentication

As illustrated in the authentication mechanisms in Appendix B, an asymmetric cryptographic authentication involves issuing a challenge (request to sign a nonce) to the PIV Card. The relying party issuing the command provides the nonce to be signed, the key reference, and the PIV algorithm identifier as parameters of the command. The nonce is random data generated by the relying party, and the key reference is known. In contrast, the PIV algorithm identifier is unknown to the relying party and needs to be identified in order to issue the challenge command. The PIV algorithm identifier CAN be derived from the previous steps of the authentication mechanism. Prior to issuing the challenge command, the relying party retrieved and parsed the X.509 certificate from the card to validate the certificate and extract the public key for the pending verification of the signed nonce once returned from the card. The PIV algorithm identifier CAN be identified during the parsing of the X.509 certificate in two steps:[22]

Step 1: Algorithm Type Discovery

The X.509 certificate stores the public key in the subjectPublicKeyInfo field. The subjectPublicKeyInfo data structure has an algorithm field, which includes an OID that identifies the public key’s algorithm (RSA or ECC), as listed in Table 4 of SP 800-78.

Step 2: Key Size Discovery

If the algorithm type determined in Step 1 is ECC, then the key size is determined by the elliptic curve on which the key has been generated, which is P-256 or P-384 for all elliptic curve PIV Authentication keys and Card Authentication keys.

If the algorithm type determined in Step 1 is RSA, then the key size is determined by the public key’s modulus. The public key appears in the subjectPublicKey field of subjectPublicKeyInfo and is encoded as a sequence that includes both the key’s modulus and public exponent.

As a final step, the discovered X.509 algorithm OID and key size are mapped to the PIV algorithm identifiers, as defined in Table 9 of SP 800-78. The relying party then proceeds to issue the GENERAL AUTHENTICATE command to the card.

C.2PIV Algorithm Identifier Discovery for Symmetric Cryptographic Authentication

In the absence of an X.509 certificate, as is the case with symmetric cryptography, the PIV algorithm identifier discovery mechanism has to rely on a lookup table that resides on the local system. The table maps a unique card identifier and key reference (inputs) to an associated PIV algorithm identifier (output). The unique identifier supplied by the card MAY be the Agency Code || System Code || Credential Number of the FASC-N or the Card UUID.

The symmetric Card Authentication key is optional to implement, and a relying party has no prior knowledge of the key’s existence. The following routine discovers the Card Authentication key’s native implementation:

C.3PIV Algorithm Identifier Discovery for Secure Messaging

The Application Property Template included in the response to the SELECT command optionally includes a tag 0xAC, which indicates what cryptographic algorithms the PIV Card Application supports. The presence of algorithm identifier 27 or 2E indicates that the corresponding cipher suite is supported by the PIV Card Application for secure messaging and that the PIV Card Application possesses a PIV Secure Messaging key of the appropriate size for the specified cipher suite.

DList of Symbols, Abbreviations, and Acronyms

ACR
Access Control Rule
AID
Application Identifier
APDU
Application Protocol Data Unit
API
Application Programming Interface
ASCII
American Standard Code for Information Interchange
ASN.1
Abstract Syntax Notation One
BER
Basic Encoding Rules
BIT
Biometric Information Template
CAK
Card Authentication Key
CBEFF
Common Biometric Exchange Formats Framework
CCC
Card Capability Container
CHUID
Card Holder Unique Identifier
CMS
Cryptographic Message Syntax
CVC
Card Verifiable Certificate
DER
Distinguished Encoding Rules
DG
Data Group
DTR
Derived Test Requirement
ECB
Electronic Codebook
ECC
Elliptic Curve Cryptography
ECDH
Elliptic Curve Diffie–Hellman
ECDSA
Elliptic Curve Digital Signature Algorithm
FASC-N
Federal Agency Smart Credential Number
FIPS
Federal Information Processing Standard
FISMA
Federal Information Security Modernization Act
GSC-IS
Government Smart Card Interoperability Specification
GUID
Globally Unique Identifier
HSPD
Homeland Security Presidential Directive
ICC
Integrated Circuit Card
IEC
International Electrotechnical Commission
INCITS
InterNational Committee for Information Technology Standards
ISO
International Organization for Standardization
ITL
Information Technology Laboratory
LSB
Least Significant Bit
LRC
Longitudinal Redundancy Check
MAC
Message Authentication Code
MRTD
Machine Readable Travel Document
MSB
Most Significant Bit
NIST
National Institute of Standards and Technology
NPIVP
NIST Personal Identity Verification Program
OCC
On-Card Biometric Comparison
OID
Object Identifier
OMB
Office of Management and Budget
PACS
Physical Access Control System
PIN
Personal Identification Number
PI
Person Identifier (a field in the FASC-N)
PIV
Personal Identity Verification
PIX
Proprietary Identifier Extension
PKCS
Public-Key Cryptography Standards
PKI
Public Key Infrastructure
PUK
PIN Unblocking Key
RFU
Reserved for Future Use
RID
Registered Application Provider Identifier
RSA
Rivest–Shamir–Adleman
SCEPACS
Smart Card Enabled Physical Access Control System
SHA
Secure Hash Algorithm
SP
Special Publication
SM
Secure Messaging
SW1
First byte of a two-byte status word
SW2
Second byte of a two-byte status word
TIG
Technical Implementation Guidance
TLV
Tag-Length-Value
URL
Uniform Resource Locator
UUID
Universally Unique Identifier
VCI
Virtual Contact Interface

EGlossary

algorithm identifier
A 1-byte identifier that specifies a cryptographic algorithm and key size. For symmetric cryptographic operations, the algorithm identifier also specifies a mode of operation (i.e., ECB).
application identifier
A globally unique identifier of a card application, as adapted from ISO/IEC 7816-4.
authenticable entity
An entity that can successfully participate in an authentication protocol with a card application.
BER-TLV data object
A data object coded according to ISO/IEC 8824-2:2021.
card
An integrated circuit card.
card application
A set of data objects and card commands that can be selected using an application identifier.
client application
A program running on a computer in communication with a card interface device.
card management operation
Any operation involving the PIV Card Application Administrator.
Card Verifiable Certificate
A certificate stored on the card that includes a public key, the signature of a certification authority, and the information needed to verify the certificate.
data object
An item of information seen at the card command interface with a specified name, a description of logical content, a format, and a coding.
key reference
A 1-byte identifier that specifies a cryptographic key according to its PIV Key Type. The identifier is part of the cryptographic material used in a cryptographic protocol, such as an authentication or signing protocol.
MSCUID
A deprecated (previously optional legacy) identifier included for compatibility with Common Access Card and Government Smart Card Interoperability Specifications.
object identifier
A globally unique identifier of a data object, as adapted from ISO/IEC 8824-2:2021.
pairing code
An 8-digit code used to establish a relationship between the PIV Card and a device for the purpose of creating the virtual contact interface after secure messaging has been established.
PIV Key Type
The type of a key. The PIV Key Types are: (1) PIV Authentication key, (2) Card Authentication key, (3) digital signature key, (4) key management key, (5) retired key management key, (6) PIV Secure Messaging key, and (7) PIV Card Application Administration key.
relying party
An entity that relies upon the subscriber’s credentials, typically to process a transaction or grant access to information or a system.
status word
Two bytes returned by an integrated circuit card after processing any command that signify the success of or errors encountered during that processing.

FNotation

The 16 hexadecimal digits SHALL be denoted using the alphanumeric characters 0, 1, 2, ..., 9, A, B, C, D, E, and F. A byte consists of two hexadecimal digits, such as '2D'. The two hexadecimal digits are represented as 2D or as 0x2D. A sequence of bytes MAY be enclosed (e.g., A0 00 00 01 16) rather than given as a sequence of individual bytes (e.g., A0 00 00 01 16).

A byte can also be represented by bits b8 to b1, where b8 is the most significant bit (MSB) and b1 is the least significant bit (LSB) of the byte. In textual or graphic representations, the leftmost bit is the MSB. Thus, for example, the most significant bit b8 of 80 is 1, and the least significant bit b1 is 0.

All bytes specified as RFU SHALL be set to 00, and all bits specified as RFU SHALL be set to 0.

All lengths SHALL be measured in number of bytes unless otherwise noted.

The expression XYX \land Y is a bitwise AND operation between bytes XX and YY.

The symbol || means a concatenation of byte strings. For example, if XX is 00 01 02 and YY is 03 04 05, then XYX || Y is 00 01 02 03 04 05.

Data objects in templates are described as being mandatory (M), optional (O), or conditional (C). Mandatory means that the data object SHALL appear in the template. Optional means that the data object MAY appear in the template. For conditional data objects, the conditions under which they are required are provided.

In other tables, the M/O/C column identifies the properties of the PIV Card Application that SHALL be present (M), MAY be present (O), or are conditionally required to be present (C).

BER-TLV data object tags are represented as byte sequences, as described above. Thus, for example, 0x4F is the interindustry data object tag for an application identifier, and 0x7F61 is the interindustry data object tag for the Biometric Information Templates Group template.

This document uses the following typographical conventions in text:

GRevision History

SP 800-73
Release Date: April 2005

SP 800-73-1
Release Date: April 2006

SP 800-73-2
Release Date: September 2008

SP 800-73-3
Release Date: February 2010

SP 800-73-4
Release Date: April 2015

SP 800-73-4 (Errata Update)
Release Date: February 8, 2016

SP 800-73pt1-5
Release Date: July 2024

Acknowledgments

The authors --- Hildegard Ferraiolo, Ketan Mehta, Salvatore Francomacaro, and Ramaswamy Chandramouli of NIST and Sarbari Gupta of Electrosoft Services, Inc. --- gratefully acknowledge the contributions of David Cooper, James Dray, William MacGregor, Scott Guthery, Teresa Schwarzhoff, and Jason Mohler, who co-authored prior versions of this three-part publication. The authors also gratefully acknowledge and appreciate the many contributions from the public and private sectors whose thoughtful and constructive comments improved the quality and usefulness of this publication.

Footnotes
  1. NISTIR 7863, Cardholder Authentication for the PIV Digital Signature Key 19, addresses the appropriate use of PIN caching related to digital signatures.

  2. Command execution pertains to the VERIFY APDU and, optionally, to the CHANGE REFERENCE DATA APDU.

  3. See NIST Interagency Report (IR) 7676 for suggestions on the implementation and use of the Key History mechanism 20.

  4. The ASN.1 for Certificate may be imported from the ASN.1 module PKIX1Explicit88 in Appendix A.1 of RFC 5280 21.

  5. A BIT Group Template with no BITs is encoded as 7F 61 03 02 01 00.

  6. A valid PIV Card is defined as a PIV Card that is neither expired nor revoked.

  7. As a consequence of this requirement, any keys that have to be generated on card CANNOT be made available over the contactless interface (including the virtual contact interface) in a dual chip implementation. In addition, the asymmetric CAK needs to be generated off-card and loaded onto both chips for dual chip implementations.

  8. The term “virtual contact interface (VCI)” is used in this document as shorthand for the following security condition: (command is submitted over secure messaging) AND (the Discovery Object is present) AND (Bit 4 of the first byte of the PIN Usage Policy is one) AND ((the security status indicator associated with the pairing code is TRUE) OR (Bit 3 of the first byte of the PIN Usage Policy is one)).

  9. The exception does not apply to the BIT Group template, the Discovery Object, or the Application Property Template (APT) since these objects use interindustry tags from ISO/IEC 7816-6.

  10. A card may optionally have a symmetric CAK in addition to the mandatory asymmetric CAK, in which case both keys would share the same key reference and access control rules. However, the use of the symmetric card authentication key has been deprecated in FIPS 201-3 and may be removed in a future version of the standard.

  11. The sole use of the pairing code is the establishment of a VCI. Its use over the contact interface serves no purpose.

  12. While printing the value of the pairing code on the back of the card provides maximum convenience for use by the cardholder and avoids any risk that the cardholder will forget the pairing code, it may create a risk that an attacker could obtain the value of the pairing code by surreptitiously reading it from the back of the card. Departments and agencies will need to make a risk-based decision when determining the method by

  13. As noted in Section 5.5, the pairing code does not need to be submitted if the Bit 3 of the first byte of the PIN Usage Policy is set to one.

  14. Skimming is when data is surreptitiously obtained from a contactless card using a hidden reader that powers, commands, and reads from the card within the maximum read distance (reported as about 25 cm with ISO/IEC 14443 smart cards like the PIV Card).

  15. See SP 800-18r1, Guide for Developing Security Plans for Federal Information Systems.

  16. The values in this column denote the guaranteed minimum capacities of the on-card storage containers in bytes. Cards with larger containers may be produced and determined conformant.

  17. GZIP formats are specified in RFC 1951 cand RFC 1952.

  18. This has been deprecated per FIPS 201-3.

  19. Use of the photo on the PIV Card for visual authentication has been deprecated in FIPS 201-3 and may be removed from a future edition of the standard.

  20. Table 1 of SP 800-78 lists the various algorithms and key sizes that may be used for each PIV Key Type.

  21. The PIV algorithm identifiers specify both the key size and the algorithm for the key references. Thus, both values have to be discovered in order to derive the PIV algorithm identifier.