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

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/