PKIX Working Group A. Aresenault Internet Draft Diversinet Document: draft-ietf-pkix-roadmap-06.txt S. Turner Category: Informational IECA Expires: May, 2001 November 2000 Internet X.509 Public Key Infrastructure Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. This document is an Internet-Draft. 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 6 months and may be updated, replaced, or may become obsolete 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 current Internet-Drafts Shadow Directories can be accessed at http://www.ietf.org/shadow.html This Internet-Draft will expire in May, 2000. Comments or suggestions for improvement may be made on the "ietf-pkix" mailing list, or directly to the authors. Copyright (C) The Internet Society (2000). All Rights Reserved. Abstract This document provides an overview or "roadmap" of the work done by the IETF PKIX working group. It describes some of the terminology used in the working group's documents, and the theory behind an X.509-based Public Key Infrastructure, Privilege Management Infrastructure (PMI), and Time Stamping and Data Certification Infrastructures. It identifies each document developed by the PKIX working group, and describes the relationships among the various documents. It also provides advice to would-be PKIX implementors about some of the issues discussed at length during PKIX development, in hopes of making it easier to build implementations that will actually interoperate. Aresenault, Turner November 2000 1 Internet Draft PKIX Roadmap May, 2000 1 Introduction.....................................................3 1.1 This Document..................................................3 1.2 Terminology....................................................3 1.3 History........................................................5 2 PKI..............................................................8 2.1 Theory.........................................................8 2.2 Architecture Model.............................................9 2.3 Public Key Certificates.......................................11 2.4 Functions of a PKI............................................12 2.4.1 Registration................................................12 2.4.2 Initialization..............................................12 2.4.3 Certification...............................................12 2.4.4 Key Pair Recovery...........................................13 2.4.5 Key Generation..............................................13 2.4.6 Key Update..................................................13 2.4.6.1 Key Expiry................................................13 2.4.6.2 Key Compromise............................................13 2.4.7 Cross-certification.........................................14 2.4.8 Revocation..................................................14 2.4.9 Certificate and Revocation Notice Distribution and Publication ..................................................................16 3 PMI.............................................................16 3.1 Theory........................................................16 3.2 Architectural Model...........................................17 3.3 Attribute Certificates........................................18 4 PKIX Documents..................................................19 4.1 Profiles......................................................19 4.2 Operational Protocols.........................................22 4.3 Management Protocols..........................................25 4.4 Policy Outline................................................27 4.4 Time Stamping and Data Certification..........................28 4.5 Expired Drafts................................................30 5 Implementation Advice...........................................33 5.1 Names.........................................................33 5.1.1 Name Forms..................................................33 5.1.1.1 Distinguished Names.......................................33 5.1.1.2 SubjectAltName Forms......................................34 5.1.1.2.1 Internet e-mail addresses...............................35 5.1.1.2.2 DNS Names...............................................35 5.1.1.2.3 IP addresses............................................35 5.1.1.2.4 URIs....................................................35 5.1.2 Scope of Names..............................................36 5.1.3 Certificate Path Construction...............................36 5.1.4 Name Constraints............................................37 5.1.4.1 rfc822Names...............................................38 5.1.4.2 dNSNames..................................................39 5.1.4.3 x.400 addresses...........................................39 5.1.4.5 DNs.......................................................39 5.1.4.6 URIs......................................................40 5.1.4.7 iPaddresses...............................................40 5.1.4.8 Others....................................................40 Aresenault, Turner November, 2000 2 Internet Draft PKIX Roadmap May, 2000 5.1.5 Wildcards in Name Forms.....................................40 5.1.6 Name Encoding...............................................41 5.2 POP...........................................................41 5.2.1 POP for Signing Keys........................................41 5.2.2 POP for Key Management Keys.................................42 5.3 Key Usage Bits................................................44 5.4 Non-Repudiation...............................................46 5.5 Trust Models..................................................46 5.5.1 Hierarchical................................................46 5.5.2 Local/Federation............................................46 5.5.3 Root Repository.............................................47 5.5.4 RP's Perspective............................................47 6 Acknowledgements................................................47 7 References......................................................48 8 Security Considerations.........................................51 9 Editor's Address................................................51 1 Introduction 1.1 This Document This document is an informational Internet-Draft that provides a "roadmap" to the documents produced by the PKIX working group. It is intended to provide information; there are no requirements or specifications in this document. Section 1.2 of this document defines key terms used in this document. Section 1.3 covers some of the basic history behind the PKIC working group. Section 2 covers Public Key Infrastructure (PKI) theory and functions. Section 3 covers Privilege Management Infrastructure (PMI) theory and functions. Sections 2 through 5 attempts to explain the PKIX working group's basic assumptions in each of the areas. Section 4 provides an overview of the various PKIX documents. It identifies which documents address which areas, and describes the relationships among the various documents. Section 5 contains "Advice to implementors." Its primary purpose is to capture some of the major issues discussed by the PKIX working group, as a way of explaining WHY some of the requirements and specifications say what they say. This should cut down on the number of misinterpretations of the documents, and help developers build interoperable implementations. Section 6 contains a list of contributors we wish to thank. Section 7 provides a list references. Section 8 discusses security considerations, and Section 9 provides contact information for the editors. Finally, Section 10 provides a disclaimer. 1.2 Terminology There are a number of terms used and misused throughout PKI-related, PMI-related, and Time Stamp and Data Certification literature. To Aresenault, Turner November, 2000 3 Internet Draft PKIX Roadmap May, 2000 limit confusion caused by some of those terms, used throughout this document, we will use the following terms in the following ways: - Attribute Authority (AA) - An authority trusted by one or more users to create and sign attribute certificates. It is important to note that the AA is responsible for the attribute certificates during their whole lifetime, not just for issuing them. - Attribute Certificate (AC) - A data structure containing a set of attributes for an end-entity and some other information, which is digitally signed with the private key of the AA which issued it. - Certificate - Can refer to either an AC or a public key certificate. Where there is no distinction made the context should be assumed that the term could apply to both an AC or a public key certificate. - Certification Authority (CA) - An authority trusted by one or more users to create and assign public key certificates. Optionally the CA may create the user's keys. It is important to note that the CA is responsible for the public key certificates during their whole lifetime, not just for issuing them. - Certificate Policy (CP) - A named set of rules that indicates the applicability of a public key certificate to a particular community or class of application with common security requirements. For example, a particular certificate policy might indicate applicability of a type of public key certificate to the authentication of electronic data interchange transactions for the trading of goods within a given price range. - Certification Practice Statement (CPS) - A statement of the practices which a CA employs in issuing public key certificates. - End-entity - A subject of a certificate who is not a CA in the PKIC or an AA in the PMI. (An EE from the PKI can be an AA in the PMI.) - Public Key Certificate (PKC) - A data structure containing the public key of an end-entity and some other information, which is digitally signed with the private key of the CA which issued it. - Public Key Infrastructure (PKI) - The set of hardware, software, people, policies and procedures needed to create, manage, store, distribute, and revoke PKCs based on public-key cryptography. - Privilege Management Infrastructure (PMI) - A collection of ACs, with their issuing AA's, subjects, relying parties, and repositories, is referred to as a Privilege Management Infrastructure. Aresenault, Turner November, 2000 4 Internet Draft PKIX Roadmap May, 2000 - Registration Authority (RA) - An optional entity given responsibility for performing some of the administrative tasks necessary in the registration of subjects, such as: confirming the subject's identity; validating that the subject is entitled to have the values requested in a PKC; and verifying that the subject has possession of the private key associated with the public key requested for a PKC. - Relying party - A user or agent (e.g., a client or server) who relies on the data in a certificate in making decisions. - Root CA - A CA that is directly trusted by an EE; that is, securely acquiring the value of a Root CA public key requires some out-of-band step(s). This term is not meant to imply that a Root CA is necessarily at the top of any hierarchy, simply that the CA in question is trusted directly. - Subordinate CA - A "subordinate CA" is one that is not a Root CA for the EE in question. Often, a subordinate CA will not be a Root CA for any entity but this is not mandatory. - Subject - A subject is the entity (AA, CA, or EE) named in a certificate, either a PKC or AC. Subjects can be human users, computers (as represented by Domain Name Service (DNS) names or Internet Protocol (IP) addresses), or even software agents. - Time Stamp Authority (TSA) - A TSA is a trusted Third Party who provides a "proof-of-existence" for a particular datum at an instant in time. - Top CA - A CA that is at the top of a PKI hierarchy. Note: This is often also called a "Root CA," since in data structures terms and in graph theory, the node at the top of a tree is the "root." However, to minimize confusion in this document, we elect to call this node a "Top CA," and reserve "Root CA" for the CA directly trusted by the EE. Readers new to PKIX should be aware that these terms are not used consistently throughout the PKIX documents, as [FORMAT] uses "Root CA" to refer to what this and other documents call a "Top CA," and "most-trusted CA" to refer to what this and other documents call a "Root CA." 1.3 History The PKIX working group was formed in October of 1995 to develop Internet standards necessary to support PKIs. The first work item was a profile of the ITU-T Recommendation X.509 PKC. X.509, which is a widely accepted basis for a PKI, including data formats and procedures related to distribution of public keys via PKCs digitally signed by CAs. X.509 does not however include a profile to specify Aresenault, Turner November, 2000 5 Internet Draft PKIX Roadmap May, 2000 the support requirements for many of the PKC data structure's sub- fields, for any of the extensions, nor for certain data values. The Internet PKI profile [FORMAT] went through eleven draft versions before becoming an RFC. Other profiles have been developed in PKIX for particular algorithms to make use of [FORMAT]. There has been no sense of conflict between the authors that developed these profiles as they are seen as complimentary. The Internet PKI profile has been a draft standard for more than six months and is currently going through an update process to clarify any inconsistencies and to bolster certain sections. In parallel with the profile development, work was undertaken to develop the protocols necessary to manage PKI-related information was. The first developed was the Certificate Management Protocol (CMP). It defines a message protocol to initializing, certifying, updating, and revoking PKI entities [CMP]. The demand for an enrollment protocol and the desire to use PKCS-10 message format as the certificate request syntax lead to the development of two different documents in two different groups. The Certificate Request Syntax (CRS) draft was developed in the SMIME WG which used PKCS-10 [PKCS10] as the certification request message format. Certificate Request Message Format [CRMF] draft was also developed but in the PKIX WG. It was to define a simple enrollment protocol that would subsume both the CMP and CRS enrollment protocols, but it did not use PKCS-10 as the certificate request message format. Then the certificate management message format document, was developed to define an extended set of management messages that flow between the components of the Internet PKI. Certificate Management Messages over CMS (CMC) was developed to allow the use of an existing protocol (S/MIME) as a PKI management protocol, without requiring the development of an entirely new protocol such as CMP [CMC]. It also included [PKCS10] as the certificate request syntax, which caused work on the CRS draft to stop. Information from the certificate management message format document was moved into [CMP] and [CMC] so work on the certificate management message format document was discontinued. After some operational experience with [CMP], two drafts, one for using HTTP as the transport protocol and one for Transmission Control Protocol (TCP), were written to solve problems encountered by implementors. These drafts were merged into one draft Transport Protocols for CMP [TPCMP]. [CMP] has been a draft standard for more than six months and is currently undergoing revisions to document. The transport section has been removed and will remain in [TPCMP]. Another long debated topic in the WG dealt with certificate revocation. Numerous drafts have been developed to address different issues related certificate revocations. CMP supports revocation request, response, revocation announcement, and requests for CRL messages. CMC defines revocation request, revocation response, and requests for CRL messages, but uses CMS as the encapsulating protocol. [OCSP] was developed to address concerns that not all Aresenault, Turner November, 2000 6 Internet Draft PKIX Roadmap May, 2000 relying parties want to go through the process checking CRLs from every CA in the certification path. It defines an on-line mechanism to determine the status of a given certificate, which may provide more timely revocation information than is possible with CRLs. The Simple Certification Verification Protocol (SCVP) was produced to allow relying parties to off-load all of their certification verification to another entity [SCVP]. The WG was arguable split over whether such a function should be supported and whether it should be its own protocol or included in OCSP. In response, a draft defining OCSP Extensions was produced to include the functions of SCVP. [OCSP] has been a draft standard for more than six months and is in the process of being revised [OCSPv2]. To capture the work from the OCSP Extensions, two drafts have been developed: Delegated Path Validation [DPV] and Delegated Path Discovery [DPD]. One other draft called Open CRL Distribution Point (OCDP) was produced which documented two extensions: one to support an alternative CRL partitioning mechanism to the CRL Distribution Point mechanism documented in [FORMAT] and one to support identifying other revocation sources available to certificate-users. The work from this draft was subsumed by an ITU-T | ISO/IEC Amendment to X.509, hence work on this draft was halted. Development of the operational protocols has been slightly more straightforward. Four documents for the Light Weight Directory Access Protocol (LDAP) have been developed one for defining LDAPv2 as an access protocol to repositories [PKI-LDAPv2]; two for storing PKI information in an directory [SCHEMA] and [ADDSCHEMA]; and one for LDAPv3 requirements for PKI [PKI-LDAPv3]. Using the File Transfer Protocol (FTP) and the Hyper Text Transmission Protocol (HTTP) to retrieve PKCs and CRLs from PKI repositories was documented in [FTPHTTP]. Recognizing that LDAP directories are not the only repository service, the working group draft a Repository Locator Service [RLS] to make use of DNS SRV records to locate where and how PKI information can be retrieved from a repository. In late 1998 the PKIX charter was revised to include protocols for time stamping and data certification services. [TSP] was developed to define protocols required to interact with a Time Stamp Authority (TSA) who asserts that a datum existed at a given time. [DVCS] allows to verify and assert the validity of all signatures attached to the signed document using all appropriate status information and PKCs or to verify and assert the validity of one or more PKCs at the specified time. Both [DVCS] and [TSP] use [CMS] as an encapsulating (though in [TSP] request for a time stamp are not required to use [CMS]). A draft for extending trust in tokens in time was developed to use [DCVS] to maintain the trust in a token issued by a non- repudiation Trusted Third Party (NR TTP) after the key initially used to establish trust in the token expires; however, this draft has expired. The [TRNRS] draft was developed to describe those features of a service which processes signed documents that must be Aresenault, Turner November, 2000 7 Internet Draft PKIX Roadmap May, 2000 present in order for that service to constitute a "technical non- repudiation" service. Around the same time, a work item for ACs, defined in [X.509], was added. ACs are similar to PKCs, but they do not bind public keys to identities rather they bind attributes to identities. The attributes bound to the identity can represent anything, but are mostly used to support rule-based and role-based access control decisions. Two drafts have since been developed: the Internet Attribute Certificates Profile for Authorizations [AC] and the Limited Attribute Certificate Acquisition Protocol [LAAP]. The first profiles the fields and extensions of the AC and the second provides a deliberately limited protocol to access a repository when LDAP is not appropriate. Other drafts have been produced to address specific issues. [DHPOP] was developed to define two mechanisms by which a signature can produced using a Diffie-Hellman pair. This draft provides a mechanism to Diffie-Hellam key pairs to issue a PKCS-10 certification request. [REP] was developed during the revision to [FORMAT] to separate the definitions of the object identifiers and encoding rules for keys and digital signatures in PKCs. The Qualified Certificates [QC] and Permanent Identifier [PI] drafts were developed to address naming issues. From the alphabet soup above, it is clear why this roadmap is required. 2 PKI 2.1 Theory At the heart of recent efforts to improve Internet security are a group of security protocols such as Secure Multipurpose Internet Mail Extensions (S/MIME), Transport Layer Security (TLS), and Internet Protocol Security (IPSec). All of these protocols rely on public-key cryptography to provide services such as confidentiality, data integrity, data origin authentication, and non-repudiation. The purpose of a PKI is to provide trusted and efficient key and public key certificate management, thus enabling the use of authentication, non-repudiation, and confidentiality. Users of public key-based systems must be confident that, any time they rely on a public key, the subject that they are communicating with owns the associated private key, this applies whether an encryption or digital signature mechanism is used. This confidence is obtained through the use of PKCs, which are data structures that bind public key values to subjects. The binding is achieved by having a trusted CA verify the subject's identity and digitally sign each PKC. Aresenault, Turner November, 2000 8 Internet Draft PKIX Roadmap May, 2000 A PKC has a limited valid lifetime, which is indicated in its signed contents. Because a PKC's signature and timeliness can be independently checked by a certificate-using client, PKCs can be distributed via untrusted communications and server systems, and can be cached in unsecured storage in certificate-using systems. PKCs are used in the process of validating signed data. Specifics vary according to which algorithm is used, but the general process works as follows: Note: there is no specific order in which the checks listed below must be made; implementors are free to implement them in the most efficient way for their systems. - The recipient of signed data verifies that the claimed identity of the user is in accordance with the identity contained in the PKC; - The recipient validates that no PKC in the path is revoked (e.g., by retrieving a suitably-current Certificate Revocation List (CRL) or querying an on-line certificate status responder), and that all PKCs are within their validity periods at the time the data was signed; - The recipient verifies that the data are not claimed to have any values for which the PKC indicates that the signer is not authorized; - The recipient verifies that the data have not been altered since signing, by using the public key in the PKC. - If all of these checks pass, the recipient can accept that the data was signed by the purported signer. The process for keys used for encryption is similar. Note: It is of course possible that the data was signed by someone very different from the signer, if for example the purported signer's private key was compromised. Security depends on all parts of the certificate-using system, including but not limited to: physical security of the place the computer resides; personnel security (i.e., the trustworthiness of the people who actually develop, install, run, and maintain the system); the security provided by the operating system on which the private key is used; and the security provided the CA. A failure in any one of these areas can cause the entire system security to fail. PKIX is limited in scope, however, and only directly addresses issues related to the operation of the PKI subsystem. For guidance in many of the other areas, see [POLPROC]. 2.2 Architecture Model Aresenault, Turner November, 2000 9 Internet Draft PKIX Roadmap May, 2000 A PKI is defined as: The set of hardware, software, people, policies and procedures needed to create, manage, store, distribute, and revoke PKCs based on public-key cryptography. A PKI consists of five types of components [MISPC]: - Certification Authorities (CAs) that issue and revoke PKCs; - Organizational Registration Authorities (ORAs) that vouch for the binding between public keys and certificate holder identities and other attributes; - PKC holders that are issued certificates and can sign digital documents and encrypt documents; - Clients that validate digital signatures and their certification paths from a known public key of a trusted CA; - Repositories that store and make available PKCs and Certificate Revocation Lists (CRLs). Figure 1 is a simplified view of the architectural model assumed by the PKIX Working Group. Aresenault, Turner November, 2000 10 Internet Draft PKIX Roadmap May, 2000 +---+ | C | +------------+ | e | <-------------------->| End entity | | r | Operational +------------+ | t | transactions ^ | | and management | Management | / | transactions | transactions | | | PKI users | C | v | R | -------------------+--+-----------+-------------- | L | ^ ^ PKI | | | | management | | v | entities | R | +------+ | | e | <---------------------| RA | <---+ | | p | Publish certificate +------+ | | | o | | | | s | | | | I | v v | t | +------------+ | o | <------------------------------| CA | | r | Publish certificate +------------+ | y | Publish CRL ^ | | | +---+ Management | transactions | v +------+ | CA | +------+ Figure 1 - PKI Entities 2.3 Public Key Certificates ITU-T X.509 (formerly CCITT X.509) or ISO|IEC/ITU 9594-8, which was first published in 1988 as part of the X.500 Directory recommendations, defines a standard PKC format [X.509]. The PKC format in the 1988 standard is called the version 1 (v1) format. When X.500 was revised in 1993, two more fields, subjectUniqueIdentifier and issuerUniqueIdentifier were added, resulting in the version 2 (v2) format. These two fields may be used to support directory access control. The Internet Privacy Enhanced Mail (PEM) RFCs, published in 1993, include specifications for a public key infrastructure based on X.509 v1 public key certificates [PEM]. The experience gained in attempts to deploy [PEM] made it clear that the v1 and v2 public key certificate formats are deficient in several respects. Most importantly, more fields were needed to carry information which PEM Aresenault, Turner November, 2000 11 Internet Draft PKIX Roadmap May, 2000 design and implementation experience has proven necessary. In response to these new requirements, ISO|IEC, ITU, and ANSI X9 developed the X.509 version 3 (v3) PKC format. The v3 format extends the v2 format by adding provision for additional extension fields. Particular extension field types may be specified in standards or may be defined and registered by any organization or community. In June 1996, standardization of the basic v3 format was completed [X.509]. ISO|IEC, ITU, and ANSI X9 have also developed standard extensions for use in the v3 extensions field [X.509][X9.55]. These extensions can convey such data as additional subject identification information, key attribute information, policy information, and certification path constraints. However, the ISO/IEC/ITU and ANSI X9 standard extensions are very broad in their applicability. In order to develop interoperable implementations of X.509 v3 systems for Internet use, it is necessary to specify a profile for use of the X.509 v3 extensions tailored for the Internet. It is one goal of PKIX to specify a profile for Internet, electronic mail, and IPSec applications, etc. Environments with additional requirements may build on this profile or may replace it. 2.4 Functions of a PKI This section describes the major functions of a PKI. In some cases, PKIs may provide extra functions. 2.4.1 Registration This is the process whereby a subject first makes itself known to a CA (directly, or through an RA), prior to that CA issuing a PKC or PKCs for that subject. Registration involves the subject providing its name (e.g., common name, fully-qualified domain name, IP address), and other attributes to be put in the PKC, followed by the CA (possibly with help from the RA) verifying in accordance with its Certification Practice Statement (CPS) that the name and other attributes are correct. 2.4.2 Initialization Initialization is when the subject (e.g., the user or client system) gets the values needed to begin communicating with the PKI. For example, initialization can involve providing the client system with the public key or PKC of a CA, or generating the client system's own public-private key pair. 2.4.3 Certification This is the process in which a CA issues a PKC for a subject's public key, and returns that PKC to the subject or posts that PKC in a repository. Aresenault, Turner November, 2000 12 Internet Draft PKIX Roadmap May, 2000 2.4.4 Key Pair Recovery In some implementations, key exchange or encryption keys will be required by local policy to be "backed up," or recoverable in case the key is lost and access to previously-encrypted information is needed. Such implementations can include those where the private key exchange key is stored on a hardware token that can be lost or broken, or when a private key file is protected by a password which can be forgotten. Often, a company is concerned about being able to read mail encrypted by or for a particular employee when that employee is no longer available because she is ill or no longer works for the company. In these cases, the user's private key can be backed up by a CA or by a separate key backup system. If a user or her employer needs to recover these backed up key materials, the PKI must provide a system that permits the recovery without providing an unacceptable risk of compromise of the private key. 2.4.5 Key Generation Depending on the CA's policy, the private-public key pair can either be generated by the user in his local environment, or generated by the CA. In the latter case, the key material may be distributed to the user in an encrypted file or on a physical token (e.g., a smart card or PC card). 2.4.6 Key Update All key pairs need to be updated regularly (i.e., replaced with a new key pair) and new PKCs issued. This will happen in two cases: normally, when a key has passed its maximum usable lifetime; and exceptionally, when a key has been compromised and must be replaced. 2.4.6.1 Key Expiry In the normal case, a PKI needs to provide a facility to gracefully transition from a PKC with an existing key to a new PKC with a new key. This is particularly true when the key to be updated is that of a CA. Users will know in advance that the key will expire on a certain date; the PKI, working together with PKC-using applications, should allow for appropriate keys to work before and after the transition. There are a number of ways to do this; see [CMP] for an example of one. 2.4.6.2 Key Compromise In the case of a key compromise, the transition will not be "graceful" in that there will be an unplanned switch of PKCs and keys; users will not have known in advance what was about to happen. Aresenault, Turner November, 2000 13 Internet Draft PKIX Roadmap May, 2000 Still, the PKI must support the ability to declare that the previous PKC is now invalid and shall not be used, and to announce the validity and availability of the new PKC. Note: compromise of a private key associated with a Root CA is catastrophic for users relying on that Root CA. If a Root CA's private key is compromised, that CA's PKC must be revoked and all PKCs subordinate to it must also be revoked. Until such time as the Root CA has been issued a new PKC and the Root CA issues PKCs to users relying upon it, users relying on that Root CA are cut off from the rest of the system, as there is no way to develop a valid certification path back to a trusted node. Further, users will likely have to be notified by out-of-band mechanisms about the change in CA keys. If the old key is compromised, any "update" message telling subordinates to switch to a new key could have come from an attacker in possession of the old key, and could point to a new public key for which the attacker already has the private key. It is possible to have anticipated this event, and "pre-placed" replacement Root CA keys with all relying parties, but some secure, out-of-band mechanism will have to be used to tell users to make the switch, and this will only help if the replacement key has not been compromised. Additionally, once the Root CA is brought back up with a new key, it will likely be necessary to re-issue PKCs, signed with the new key, to all subordinate users, since their current PKC would be signed with a now-revoked key. 2.4.7 Cross-certification A cross-certificate is a PKC issued by one CA to another CA which contains a public CA key associated with the private CA signature key used for issuing PKCs. Typically, a cross-certificate is used to allow client systems or end entities in one administrative domain to communicate securely with client systems or end users in another administrative domain. Use of a cross-certificate issued from CA_1 to CA_2 allows user Alice, who trusts CA_1, to accept a PKC used by Bob, which was issued by CA_2. Cross-certificates can also be issued from one CA to another CA in the same administrative domain, if required. Cross-certificates can be issued in only one direction, or in both directions, between two CA's. That is, just because CA_1 issues a cross-certificate for CA_2, CA_2 does not have to issue a cross- certificate for CA_1. 2.4.8 Revocation When a PKC is issued, it is expected to be in use for its entire validity period. However, various circumstances may cause a PKC to Aresenault, Turner November, 2000 14 Internet Draft PKIX Roadmap May, 2000 become invalid prior to the expiration of the validity period. Such circumstances include change of name, change of association between subject and CA (e.g., an employee terminates employment with an organization), and compromise or suspected compromise of the corresponding private key. Under such circumstances, the CA needs to revoke the PKC. X.509 defines one method of PKC revocation. This method involves each CA periodically issuing a signed data structure called a certificate revocation list (CRL). A CRL is a time stamped list identifying revoked PKCs that is signed by a CA and made freely available in a public repository. Each revoked PKC is identified in a CRL by its PKC serial number. When a certificate-using system uses a PKC, that system not only checks the PKC signature and validity but also acquires a suitably recent CRL and checks that the PKC serial number is not on that CRL. The meaning of "suitably recent" may vary with local policy, but it usually means the most recently issued CRL. A CA issues a new CRL on a regular periodic basis (e.g., hourly, daily, or weekly). CA's may also issue CRLs aperiodically. For example, if an important key is deemed compromised, the CA may issue a new CRL to expedite notification of that fact, even if the next CRL does not have to be issued for some time. (A problem of aperiodic CRL issuance is that end-entities may not know that a new CRL has been issued, and thus may not retrieve it from a repository.) An entry is added to the CRL as part of the next update following notification of revocation. An entry may be removed from the CRL after appearing on one regularly scheduled CRL issued beyond the revoked PKC's validity period. Leaving the revoked PKC on the CRL for this extra period allows for PKCs that are revoked prior to issuing a new CRL and whose invalidity date falls before the CRL issuing time to be accounted for. If the revoked PKC is not retained on the CRL for this extra period then the possibility arises that a revoked PKC may never appear on a CRL. An advantage of the CRL revocation method is that CRLs may be distributed by exactly the same means as PKCs themselves, namely, via untrusted communications and server systems. One limitation of the CRL revocation method, using untrusted communications and servers, is that the time granularity of revocation is limited to the CRL issue period. For example, if a revocation is reported now, that revocation will not be reliably notified to certificate-using systems until the next CRL is issued, which may be up to one hour, one day, or one week depending on the frequency that the CA issues CRLs. As with the X.509 v3 PKC format, in order to facilitate interoperable implementations from multiple vendors, the X.509 v2 CRL format needed to be profiled for Internet use. This was done as Aresenault, Turner November, 2000 15 Internet Draft PKIX Roadmap May, 2000 part of [FORMAT]. However, PKIX does not require CAs to issue CRLs. On-line methods of revocation notification may be applicable in some environments as an alternative to the X.509 CRL. PKIX defines a few protocols that support on-line checking. [OCSP], [DVCS], and [SCVP] all support on-line checking of the status of PKCs. On-line revocation checking may significantly reduce the latency between a revocation report and the distribution of the information to relying parties. Once the CA accepts the report as authentic and valid, any query to the on-line service will correctly reflect the PKC validation impacts of the revocation. However, these methods impose new security requirements; the PKC validator must trust the on-line validation service while the repository does not need to be trusted. 2.4.9 Certificate and Revocation Notice Distribution and Publication As alluded to in sections 2.1 and 2.5.8 above, the PKI is responsible for the distribution of PKCs and PKC revocation notices (whether in CRL form or in some other form) in the system. "Distribution" of PKCs includes transmission of the PKC to its owner, and may also include publication of the PKC in a repository. "Distribution" of revocation notices may involve posting CRLs in a repository, transmitting them to end-entities, or forwarding them to on-line responders. 3 PMI 3.1 Theory Many systems use the PKC to perform identity based access control decisions (i.e., the identity may be used to support identity-based access control decisions after the client proves that it has access to the private key that corresponds to the public key contained in the PKC). For many systems this is sufficient, but increasingly systems are beginning to find that rule-based and role-based access control is required. These forms of access control decisions require additional information that is normally not included in a PKC, because the lifetime of the information is much shorter than the lifetime of the public-private key pair. To support binding this information to a PKC the Attribute Certificate (AC) was defined in ANSI and later incorporated into ITU-T Recommendation X.509. The AC format allows any additional information to be bound to a PKC by including, in a digitally signed data structure, a reference back to one specific PKC or to multiple PKCs, useful when the subject has the same identity in multiple PKCs. Additionally, the AC can be constructed in such a way that it is only useful at one or more particular targets (e.g., web server, mail host). Users of a PMI must be confident that the identity purporting to posses an attribute has the right to possess that attribute. This Aresenault, Turner November, 2000 16 Internet Draft PKIX Roadmap May, 2000 confidence may be obtained through the use of PKCs or it may be configured in the AC-using system. If PKCs are used the party making the access control decision can determine "if the AC issuer is trusted to issue ACs containing this attribute." ACs are complicated by the fact that they can point to an identity which may be in more than one PKC. If the RP has multiple certification chains to chose from then it has to make the determination as to which certification path to trust. Regardless, before the RP uses the AC it must make sure that a path from the AC back to its trust point is valid. 3.2 Architectural Model A Privilege Management Infrastructure, or PMI, is defined as: The set of hardware, software, people, policies and procedures needed to create, manage, store, distribute, and revoke ACs. A PMI consists of five types of components [AC]: - Attribute Authorities (AAs), or Attribute Certificate Issuer, that issue and revoke ACs; Note: AAs may implicitly revoke ACs by using very short validity periods. - Attribute Certificate Users that parses or processes an AC; - Attribute Certificate Verifiers that check the validity of an AC and then makes use of the result; - Clients that request an action for which authorization checks are to be made; - Repositories that store and make available certificates and Certificate Revocation Lists (CRLs). Figure 2 is an example of the exchanges that may involve ACs. Aresenault, Turner November, 2000 17 Internet Draft PKIX Roadmap May, 2000 +--------------+ | | Server Acquisition | AC Issuer +----------------------------+ | | | +--+-----------+ | | | | Client | | Acquisition | | | +--+-----------+ +--+------------+ | | AC "push" | | | Client +-------------------------+ Server | | | (part of app. protocol) | | +--+-----------+ +--+------------+ | | | Client | Server | Lookup +--------------+ | Lookup | | | | +---------------+ Repository +---------+ | | +--------------+ Figure 2: AC Exchanges 3.3 Attribute Certificates ANSI X.9 first published the Attribute Certificate format. It defined the standard version 1 (v1) AC format. They later created a version 2 (v2) AC by modifying the owner field to point to either an identity or a specific PKC and including an extension mechanism. In 1997 ITU-T included it in [X.509]. ANSI, ITU-T, and IETF have developed standard extensions and attributes for use in the v2 ACs. Extensions can convey such information as an audit identity that can be used to create an audit trail, identity specific servers and services where the AC owner can use their AC, point to a specific issuer's key, and indicate where to get revocation information. The AC is generic enough to allow any attribute to be conveyed in the data structure. Without limiting the attributes and extensions that can be included in an AC it is very difficult to develop interoperable implementations for Internet use. It is the goal of PKIX to specify a profile for the Internet, electronic mail, IPSec applications, etc. Environments with additional requirements may build on this profile or replace it. The [AC] profile constrains many of the options allowed in X.509. For example, the AC chains, like their PKC brethren, are allowed by X.509, but the AC profile recommends that they not be supported in to simplify the implementation. Aresenault, Turner November, 2000 18 Internet Draft PKIX Roadmap May, 2000 4 PKIX Documents This section identifies the five different areas in which the PKIX working group has developed documents. The first area involves profiles of the X.509 v3 PKC standards and the X.509 v2 CRL standards for the Internet. The second area involves operational protocols, in which relying parties can obtain information such as PKCs or PKC status. The third area covers management protocols, in which different entities in the system exchange information needed for proper management of the PKI. The fourth area provides information about certificate policies and certificate practice statements, covering the areas of PKI security not directly addressed in the rest of PKIX. The fifth area deals with providing time stamping and data certification services, which can be used to build such services as non-repudiation. 4.1 Profiles An X.509 v3 PKC is a very complex data structure. It consists of basic information fields, plus a number of optional extensions. Many of the fields and numerous extensions can take on a wide range of options. This provides an enormous degree of flexibility, which allows the X.509 v3 PKC format to be used with a wide range of applications in a wide range of environments. Unfortunately, this same flexibility makes it extremely difficult to produce independent implementations that will actually interoperate with one another. In order to build an Internet PKI based on X.509 v3 PKCs, the PKIX working group had to develop a profile of the X.509 v3 PKC specification. A profile of the X.509 v3 PKC specification is a description of the contents of the PKC and which extensions must be supported, which extensions may be supported, and which extensions may not be supported. [FORMAT] provides such a profile of X.509 v3 PKC for the Internet PKI. In addition, [FORMAT] suggests ranges of values for many of the extensions. [FORMAT] also provides a profile for Version 2 CRLs for use in the Internet PKI. CRLs, like PKCs, have a number of optional extensions. In order to promote interoperability, it is necessary to constrain the choices an implementor supports. In addition to profiling the PKC and CRL formats, it is necessary to define particular Object Identifiers (OIDs) for certain encryption algorithms, because there are a variety of OIDs registered for some algorithm suites. PKIX has produced two documents ([RPKDS] and [KEA]) which provide guidance on the proper implementation of specific algorithms. Some countries are in a process of updating their legal frameworks in order to regulate and incorporate recognition of signatures in Aresenault, Turner November, 2000 19 Internet Draft PKIX Roadmap May, 2000 electronic form. Many of these frameworks introduce certain basic requirements on PKCs, often termed Qualified Certificates, supporting these types of "legal" signatures. Partly as a result of this there is a need for a specific PKC profile providing standardized support for certain related issues such as a common structure for expressing unambiguous identities of certified subjects (unmistakable identity). In December 1998, PKIX adopted as a work item the development of a refinement of [RFC2459] that further profiles PKIX PKC into qualified certificates. This work is reflected in [QC]. Like the X.509 v3 PKC, the AC also a very complex data structure consisting of basic information fields, a number of optional extensions, and a virtually unlimited number of attributes. Again, many of the fields, extensions, and attributes can take on a wide range of options allowing an enormous degree of flexibility. In order to build an Internet PMI based on ACs, the PKIX working group had to develop a profile of the AC. The AC profile is description of the contents of the AC, the allowed and required extensions, and applicable attributes. [AC] provides such a profile of the X.509 v2 AC. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Certificate and CRL Profile (RFC 2459) DESCRIPTION: This document describes the profiles to be used for X.509 v3 PKCs and version 2 CRLs by Internet PKI participants. The profiles include the identification of ISO/IEC/ITU and ANSI extensions which may be useful in the Internet PKI. The profiles are presented in the 1988 Abstract Syntax Notation One (ASN.1) rather than the 1994 syntax used in the ISO/IEC/ITU standards. Would-be PKIX implementors and developers of certificate-using applications should start with [FORMAT] to ensure that their systems will be able to interoperate with other users of the PKI. [FORMAT] also includes path validation procedures. The procedures presented are based upon the ISO/IEC/ITU definition, but the presentation assumes one or more self-signed trusted CA PKCs. The procedures are provided as examples only. Implementations are not required to use the procedures provided; they may implement whichever procedures are efficient for their situation. However, implementations are required to derive the same results as the example procedures. STATUS: Proposed Standard. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Representation of Key Exchange Algorithm (KEA) Keys in Internet X.509 Public Key Infrastructure Certificates (RFC 2528) Aresenault, Turner November, 2000 20 Internet Draft PKIX Roadmap May, 2000 DESCRIPTION: This document provides Object Identifiers (OIDs) and other guidance for IPKI users who use the Key Exchange Algorithm (KEA). It profiles the format and semantics of the subjectPublicKeyInfo field and the keyUsage extension in X.509 v3 PKCs containing KEA keys. This document should be used by anyone wishing to support KEA; others who do not support ECDSA are not required to comply with it. STATUS: Informational RFC. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Qualified Certificates DESCRIPTION: This document profiles the format for and defines requirements on information content in a specific type of PKCs called Qualified Certificates. A "Qualified Certificate" is a PKC that is issued to a natural person (i.e., a living human being); contains an unmistakable identity based on a real name or a pseudonym of the subject; exclusively indicates non-repudiation as the key usage for the certificate's public key; and meets a number of requirements. STATUS: WG Last Call. DOCUMENT TITLE: An Internet Attribute Certificate Profile for Authorizations DESCRIPTION: This document profiles the format for an defines requirements on X.509 v2 ACs to support authorization services required by various Internet protocols (TLS, CMS, and the consumers of CMS, etc.). Two profiles are defined in support of basic authorizations and in support of services that can operate via proxy. STATUS: Under WG review. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Certificate and CRL Profile DESCRIPTION: This document is an update of [FORMAT]. STATUS: Under WG review. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Permanent Identifier DESCRIPTION: This document defines a new form of name, the permanent identifier, which is a name assigned by an organization, unique within that organization, that singles out a particular individual fro all other individuals. The permanent identifier is an optional feature that may be used by a CA to indicate that the certificate Aresenault, Turner November, 2000 21 Internet Draft PKIX Roadmap May, 2000 relates to the same individual even if the name or the affiliation of that individual has changed. The permanent identifier is important in the context of access control and of non-repudiation. STATUS: Under WG review. DOCUMENT TITLE: Representation of Public Keys and Digital Signatures in Internet X.509 Public Key Infrastructure Certificates DESCRIPTION: This document specifies algorithm identifiers and encoding formats for the representation of cryptographic algorithms keys, associated parameters, and digital signatures in Internet PKI and X.509 certificates and certificate revocation lists. This draft does not attempt to define the cryptographic algorithms themselves. It instead references other appropriate standards. This draft incorporates information from Section 7 of RFC 2459 and the Internet-Draft _Representation of Elliptic Curve Digital Signature Algorithm (ECDSA) Keys in Internet X.509 Public Infrastructure Certificates._ STATUS: Under WG review. 4.2 Operational Protocols Operational protocols are required to deliver certificates and CRLs (or other certificate status information) to certificate using systems. Provision is needed for a variety of different means of certificate and CRL delivery, including distribution procedures based on DNS, LDAP, HTTP, FTP, and X.500. A limited protocol to support AC retrieval has also been documented. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv2 (RFC 2559) DESCRIPTION: This document describes the use of LDAPv2 as a protocol for PKI elements to publish and retrieve certificates and CRLs from a repository. [LDAPv2] is a protocol that allows publishing and retrieving of information. STATUS: Proposed Standard. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure LDAPv2 Schema (RFC 2587) DESCRIPTION: This document defines a minimal schema necessary to support the use of LDAPv2 for PKC and CRL retrieval and related functions for PKIX. This document supplements [LDAPv2] by identifying the PKIX-related attributes that must be present. STATUS: Proposed Standard. Aresenault, Turner November, 2000 22 Internet Draft PKIX Roadmap May, 2000 DOCUMENT TITLE: X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP (RFC 2560) DESCRIPTION: This document specifies a protocol useful in determining the current status of a certificate without the use of CRLs. A major complaint about certificate-based systems is the need for a relying party to retrieve a current CRL as part of the certificate validation process. Depending on the size of the CRL, this can cause severe problems for bandwidth-challenged devices. Depending on the frequency of CRL issuance, this can also cause timeliness problems. (E.g., if CRLs are only published weekly, with no interim releases, a certificate could actually have been revoked for just short of one week without it being on the current CRL, and thus improper use of that certificate could still be occurring.) OCSP attempts to address those problems. It provides a mechanism whereby a relying party identifies one or more certificates to an approved OCSP "responder", and the responder sends back the current status of the certificate(s) - e.g., "revoked", "notRevoked", "unknown". This can dramatically reduce the bandwidth required to transmit revocation status - a relying party does not have to retrieve a CRL of many entries to check the status of one certificate. It can (although it is not guaranteed to) improve the timeliness of revocation notification, and thus reduce the window of opportunity for someone trying to use a revoked certificate. STATUS: Proposed Standard. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Operational Protocols: FTP and HTTP (RFC 2585) DESCRIPTION: This document describes the use of the File Transfer Protocol (FTP) and the Hyper-text Transfer Protocol (HTTP) to obtain certificates and CRLs from PKI repositories. STATUS: Proposed Standard. DOCUMENT TITLE: Diffie-Hellman Proof-of-Possession Algorithms (RFC 2875) as the basis of the signature. It allows Diffie-Hellman, a key agreement algorithm, to be used instead of requiring that the public key being requested for certification correspond to an algorithm that is capable of signing and encrypting. The first algorithm generates a signature for a specific verifier where the signer and recipient have the same public key parameters. The second algorithm generates a signature for arbitrary verifiers where the signer and recipient do not have the same public key parameters. STATUS: Proposed Standard. Aresenault, Turner November, 2000 23 Internet Draft PKIX Roadmap May, 2000 DOCUMENT TITLE: Limited Attribute Certificate Acquisition Protocol DESCRIPTION: This document specifies a deliberately limited protocol for requesting ACs from a server. It is intended to be complementary to the use of LDAP for AC retrieval, covering those cases where use of an LDAP server is not suitable due to the type of authorization model being employed. STATUS: Under WG review. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Additional Schema for PKIs and PMIs DESCRIPTION: This document describes the Lightweight Directory Access Protocol (LDAP) schema features that, in addition to RFC 2587, are needed to support a Privilege Management Infrastructure and a Public Key Infrastructure. It also describes the schema for the storage and matching of attribute certificates and revocation lists in an LDAP directory server. This Internet Draft supplements, rather than revokes, the contents of RFC 2587. STATUS: Under WG review. DOCUMENT TITLE: Simple Certificate Validation Protocol (SCVP) DESCRIPTION: The SCVP protocol allows a client to offload certificate handling to a server. The server can give a variety of valuable information about the certificate, such as whether or not the certificate is valid, a chain to a trusted root, and so on. STATUS: Under WG review. DOCUMENT TITLE: Online Certificate Status Protocol, Version 2 DESCRIPTION: This document is an update to RFC 2560. STATUS: Under WG review. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Repository Locator Service DESCRIPTION: This document defines a PKI repository locator service, which enable certificate-using systems to locate PKI repositories based on a domain name, to identify the protocols that can be used to access the repository, and obtain addresses for the servers that host the repository service. The Internet Draft defines SRV records for a PKI repository locator service to enable PKI clients to obtain Aresenault, Turner November, 2000 24 Internet Draft PKIX Roadmap May, 2000 necessary information to connect to a domain's repository. It also includes the definition of a SRV RR format for this service. STATUS: Under WG review. DOCUMENT TITLE: Delegated Path Validation DESCRIPTION: This specification builds on the Online Certificate Status Protocol (OSCP) framework's extensibility by defining an Internet-standard extension to OCSP that can be used to fully delegate all path validation processing to an OCSP server. The Delegated Path Validation (DVP) extension to OCSP described in this document accomplishes the task of locating the certificate validation process within a trusted server. This in turn reduces the technical footprint of certificate-using applications and may ease the integration of certificate path processing with other authorized data. STATUS: Under WG review. DOCUMENT TITLE: Delegated Path Discovery with OCSP DESCRIPTION: This document establishes an Internet-standard extension that enables relying-party software to acquire certification path data from an OCSP server rather than replicate the same functionality. This Delegated Path Discovery (DPD) extension delegates the acquisition process to a separate server, thereby greatly simplifying and reducing the size of public key based credential validation systems or other relying party software. The DPD extension also enables such software to select from among various trust paths in the event of the existence of multiple paths. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv3 DESCRIPTION: This document describes the features of the Lightweight Directory Access Protocol (LDAP) v3 that are needed in order to support a public key infrastructure based on x.509 certificates and certificate revocation lists. Because LDAPv2 has a number of deficiencies that may limit its usefulness in certain circumstances, the IETF has ceased its standardization and replaced it with LDAPv3. This document describes the features of LDAPv3 that are necessary, not required, or are optional for servers to support a PKI based on X.509. STATUS: Under WG Review. 4.3 Management Protocols Aresenault, Turner November, 2000 25 Internet Draft PKIX Roadmap May, 2000 Management protocols are required to support on-line interactions between PKI user and management entities. For example, a management protocol might be used between a CA and a client system with which a key pair is associated, or between two CAs which cross-certify each other. A management protocol can be used to carry user or client system registration information, or a request for revocation of a certificate. There are two parts to a "management protocol." The first is the format of the messages that will be sent, and the second is the actual protocol that governs the transmission of those messages. Originally, the PKIX working group developed two documents, [CRMF] and certificate management message format (CMMF), that together described the necessary set of message formats, and two other documents, [CMP] and [CMC], that described protocols for exchanging those messages. However, the message formats defined in the CMMF draft were inserted into both [CMP] and [CMC], and thus the (CMMF) draft has been dropped as a PKIX document. DOCUMENT TITLE: Certificate Management Messages over CMS (RFC 2797) DESCRIPTION: This document defines the means by which PKI clients and servers may exchange PKI messages when using S/MIME's Cryptographic Message Syntax [CMS] as a transaction envelope. CMC supports the certificate request message body specified in the Certificate Request Message Format [CRMF] documents, as well as a variety of other certificate management messages. The primary purpose of this specification is to allow the use of an existing protocol (S/MIME) as a PKI management protocol, without requiring the development of an entirely new protocol such as CMP. A secondary purpose is to codify in IETF standards the current industry practice of using PKCS-10 messages [PKCS10] for certificate requests. STATUS: Proposed Standard. DOCUMENT TITLE: Internet X.509 Certificate Request Message Format (RFC 2511) DESCRIPTION: CRMF specifies a format recommended for use whenever a relying party is requesting a certificate from a CA or requesting that an RA help it get a certificate. The request message format was needed before many of the other message formats had to be finalized, and so it was put into a separate document. This document only specifies the format of a message. Specification of a protocol to transport that message is beyond the scope of CRMF. STATUS: Proposed Standard. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Certificate Management Protocols (RFC 2510) Aresenault, Turner November, 2000 26 Internet Draft PKIX Roadmap May, 2000 DESCRIPTION: This document specifies a new protocol specifically developed for the purpose of transporting messages like those specified in CRMF among PKI elements. In general, CMP will be used in conjunction with CRMF, and will then be run over a transfer service (e.g., S/MIME, HTTP) to provide a complete PKI management service. STATUS: Proposed Standard. DOCUMENT TITLE: Certificate Management Protocols DESCRIPTION: This document is an update of [CMP]. STATUS: Under WG review. DOCUMENT TITLE: Transport Protocols for CMP DESCRIPTION: This document describes how to layer Certificate Management Protocols (CMP) over various transport protocols. In Section 5 of RFC 2510, the process of sending DER-encoded CMP messages directly over various protocols is specified. Implementers found that the protocol was lacking in several regards. This document is an effort to enhance the protocol now in order to avoid interoperability conflicts later and to make the transport section a separate draft. STATUS: Under WG review. 4.4 Policy Outline As mentioned before, profiling certificates and specifying operational and management protocols only addresses a part of the problem of actually developing and implementing a secure PKI. What is also needed is the development of a certificate policy (CP) and certification practice statement (CPS), and then following those documents. The CP and CPS should address physical and personnel security, subject identification requirements, revocation policy, and a number of other topics. [POLPROC] provides a framework for certification practice statements. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework (RFC 2527) DESCRIPTION: As noted before, the specification and implementation of certificate profiles, operational protocols, and management protocols is only part of building a PKI. Equally as important - if not more important - is the development and enforcement of a certificate security policy, and a Certification Practice Statement (CPS). The purpose of this document (PKIX-4) is to establish a clear Aresenault, Turner November, 2000 27 Internet Draft PKIX Roadmap May, 2000 relationship between certificate policies and CPSs, and to present a framework to assist the writers of certificate policies or CPSs with their tasks. In particular, the framework identifies the elements that may need to be considered in formulating a certificate policy or a CPS. The purpose is not to define particular certificate policies or CPSs, per se. STATUS: Informational RFC. 4.4 Time Stamping and Data Certification In late 1998, the PKIX working group began two efforts that were not in the original working group charter, but were deemed to be appropriate because they described infrastructure services that could be used to provide desired security services. The first of these is time stamping, described in [TSP]. Time stamping is a service in which a trusted third party - a Time Stamp Authority, or TSA - signs a message, in order to provide evidence that it existed prior to a given time. Time stamping provides some support for non- repudiation, in that a user cannot claim that a transaction was later forged after compromise of a private key, because the existence of the signed time stamp indicates that the transaction in question could not have been created after the indicated time. [TSP] also defines the role of a Temporal Data Authority, or TDA. A TDA is a Trusted Third Party (TTP) that creates a temporal data token. This temporal data token associates a message with a particular event and provides supplementary evidence for the time included in the time stamp token. For example, a TDA could associate the message with the most recent closing value of the Dow Jones Average. The temporal data with which the message is associated should be unpredictable in order to prevent forward dating of tokens. The third iteration of the draft removed support for TDAs as no one in the WG expressed a requirement for the role. At the Minneapolis IETF meeting, it was disclosed that the materials covered in [TSP] draft may be covered by patent(s). Use of the material covered by the patent(s) in question has not be granted by the patent holder. Thus, anyone interested in implementing the PKIX [TSP] draft must be aware of this intellectual property issue. The second new effort is the definition of a Data Validation and Certification Server, or DVCS, protocol [DVCS]. A DVCS is a Trusted Third Party that verifies the correctness of specific data submitted to it. It also allows the delegation of trustworthy servers and allows for chaining of verifications. This services offered by DVCS are different from the TSP service in that a TSA will not attempt to parse or verify a message sent to it for certification; instead, it will merely append a reliable indication of the current time, and sign the resulting string-of- Aresenault, Turner November, 2000 28 Internet Draft PKIX Roadmap May, 2000 bits. This offers an indication that the given string-of-bits existed at a specified time; it does not offer any indication of the correctness or relevance of that string of bits. By contrast, the DVCS certifies possession of data or the validity of another entity's signature. As part of this, the DVCS verifies the mathematical correctness of the actual signature value contained in the request and also checks the full certification path from the signing entity to a trusted point (e.g., the DVCS's CA, or the Root CA in a hierarchy). The DVCS supports non-repudiation in two ways. First, it provides evidence that a signature or PKC was valid at the time indicated in the token. The token can be used even after the corresponding PKC expires and its revocation information is no longer available on CRLs (for example). Second, the production of a data certification token in response to a signed request for certification of another signature or PKC also provides evidence that due diligence was performed by the requester in validating the signature or PKC. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Time Stamp Protocols DESCRIPTION: This document defines the specification for a time stamp service. It defines a Time Stamp Authority, or TSA, a trusted third party who maintains a reliable time service. When the TSA receives a time stamp request, it appends the current time to the request and signs it into a token to certify that the original request existed prior to the indicated time. This helps provide non- repudiation by preventing someone (either a legitimate user or an attacker who has successfully compromised a key) from "back-dating" a transaction. It also makes it more difficult to challenge a transaction by asserting that it has been back-dated. Note that the TSA does not provide any data parsing service; that is, the TSA does not attempt to validate that which it signs; it merely regards it as a string of bits whose meaning is unimportant, but existence is vital. STATUS: In WG Last. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Data Certification Server Protocols DESCRIPTION: This document defines a data validation and certification service, or DVCS, which can be used to certify both the existence and correctness of a message or signature. In contrast to the time stamp service described above, the DVCS certifies possession of data or the validity of another entity's signature. As part of this, the DVCS verifies the mathematical correctness of the actual signature value contained in the request and also checks the full certification path from the signing entity to a trusted point (e.g., the DVCS's CA, or the Root CA in a hierarchy). Aresenault, Turner November, 2000 29 Internet Draft PKIX Roadmap May, 2000 The DVCS supports non-repudiation in two ways. First, it provides evidence that a signature or public key certificate was valid at the time indicated in the token. The token can be used even after the corresponding public key certificate expires and its revocation information is no longer available on CRLs (for example). Second, the production of a data certification token in response to a signed request for certification of another signature or public key certificate also provides evidence that due diligence was performed by the requester in validating the signature or public key certificate. STATUS: Under WG review. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Technical Requirements for a non-Repudiation Service DESCRIPTION: This document describes those features of a service which processes signed documents which must be present in order for that service to constitute a "technical non-repudiation" service. A technical non-repudiation service must permit an independent verifier to determine whether a given signature was applied to a given data object by the private key associated with a given valid certificate, at a time later than the signature. The features of a technical non-repudiation service are expected to be necessary for a full non-repudiation service, although they may not be sufficient. This document is intended to clarify the definition of the "non- repudiation" service in RFC 2459. It should thus serve as a guide to when the nonRepudiation bit of the keyUsage extension should be set and to when a Certificate Authority is required to archive CRL's. STATUS: Under WG Review. 4.5 Expired Drafts There have been numerous drafts that have been produced by the working group that for some reason or another did not make it to RFC status. The following is a list of these drafts. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Certificate Management Message Formats DESCRIPTION: This document contained the formats for a series of messages important in certificate and PKI management. These messages let CA's, RA's, and relying parties communicate with each other. Note that this document only specified message formats; it did not specify a protocol for transferring messages. That protocol could have be either CMP or CMC, or perhaps another custom protocol. Aresenault, Turner November, 2000 30 Internet Draft PKIX Roadmap May, 2000 STATUS: Work has been discontinued. All useful information from it has been moved into [CMP] and [CMC]. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Enhanced CRL Distribution Options (OpenCDP) DESCRIPTION: This document proposed an alternative to the CRL Distribution Point (CDP) approach documented in [FORMAT]. OCDP separates the CRL location function from the process of certificate and CRL validation, and thus claimed some benefits over the CDP approach. STATUS: Work has been discontinued, as all useful information has been incorporated into [X.509]. An updated [FORMAT] RFC should profile the use of the CDP approach. DOCUMENT TITLE: Internet Public Key Infrastructure: Caching the Online Certificate Status Protocol DESCRIPTION: To improve the degree to which it can scale, OCSP allows caching of responses - e.g., at intermediary servers, or even at the relying party's end system. This document described how to support OCSP caching at intermediary servers. STATUS: Work has been discontinued. DOCUMENT TITLE: WEB based Certificate Access Protocol-- WebCAP/1.0 DESCRIPTION: This document specified a set of methods, headers, and content-types ancillary to HTTP/1.1 to publish, retrieve X.509 PKCs and Certificate Revocation Lists. This protocol also facilitated determining current status of a digital certificate without the use of CRLs. This protocol defined new methods, request and response bodies, error codes to HTTP/1.1 protocol for securely publishing, retrieving, and validating certificates across a firewall. STATUS: Expired. DOCUMENT TITLE: Basic Event Representation Token DESCRIPTION: This document defined a finite method of representing a discrete instant in time as a referable event. The Basic Event Representation Token (BERT) was a light-weight binary token designed for use in large numbers over short periods of time. The tokens contained only a single instance of an event stamp and the trust process is referenced against an external reference. STATUS: Expired. Aresenault, Turner November, 2000 31 Internet Draft PKIX Roadmap May, 2000 DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Extending trust in non repudiation tokens in time DESCRIPTION: This document described a method to maintain the trust in a token issued by a non-repudiation Trusted Third Party (NR TTP) (DVCS/TSA/TDA) after the key initially used to establish trust in the token expires. The document described a general format for storage of DVCS/TS/TDA tokens for this purpose, which establishes a chain of custody for the data. STATUS: Expired. DOCUMENT TITLE: Internet X.509 Public Key Infrastructure Representation of Elliptic Curve Digital Signature Algorithm (ECDSA) Keys and Signatures in Internet X.509 Public Key Infrastructure Certificates DESCRIPTION: This document provided Object Identifiers (OIDs) and other guidance for IPKI users who use the Elliptic Curve Digital Signature Algorithm (ECDSA). It profiled the format and semantics of the subjectPublicKeyInfo field and the keyUsage extension in X.509 v3 PKCs containing ECDSA keys. This document should have been used by anyone wishing to support ECDSA; others who do not support ECDSA are not required to comply with it. STATUS: Finished WG Last Call. Merged into Representation of Public Keys and Digital Signatures in Internet X.509 Public Key Infrastructure Certificates. DOCUMENT TITLE: A String Representation of General Name DESCRIPTION: This document specified a string format for the ASN.1 construct GeneralName. STATUS: Expired. DOCUMENT TITLE: OCSP Extensions DESCRIPTION: This document defined Internet-standard extensions to OCSP that enable a client to delegate processing of certificate acceptance functions to a trusted server. The client could control the degree to which delegation takes place. In addition limited support was provided for delegating authorization decisions. STATUS: The work has been incorporated into [DPV] and [DPD]. DOCUMENT TITLE: Using HTTP as a Transport Protocol for CMP DESCRIPTION: This document described how to layer [CMP] over [HTTP]. A simple method for doing so was described in [CMP], but that method does not accommodate a polling mechanism, which may be required in Aresenault, Turner November, 2000 32 Internet Draft PKIX Roadmap May, 2000 some environments. This document specified an alternative method that used the polling protocol defined in [CMP]. A new Content-Type for messages was also defined. STATUS: The work has been merged into [TPCMP]. DOCUMENT TITLE: Using TCP as a Transport Protocol for CMP DESCRIPTION: This document described how to layer Certificate Management Protocols [CMP] over [TCP]. A method for doing so is described in [CMP], but that method did not solve problems encountered by implementors. This document specified an enhanced method which extends the protocol. STATUS: The work has been merged into [TPCMP]. 5 Implementation Advice This section provides guidance to those who would implement various parts of the PKIX suite of documents. The topics discussed in this section engendered significant discussion in the working group, and there, was at times, either widespread disagreement or widespread misunderstanding of them. Thus, this discussion is provided to help readers of the PKIX document set understand these issues, in the hope of fostering greater interoperability among eventual PKIX implementations. 5.1 Names PKIX has been referred to as a "name-centric" PKI because the PKCs associate public keys with names of entities. Each PKC contains at least one name for the owner of a particular public key. The name can be an X.500 distinguished name, contained in the subjectDN field of the PKC. There can also be names such as RFC822 e-mail addresses, DNS domain names, and uniform resource identifiers (URIs) associated with the key; these attributes are kept in the subjectAltName extension of the PKC. A PKC must contain at least one of these name forms, it may contain multiple forms if deemed appropriate by the CA based on the intended usage of the PKC. 5.1.1 Name Forms There are two possible places to put a name in an X.509 v3 PKC. One is the subject field in the base PKC (often called the "Distinguished Name" or "DN" field), and the other is in the subjectAltName extension. 5.1.1.1 Distinguished Names According to [FORMAT], a CA's PKC must have a non-null value in the subject field, while EE's PKCs are permitted to have an empty Aresenault, Turner November, 2000 33 Internet Draft PKIX Roadmap May, 2000 subject field. If a PKC has a non-null subject field, it MUST contain an X.500 Distinguished Name. 5.1.1.2 SubjectAltName Forms In addition to the DN, a PKIX PKC may have one or more values in the subjectAltName extension. The subjectAltName extension allows additional identities to be bound to the subject of the PKC (e.g., it allows "umbc.edu" and "130.85.1.3" to be associated with a particular subject, as well as "C=US, O=University of Maryland, L=Baltimore, CN=UMBC"). X.509- defined options for this extension include: Internet electronic mail addresses; DNS names; IP addresses; and URIs. Other options can exist, including locally-defined name forms. A single subjectAltName extension can include multiple name forms, and multiple instances of each name form. Whenever such alternate name forms are to be bound into a PKC, the subjectAltName (or issuerAltName) extension must be used. It is technically possible to embed an alternate name form in the subject field. For example, one could make a DN contain an IP address via a kludge such as "C=US, L=Baltimore, CN=130.85.1.3". However, this usage is deprecated; the alternative name extension is the preferred location for finding such information. As another example, some legacy implementations exist where an RFC822 name is embedded in the subject distinguished name as an EmailAddress attribute. Per [FORMAT], PKIX-compliant implementations generating new PKCs with electronic mail addresses MUST use the rfc822Name in the subjectAltName extension to describe such EEs. Simultaneous inclusion of the EmailAddress attribute in the subject distinguished name to support legacy implementation is deprecated but permitted. In line with this, if the only subject identity included in a PKC is an alternative name form, then the subject distinguished name must be empty (technically, an empty sequence), and the subjectAltName extension must be present. If the subject field contains an empty sequence, the subjectAltName extension must be marked critical. If the subjectAltName extension is present, the sequence must contain at least one entry. Unlike the subject field, conforming CAs shall not issue PKCs with subjectAltNames containing empty GeneralName fields. For example, an rfc822Name is represented as an IA5String. While an empty string is a valid IA5String, such an rfc822Name is not permitted by PKIX. The behavior of clients that encounter such a PKC when processing a certification path is not defined by this working group. Aresenault, Turner November, 2000 34 Internet Draft PKIX Roadmap May, 2000 Because the subject's alternative name is considered to be definitively bound to the public key, all parts of the subject's alternative name must be verified by the CA. 5.1.1.2.1 Internet e-mail addresses When the subjectAltName extension contains an Internet mail address, the address is included as an rfc822Name. The format of an rfc822Name is an "addr-spec" as defined in [RFC-822]. An addr-spec has the form local-part@domain; it does not have a phrase (such as a common name) before it, or a comment (text surrounded in parentheses) after it, and it is not surrounded by "<" and ">". 5.1.1.2.2 DNS Names When the subjectAltName extension contains a domain name service label, the domain name is stored in the dNSName attribute(an IA5String). The string shall be in the "preferred name syntax," as specified by [DNS]. Note that while upper and lower case letters are allowed in domain names, no significance is attached to the case. In addition, while the string " " is a legal domain name, subjectAltName extensions with a dNSName " " are not permitted. Finally, the use of the DNS representation for Internet mail addresses (wpolk.nist.gov instead of wpolk@nist.gov) is not permitted; such identities are to be encoded as rfc822Name. 5.1.1.2.3 IP addresses When the subjectAltName extension contains an iPAddress, the address shall be stored in the octet string in "network byte order," as specified in [IP]. The least significant bit (LSB) of each octet is the LSB of the corresponding byte in the network address. For IP Version 4, as specified in [IP], the octet string must contain exactly four octets. For IP Version 6, as specified in [IPv6], the octet string must contain exactly sixteen octets. 5.1.1.2.4 URIs [FORMAT] notes "When the subjectAltName extension contains a URI, the name MUST be stored in the uniformResourceIdentifier (an IA5String). The name MUST be a non-relative URL, and MUST follow the URL syntax and encoding rules specified in [RFC 1738]. The name must include both a scheme (e.g., "http" or "ftp") and a scheme-specific- part. The scheme-specific-part must include a fully qualified domain name or IP address as the host. As specified in [RFC 1738], the scheme name is not case-sensitive (e.g., "http" is equivalent to "HTTP"). The host part is also not case-sensitive, but other components of the scheme-specific-part may be case-sensitive. When comparing URIs, conforming implementations MUST compare the scheme and host without regard to case, but assume the remainder of the scheme-specific-part is case sensitive." Aresenault, Turner November, 2000 35 Internet Draft PKIX Roadmap May, 2000 5.1.2 Scope of Names The original X.500 work presumed that every subject in the world would have a globally unique distinguished name. Thus, every subject could be easily located, and there would never be a conflict. All that would be needed is a sufficiently large name space, and rules for constructing names based on subordination and location. Obviously, that is not practical in the real world, for a variety of reasons. There is no single entity in the world trusted by everybody to reside at the top of the name space, and there is no way to enforce uniqueness on names for all entities. (These were among the reasons for the failure of PEM to be widely implemented.) This does not mean, however, that a name-based PKI cannot work. It is important to recognize that the scope of names in PKIX is local; they need to be defined and unique only within their own domain. Suppose for example that a Top CA is established with DN "O=IETF, OU=PKIX, CN=PKIX_CA". That CA will then issue PKCs for subjects subordinate to it. The only requirement, which can be enforced procedurally, is that no two distinct entities beneath this Top CA have the same name. We can't prevent somebody else in the world from creating her own CA, called "O=IETF, OU=PKIX, CN=PKIX_CA", and it is not necessary to do so. Within the domain of the original Top CA, there will be no conflict, and the fact that there is another CA of the same name in some other domain is irrelevant. This is analogous to the current DNS or IP address situations. On the Internet, there is only one node called www.ietf.org. The fact that there might be 10 different intranets, each with a host given the DNS name www.ietf.org, is irrelevant and causes no interoperability problems - those are different domains. However, if there were to be another node on the Internet with domain name www.ietf.org, then there would be a problem due to name duplication. The same applies for IP addresses. As long as only one node on the Internet responds to the IP address 130.85.1.3, there is no problem, despite the fact that there are 100 different corporate Intranets, each using that same IP address. However, if two different nodes on the Internet each responded to the IP address 130.85.1.3, there would be a problem. 5.1.3 Certificate Path Construction Certificate path construction has been the topic of many discussions in the WG. The issue centered on how best to get a certificate when the connection between the subject's name and the name of their CA, as well as the CA's repository (or directory), may not be obvious. Many proposals were put forth, including implementing a global X.500 Aresenault, Turner November, 2000 36 Internet Draft PKIX Roadmap May, 2000 Directory Service, using DNS SRV records, and using an extension to point to the directory provider. At the end of the discussion the group decided to use the authority information access extension defined in [FORMAT], which allows the CA to indicate the access method and location of CA information and services. The extension would be included in subject's certificates and could be used to associate an Internet style identity for the location of repository to retrieve the issuer's certificate in cases where such a location is not related to the issuer's name. Another discussion related to certificate path construction was where to store the CA and EE PKCs in the directory (specifically LDAPv2 directories). Two camps emerged with different views on where to store CA and cross-certificates. In the CA's directory entry, one camp wanted self-issued PKCs stored in the cACertificate attribute, PKCs issued to this CA stored in the forward element of the crossCertificatePair, and PKCs issued from this CA for other CAs in the reverse element of the crossCertificatePair attribute. The other camp wanted all CA PKCs stored in the cACertificate attribute, and PKCs issued to and from another domain stored in the crossCertificatePair attribute. There was a short discussion that the second was more efficient than first and that one solution or the other was more widely deployed. The end result was to indicate that self-issued PKCs and PKCs issued to the CA by CAs in the same domain as the CA are stored in the cACertificate attribute. The crossCertificatePair attribute's forward element will include all but self-issued PKCs issued to the CA. The reverse element may include a subset of PKCs issued by the CA to other CAs. With this resolution both camp's implementations are supported and are free to choose the location of CA PKCs to best support their implementation. 5.1.4 Name Constraints A question that has arisen a number of times is "how does one enforce Name constraints when there is more than one name form in a PKC?" That is, [FORMAT] states that: Subject's alternative names may be constrained in the same manner as subject distinguished names using the name constraints extension as described in section 4.2.1.11. What does this mean? Suppose that there is a CA with DN "O=IETF, OU=PKIX, CN=PKIX_CA", with the subjectAltName extension having dNSName "PKIX_CA.IETF.ORG". Suppose that that CA has issued a PKC with an empty DN, with subjectAltName extension having dNSName set to "PKIX_CA.IETF.ORG", and rfc822Name set to Steve@PKIX_CA.IETF.ORG. The question is: are name constraints enforced on these two PKCs - is the name of the EE PKC considered to be properly subordinate to the name of the CA? Aresenault, Turner November, 2000 37 Internet Draft PKIX Roadmap May, 2000 The answer is "yes". The general rules for deciding whether a PKC meets name constraints are: - If a PKC complies with name constraints in any one of its name forms, then the PKC is deemed to comply with name constraints. - If a PKC contains a name form that its issuer does not, the PKC is deemed to comply with name constraints for that name form. In deciding whether a name form meets name constraints, the following rules apply (in all cases Name B is the name in the name constraints extension): 5.1.4.1 rfc822Names Three variations are allowed: - If the name constraint is specified as "larry@mail.mit.edu", then Name A is subordinate to Name B (in B's subtree) if Name A contains all of Name B's name (specifies a particular mailbox). For example, larry@mail.mit.edu is subordinate, but larry_sanders@mail.mit.edu is not. - If the name constraint is specified as "mail.mit.edu", then Name A is subordinate to Name B (in B's subtree) if Name A contains all of Name B's name (specified all mailboxes on host mail.mit.edu). For example, curly@mail.mit.edu and mo@mail.mit.edu are subordinate, but mo@mail6.mit.edu and curly@smtp.mail.mit.edu are not. - If the name constraint is specified as ".mit.edu", then Name A is subordinate to Name B (in B's subtree) if Name A contains all of Name B's name, with the addition of zero or more additional host or domain names to the left of Name B's name. That is, smtp.mit.edu is subordinate to .mit.edu, as is pop.mit.edu. However, mit.edu is not subordinate to .mit.edu. When the constraint begins with a "." it specifies any address within a domain. In the previous example, "mit.edu" is not in the domain of ".mit.edu". Note: If rfc822 names are constrained, but the PKC does not contain a subjectAltName extension, the EmailAddress attribute will be used to constrain the name in the subject distinguished name. For example (c is country, o is organization, ou is organizational unit, and em is EmailAddress), Name A ("c=US, o=MIT, ou=CS, em=curly@mail.mit.edu") is subordinate to Name B ("c=US, o=MIT, ou=CS") (in B's subtree) if Name A contains all of Name B's names. Aresenault, Turner November, 2000 38 Internet Draft PKIX Roadmap May, 2000 5.1.4.2 dNSNames Name A is subordinate to Name B (in B's subtree) if Name A contains all of Name B's name, with the addition of zero or more additional domain names to the left of Name B's name. That is, www.mit.edu is subordinate to mit.edu, as is larry.cs.mit.edu. However, www.mit.edu is not subordinate to web.mit.edu. 5.1.4.3 x.400 addresses Name A is subordinate to Name B (in B's subtree) if Name A contains all of Name B's name. For example (c is country-name, admd is administrative-domain-name, and o is organization-name, ou is organizational-unit-name, pn is personal-name, sn=surname, and gn is given-name in both Name A and B), the mnemonic X.400 address (using PrintableString choices for c and admd) "c=US, admd=AT&T, o=MIT, ou=cs, pn='sn=Doe,gn=John'" is subordinate to "c=US, admd=AT&T, o=MIT, ou=cs" and "c=US, admd=AT&T, o=MIT, pn='sn=DOE,gn=JOHN'" (pn is a SET that includes, among other things, sn and gn). 5.1.4.5 DNs Name A is subordinate to Name B (in B's subtree), if Name A contains all of Name B's name, treating attribute values encoded in different types as different strings, ignoring case in PrintableString (in all other types case is not ignored), removing leading and trailing white space in PrintableString, and converting internal substrings of one or more consecutive white space characters to a single space. For example, (c is country, o is organization, ou is organizational unit, and cn is common name): - Assuming PrintableString types for all attribute values in Name A and B, "c=US, o=MIT, ou=CS" is subordinate to "c=us, o=MIT, ou=cs", as is "c=US, o=MIT, ou=CS, ou=administration". Another example, "c=US, o=MIT, ou=CS, cn= John Doe" (note the white spaces) is subordinate to "c=US, o=MIT, ou=CS, cn=John Doe". - Assuming UTF8String types for all attribute values in Name A and B, "c=US, o=MIT, ou=CS, ou=administration" is subordinate to "c=US, o=MIT, ou=CS", but "c=US, o=MIT, ou=cs, ou=Administration". "c=US, o=MIT, ou=CS, cn= John Smith" (note the white spaces) is not subordinate to "c=US, o=MIT, ou=CS, cn= John Smith". - Assuming UTF8String types for all attribute values in Name A and PrintableString types for all attribute values in Name B, "c=US, o=MIT, ou=cs" is subordinate to "c=US, o=MIT, ou=CS" if the verification software supports the full comparison algorithm in the X.500 series. "c=US, o=MIT, ou=cs" is NOT subordinate to "c=US, o=MIT, ou=CS" if the verification software supports the comparison algorithm in [FORMAT]. Aresenault, Turner November, 2000 39 Internet Draft PKIX Roadmap May, 2000 5.1.4.6 URIs The constraints apply only to the host part of the name. Two variations are allowed: - If the name constraint is specified as ".mit.edu", then Name A is subordinate to Name B (in B's subtree) if Name A contains all of Name B's name, with the addition of zero or more additional host or domain names to the left of Name B's name. That is, www.mit.edu is subordinate to .mit.edu, as is curly.cs.mit.edu. However, mit.edu is not subordinate to .mit.edu. When the constraint begins with a "." it specifies a host. - If the name constraint is specified as "abc.mit.edu", then Name A is subordinate to Name B (in B's subtree) if Name A contains all of Name B's name. No leftward expansion of the host or domain name is allowed. 5.1.4.7 iPaddresses Two variations are allowed depending on the IP version: - For IPv4 addresses: Name A (128.32.1.1 encoded as 80 20 01 01) is subordinate to Name B (128.32.1.0/255.255.255.0 encoded as 80 20 00 00 FF FF FF 00) (in B's subtree) if Name A falls within the net denoted in Name B's CIDR notation. - For IPv6 addresses: Name A (4224.0.0.0.8.2048.8204.16762 encoded as 10 80 00 00 00 00 00 00 00 08 08 00 20 0C 41 7A) is subordinate to Name B (4224.0.0.0.8.2048.8204.0/ 65535.65535.65535.65535.65535.65535.65535.0 encoded as 10 80 00 00 00 00 00 00 00 08 08 00 20 0C 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00) (in B's subtree) if Name A falls within the net denoted in Name B's CIDR notation. 5.1.4.8 Others As [FORMAT] does not define requirements for the name forms otherName, ediPartyName, or registeredID there are no corresponding name constraints requirements. 5.1.5 Wildcards in Name Forms A "wildcard" in a name form is a placeholder for a set of names (e.g., "*.mit.edu" meaning "any domain name ending in .mit.edu", and *@aol.com meaning "email address that uses aol.com"). There are many people who believe that allowing wildcards in name forms in PKIX PKCs would be a useful thing to do, because it would allow a single PKC to be used by all members of a group. These members would presumably have attributes in common; e.g., access rights to some Aresenault, Turner November, 2000 40 Internet Draft PKIX Roadmap May, 2000 set of resources, and so issuance of a PKC with a wildcard for the group would simplify management. After much discussion, the PKIX working group decided to permit the use of wildcards in PKCs. That is, it is permissible for a PKIX- conformant CA to issue a PKC with a wildcard. However, the semantics of subjectAltName extension that include wildcard characters are not addressed by PKIX. Applications with specific requirements may use such names but must define the semantics. 5.1.6 Name Encoding A very important topic that consumed much of the WG's time was the implementation of the directory string choices. While the long term goal of the IETF was clear, use UTF8String, the short term goals were not so clear. Many implementations only use PrintableString, others use BMPString, and still others use Latin1String (ISO 8859-1) and tag it as TeletexString (there are others still). To ensure that there is consistency with encodings [FORMAT] defines a set of rules for the string choices. PrintableString was kept as the first choice because of it's widespread support by vendors. BMPString was the second choice, also for it's widespread vendor support. Failing support by PrintableString and BMPString, UTF8String must be used. In keeping with the IETF mandate, UTF8String can be used at any time if the CA supports it. Also, processing implementations that wish to support TeletexString should handle the entire ISO 8859-1 character set and not just the Latin1String subset. 5.2 POP Proof of Possession, or POP, or also CA POP, means that the CA is adequately convinced that the entity requesting a PKC containing a public key Y has access to the private key X corresponding to that public key. There has been some debate whether POP was or not needed. This question needs to be addressed separately considering the context of use of the key, in particular whether a key is used for an authentication or non repudiation service, or in a confidentiality service. Note that this does not map to the key usage bit directly, since it is possible to use a confidentiality key to perform an authentication service, e.g. by asking to decrypt an encrypted challenge. 5.2.1 POP for Signing Keys It is important to provide POP for keys used to sign material, in order to provide non-repudiation of transactions. For example, suppose Alice legitimately has private key X and its corresponding public key Y. Alice has a PKC from Charlie, a CA, containing Y. Aresenault, Turner November, 2000 41 Internet Draft PKIX Roadmap May, 2000 Alice uses X to sign a transaction T. Without POP, Mal could also get a PKC from Charlie containing the same public key, Y. Now without POP, there are two possible threats: Mal could claim to have been the real signer of T; or Alice can falsely deny signing T, claiming that it was instead Mal. Since no one can reliably prove that Mal did or did not ever possess X, neither of these claims can be refuted, and thus the service provided by and the confidence in the PKI has been defeated. (Of course, if Mal really did possess X, Alice's private key, then no POP mechanism in the world will help, but that is a different problem.) Protection can be gained by having Alice, as the true signer of the transaction, include in the signed information her PKC or an identifier of her PKC (e.g., a hash of her PKC). This makes impossible for Mal to claim authorship because he does not know the private key from Alice and thus is unable to include his certificate under the signature. The adequate protection may be obtained in the general case, by mandating the inclusion of a reference of the certificate every time a signature (or non repudiation) key is being used in a protocol. However, because all the protocols were not doing so, a conservative measure has been taken by requesting POP to be performed by CAs. It should thus be understood, that this measure is not strictly necessary and is only a temporary measure to make old protocols secure. New protocols or data formats are being developed. If the key being used is always used in a context where the identifier of the certificate is included in the protocol, then POP by the CA is not necessary. The inclusion of the identifier of the certificate in the protocol or data format may be understood as POP being performed at the transaction time rather than by the CA, at the registration time of the user in the PKI. 5.2.2 POP for Key Management Keys Suppose that Al is a new instructor in the Computer Science Department of a local University. Al has created a draft final exam for the Introduction to Networking course he is teaching. He wants to send a copy of the draft final to Dorothy, the Department Head, for her review prior to giving the exam. This exam will of course be encrypted, as several students have access to the computer system. However, a quick search of the PKC repository (e.g., search the repository for all records with subjectPublicKey=Dorothy's-value) turns up the fact that several students have PKCs containing the same public key management key as Dorothy. At this point, if no POP has been done by the CA, Al has no way of knowing whether all of the students have simply created these PKCs without knowing the corresponding private key (and thus it is safe to send the encrypted exam to Dorothy), or whether the students have somehow acquired Aresenault, Turner November, 2000 42 Internet Draft PKIX Roadmap May, 2000 Dorothy's private key (and thus it is certainly not safe to send the exam). The later case may seem unsafe. However, if the other students have acquired the key, they do not even need to publish their certificates and can simply decrypt in parallel. The end story is that, if the key only known to Dorothy, there is no problem. Thus POP by the CA is not needed. If the key, like a Diffie-Hellman key, is used for an authentication service the answer depends from the protocol being used. In the former example, the decryption was done locally and no data was sent back on the wire. In an authentication protocol, the story is different because either some encrypted or decrypted data is sent back. If the data sent back contains the identifier of the certificate in a way that it cannot be modified without that modification being detected, then there is no need for POP. On the contrary, POP by the CA is needed. As a conservative measure, POP for encryption keys is recommended, but it should be realized that it is not always needed. In general it should be noticed that POP at the time of the transaction is much superior than POP made by the CA, since it is possible in real time to be sure that everything is correct, rather than rely on that verification to be done at the time of registration by the CA. Should the CA fail in that verification, then there is a security breach. On the contrary, doing POP at the time of the transaction, eliminates that problem. CMP requires that POP be provided for all keys, either through on- line or out-of-band means. There are any number of ways to provide POP, and the choice of which to use is a local matter. Additionally, a PKC requester can provide POP to either a CA or to an RA, if the RA can adequately assure the CA that POP has been performed. Some of the acceptable ways to provide POP include: - Out-of-band means: - For keys generated by the CA or an RA (e.g., on a token such as a smart card or PCMCIA card), possession of the token can provide adequate proof of possession of the private key. - For user-generated keys, another approach can be used in environments where "key recovery" requirements force the requester to provide a copy of the private key to the CA or an RA. In this case, the CA will not issue the requested PKC until such time as the requester has provided the private key. This approach is in general not recommended, as it is extremely risky (e.g., the system designers need to figure out a way to Aresenault, Turner November, 2000 43 Internet Draft PKIX Roadmap May, 2000 protect the private keys from compromise while they are being sent to the CA/RA/other authority, and how to protect them there), but it can be used. - On-line means: - For signature keys that are generated by an EE, the requester of a PKC can be required to sign some piece of data (typically, the PKC request itself) using the private key. The CA will then use the requested public key to verify the signature. If the signature verification works, the CA can safely conclude that the requester had access to the private key. If the signature verification process fails, the CA can conclude that the requester did not have access to the correct private key, and reject the request. - For key management keys that are generated by the requester, the CA can send the user the requested public key, along with the CA's own public key, to encrypt some piece of data, and send it to the requester to be decrypted. For example, the CA can generate some random challenge, and require some action to be taken after decryption (e.g., "decrypt this encrypted random number and send it back to me"). If the requester does not take the requested action, the CA concludes that the requester did not possess the private key, and the PKC is not issued. Another method of providing POP for key management keys is for the CA to generate the requested PKC, and then send it to the requester in encrypted form. If the requester does not have access to the appropriate private key, the requester cannot decrypt the PKC, and thus cannot use it. After some period of time in which the PKC is not used, the CA will revoke the PKC. (This only works if the PKC is not made available to any untrusted entities until after the requester has successfully decrypted it.) 5.3 Key Usage Bits The key usage extension defines the purpose (e.g., encipherment, signature, certificate signing) of the key contained in the PKC. This extension is used when a key that could be used for more than one operation is to be restricted. For example, if a CA's RSA key should be used only for signing CRLS, the cRLSign bit would be asserted. Likewise, when an RSA key should be used only for key management, the keyEncipherment bit would be asserted. When used, this extension should be marked critical. [FORMAT] includes some text for how the bits in the KeyUsage type are used. Developing the text for some of the bits was easy; however, many discussions were needed to arrive at a common agreement on the meaning of the digitalSignature (DS bit) and nonRepudiation (NR bit) bits and when they should be set. The group Aresenault, Turner November, 2000 44 Internet Draft PKIX Roadmap May, 2000 quickly realized that key usage extension mixes services and mechanisms. The DS bit indicates a mechanism - a public key used to verify a digital signature. The NR bit indicates a service - a public key used to verify a digital signature and to provide a non- repudiation service. When trying to indicate when each bit should be indicated arguments were based on: The lifetime of the object being singed. Some felt that the DS bit should be set when the certificate is used to sign ephemeral objects (e.g., bind tokens) while the NR bit should be set for things that are survive longer (e.g., documents). Of course, the problem with this distinction to determine how long is the time period for ephemeral? A conscious act taken by the signer. Many felt that the NR bit should be set only when the subject has expressly acknowledged that they want to use the private key to sign an object. Signing a document say where there is a conscious decision by the subject would be appropriate for the key usage extension to contain NR, but when the key is used for authentication purposes, which can occur automatically and more frequently, the DS bit is more appropriate. The discussion also concluded that since some authentication schemes occur automatically, that the DS bit and NR bit should never be set together in the same certificate. Some agreed to the differentiation of the bits based on the time, but did not agree that the two could not be in the same key usage extension. The procedures followed by the CA. Some felt that NR bit was kind of 'quality mark' indicating to the verifier that the verifier could be assured that the CA is implementing appropriate procedures for checking the subject's identity, performing certificate archival, etc. Other felt that it was not entirely the CAs job and that some other entity must be involved. In the end the WG agreed to a few things: - Provision of the service of non-repudiation requires more than a single bit set in a PKC. It requires an entire infrastructure of components to preserve for some period of time the keys, PKCs, revocation status, signed material, etc., as well as a trusted source of time. However, the nonRepudiation key usage bit is provided as an indicator that such keys could be used as a component of a system providing a non-repudiation service. - The certificate policy is the appropriate place to indicate the permitted combinations of key usages. That is, a policy may indicate that the DS and NR bits can not be set in the same certificate while another may say that the DS and NR bits can be set in the same certificate. [2459bis] includes new text indicating the above agreements. Aresenault, Turner November, 2000 45 Internet Draft PKIX Roadmap May, 2000 5.4 Non-Repudiation The major benefit of the whole DS bit vs NR bit discussion is development of the Technical Requirements for Non-Repudiation [TECHNR] draft. To fill this void [TECHNR] was developed to "describe those features of a service which processes signed documents which must be present in order for that service to constitute a 'technical non-repudiation' service." The basic understanding of non-repudiation is that it requires that a digital signature be preserved in such a manner that it can convince a neutral third party that it was actually created by someone with access to the private key of a certified key pair. Whether this definition of non-repudiation is enough to form a legally bind agreement is still being debated. 5.5 Trust Models An important design decision is where a particular EE's trust point is located (i.e., where is the EE's Root CA). There are a number of models that have been developed and depending on the environment some models may be more suited than others. The following provides some background on the models. 5.5.1 Hierarchical One of the initial trust models proposed was the hierarchical model. In this model the trust point or root CA for an entire domain is the top most CA. The root CA in turn issues certificates to subordinate CAs, and the subordinate CAs issue certificates to EEs. When verifying a PKC, the RP must verify ever certificate in the path from the EE's PKC to the root CA. The main benefit of the hierarchical model is the fact that controls imposed from the top down. For example, name constraints can be included in the subordinate CAs to limit the name space in which they are allowed to issue certificates. Further, the root CA ensure domain wide policies on cross-certification (though there are no controls to prevent another PKI from issuing PKCs to members of the domain, but then those members could be thought of as members of two distinct PKIs). Interoperability is achieved through the use of cross-certificates. Cross-certificates can be issued by the root CA or if allowed by subordinate CAs. 5.5.2 Local/Federation Another model that has been around a long time is the local trust model. In this model, the RPs trust the CA that issued their certificate to them. The idea is that since the CA is local and Aresenault, Turner November, 2000 46 Internet Draft PKIX Roadmap May, 2000 probably known to the RP, that there is more trust rather than with some distant unknown CA. In order for EEs under different CAs to communicate the CAs issue each other certificates thereby creating a certification path from one EE to another. The process of the CAs issuing one another PKCs forms a kind of federation The main benefit of the local model is its flexibility. Many believe that the local CA knows best how to support its user community and should be given cart blanche to generate certificates as it sees fit to allow the user community to perform their functions. 5.5.3 Root Repository A model made famous in the web browser community is the root repository. This model uses a file to store the PKCs of many CAs. The RP then trusts any PKC included in the file. The PKC included in the root repository may be a root CA for some other domain or subordinate CA, but when included in the trust file whatever type of PKC it is in the other domain, it becomes a root CA for the RP. Obviously, the main advantage is the fact that cross-certification is not required. If the RP does not have the root CA's certificate and it is included in with the object, the RP can just add it to the file to _trust_ it (this should only be done if the RP truly trusts the root CA). 5.5.4 RP's Perspective Another model recently getting attention is the model where instead of the CA imposing restraints on the RP (in the PKC), the RP instead makes the determination as to which certificates to trust. The RP determines which domain it will accept certificates from, which key usages it will accept, etc. Cross-certification is also not required because the RP can just chose to trust a particular PKC or domain of PKCs. This obviously turns the first three models on their heads. Special care must be taken to ensure that the RP is properly configured. 6 Acknowledgements A lot of the information in this document was taken from the PKIX source documents; the authors of those deserve the credit for their own words. Other good material was taken from mail posted to the PKIX working group mail list (ietf-pkix@imc.org). Among those with good things to say were (in alphabetical order, with apologies to anybody we've missed): Sharon Boeyen, Santosh Chokhani, Warwick Ford, Russ Housley, Steve Kent, Ambarish Malpani, Matt Fite, Michael Myers, Tim Polk, Stefan Santesson, Dave Simonetti, Paul Hoffman, Denis Pinkas, Ed Greck, Tom Gindin, Parag Namjoshi, Peter Sylvester, and Michael Zolotarev. Aresenault, Turner November, 2000 47 Internet Draft PKIX Roadmap May, 2000 7 References [2459bis] Housley, R., Ford, W., Polk, W., and Solo, D., "Internet X.509 Public Key Infrastructure Certificate and CRL Profile," , 14 July 2000. [2510bis] Adams, C., Farrell, S., _Internet X.509 Public Key Infrastructure Certificate Management Protocols,_ , July 2000. [AC] S. Farrell, R. HousleyMcNeil, M., and Glassey, T., "An Internet Attribute Certificate Profile for Authorization," , 08 August 2000. [ADDSCHEMA] Chadwick, D., Legg, S., _Internet X.509 Public Key Infrastructure Additional LDAP Schema for PKIs and PMIs,_ , 8 September 2000. [CMC] Myers, M., Liu, X., Fox, B., and Weinstein, J., "Certificate Management Messages over CMS," (RFC 2797), April 2000. [CMP] Adams, C., Farrell, S., "Internet X.509 Public Key Infrastructure Certificate Management Protocols," RFC 2510, March 1999. [CMS] R. Housley, "Cryptographic Message Syntax," RFC 2630, July 1999. [CRMF] Myers, M., Adams, C., Solo, D., and Kemp, D., "Internet X.509 Certificate Request Message Format," RFC 2511, March 1999. [DNS] Mockapetris, P.V., "Domain names - concepts and facilities," RFC 1034, November 1987. [DHPOP] Prafullchandra, H., and Schaad, J., "Diffie-Hellman Proof- of-Possession Algorithms," RFC 2875, July 2000 1999. [DPD] Myers, M., Adams, C., Farrell, S., _Delegated Path Discovery with OCSP,_ , September 2000. [DPV] Myers, M., Adams, C., Farrell, S., _Delegated Path Validation,_ , August 2000. [DVCS] Adams, C., Sylvester, P., Zolotarev, M., Zuccherato, R., "Internet X.509 Public Key Infrastructure Data Certification Server Protocols", , 05 October 2000. [FORMAT] Housley, R., Ford, W., Polk, W., and Solo, D., "Internet X.509 Public Key Infrastructure Certificate and CRL Profile," RFC 2459, January 1999. Aresenault, Turner November, 2000 48 Internet Draft PKIX Roadmap May, 2000 [FTPHTTP] Housley, R., and Hoffman, P., "Internet X.509 Public Key Infrastructure Operational Protocols: FTP and HTTP," RFC 2585, July 1998. [IP] Postel, J., "Internet Protocol," RFC 791, September 1981. [IPv6] Deering, S., and Hinden, R., "Internet Protocol, Version 6 [IPv6] Specification," RFC 1883, December 1995. [KEA] Housley, R., and Polk, W., "Internet X.509 Public Key Infrastructure Representation of Key Exchange Algorithm (KEA) Keys in Internet X.509 Public Key Infrastructure Certificates," RFC 2528, March 1999. [LAAP] Farrell, S., Chadwick, C.W., "Limited AttributeCertificate Acquisition Protocol", , 14 July 2000. [LDAPv2] Yeong, Y., Howes, T., and Kille, S., "Lightweight Directory Access Protocol", RFC 1777, March 1995. [OCSP] Myers, M., Ankney, R., Malpani, A., Galperin, S., and Adams, C., "X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP," RFC 2560, June 1999. [OCSPv2] Myers, M., Ankney, R., Adams, C., _Online Certificate Status Protocol, version 2,_ , September 2000. [MISPC] Burr, W., Dodson, D., Nazario, N., and Polk, W., "MISPC Minimum Interoperability Specification for PKI Components, Version 1", , 3 September 1997. [PEM] Kent, S., "Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management," RFC 1422, February 1993. [PI] Pinka, D., Gindin, T., _Internet X.509 Public Key Infrastructure Permanent Identifier,_ , August 2000. [PKI-LDAPv2] Boeyen, S., Howes, T., and Richard, P., "Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv2," RFC 2559, April 1999. [PKI-LDAPv3] Chadwick, D.W., "Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv3," , 2 September 2000. [POLPRAC] Chokhani, S., and Ford, W., "Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework," RFC 2527, March 1999. Aresenault, Turner November, 2000 49 Internet Draft PKIX Roadmap May, 2000 [QC] Santesson, S., Polk, W., Barzin, P., and Nystrom, M., "Internet X.509 Public Key Infrastructure Qualified Certificates," , August 2000. [RLS] Boeyen, S., Hallam-Baker, P., _Internet X.509 Public Key Infrastructure Repository Locator Service,_ , July 2000. [RPKDS] Bassham, L., Housley, R., Polk, N., _Internet X.509 Public Key Infrastructure Representation of Public Keys and Digital Signatures in Internet X.509 Public Key Infrastructure Certificates,_ , 14 June, 2000. [SCHEMA] Boeyen, S., Howes, T., and Richard, P., "Internet X.509 Public Key Infrastructure LDAPv2 Schema," RFC 2587, June 1999. [SCVP] Malpani, A., Hoffman, P., "Simple Certificate Validation Protocol (SCVP)," , 12 June 2000. [TECHNR] Gindin, T., _Internet X.509 Public Key Infrastructure Technical Requirements for a non-Repudiation Service,_ , July 2000. [TPCMP] Kapoor , A., Tschal, R., _Transport Protocols for CMP,_ , 03 October 2000. [TSP] Adams, C., Cain, P., Pinkas, D., and Zuccherato, R., "Internet X.509 Public Key Infrastructure Time Stamp Protocols", , Octoboer 2000. [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text Messages," RFC 822, August 1982. [SIMONETTI] Simonetti, D., "Re: German Key Usage", posting to ietf- pkix@imc.org mailing list, 12 August 1998. [X.509] ITU-T Recommendation X.509 (1997 E): Information Technology - Open Systems Interconnection - The Directory: Authentication Framework, June 1997. [X9.42] ANSI X9.42-199x, Public Key Cryptography for The Financial Services Industry: Agreement of Symmetric Algorithm Keys Using Diffie-Hellman (Working Draft), December 1997. [X9.55] ANSI X9.55-1995, Public Key Cryptography For The Financial Services Industry: Extensions To Public Key Certificates And Certificate Revocation Lists, 8 December, 1995. Aresenault, Turner November, 2000 50 Internet Draft PKIX Roadmap May, 2000 [X9.57] ANSI X9.57-199x, Public Key Cryptography For The Financial Services Industry: Certificate Management (Working Draft), 21 June, 1996. [PKCS10] RSA Laboratories, "The Public-Key Cryptography Standards(PKCS)," RSA Data Security Inc., Redwood City, California, November 1993 Release. 8 Security Considerations There are not requirements in this document. 9 Editor's Address Alfred W. Arsenault Diversinet Corp. P.O. Box 6530 Ellicott City, MD 21042-0530 aarsenault@dvnet.com Sean Turner IECA, Inc. 9010 Edgepark Road Vienna, VA 22182 (703) 628-3180 turners@ieca.com Expires May 2000 Aresenault, Turner November, 2000 51