keyprov P. Hoyer Internet-Draft ActivIdentity Intended status: Standards Track M. Pei Expires: July 17, 2009 VeriSign S. Machani Diversinet January 13, 2009 Portable Symmetric Key Container (PSKC) draft-ietf-keyprov-pskc-00.txt Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on July 17, 2009. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Hoyer, et al. Expires July 17, 2009 [Page 1] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 Abstract This document specifies a symmetric key format for transport and provisioning of symmetric keys (for example One Time Password (OTP) shared secrets or symmetric cryptographic keys) to different types of crypto modules, such as a strong authentication device. The standard key transport format enables enterprises to deploy best-of-breed solutions combining components from different vendors into the same infrastructure. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Portable Key Container Entities Overview and Relationships . . 6 4. Element: The Basics . . . . . . . . . . . . . . 8 4.1. Element: Unique Device Identification . . . . 9 4.2. : Embedding Keying Material . . . . . . . . . . . . . 10 4.3. Element: User Identification . . . . . . . . . . . 11 4.4. Element: Supplementary Information for OTP and CR Algorithms . . . . . . . . . . . . . . . . . . . . . . 12 5. Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6. Protection of Keys and Related Data . . . . . . . . . . . . . 19 6.1. Encryption based on Pre-Shared Keys . . . . . . . . . . . 19 6.2. Encryption based on Passphrase-based Keys . . . . . . . . 21 6.3. Encryption based on Asymmetric Keys . . . . . . . . . . . 24 6.4. Transmission of Key Derivation Values . . . . . . . . . . 26 7. Digital Signature . . . . . . . . . . . . . . . . . . . . . . 28 8. Bulk Provisioning . . . . . . . . . . . . . . . . . . . . . . 30 9. Extensibility . . . . . . . . . . . . . . . . . . . . . . . . 33 10. PSKC Algorithm Profile . . . . . . . . . . . . . . . . . . . . 34 10.1. HOTP . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 10.2. KEYPROV-PIN . . . . . . . . . . . . . . . . . . . . . . . 34 11. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 36 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 12.1. Content-type registration for 'application/pskc+xml' . . . 43 12.2. XML Schema Registration . . . . . . . . . . . . . . . . . 44 12.3. URN Sub-Namespace Registration . . . . . . . . . . . . . . 44 12.4. PSKC Algorithm Profile Registry . . . . . . . . . . . . . 45 12.5. PSKC Version Registry . . . . . . . . . . . . . . . . . . 46 12.6. Key Usage Registry . . . . . . . . . . . . . . . . . . . . 46 13. Security Considerations . . . . . . . . . . . . . . . . . . . 47 13.1. Payload confidentiality . . . . . . . . . . . . . . . . . 47 13.2. Payload integrity . . . . . . . . . . . . . . . . . . . . 48 13.3. Payload authenticity . . . . . . . . . . . . . . . . . . . 48 14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 49 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 50 Hoyer, et al. Expires July 17, 2009 [Page 2] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 51 16.1. Normative References . . . . . . . . . . . . . . . . . . . 51 16.2. Informative References . . . . . . . . . . . . . . . . . . 52 Appendix A. Use Cases . . . . . . . . . . . . . . . . . . . . . . 53 A.1. Online Use Cases . . . . . . . . . . . . . . . . . . . . . 53 A.1.1. Transport of keys from Server to Cryptographic Module . . . . . . . . . . . . . . . . . . . . . . . . 53 A.1.2. Transport of keys from Cryptographic Module to Cryptographic Module . . . . . . . . . . . . . . . . . 53 A.1.3. Transport of keys from Cryptographic Module to Server . . . . . . . . . . . . . . . . . . . . . . . . 54 A.1.4. Server to server Bulk import/export of keys . . . . . 54 A.2. Offline Use Cases . . . . . . . . . . . . . . . . . . . . 54 A.2.1. Server to server Bulk import/export of keys . . . . . 54 Appendix B. Requirements . . . . . . . . . . . . . . . . . . . . 56 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 58 Hoyer, et al. Expires July 17, 2009 [Page 3] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 1. Introduction With increasing use of symmetric key based authentication systems such as systems based one time password (OTP) and challenge response mechanisms, there is a need for vendor interoperability and a standard format for importing, exporting or provisioning symmetric keys from one system to another. Traditionally authentication server vendors and service providers have used proprietary formats for importing, exporting and provisioning these keys into their systems making it hard to use tokens from vendor A with a server from vendor B. This document describes a standard format for serializing symmetric keys such as OTP shared secrets for system import, export or network/ protocol transport. The goal is that the format will facilitate dynamic provisioning and transfer of symmetric keys such as OTP shared secrets or encryption keys of different types. In the case of OTP shared secrets, the format will facilitate dynamic provisioning using an online provisioning protocol to different flavors of embedded tokens or allow customers to import new or existing tokens in batch or single instances into a compliant system. This draft also specifies the key attributes required for computation such as the initial event counter used in the HOTP algorithm [HOTP]. It is also applicable for other time-based or proprietary algorithms. To provide an analogy, in public key environments the PKCS#12 format [PKCS12] is commonly used for importing and exporting private keys and certificates between systems. In the environments outlined in this document where OTP keys may be transported directly down to smartcards or devices with limited computing capabilities and explicit shared secret, configuration attribute information is desirable. With PKCS#12, one would have to use opaque data to carry shared secret attributes used for OTP calculations, whereas a more explicit attribute schema definition is better for interoperability and efficiency. Hoyer, et al. Expires July 17, 2009 [Page 4] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. In subsequent sections of the document we highlight mandatory elements and attributes. Optional elements and attributes are not explicitly indicated. Hoyer, et al. Expires July 17, 2009 [Page 5] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 3. Portable Key Container Entities Overview and Relationships The portable key container is based on an XML schema definition and contains the following main conceptual entities: 1. KeyContainer entity - representing the container that carries the keys 2. Device entity - representing a physical or virtual device where the keys reside optionally bound to a specific user 3. DeviceInfo entity - representing the information about the device and criteria to uniquely identify the device 4. Key entity - representing the key transmitted 5. KeyData entity - representing data related to the key including value either in plain or encrypted The figure below represents the entity relationship diagram (brackets () denote optional elements). Hoyer, et al. Expires July 17, 2009 [Page 6] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 ----------------- | KeyContainer | |---------------| | EncryptionKey | | Signature | | ... | ----------------- | | /|\ 1..n ---------------- ---------------- | Device | 1| DeviceInfo | |--------------|-----|--------------| | (User) | | SerialNumber | ---------------- | Manufacturer | | | .... | | ---------------- /|\ 1..n ---------------- | Key | |--------------| | ID | | Algorithm | | (User) | | .... | ---------------- | | /|\ 1..n -------------- ---------------- | Plainvalue | | KeyData | -------------- |--------------| | | name | either| | value |----------| | ..... | ------------------ ---------------- | EncryptedValue | ------------------ The following sections describe in detail all the entities and related XML schema elements and attributes. Hoyer, et al. Expires July 17, 2009 [Page 7] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 4. Element: The Basics In it's most basic form a PSKC document uses the top-level element and a single element to carry key information. The following example shows such a simple PSKC document. We will use it to describe the structure of the element and it's child elements. Manufacturer 987654321 Issuer MTIzNDU2Nzg5MDEyMzQ1Njc4OTA= 0 Figure 1: Basic PSKC Key Container Example The attributes of the element have the following semantic: 'Version:' The 'Version' attribute is used to identify the version of the PSKC schema version. This specification defines the initial version ("1") of the PSKC schema. This attribute is mandatory. Hoyer, et al. Expires July 17, 2009 [Page 8] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 'ID:' The 'ID' attribute carries a unique identifier for the container. This is useful when needing to refer to an individual key container when more than one container is embedded into a larger XML document. A element MUST contain at least one elements. Multiple elements may be used when for bulk provisioning, see Section 8. A MUST contain at least one element. A MAY be bound to a user. A key SHOULD be bound to only one element. 4.1. Element: Unique Device Identification The element allows to uniquely identify the device the element refers to. Since devices can come in different form factors, such as hardware tokens, smart-cards, soft tokens in a mobile phone or as a PC, this element allows different criteria to be used. Combined though the criteria MUST uniquely identify the device. For example, for hardware tokens the combination of SerialNo and Manufacturer will uniquely identify a device but not SerialNo alone since two different token manufacturers might issue devices with the same serial number (similar to the IssuerDN and serial number of a certificate). Symmetric keys used in the payment industry are usually stored on Integrated Circuit Smart Cards. The element has the following child elements: : This element indicates the manufacturer of the device. : This element contains the serial number of the device : This element describes the model of the device (e.g., one- button-HOTP-token-V1) : This element contains the issue number in case devices with the same serial number that are distinguished by different issue numbers : This element carries the identifier that can be used to bind keys to the device or class of device. When loading keys into a device, this identifier can be checked against information obtained from the device to ensure that the correct device or class of device is being used. Hoyer, et al. Expires July 17, 2009 [Page 9] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 : This element indicates the start date of a device (such as the one on a payment card, used when issue numbers are not printed on cards). The date MUST be expressed in UTC form with no timezone component. Implementations SHOULD NOT rely on time resolution finer than milliseconds and MUST NOT generate time instants that specify leap seconds. : This field contains the expiry date of a device (such as the one on a payment card, used when issue numbers are not printed on cards). It MUST be expressed in UTC form with no timezone component. Implementations SHOULD NOT rely on time resolution finer than milliseconds and MUST NOT generate time instants that specify leap seconds. 4.2. : Embedding Keying Material The following attributes of the element MUST be included at a minimum: 'KeyId': This attribute carries a globally unique identifier for the symmetric key. The identifier is defined as a string of alphanumeric characters. 'KeyAlgorithm': This attribute contains a unique identifier for the PSKC algorithm profile. This profile associates a specific semantic to the elements and attributes contained in the element. More information about the PSKC algorithm profile defined in this document can be found in Section 10. The element has a number of optional child elements. An initial set is described below: : The key issuer name, this is normally the name of the organization that issues the key to the end user of the key. For example MyBank issuing hardware tokens to their retail banking users 'MyBank' would be the issuer. : A human readable name for the secret key for easier reference. This element serves informational purposes only. : This element defines the intended usage of the key and related metadata as defined in Section 4.4 There are cases where the specific context in which the key is used can be inferred but typically the context is provided explicitly. Hoyer, et al. Expires July 17, 2009 [Page 10] Internet-Draft Portable Symmetric Key Container (PSKC) January 2009 : This element carries data about and related to the key. Further description about the element can be found subsequent to this list. This document defines a few child element for the element, namely : This element carries the value of the key itself in a binary representation. : This element contains the event counter for event based OTP algorithms.