draft-ietf-sidr-res-certs-22.txt   rfc6487.txt 
SIDR G. Huston Internet Engineering Task Force (IETF) G. Huston
Internet-Draft G. Michaelson Request for Comments: 6487 G. Michaelson
Intended status: Standards Track R. Loomans Category: Standards Track R. Loomans
Expires: November 7, 2011 APNIC ISSN: 2070-1721 APNIC
May 6, 2011 February 2012
A Profile for X.509 PKIX Resource Certificates A Profile for X.509 PKIX Resource Certificates
draft-ietf-sidr-res-certs-22
Abstract Abstract
This document defines a standard profile for X.509 certificates for This document defines a standard profile for X.509 certificates for
the purposes of supporting validation of assertions of "right-of-use" the purpose of supporting validation of assertions of "right-of-use"
of Internet Number Resources (INRs). The certificates issued under of Internet Number Resources (INRs). The certificates issued under
this profile are used to convey the Issuer's authorisation of the this profile are used to convey the issuer's authorization of the
Subject to be regarded as the current holder of a "right-of-use" of subject to be regarded as the current holder of a "right-of-use" of
the INRs that are described in the certificate. This document the INRs that are described in the certificate. This document
contains the normative specification of Certificate and Certificate contains the normative specification of Certificate and Certificate
Revocation List (CRL) syntax in the Resource Public Key Revocation List (CRL) syntax in the Resource Public Key
Infrastructure (RPKI). The document also specifies profiles for the Infrastructure (RPKI). This document also specifies profiles for the
format of certificate requests. The document also specifies the format of certificate requests and specifies the Relying Party RPKI
Relying Party RPKI certificate path validation procedure. certificate path validation procedure.
Status of this Memo
This Internet-Draft is submitted in full conformance with the Status of This Memo
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering This is an Internet Standards Track document.
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
This Internet-Draft will expire on November 7, 2011. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6487.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5
2. Describing Resources in Certificates . . . . . . . . . . . . . 5 2. Describing Resources in Certificates . . . . . . . . . . . . . 5
3. End-Entity (EE) Certificates and Signing Functions in the 3. End-Entity (EE) Certificates and Signing Functions in the RPKI 5
RPKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Resource Certificates . . . . . . . . . . . . . . . . . . . . 6 4. Resource Certificates . . . . . . . . . . . . . . . . . . . . 6
4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 6 4.2. Serial Number . . . . . . . . . . . . . . . . . . . . . . 6
4.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 6 4.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 6
4.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.6. Validity . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.6. Validity . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.6.1. notBefore . . . . . . . . . . . . . . . . . . . . . . 8 4.6.1. notBefore . . . . . . . . . . . . . . . . . . . . . . 8
4.6.2. notAfter . . . . . . . . . . . . . . . . . . . . . . . 8 4.6.2. notAfter . . . . . . . . . . . . . . . . . . . . . . . 8
4.7. Subject Public Key Info . . . . . . . . . . . . . . . . . 8 4.7. Subject Public Key Info . . . . . . . . . . . . . . . . . 8
4.8. Resource Certificate Extensions . . . . . . . . . . . . . 8 4.8. Resource Certificate Extensions . . . . . . . . . . . . . 8
4.8.1. Basic Constraints . . . . . . . . . . . . . . . . . . 8 4.8.1. Basic Constraints . . . . . . . . . . . . . . . . . . 8
4.8.2. Subject Key Identifier . . . . . . . . . . . . . . . . 9 4.8.2. Subject Key Identifier . . . . . . . . . . . . . . . . 9
skipping to change at page 2, line 44 skipping to change at page 3, line 36
4.8.5. Extended Key Usage . . . . . . . . . . . . . . . . . . 9 4.8.5. Extended Key Usage . . . . . . . . . . . . . . . . . . 9
4.8.6. CRL Distribution Points . . . . . . . . . . . . . . . 10 4.8.6. CRL Distribution Points . . . . . . . . . . . . . . . 10
4.8.7. Authority Information Access . . . . . . . . . . . . . 10 4.8.7. Authority Information Access . . . . . . . . . . . . . 10
4.8.8. Subject Information Access . . . . . . . . . . . . . . 11 4.8.8. Subject Information Access . . . . . . . . . . . . . . 11
4.8.9. Certificate Policies . . . . . . . . . . . . . . . . . 12 4.8.9. Certificate Policies . . . . . . . . . . . . . . . . . 12
4.8.10. IP Resources . . . . . . . . . . . . . . . . . . . . . 12 4.8.10. IP Resources . . . . . . . . . . . . . . . . . . . . . 12
4.8.11. AS Resources . . . . . . . . . . . . . . . . . . . . . 12 4.8.11. AS Resources . . . . . . . . . . . . . . . . . . . . . 12
5. Resource Certificate Revocation Lists . . . . . . . . . . . . 13 5. Resource Certificate Revocation Lists . . . . . . . . . . . . 13
6. Resource Certificate Requests . . . . . . . . . . . . . . . . 13 6. Resource Certificate Requests . . . . . . . . . . . . . . . . 13
6.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . . 14 6.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . . 14
6.1.1. PKCS#10 Resource Certificate Request Template 6.1.1. PKCS#10 Resource Certificate Request Template Fields . 14
Fields . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 15 6.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.1. CRMF Resource Certificate Request Template Fields . . 15 6.2.1. CRMF Resource Certificate Request Template Fields . . 15
6.2.2. Resource Certificate Request Control Fields . . . . . 16 6.2.2. Resource Certificate Request Control Fields . . . . . 16
6.3. Certificate Extension Attributes in Certificate 6.3. Certificate Extension Attributes in Certificate Requests . 16
Requests . . . . . . . . . . . . . . . . . . . . . . . . . 16
7. Resource Certificate Validation . . . . . . . . . . . . . . . 17 7. Resource Certificate Validation . . . . . . . . . . . . . . . 17
7.1. Resource Extension Validation . . . . . . . . . . . . . . 17 7.1. Resource Extension Validation . . . . . . . . . . . . . . 17
7.2. Resource Certification Path Validation . . . . . . . . . . 18 7.2. Resource Certification Path Validation . . . . . . . . . . 18
8. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 20 8. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 19
9. Operational Considerations for Profile Agility . . . . . . . . 22 9. Operational Considerations for Profile Agility . . . . . . . . 22
10. Security Considerations . . . . . . . . . . . . . . . . . . . 24 10. Security Considerations . . . . . . . . . . . . . . . . . . . 24
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26 12.1. Normative References . . . . . . . . . . . . . . . . . . . 25
13.1. Normative References . . . . . . . . . . . . . . . . . . . 26 12.2. Informative References . . . . . . . . . . . . . . . . . . 26
13.2. Informative References . . . . . . . . . . . . . . . . . . 26
Appendix A. Example Resource Certificate . . . . . . . . . . . . 27 Appendix A. Example Resource Certificate . . . . . . . . . . . . 27
Appendix B. Example Certificate Revocation List . . . . . . . . . 30 Appendix B. Example Certificate Revocation List . . . . . . . . . 31
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31
1. Introduction 1. Introduction
This document defines a standard profile for X.509 certificates This document defines a standard profile for X.509 certificates
[X.509] for use in the context of certification of Internet Number [X.509] for use in the context of certification of Internet Number
Resources (INRs), i.e., IP Addresses and Autonomous System (AS) Resources (INRs), i.e., IP Addresses and Autonomous System (AS)
Numbers. Such certificates are termed "Resource Certificates". A numbers. Such certificates are termed "resource certificates". A
Resource Certificate is a certificate that conforms to the PKIX resource certificate is a certificate that conforms to the PKIX
profile [RFC5280], and that conforms to the constraints specified in profile [RFC5280], and that conforms to the constraints specified in
this profile. A Resource Certificate attests that the Issuer has this profile. A resource certificate attests that the issuer has
granted the Subject a "right-of-use" for a listed set of IP addresses granted the subject a "right-of-use" for a listed set of IP addresses
and/or Autonomous System numbers. and/or Autonomous System numbers.
This document is referenced by Section 7 of the Certificate Policy This document is referenced by Section 7 of the "Certificate Policy
(CP) for the Resource Public Key Infrastructure (RPKI) [ID.sidr-cp]. (CP) for the Resource Public Key Infrastructure (RPKI)" [RFC6484].
It is an integral part of that policy and the normative specification It is an integral part of that policy and the normative specification
for certificate and Certificate Revocation List (CRL) syntax used in for certificate and Certificate Revocation List (CRL) syntax used in
the RPKI. The document also specifies profiles for the format of the RPKI. The document also specifies profiles for the format of
certificate requests, and the Relying Party (RP) RPKI certificate certificate requests, and the relying party (RP) RPKI certificate
path validation procedure. path validation procedure.
Resource Certificates are to be used in a manner that is consistent Resource certificates are to be used in a manner that is consistent
with the RPKI Certificate Policy [ID.sidr-cp]. They are issued by with the RPKI Certificate Policy (CP) [RFC6484]. They are issued by
entities that assign and/or allocate public INRs, and thus the RPKI entities that assign and/or allocate public INRs, and thus the RPKI
is aligned with the public INR distribution function. When an INR is is aligned with the public INR distribution function. When an INR is
allocated or assigned by a number registry to an entity, this allocated or assigned by a number registry to an entity, this
allocation can be described by an associated Resource Certificate. allocation can be described by an associated resource certificate.
This certificate is issued by the number registry, and it binds the This certificate is issued by the number registry, and it binds the
certificate subject's key to the INRs enumerated in the certificate. certificate subject's key to the INRs enumerated in the certificate.
One or two critical extensions, the IP Address Delegation or AS One or two critical extensions, the IP Address Delegation or AS
Identifier Delegation Extensions [RFC3779], enumerate the INRs that Identifier Delegation Extensions [RFC3779], enumerate the INRs that
were allocated or assigned by the Issuer to the Subject. were allocated or assigned by the issuer to the subject.
Relying party (RP) validation of a resource certificate is performed
in the manner specified in Section 7.1. This validation procedure
differs from that described in Section 6 of [RFC5280], such that:
RP validation of a Resource Certificate is performed in the manner
specified in Section 7.1. This validation procedure differs from
that described in section 6 of [RFC5280], such that:
o additional validation processing imposed by the INR extensions is o additional validation processing imposed by the INR extensions is
required, required,
o a confirmation of a public key match between the CRL issuer and o a confirmation of a public key match between the CRL issuer and
the Resource Certificate issuer is required, and the resource certificate issuer is required, and
o the Resource Certificate is required to conform to this profile.
This profile defines those fields that are used in a Resource o the resource certificate is required to conform to this profile.
Certificate that MUST be present for the certificate to be valid.
This profile defines those fields that are used in a resource
certificate that MUST be present for the certificate to be valid.
Any extensions not explicitly mentioned MUST be absent. The same Any extensions not explicitly mentioned MUST be absent. The same
applies to the CRLs used in the RPKI, that are also profiled in this applies to the CRLs used in the RPKI, that are also profiled in this
document. A CA conforming to the RPKI CP MUST issue certificates and document. A Certification Authority (CA) conforming to the RPKI CP
CRLs consistent with this profile. MUST issue certificates and CRLs consistent with this profile.
1.1. Terminology 1.1. Terminology
It is assumed that the reader is familiar with the terms and concepts It is assumed that the reader is familiar with the terms and concepts
described in "Internet X.509 Public Key Infrastructure Certificate described in "Internet X.509 Public Key Infrastructure Certificate
and Certificate Revocation List (CRL) Profile" [RFC5280], and "X.509 and Certificate Revocation List (CRL) Profile" [RFC5280], and "X.509
Extensions for IP Addresses and AS Identifiers" [RFC3779]. Extensions for IP Addresses and AS Identifiers" [RFC3779].
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Describing Resources in Certificates 2. Describing Resources in Certificates
The framework for describing an association between the Subject of a The framework for describing an association between the subject of a
certificate and the INRs currently under the Subject's control is certificate and the INRs currently under the subject's control is
described in [RFC3779]. This profile further requires that: described in [RFC3779]. This profile further requires that:
o Every Resource Certificate MUST contain either the IP Address o Every resource certificate MUST contain either the IP Address
Delegation or the Autonomous System Identifier Delegation Delegation or the Autonomous System Identifier Delegation
extension, or both. extension, or both.
o These extensions MUST be marked as CRITICAL. o These extensions MUST be marked as critical.
o The sorted canonical format describing INRs, with maximal spanning o The sorted canonical format describing INRs, with maximal spanning
ranges and maximal spanning prefix masks, as defined in [RFC3779], ranges and maximal spanning prefix masks, as defined in [RFC3779],
MUST be used for the resource extension field, except where the MUST be used for the resource extension field, except where the
"inherit" construct is used instead. "inherit" construct is used instead.
When validating a Resource Certificate, an RP MUST verify that the When validating a resource certificate, an RP MUST verify that the
INRs described in the Issuer's Resource Certificate encompass the INRs described in the issuer's resource certificate encompass the
INRs of the Resource Certificate being validated. In this context INRs of the resource certificate being validated. In this context,
"encompass" allows for the Issuer's INRs to be the same as, or a "encompass" allows for the issuer's INRs to be the same as, or a
strict superset of the Subject's INRs. strict superset of, the subject's INRs.
3. End-Entity (EE) Certificates and Signing Functions in the RPKI 3. End-Entity (EE) Certificates and Signing Functions in the RPKI
As noted in [ID.sidr-arch], the primary function of End-Entity (EE) As noted in [RFC6480], the primary function of end-entity (EE)
certificates in the RPKI is the verification of signed objects that certificates in the RPKI is the verification of signed objects that
relate to the usage of the INRs described in the certificate, e.g., relate to the usage of the INRs described in the certificate, e.g.,
Route Origin Authorizations (ROAs) and manifests. Route Origin Authorizations (ROAs) and manifests.
The private key associated with an EE certificate is used to sign a The private key associated with an EE certificate is used to sign a
single RPKI signed object, i.e., the EE certificate is used to single RPKI signed object, i.e., the EE certificate is used to
validate only one object. The EE certificate is embedded in the validate only one object. The EE certificate is embedded in the
object as part of a Cryptographic Message Syntax (CMS) signed data object as part of a Cryptographic Message Syntax (CMS) signed-data
structure [ID.sidr-signed-object]. Because of the one-to-one structure [RFC6488]. Because of the one-to-one relationship between
relationship between the EE certificate and the signed object, the EE certificate and the signed object, revocation of the
revocation of the certificate effectively revokes the corresponding certificate effectively revokes the corresponding signed object.
signed object.
A EE certificate may be used to validate a sequence of signed An EE certificate may be used to validate a sequence of signed
objects, were each signed object in the sequence overwrites the objects, where each signed object in the sequence overwrites the
previous instance of the signed object in the repository publication previous instance of the signed object in the repository publication
point, such that only one instance of the signed object is published point, such that only one instance of the signed object is published
at any point in time (e.g., an EE certificate MAY be used to sign a at any point in time (e.g., an EE certificate MAY be used to sign a
sequence of manifests [ID.sidr-rpki-manifests]). Such EE sequence of manifests [RFC6486]). Such EE certificates are termed
certificates are termed "sequential use" EE certificates. "sequential use" EE certificates.
EE certificates used to validate only one instance of a signed EE certificates used to validate only one instance of a signed
object, and are not used thereafter, or in any other validation object, and are not used thereafter or in any other validation
context, are termed "one-time-use" EE certificates. context, are termed "one-time-use" EE certificates.
4. Resource Certificates 4. Resource Certificates
A Resource Certificate is a valid X.509 public key certificate, A resource certificate is a valid X.509 public key certificate,
consistent with the PKIX profile [RFC5280], containing the fields consistent with the PKIX profile [RFC5280], containing the fields
listed in this section. Only the differences from [RFC5280] are listed in this section. Only the differences from [RFC5280] are
noted below. noted below.
Unless specifically noted as being OPTIONAL, all the fields listed Unless specifically noted as being OPTIONAL, all the fields listed
here MUST be present, and any other field MUST NOT appear in a here MUST be present, and any other fields MUST NOT appear in a
conforming Resource Certificate. Where a field value is specified conforming resource certificate. Where a field value is specified
here, this value MUST be used in conforming Resource Certificates. here, this value MUST be used in conforming resource certificates.
4.1. Version 4.1. Version
As Resource Certificates are X.509 Version 3 certificates, the As resource certificates are X.509 version 3 certificates, the
version MUST be 3 (i.e. the value of this field is 2). version MUST be 3 (i.e., the value of this field is 2).
RPs need not process version 1 or version 2 certificates (in contrast RPs need not process version 1 or version 2 certificates (in contrast
to [RFC5280]). to [RFC5280]).
4.2. Serial number 4.2. Serial Number
The serial number value is a positive integer that is unique for each The serial number value is a positive integer that is unique for each
certificate issued by a given CA. certificate issued by a given CA.
4.3. Signature Algorithm 4.3. Signature Algorithm
The algorithm used in this profile is specified in The algorithm used in this profile is specified in [RFC6485].
[ID.sidr-rpki-algs].
4.4. Issuer 4.4. Issuer
The value of this field is a valid X.501 distinguished name. The value of this field is a valid X.501 distinguished name.
An Issuer name MUST contain one instance of the Common Name attribute An issuer name MUST contain one instance of the CommonName attribute
and MAY contain one instance of the Serial Number attribute. If both and MAY contain one instance of the serialNumber attribute. If both
attributes are present, it is RECOMMENDED that they appear as a set. attributes are present, it is RECOMMENDED that they appear as a set.
The Common Name attribute MUST be encoded using the ASN.1 type The CommonName attribute MUST be encoded using the ASN.1 type
PrintableString [X.680]. Issuer names are not intended to be PrintableString [X.680]. Issuer names are not intended to be
descriptive of the identity of Issuer. descriptive of the identity of issuer.
The RPKI does not rely on Issuer names being globally unique, for The RPKI does not rely on issuer names being globally unique, for
reasons of security. However, it is RECOMMENDED that Issuer names be reasons of security. However, it is RECOMMENDED that issuer names be
generated in a fashion that minimizes the likelihood of collisions. generated in a fashion that minimizes the likelihood of collisions.
See Section 8 for (non-normative) suggested name generation See Section 8 for (non-normative) suggested name-generation
mechanisms that fulfill this recommendation. mechanisms that fulfill this recommendation.
4.5. Subject 4.5. Subject
The value of this field is a valid X.501 distinguished name The value of this field is a valid X.501 distinguished name
[RFC4514], and is subject to the same constraints as the Issuer name. [RFC4514], and is subject to the same constraints as the issuer name.
In the RPKI the Subject name is determined by the Issuer, not In the RPKI, the subject name is determined by the issuer, not
proposed by the subject [ID.sidr-repos-struct]. Each distinct proposed by the subject [RFC6481]. Each distinct subordinate CA and
subordinate CA and EE certified by the Issuer MUST be identified EE certified by the issuer MUST be identified using a subject name
using a Subject name that is unique per Issuer. In this context that is unique per issuer. In this context, "distinct" is defined as
"distinct" is defined as an entity and a given public key. An Issuer an entity and a given public key. An issuer SHOULD use a different
SHOULD use a different Subject name if the Subject's key pair has subject name if the subject's key pair has changed (i.e., when the CA
changed (i.e., when the CA issues a certificate as part of re-keying issues a certificate as part of re-keying the subject.) Subject
the Subject.) Subject names are not intended to be descriptive of names are not intended to be descriptive of the identity of subject.
the identity of Subject.
4.6. Validity 4.6. Validity
The certificate validity period is represented as a SEQUENCE of two The certificate validity period is represented as a SEQUENCE of two
dates: the date on which the certificate validity period begins dates: the date on which the certificate validity period begins
(notBefore) and the date on which the certificate validity period (notBefore) and the date on which the certificate validity period
ends (notAfter). ends (notAfter).
While a CA is typically advised against issuing a certificate with a While a CA is typically advised against issuing a certificate with a
validity period that spans a greater period of time than the validity validity period that spans a greater period of time than the validity
period of the CA's certificate that will be used to validate the period of the CA's certificate that will be used to validate the
issued certificate, in the context of this profile, a CA MAY have issued certificate, in the context of this profile, a CA MAY have
valid grounds to issue a subordinate certificate with a validity valid grounds to issue a subordinate certificate with a validity
period that exceeds the validity period of the CA's certificate. period that exceeds the validity period of the CA's certificate.
4.6.1. notBefore 4.6.1. notBefore
The "notBefore" time SHOULD be no earlier than the time of The "notBefore" time SHOULD be no earlier than the time of
certificate generation. certificate generation.
In the RPKI it is valid for a certificate to have a value for this In the RPKI, it is valid for a certificate to have a value for this
field that pre-dates the same field value in any superior field that pre-dates the same field value in any superior
certificate. Relying Parties SHOULD NOT attempt to infer from this certificate. Relying Parties SHOULD NOT attempt to infer from this
time information that a certificate was valid at a time in the past, time information that a certificate was valid at a time in the past,
or will be valid at a time in the future, as the scope of an RP's or that it will be valid at a time in the future, as the scope of an
test of validity of a certificate refers specifically to validity at RP's test of validity of a certificate refers specifically to
the current time. validity at the current time.
4.6.2. notAfter 4.6.2. notAfter
The "notAfter" time represents the anticipated lifetime of the The "notAfter" time represents the anticipated lifetime of the
current resource allocation or assignment arrangement between the current resource allocation or assignment arrangement between the
Issuer and the Subject. issuer and the subject.
It is valid for a certificate to have a value for this field that It is valid for a certificate to have a value for this field that
post-dates the same field value in any superior certificate. The post-dates the same field value in any superior certificate. The
same caveats apply to RP's assumptions relating to the certificate's same caveats apply to RP's assumptions relating to the certificate's
validity at any time other than the current time. validity at any time other than the current time.
4.7. Subject Public Key Info 4.7. Subject Public Key Info
The algorithm used in this profile is specified in The algorithm used in this profile is specified in [RFC6485].
[ID.sidr-rpki-algs].
4.8. Resource Certificate Extensions 4.8. Resource Certificate Extensions
The following X.509 V3 extensions MUST be present in a conforming The following X.509 v3 extensions MUST be present in a conforming
Resource Certificate, except where explicitly noted otherwise. Each resource certificate, except where explicitly noted otherwise. Each
extension in a resource certificate is designated as either critical extension in a resource certificate is designated as either critical
or non-critical. A certificate-using system MUST reject the or non-critical. A certificate-using system MUST reject the
certificate if it encounters a critical extension it does not certificate if it encounters a critical extension it does not
recognise; however, a non-critical extension MAY be ignored if it is recognize; however, a non-critical extension MAY be ignored if it is
not recognised [RFC5280]. not recognized [RFC5280].
4.8.1. Basic Constraints 4.8.1. Basic Constraints
The Basic Constraints extension field is a critical extension in the The Basic Constraints extension field is a critical extension in the
Resource Certificate profile, and MUST be present when the Subject is resource certificate profile, and MUST be present when the subject is
a CA, and MUST NOT be present otherwise. a CA, and MUST NOT be present otherwise.
The Issuer determines whether the "cA" boolean is set. The issuer determines whether the "cA" boolean is set.
The Path Length Constraint is not specified for RPKI certificates, The Path Length Constraint is not specified for RPKI certificates,
and MUST NOT be present. and MUST NOT be present.
4.8.2. Subject Key Identifier 4.8.2. Subject Key Identifier
This extension MUST appear in all Resource Certificates. This This extension MUST appear in all resource certificates. This
extension is non-critical. extension is non-critical.
The Key Identifier used for resource certificates is the 160-bit The Key Identifier used for resource certificates is the 160-bit
SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the
Subject Public Key, as described in Section 4.2.1.2 of [RFC5280]. Subject Public Key, as described in Section 4.2.1.2 of [RFC5280].
4.8.3. Authority Key Identifier 4.8.3. Authority Key Identifier
This extension MUST appear in all Resource Certificates, with the This extension MUST appear in all resource certificates, with the
exception of a CA who issues a "self-signed" certificate. In a self- exception of a CA who issues a "self-signed" certificate. In a self-
signed certificate, a CA MAY include this extension, and set it equal signed certificate, a CA MAY include this extension, and set it equal
to the Subject Key Identifier. The authorityCertIssuer and to the Subject Key Identifier. The authorityCertIssuer and
authorityCertSerialNumber fields MUST NOT be present. This extension authorityCertSerialNumber fields MUST NOT be present. This extension
is non-critical. is non-critical.
The Key Identifier used for resource certificates is the 160-bit The Key Identifier used for resource certificates is the 160-bit
SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the
Issuer's public key, as described in Section 4.2.1.1 of [RFC5280]. issuer's public key, as described in Section 4.2.1.1 of [RFC5280].
4.8.4. Key Usage 4.8.4. Key Usage
This extension is a critical extension and MUST be present. This extension is a critical extension and MUST be present.
In certificates issued to Certification Authorities only the In certificates issued to certification authorities only, the
keyCertSign and CRLSign bits are set to TRUE, and these MUST be the keyCertSign and CRLSign bits are set to TRUE, and these MUST be the
only bits set to TRUE. only bits set to TRUE.
In EE certificates the digitalSignature bit MUST be set to TRUE and In EE certificates, the digitalSignature bit MUST be set to TRUE and
MUST be the only bit set to TRUE. MUST be the only bit set to TRUE.
4.8.5. Extended Key Usage 4.8.5. Extended Key Usage
The Extended Key Usage (EKU) extension MUST NOT appear in any CA The Extended Key Usage (EKU) extension MUST NOT appear in any CA
certificate in the RPKI. This extension also MUST NOT appear in EE certificate in the RPKI. This extension also MUST NOT appear in EE
certificates used to verify RPKI objects (e.g., ROAs or manifests. certificates used to verify RPKI objects (e.g., ROAs or manifests.
The extension MUST NOT be marked critical. The extension MUST NOT be marked critical.
The EKU extension MAY appear in EE certificates issued to routers or The EKU extension MAY appear in EE certificates issued to routers or
other devices. Permitted values for the EKU OIDs will be specified other devices. Permitted values for the EKU OIDs will be specified
in Standards Track RFCs issued by other IETF working groups that in Standards Track RFCs issued by other IETF working groups that
adopt the RPKI profile and that identify application-specific adopt the RPKI profile and that identify application-specific
requirements that motivate the use of such EKUs. requirements that motivate the use of such EKUs.
4.8.6. CRL Distribution Points 4.8.6. CRL Distribution Points
This extension MUST be present, except in "self-signed" certificates, This extension MUST be present, except in "self-signed" certificates,
and it is non-critical. In a self-signed certificate this extension and it is non-critical. In a self-signed certificate, this extension
MUST be omitted. MUST be omitted.
In this profile, the scope of the CRL is specified to be all In this profile, the scope of the CRL is specified to be all
certificates issued by this CA Issuer. certificates issued by this CA issuer.
The CRL Distribution Points (CRLDP) extension identifies the The CRL Distribution Points (CRLDP) extension identifies the
location(s) of the CRL(s) associated with certificates issued by this location(s) of the CRL(s) associated with certificates issued by this
Issuer. The RPKI uses the URI form of object identification. The issuer. The RPKI uses the URI [RFC3986] form of object
preferred URI access mechanism is a single RSYNC URI ("rsync://") identification. The preferred URI access mechanism is a single rsync
[RFC5781] that references a single inclusive CRL for each Issuer. URI ("rsync://") [RFC5781] that references a single inclusive CRL for
each issuer.
In this profile the certificate Issuer is also the CRL Issuer, In this profile, the certificate issuer is also the CRL issuer,
implying that the CRLIssuer field MUST be omitted, and the implying that the CRLIssuer field MUST be omitted, and the
distributionPoint field MUST be present. The Reasons field MUST be distributionPoint field MUST be present. The Reasons field MUST be
omitted. omitted.
The distributionPoint MUST contain the fullName field, and MUST NOT The distributionPoint MUST contain the fullName field, and MUST NOT
contain a nameRelativeToCRLIssuer. The form of the generalName MUST contain a nameRelativeToCRLIssuer. The form of the generalName MUST
be of type URI. be of type URI.
The sequence of distributionPoint values MUST contain only a single The sequence of distributionPoint values MUST contain only a single
DistributionPoint. The DistributionPoint MAY contain more than one DistributionPoint. The DistributionPoint MAY contain more than one
URI value. An RSYNC URI [RFC5781] MUST be present in the URI value. An rsync URI [RFC5781] MUST be present in the
DistributionPoint, and reference the most recent instance of this DistributionPoint and MUST reference the most recent instance of this
Issuer's CRL. Other access form URIs MAY be used in addition to the issuer's CRL. Other access form URIs MAY be used in addition to the
RSYNC URI, representing alternate access mechanisms for this CRL. rsync URI, representing alternate access mechanisms for this CRL.
4.8.7. Authority Information Access 4.8.7. Authority Information Access
In the context of the RPKI, this extension identifies the publication In the context of the RPKI, this extension identifies the publication
point of the certificate of the issuer of the certificate in which point of the certificate of the issuer of the certificate in which
the extension appears. In this profile a single reference to the the extension appears. In this profile, a single reference to the
publication point of the immediate superior certificate MUST be publication point of the immediate superior certificate MUST be
present, except for a "self-signed" certificate, in which case the present, except for a "self-signed" certificate, in which case the
extension MUST be omitted. This extension is non-critical. extension MUST be omitted. This extension is non-critical.
This profile uses a URI form of object identification. The preferred This profile uses a URI form of object identification. The preferred
URI access mechanisms is "rsync", and an RSYNC URI [RFC5781] MUST be URI access mechanisms is "rsync", and an rsync URI [RFC5781] MUST be
specified with an accessMethod value of id-ad-caIssuers. The URI specified with an accessMethod value of id-ad-caIssuers. The URI
MUST reference the point of publication of the certificate where this MUST reference the point of publication of the certificate where this
Issuer is the Subject (the Issuer's immediate superior certificate). Issuer is the subject (the issuer's immediate superior certificate).
Other accessMethod URIs referencing the same object MAY also be Other accessMethod URIs referencing the same object MAY also be
included in the value sequence of this extension. included in the value sequence of this extension.
A CA MUST use a persistent URL name scheme for CA certificates that A CA MUST use a persistent URL name scheme for CA certificates that
it issues [ID.sidr-repos-struct]. This implies that a re-issued it issues [RFC6481]. This implies that a reissued certificate
certificate overwrites a previously issued certificate (to the same overwrites a previously issued certificate (to the same subject) in
Subject) in the publication repository. In this way certificates the publication repository. In this way, certificates subordinate to
subordinate to the re-issued (CA) certificate can maintain a constant the reissued (CA) certificate can maintain a constant Authority
Authority Information Access (AIA) extension pointer and thus need Information Access (AIA) extension pointer and thus need not be
not be re-issued when the parent certificate is re-issued. reissued when the parent certificate is reissued.
4.8.8. Subject Information Access 4.8.8. Subject Information Access
In the context of the RPKI, this extension (SIA) identifies the In the context of the RPKI, this Subject Information Access (SIA)
publication point of products signed by the Subject of the extension identifies the publication point of products signed by the
certificate. subject of the certificate.
4.8.8.1. SIA for CA Certificates 4.8.8.1. SIA for CA Certificates
This extension MUST be present, and is non-critical. This extension MUST be present and MUST be marked non-critical.
This extension MUST have an instance of an accessMethod of id-ad- This extension MUST have an instance of an accessMethod of id-ad-
caRepository, with an accessLocation form of a URI that MUST specify caRepository, with an accessLocation form of a URI that MUST specify
an RSYNC URI [RFC5781]. This URI points to the directory containing an rsync URI [RFC5781]. This URI points to the directory containing
all published material issued by this CA. i.e., all valid CA all published material issued by this CA, i.e., all valid CA
certificates, published EE certificates, the current CRL, manifest certificates, published EE certificates, the current CRL, manifest,
and signed objects validated via EE certificates that have been and signed objects validated via EE certificates that have been
issued by this CA [ID.sidr-repos-struct]. Other accessDescription issued by this CA [RFC6481]. Other accessDescription elements with
elements with an accessMethod of id-ad-caRepository MAY be present. an accessMethod of id-ad-caRepository MAY be present. In such cases,
In such cases, the accessLocation values describe alternate supported the accessLocation values describe alternate supported URI access
URI access mechanisms for the same directory. The ordering of URIs mechanisms for the same directory. The ordering of URIs in this
in this accessDescription sequence reflect the CA's relative accessDescription sequence reflect the CA's relative preferences for
preferences for access methods to be used by RPs, with the first access methods to be used by RPs, with the first element of the
element of the sequence being the most preferred by the CA. sequence being the most preferred by the CA.
This extension MUST have an instance of an AccessDescription with an This extension MUST have an instance of an AccessDescription with an
accessMethod of id-ad-rpkiManifest, accessMethod of id-ad-rpkiManifest,
id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 }
with an RSYNC URI [RFC5781] form of accessLocation. The URI points with an rsync URI [RFC5781] form of accessLocation. The URI points
to the CA's manifest of published objects [ID.sidr-rpki-manifests] as to the CA's manifest of published objects [RFC6486] as an object URL.
an object URL. Other accessDescription elements MAY exist for the Other accessDescription elements MAY exist for the id-ad-rpkiManifest
id-ad-rpkiManifest accessMethod, where the accessLocation value accessMethod, where the accessLocation value indicates alternate
indicates alternate access mechanisms for the same manifest object. access mechanisms for the same manifest object.
4.8.8.2. SIA for EE Certificates 4.8.8.2. SIA for EE Certificates
This extension MUST be present, and is non-critical. This extension MUST be present and MUST be marked non-critical.
This extension MUST have an instance of an accessMethod of id-ad- This extension MUST have an instance of an accessMethod of id-ad-
signedObject, signedObject,
id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 }
with an accessLocation form of a URI that MUST include an RSYNC URI with an accessLocation form of a URI that MUST include an rsync URI
[RFC5781]. This URI points to the signed object that is verified [RFC5781]. This URI points to the signed object that is verified
using this EE certificate [ID.sidr-repos-struct]. Other using this EE certificate [RFC6481]. Other accessDescription
accessDescription elements may exist for the id-ad-signedObject elements may exist for the id-ad-signedObject accessMethod, where the
accessMethod, where the accessLocation value indicates alternate URI accessLocation value indicates alternate URI access mechanisms for
access mechanisms for the same object, ordered in terms of the EE's the same object, ordered in terms of the EE's relative preference for
relative preference for supported access mechanisms. supported access mechanisms.
Other AccessMethods MUST NOT be used for an EE certificates's SIA. Other AccessMethods MUST NOT be used for an EE certificates's SIA.
4.8.9. Certificate Policies 4.8.9. Certificate Policies
This extension MUST be present, and MUST be marked critical. It MUST This extension MUST be present and MUST be marked critical. It MUST
include exactly one policy, as specified in the RPKI CP [ID.sidr-cp] include exactly one policy, as specified in the RPKI CP [RFC6484]
4.8.10. IP Resources 4.8.10. IP Resources
Either the IP Resources extension, or the AS Resources extension, or Either the IP Resources extension, or the AS Resources extension, or
both, MUST be present in all RPKI certificates, and if present, MUST both, MUST be present in all RPKI certificates, and if present, MUST
be marked critical. be marked critical.
This extension contains the list of IP address resources as per This extension contains the list of IP address resources as per
[RFC3779]. The value may specify the "inherit" element for a [RFC3779]. The value may specify the "inherit" element for a
particular AFI value. In the context of resource certificates particular Address Family Identifier (AFI) value. In the context of
describing public number resources for use in the public Internet, resource certificates describing public number resources for use in
the SAFI value MUST NOT be used. the public Internet, the Subsequent AFI (SAFI) value MUST NOT be
used.
This extension MUST either specify a non-empty set IP address This extension MUST either specify a non-empty set of IP address
records, or use the "inherit" setting to indicate that the IP address records, or use the "inherit" setting to indicate that the IP address
resource set of this certificate is inherited from that of the resource set of this certificate is inherited from that of the
certificate's issuer. certificate's issuer.
4.8.11. AS Resources 4.8.11. AS Resources
Either the AS Resources extension, or the IP Resources extension, or Either the AS Resources extension, or the IP Resources extension, or
both, MUST be present in all RPKI certificates, and if present, MUST both, MUST be present in all RPKI certificates, and if present, MUST
be marked critical. be marked critical.
This extension contains the list of AS number resources as per This extension contains the list of AS number resources as per
[RFC3779], or it may specify the "inherit" element. Routing Domain
Identifier (RDI) values are NOT supported in this profile and MUST
NOT be used.
[RFC3779], or may specify the "inherit" element. RDI values are NOT This extension MUST either specify a non-empty set of AS number
supported in this profile and MUST NOT be used. records, or use the "inherit" setting to indicate that the AS number
resource set of this certificate is inherited from that of the
This extension MUST either specify a non-empty set AS number records, certificate's issuer.
or use the "inherit" setting to indicate that the AS number resource
set of this certificate is inherited from that of the certificate's
issuer.
5. Resource Certificate Revocation Lists 5. Resource Certificate Revocation Lists
Each CA MUST issue a version 2 Certificate Revocation List (CRL), Each CA MUST issue a version 2 CRL that is consistent with [RFC5280].
consistent with [RFC5280]. RPs are NOT required to process version 1 RPs are NOT required to process version 1 CRLs (in contrast to
CRLs (in contrast to [RFC5280]). The CRL Issuer is the CA. CRLs [RFC5280]). The CRL issuer is the CA. CRLs conforming to this
conforming to this profile MUST NOT include Indirect or Delta CRLs. profile MUST NOT include Indirect or Delta CRLs. The scope of each
The scope of each CRL MUST be all certificates issued by this CA. CRL MUST be all certificates issued by this CA.
The Issuer name is as in Section 4.4 above. The issuer name is as in Section 4.4 above.
Where two or more CRLs issued by the same CA, the CRL with the Where two or more CRLs are issued by the same CA, the CRL with the
highest value of the "CRL Number" field supersedes all other CRLs highest value of the "CRL Number" field supersedes all other CRLs
issued by this CA. issued by this CA.
The algorithm used in CRLs issued under this profile is specified in The algorithm used in CRLs issued under this profile is specified in
[ID.sidr-rpki-algs]. [RFC6485].
The contents of the CRL are a list of all non-expired certificates The contents of the CRL are a list of all non-expired certificates
that have been revoked by the CA. that have been revoked by the CA.
An RPKI CA MUST include the two extensions Authority Key Identifier An RPKI CA MUST include the two extensions, Authority Key Identifier
and CRL Number in every CRL that it issues. RPs MUST be prepared to and CRL Number, in every CRL that it issues. RPs MUST be prepared to
process CRLs with these extensions. No other CRL extensions are process CRLs with these extensions. No other CRL extensions are
allowed. allowed.
For each revoked resource certificate only the two fields Serial For each revoked resource certificate, only the two fields, Serial
Number and Revocation Date MUST be present, and all other fields MUST Number and Revocation Date, MUST be present, and all other fields
NOT be present. No CRL entry extensions are supported in this MUST NOT be present. No CRL entry extensions are supported in this
profile, and CRL entry extensions MUST NOT be present in a CRL. profile, and CRL entry extensions MUST NOT be present in a CRL.
6. Resource Certificate Requests 6. Resource Certificate Requests
A resource certificate request MAY use either of PKCS#10 or A resource certificate request MAY use either of PKCS#10 or
Certificate Request Message Format (CRMF). A CA MUST support Certificate Request Message Format (CRMF). A CA MUST support
certificate issuance in PKCS#10 and a CA MAY support CRMF requests. certificate issuance in PKCS#10 and a CA MAY support CRMF requests.
Note that there is no certificate response defined in this profile. Note that there is no certificate response defined in this profile.
For CA certificate requests, the CA places the Resource Certificate For CA certificate requests, the CA places the resource certificate
in the repository, as per [ID.sidr-cp]. No response is defined for in the repository, as per [RFC6484]. No response is defined for EE
EE Certificate requests. certificate requests.
6.1. PCKS#10 Profile 6.1. PCKS#10 Profile
This profile refines the specification in [RFC2986], as it relates to This profile refines the specification in [RFC2986], as it relates to
Resource Certificates. A Certificate Request Message object, resource certificates. A Certificate Request Message object,
formatted according to PKCS#10, is passed to a CA as the initial step formatted according to PKCS#10, is passed to a CA as the initial step
in issuing a certificate. in issuing a certificate.
With the exception of the SubjectPublicKeyinfo and the SIA extension With the exception of the SubjectPublicKeyinfo and the SIA extension
request, the CA is permitted to alter any field in the request when request, the CA is permitted to alter any field in the request when
issuing a certificate. issuing a certificate.
6.1.1. PKCS#10 Resource Certificate Request Template Fields 6.1.1. PKCS#10 Resource Certificate Request Template Fields
This profile applies the following additional requirements to fields This profile applies the following additional requirements to fields
that MAY appear in a CertificationRequestInfo: that MAY appear in a CertificationRequestInfo:
Version Version
This field is mandatory and MUST have the value 0. This field is mandatory and MUST have the value 0.
Subject Subject
This field MAY be omitted. If present, the value of this field This field MAY be omitted. If present, the value of this field
SHOULD be empty (i.e., NULL), in which case the CA MUST SHOULD be empty (i.e., NULL), in which case the CA MUST
generate a Subject name that is unique in the context of generate a subject name that is unique in the context of
certificates issued by this CA. This field is allowed to be certificates issued by this CA. This field is allowed to be
non-empty only for a rekey/reissuance request, and only if the non-empty only for a re-key/reissuance request, and only if the
CA has adopted a policy (in its Certificate Practice Statement CA has adopted a policy (in its Certificate Practice Statement
(CPS)) that permits name reuse in these circumstances. (CPS)) that permits reuse of names in these circumstances.
SubjectPublicKeyInfo SubjectPublicKeyInfo
This field specifies the Subject's public key and the algorithm This field specifies the subject's public key and the algorithm
with which the key is used. The algorithm used in this profile with which the key is used. The algorithm used in this profile
is specified in [ID.sidr-rpki-algs]. is specified in [RFC6485].
Attributes Attributes
[RFC2986] defines the attributes field as key-value pairs where [RFC2986] defines the attributes field as key-value pairs where
the key is an OID and the value's structure depends on the key. the key is an OID and the value's structure depends on the key.
The only attribute used in this profile is the ExtensionRequest The only attribute used in this profile is the extensionRequest
attribute as defined in [RFC2985]. This attribute contains attribute as defined in [RFC2985]. This attribute contains
certificate Extensions. The profile for extensions in certificate extensions. The profile for extensions in
certificate requests is specified in Section 6.3. certificate requests is specified in Section 6.3.
This profile applies the following additional constraints to fields This profile applies the following additional constraint to fields
that MAY appear in a CertificationRequest Object: that MAY appear in a CertificationRequest Object:
signatureAlgorithm signatureAlgorithm
The signatureAlgorithm value is specified in The signatureAlgorithm value is specified in [RFC6485].
[ID.sidr-rpki-algs].
6.2. CRMF Profile 6.2. CRMF Profile
This profile refines the Certificate Request Message Format (CRMF) This profile refines the Certificate Request Message Format (CRMF)
specification in [RFC4211], as it relates to Resource Certificates. specification in [RFC4211], as it relates to resource certificates.
A Certificate Request Message object, formatted according to the A Certificate Request Message object, formatted according to the
CRMF, is passed to a CA as the initial step in certificate issuance. CRMF, is passed to a CA as the initial step in certificate issuance.
With the exception of the SubjectPublicKeyinfo and the SIA extension With the exception of the SubjectPublicKeyinfo and the SIA extension
request, the CA is permitted to alter any requested field when request, the CA is permitted to alter any requested field when
issuing the certificate. issuing the certificate.
6.2.1. CRMF Resource Certificate Request Template Fields 6.2.1. CRMF Resource Certificate Request Template Fields
This profile applies the following additional requirements to fields This profile applies the following additional requirements to fields
that may appear in a Certificate Request Template: that may appear in a Certificate Request Template:
version version
This field SHOULD be omitted. If present, it MUST specify a This field SHOULD be omitted. If present, it MUST specify a
request for a Version 3 Certificate. request for a version 3 Certificate.
serialNumber serialNumber
This field MUST be omitted. This field MUST be omitted.
signingAlgorithm signingAlgorithm
This field MUST be omitted. This field MUST be omitted.
issuer issuer
This MUST be omitted in this profile. This MUST be omitted in this profile.
Validity Validity
This field MAY be omitted. If omitted, the CA will issue a This field MAY be omitted. If omitted, the CA will issue a
Certificate with Validity dates as determined by the CA. If Certificate with Validity dates as determined by the CA. If
specified, then the CA MAY override the requested values with specified, then the CA MAY override the requested values with
dates as determined by the CA. dates as determined by the CA.
Subject Subject
This field MAY be omitted. If present, the value of this field This field MAY be omitted. If present, the value of this field
SHOULD be empty (i.e., NULL), in which case the CA MUST SHOULD be empty (i.e., NULL), in which case the CA MUST
generate a Subject name that is unique in the context of generate a subject name that is unique in the context of
certificates issued by this CA. This field is allowed to be certificates issued by this CA. This field is allowed to be
non-empty only for a rekey/reissuance request, and only if the non-empty only for a re-key/reissuance request, and only if the
CA has adopted a policy (in its CPS) that permits name reuse in CA has adopted a policy (in its CPS) that permits the reuse of
these circumstances. names in these circumstances.
PublicKey PublicKey
This field MUST be present. This field MUST be present.
extensions extensions
The profile for extensions in certificate requests is specified The profile for extensions in certificate requests is specified
in Section 6.3. in Section 6.3.
6.2.2. Resource Certificate Request Control Fields 6.2.2. Resource Certificate Request Control Fields
The following control fields are supported in this profile: The following control fields are supported in this profile:
Authenticator Control Authenticator Control
'The intended model of authentication of the Subject is a "long The intended model of authentication of the subject is a "long
term" model, and the guidance offered in [RFC4211] is that the term" model, and the guidance offered in [RFC4211] is that the
Authenticator Control field be used. Authenticator Control field be used.
6.3. Certificate Extension Attributes in Certificate Requests 6.3. Certificate Extension Attributes in Certificate Requests
The following extensions MAY appear in a PKCS#10 or CRMF Certificate The following extensions MAY appear in a PKCS#10 or CRMF Certificate
Request. Any other extensions MUST NOT appear in a Certificate Request. Any other extensions MUST NOT appear in a Certificate
Request. This profile places the following additional constraints on Request. This profile places the following additional constraints on
these extensions: these extensions:
BasicConstraints BasicConstraints
If this is omitted then the CA will issue an EE certificate If this is omitted, then the CA will issue an EE certificate
(hence no BasicConstraints extension will be included). (hence no BasicConstraints extension will be included).
The pathLengthConstraint is not supported in this profile, and The pathLengthConstraint is not supported in this profile, and
this field MUST be omitted. this field MUST be omitted.
The CA MAY honour the cA boolean if set to true (CA certificate The CA MAY honor the cA boolean if set to TRUE (CA Certificate
request). If this bit is set, then it indicates that the Request). If this bit is set, then it indicates that the
Subject is requesting a CA certificate. subject is requesting a CA certificate.
The CA MUST honour the cA bit if set to false (EE certificate The CA MUST honor the cA bit if set to FALSE (EE Certificate
request), in which case the corresponding EE certificate will Request), in which case the corresponding EE certificate will
not contain a Basic Constraints extension. not contain a Basic Constraints extension.
KeyUsage KeyUsage
The CA MAY honour KeyUsage extensions of keyCertSign and The CA MAY honor KeyUsage extensions of keyCertSign and cRLSign
cRLSign if present, as long as this is consistent with the if present, as long as this is consistent with the
BasicConstraints SubjectType sub field, when specified. BasicConstraints SubjectType sub-field, when specified.
ExtendedKeyUsage ExtendedKeyUsage
The CA MAY honour ExtendedKeyUsage extensions of keyCertSign The CA MAY honor ExtendedKeyUsage extensions of keyCertSign and
and cRLSign if present, as long as this is consistent with the cRLSign if present, as long as this is consistent with the
BasicConstraints SubjectType sub field, when specified. BasicConstraints SubjectType sub-field, when specified.
SubjectInformationAccess SubjectInformationAccess
This field MUST be present, and the field value SHOULD be This field MUST be present, and the field value SHOULD be
honoured by the CA if it conforms to the requirements set forth honored by the CA if it conforms to the requirements set forth
in Section 4.8.8. If the CA is unable to honour the requested in Section 4.8.8. If the CA is unable to honor the requested
value for this field, then the CA MUST reject the Certificate value for this field, then the CA MUST reject the Certificate
Request. Request.
7. Resource Certificate Validation 7. Resource Certificate Validation
This section describes the Resource Certificate validation procedure. This section describes the resource certificate validation procedure.
This refines the generic procedure described in section 6 of This refines the generic procedure described in Section 6 of
[RFC5280]. [RFC5280].
7.1. Resource Extension Validation 7.1. Resource Extension Validation
The IP Resources and AS Resources extensions definitions [RFC3779] The IP Resources and AS Resources extensions [RFC3779] define
define critical extensions for INRs. These are ASN.1 encoded critical extensions for INRs. These are ASN.1 encoded
representations of the IPv4 and IPv6 address range and an AS number representations of the IPv4 and IPv6 address range and an AS number
set. set.
Valid Resource Certificates MUST have a valid IP address and/or AS Valid resource certificates MUST have a valid IP address and/or AS
number resource extension. In order to validate a Resource number resource extension. In order to validate a resource
Certificate the resource extension MUST also be validated. This certificate, the resource extension MUST also be validated. This
validation process relies on definitions of comparison of resource validation process relies on definitions of comparison of resource
sets: sets:
more specific more specific
Given two IP address or AS number contiguous ranges, A and B, A Given two contiguous IP address ranges or two contiguous AS
is "more specific" than B if range B includes all IP addresses number ranges, A and B, A is "more specific" than B if range B
or AS numbers described by range A, and if range B is larger includes all IP addresses or AS numbers described by range A,
than range A. and if range B is larger than range A.
equal equal
Given two IP address or AS number contiguous ranges, A and B, A Given two contiguous IP address ranges or two contiguous AS
is "equal" to B if range A describes precisely the same number ranges, A and B, A is "equal" to B if range A describes
collection of IP addresses or AS numbers as described by range precisely the same collection of IP addresses or AS numbers
B. The definition of "inheritance" in [RFC3779] is equivalent described by range B. The definition of "inheritance" in
to this "equality" comparison. [RFC3779] is equivalent to this "equality" comparison.
encompass encompass
Given two IP address and AS number sets X and Y, X Given two IP address and AS number sets, X and Y, X
"encompasses" Y if, for every contiguous range of IP addresses "encompasses" Y if, for every contiguous range of IP addresses
or AS numbers elements in set Y, the range element is either or AS numbers elements in set Y, the range element is either
"more specific" than or "equal" to a contiguous range element "more specific" than or "equal" to a contiguous range element
within the set X. within the set X.
Validation of a certificate's resource extension in the context of a Validation of a certificate's resource extension in the context of a
Certification Path (see Section 7.2 entails that for every adjacent certification path (see Section 7.2 entails that for every adjacent
pair of certificates in the certification path (certificates 'x' and pair of certificates in the certification path (certificates 'x' and
'x + 1'), the number resources described in certificate 'x' 'x + 1'), the number resources described in certificate 'x'
"encompass" the number resources described in certificate 'x + 1', "encompass" the number resources described in certificate 'x + 1',
and the resources described in the trust anchor information and the resources described in the trust anchor information
"encompass" the resources described in the first certificate in the "encompass" the resources described in the first certificate in the
certification path. certification path.
7.2. Resource Certification Path Validation 7.2. Resource Certification Path Validation
Validation of signed resource data using a target resource Validation of signed resource data using a target resource
certificate consists of verifying that the digital signature of the certificate consists of verifying that the digital signature of the
signed resource data is valid, using the public key of the target signed resource data is valid, using the public key of the target
resource certificate, and also validating the resource certificate in resource certificate, and also validating the resource certificate in
the context of the RPKI, using the path validation process. This the context of the RPKI, using the path validation process. This
path validation process verifies, among other things, that a path validation process verifies, among other things, that a
prospective certification path (a sequence of n certificates) prospective certification path (a sequence of n certificates)
satisfies the following conditions: satisfies the following conditions:
1. for all 'x' in {1, ..., n-1}, the Subject of certificate 'x' 1. for all 'x' in {1, ..., n-1}, the subject of certificate 'x'
is the Issuer of certificate ('x' + 1); is the issuer of certificate ('x' + 1);
2. certificate '1' is issued by a trust anchor; 2. certificate '1' is issued by a trust anchor;
3. certificate 'n' is the certificate to be validated; and 3. certificate 'n' is the certificate to be validated; and
4. for all 'x' in {1, ..., n}, certificate 'x' is valid. 4. for all 'x' in {1, ..., n}, certificate 'x' is valid.
Certificate validation entails verifying that all of the following Certificate validation entails verifying that all of the following
conditions hold, in addition to the Certification Path Validation conditions hold, in addition to the certification path validation
criteria specified in Section 6 of [RFC5280]: criteria specified in Section 6 of [RFC5280]:
1. The certificate can be verified using the Issuer's public key 1. The certificate can be verified using the issuer's public key
and the signature algorithm and the signature algorithm
2. The current time lies within the certificate's Validity From 2. The current time lies within the certificate's Validity From
and To values. and To values.
3. The certificate contains all fields that MUST be present, as 3. The certificate contains all fields that MUST be present, as
defined by this specification, and contains values for defined by this specification, and contains values for
selected fields that are defined as allowable values by this selected fields that are defined as allowable values by this
specification. specification.
4. No field, or field value, that this specification defines as 4. No field, or field value, that this specification defines as
MUST NOT be present is used in the certificate. MUST NOT be present is used in the certificate.
5. The Issuer has not revoked the certificate. A revoked 5. The issuer has not revoked the certificate. A revoked
certificate is identified by the certificate's serial number certificate is identified by the certificate's serial number
being listed on the Issuer's current CRL, as identified by the being listed on the issuer's current CRL, as identified by the
CRLDP of the certificate, the CRL is itself valid, and the CRLDP of the certificate, the CRL is itself valid, and the
public key used to verify the signature on the CRL is the same public key used to verify the signature on the CRL is the same
public key used to verify the certificate itself. public key used to verify the certificate itself.
6. That the resource extension data is "encompassed" by the 6. The resource extension data is "encompassed" by the resource
resource extension data contained in a valid certificate where extension data contained in a valid certificate where this
this Issuer is the Subject (the previous certificate in the issuer is the subject (the previous certificate in the context
context of the ordered sequence defined by the Certification of the ordered sequence defined by the certification path).
Path).
7. The Certification Path originates with a certificate issued by 7. The certification path originates with a certificate issued by
a trust anchor, and there exists a signing chain across the a trust anchor, and there exists a signing chain across the
Certification Path where the Subject of Certificate 'x' in the certification path where the subject of Certificate 'x' in the
Certification Path matches the Issuer in Certificate 'x + 1' certification path matches the issuer in Certificate 'x + 1'
in the Certification Path, and the public key in Certificate in the certification path, and the public key in Certificate
'x' can verify the signature value in Certificate 'x+1'. 'x' can verify the signature value in Certificate 'x+1'.
A certificate validation algorithm MAY perform these tests in any A certificate validation algorithm MAY perform these tests in any
chosen order. chosen order.
Certificates and CRLs used in this process MAY be found in a locally Certificates and CRLs used in this process MAY be found in a locally
maintained cache, maintained by a regular synchronisation across the maintained cache, maintained by a regular synchronization across the
distributed publication repository structure [ID.sidr-repos-struct]. distributed publication repository structure [RFC6481].
There exists the possibility of encountering certificate paths that There exists the possibility of encountering certificate paths that
are arbitrarily long, or attempting to generate paths with loops as are arbitrarily long, or attempting to generate paths with loops as
means of creating a potential DOS attack on an RP. A RP executing means of creating a potential denial-of-service (DOS) attack on an
this procedure MAY apply further heuristics to guide halting the RP. An RP executing this procedure MAY apply further heuristics to
certification path validation process in order to avoid some of the guide the certification path validation process to a halt in order to
issues associated with attempts to validate such malformed avoid some of the issues associated with attempts to validate such
certification path structures. Implementations of Resource malformed certification path structures. Implementations of resource
Certificate validation MAY halt with a validation failure if the certificate validation MAY halt with a validation failure if the
certification path length exceeds a locally defined configuration certification path length exceeds a locally defined configuration
parameter. parameter.
8. Design Notes 8. Design Notes
The following notes provide some additional commentary on the The following notes provide some additional commentary on the
considerations that lie behind some of the design choices that were considerations that lie behind some of the design choices that were
made in the design of this certificate profile. These notes are non- made in the design of this certificate profile. These notes are
normative, i.e. this section of the document does not constitute a non-normative, i.e., this section of the document does not constitute
formal part of the profile specification, and the interpretation of a formal part of the profile specification, and the interpretation of
key words as defined in RFC2119 are not applicable in this section of key words as defined in RFC 2119 are not applicable in this section
the document. of the document.
Certificate Extensions: Certificate Extensions:
This profile does not permit the use of any other critical or This profile does not permit the use of any other critical or
non-critical extensions. The rationale for this restriction is non-critical extensions. The rationale for this restriction is
that the resource certificate profile is intended for a that the resource certificate profile is intended for a
specific define use. In this context it is not seen as being specific defined use. In this context, having certificates
appropriate to be in the position of having certificates with with additional non-critical extensions that RPs may see as
additional non-critical extensions that RPs may see as valid valid certificates without understanding the extensions is
certificates without understanding the extensions, but were the inappropriate, because if the RP were in a position to
RP in a position to understand the extensions, would contradict understand the extensions, it would contradict or qualify this
or qualify in some way this original judgment of validity. original judgment of validity in some way. This profile takes
This profile takes the position of minimalism over the position of minimalism over extensibility. The specific
extensibility. The specific goal for the associated RPKI is to goal for the associated RPKI is to precisely match the INR
precisely match the INR allocation structure through an aligned allocation structure through an aligned certificate structure
certificate structure that describes the allocation and its that describes the allocation and its context within the INR
context within the INR distribution hierarchy. The profile distribution hierarchy. The profile defines a resource
defines a resource certificate that is structured to meet these certificate that is structured to meet these requirements.
requirements.
Certification Authorities and Key Values: Certification Authorities and Key Values:
This profile uses a definition of an instance of a CA as a This profile uses a definition of an instance of a CA as a
combination of a named entity and a key pair. Within this combination of a named entity and a key pair. Within this
definition a CA instance cannot rollover a key pair. However, definition, a CA instance cannot rollover a key pair. However,
the entity can generate a new instance of a CA with a new key the entity can generate a new instance of a CA with a new key
pair and roll over all the signed subordinate products to the pair and roll over all the signed subordinate products to the
new CA [ID.sidr-keyroll]. new CA [RFC6489].
This has a number of implications in terms of Subject name This has a number of implications in terms of subject name
management, CRL Scope and repository publication point management, CRL Scope, and repository publication point
management. management.
CRL Scope and Key Values: CRL Scope and Key Values:
For CRL Scope this profile specifies that a CA issues a single For CRL Scope, this profile specifies that a CA issues a single
CRL at a time, and the scope of the CRL is all certificates CRL at a time, and the scope of the CRL is all certificates
issued by this CA. Because the CA instance is bound to a issued by this CA. Because the CA instance is bound to a
single key pair this implies that the CA's public key, the key single key pair, this implies that the CA's public key, the key
used to validate the CA's CRL, and the key used to validate the used to validate the CA's CRL, and the key used to validate the
certificates revoked by that CRL are all the same key value. certificates revoked by that CRL are all the same key value.
Repository Publication Point: Repository Publication Point:
The definition of a CA affects the design of the repository The definition of a CA affects the design of the repository
publication system. In order to minimize the amount of forced publication system. In order to minimize the amount of forced
re-certification on key rollover events, a repository re-certification on key rollover events, a repository
publication regime that uses the same repository publication publication regime that uses the same repository publication
point for all CA instances that refers to the same entity, but point for all CA instances that refers to the same entity, but
with different key values will minimize the extent of re- with different key values, will minimize the extent of
generation of certificates to only immediate subordinate re-generation of certificates to only immediate subordinate
certificates. This is described in [ID.sidr-keyroll]. certificates. This is described in [RFC6489].
Subject Name: Subject Name:
This profile specifies that Subject names must be unique per This profile specifies that subject names must be unique per
Issuer, and does not specify that Subject names must be issuer, and does not specify that subject names must be
globally unique (in terms of assured uniqueness). This is due globally unique (in terms of assured uniqueness). This is due
to the nature of the RPKI as a distributed PKI, implying that to the nature of the RPKI as a distributed PKI, implying that
there is no ready ability for Certification authorities to there is no ready ability for certification authorities to
coordinate a simple RPKI-wide unique name space without coordinate a simple RPKI-wide unique name space without
resorting to additional critical external dependencies. CAs resorting to additional critical external dependencies. CAs
are advised to use Subject name generation procedures that are advised to use subject name generation procedures that
minimize the potential for name clashes. minimize the potential for name clashes.
One way to achieve this is for a CA to use a Subject name One way to achieve this is for a CA to use a subject name
practice that uses the CommonName component of the practice that uses the CommonName component of the
Distinguished Name as a constant value for any given entity Distinguished Name as a constant value for any given entity
that is the Subject of CA-issued certificates, and set the that is the subject of CA-issued certificates, and set the
serialNumber component of the Distinguished Name to a value serialNumber component of the Distinguished Name to a value
that is derived from the hash of the subject public key value. that is derived from the hash of the subject public key value.
If the CA elects not to use the serialNumber component of the If the CA elects not to use the serialNumber component of the
DistinguishedName, then it is considered beneficial that a CA DistinguishedName, then it is considered beneficial that a CA
generates CommonNames that have themselves a random component generates CommonNames that have themselves a random component
that includes significantly more than 40 bits of entropy in the that includes significantly more than 40 bits of entropy in the
name. Some non-normative recommendations to achieve this name. Some non-normative recommendations to achieve this
include: include:
1) Hash of the subject public key (encoded as ASCII HEX). 1) Hash of the subject public key (encoded as ASCII HEX).
example: cn="999d99d564de366a29cd8468c45ede1848e2cc14" example: cn="999d99d564de366a29cd8468c45ede1848e2cc14"
2) A Universally Unique IDentifier (UUID) [RFC4122] 2) A Universally Unique IDentifier (UUID) [RFC4122]
example: cn="6437d442-6fb5-49ba-bbdb-19c260652098" example: cn="6437d442-6fb5-49ba-bbdb-19c260652098"
3) A randomly generated ASCII HEX encoded string of length 3) A randomly generated ASCII HEX encoded string of length 20
20 or greater: or greater:
example: cn="0f8fcc28e3be4869bc5f8fa114db05e1"> example: cn="0f8fcc28e3be4869bc5f8fa114db05e1">
(A string of 20 ASCII HEX digits would have 80-bits of (A string of 20 ASCII HEX digits would have 80-bits of
entropy) entropy)
4) An internal database key or subscriber ID combined with 4) An internal database key or subscriber ID combined with one
one of the above of the above
example: cn="<DBkey1> (6437d442-6fb5-49ba-bbdb- example: cn="<DBkey1> (6437d442-6fb5-49ba-bbdb-
19c2606520980)" 19c2606520980)"
(The issuing CA may wish to be able to extract the (The issuing CA may wish to be able to extract the database
database key or subscriber ID from the commonName. Since key or subscriber ID from the commonName. Since only the
only the issuing CA would need to be able to parse the issuing CA would need to be able to parse the commonName,
commonName, the database key and the source of entropy the database key and the source of entropy (e.g., a UUID)
(e.g., a UUID) could be separated in any way that the CA could be separated in any way that the CA wants, as long as
wanted, as long as it conformed to the rules for it conforms to the rules for PrintableString. The separator
PrintableString. The separator could be a space could be a space character, parenthesis, hyphen, slash,
character, parenthesis, hyphen, slash, question mark, question mark, etc.
etc.
9. Operational Considerations for Profile Agility 9. Operational Considerations for Profile Agility
This profile requires that relying parties reject certificates or This profile requires that relying parties reject certificates or
CRLs that do not conform to the profile. (Through the remainder of CRLs that do not conform to the profile. (Through the remainder of
this section the term "certificate" is used to refer to both this section, the term "certificate" is used to refer to both
certificates and CRLs.) This includes certificates that contain certificates and CRLs.) This includes certificates that contain
extensions that are prohibited, but which are otherwise valid as per extensions that are prohibited, but that are otherwise valid as per
[RFC5280]. This means that any change in the profile (e.g., [RFC5280]. This means that any change in the profile (e.g.,
extensions, permitted attributes or optional fields, or field extensions, permitted attributes or optional fields, or field
encodings) for certificates used in the RPKI will not be backward encodings) for certificates used in the RPKI will not be backward
compatible. In a general PKI context this constraint probably would compatible. In a general PKI context, this constraint probably would
cause serious problems. In the RPKI, several factors minimize the cause serious problems. In the RPKI, several factors minimize the
difficulty of effecting changes of this sort. difficulty of effecting changes of this sort.
Note that the RPKI is unique in that every relying party (RP) Note that the RPKI is unique in that every relying party (RP)
requires access to every certificate and every CRL issued by the CAs requires access to every certificate issued by the CAs in this
in this system. An important update of the certificates and CRLs system. An important update of the certificates used in the RPKI
used in the RPKI must be supported by all CAs and RPs in the system, must be supported by all CAs and RPs in the system, lest views of the
lest views of the RPKI data differ across RPs. Thus incremental RPKI data differ across RPs. Thus, incremental changes require very
changes require very careful coordination. It would not be careful coordination. It would not be appropriate to introduce a new
appropriate to introduce a new extension, or authorize use of an extension, or authorize use of an extant, standard extension, for a
extant, standard extension, for a security-relevant purpose on a security-relevant purpose on a piecemeal basis.
piecemeal basis.
One might imagine that the "critical" flag in X.509 certificate and One might imagine that the "critical" flag in X.509 certificate
CRL extensions could be used to ameliorate this problem. However, extensions could be used to ameliorate this problem. However, this
this solution is not comprehensive, and does not address the problem solution is not comprehensive and does not address the problem of
of adding a new, security-critical extension. (This is because such adding a new, security-critical extension. (This is because such an
an extension needs to be supported universally, by all CAs and RPs.) extension needs to be supported universally, by all CAs and RPs.)
Also, while some standard extensions can be marked either critical or Also, while some standard extensions can be marked either critical or
non-critical, at the discretion of the issuer, not all have this non-critical, at the discretion of the issuer, not all have this
property, i.e., some standard extensions are always non-critical. property, i.e., some standard extensions are always non-critical.
Moreover, there is no notion of criticality for attributes within a Moreover, there is no notion of criticality for attributes within a
name or optional fields within a field or an extension. Thus the name or optional fields within a field or an extension. Thus, the
critical flag is not a solution to this problem. critical flag is not a solution to this problem.
In typical PKI deployments there are few CAs and many RPs. However, In typical PKI deployments, there are few CAs and many RPs. However,
in the RPKI, essentially every CA in the RPKI is also an RP. Thus in the RPKI, essentially every CA in the RPKI is also an RP. Thus
the set of entities that will need to change in order to issue the set of entities that will need to change in order to issue
certificates under a new format is the same set of entities that will certificates under a new format is the same set of entities that will
need to change to accept these new certificates. To the extent that need to change to accept these new certificates. To the extent that
this is literally true it says that CA/RP coordination for a change this is literally true, it says that CA/RP coordination for a change
is tightly linked anyway. In reality there is an important exception is tightly linked anyway. In reality, there is an important
to this general observation. Small ISPs and holders of provider- exception to this general observation. Small ISPs and holders of
independent allocations are expected to use managed CA services, provider-independent allocations are expected to use managed CA
offered by Regional Internet Registries (RIRs) and potentially by services, offered by Regional Internet Registries (RIRs) and
wholesale Internet Service Providers (ISPs). This reduces the number potentially by wholesale Internet Service Providers (ISPs). This
of distinct CA implementations that are needed, and makes it easier reduces the number of distinct CA implementations that are needed and
to effect changes for certificate issuance. It seems very likely makes it easier to effect changes for certificate issuance. It seems
that these entities also will make use of RP software provided by very likely that these entities also will make use of RP software
their managed CA service provider, which reduces the number of provided by their managed CA service provider, which reduces the
distinct RP software implementations. Also note that many small ISPs number of distinct RP software implementations. Also note that many
(and holders of provider-independent allocations) employ default small ISPs (and holders of provider-independent allocations) employ
routes, and thus need not perform RP validation of RPKI data, default routes, and thus need not perform RP validation of RPKI data,
eliminating these entities as RPs. eliminating these entities as RPs.
Widely available PKI RP software does not cache large numbers of Widely available PKI RP software does not cache large numbers of
certificates and CRLs, an essential strategy for the RPKI. It does certificates, an essential strategy for the RPKI. It does not
not process manifest or ROA data structures, essential elements of process manifest or ROA data structures, essential elements of the
the RPKI repository system. Experience shows that such software RPKI repository system. Experience shows that such software deals
deals poorly with revocation status data. Thus extant RP software is poorly with revocation status data. Thus, extant RP software is not
not adequate for the RPKI, although some open source tools (e.g., adequate for the RPKI, although some open source tools (e.g., OpenSSL
OpenSSL and cryptlib) can be used as building blocks for an RPKI RP and cryptlib) can be used as building blocks for an RPKI RP
implementation. Thus it is anticipated that RPs will make use of implementation. Thus, it is anticipated that RPs will make use of
software designed specifically for the RPKI environment, and software that is designed specifically for the RPKI environment and
available from a limited number of open sources. Several RIRs and is available from a limited number of open sources. Several RIRs and
two companies are providing such software today. Thus it is feasible two companies are providing such software today. Thus it is feasible
to coordinate change to this software among the small number of to coordinate change to this software among the small number of
developers/maintainers. developers/maintainers.
If the resource certificate profile is changed in the future, e.g., If the resource certificate profile is changed in the future, e.g.,
by adding a new extension or changing the allowed set of name by adding a new extension or changing the allowed set of name
attributes or encoding of these attributes, the following procedure attributes or encoding of these attributes, the following procedure
will be employed to effect deployment in the RPKI. The model is will be employed to effect deployment in the RPKI. The model is
analogous to that described in [ID.sidr-algorithm-agility], but is analogous to that described in [RPKI-ALG], but is simpler.
simpler.
A new document will be issued as an update to this RFC. The CP for A new document will be issued as an update to this RFC. The CP for
the RPKI [ID.sidr-cp] will be updated to reference the new the RPKI [RFC6484] will be updated to reference the new certificate
certificate profile. The new CP will define a new policy OID for profile. The new CP will define a new policy OID for certificates
certificates issued under the new certificate profile. The updated issued under the new certificate profile. The updated CP also will
CP also will define a timeline for transition to the new certificate define a timeline for transition to the new certificate (CRL) format.
(CRL) format. This timeline will define 3 phases and associated This timeline will define 3 phases and associated dates:
dates:
1. At the end of phase 1, all RPKI CAs MUST be capable of issuing 1. At the end of phase 1, all RPKI CAs MUST be capable of issuing
certificates under the new profile, if requested by a subject. certificates under the new profile, if requested by a subject.
Any certificate issued under the new format will contain the Any certificate issued under the new format will contain the
new policy OID. new policy OID.
2. During phase 2 CAs MUST issue certificates under the new 2. During phase 2, CAs MUST issue certificates under the new
profile, and these certificates MUST co-exist with profile, and these certificates MUST coexist with certificates
certificates issued under the old format. (CAs will continue issued under the old format. (CAs will continue to issue
to issue certificates under the old OID/format as well.) The certificates under the old OID/format as well.) The old and
old and new certificates MUST be identical, except for the new certificates MUST be identical, except for the policy OID
policy OID and any new extensions, encodings, etc. The new and any new extensions, encodings, etc. The new certificates,
certificates, and associated signed objects, will coexist in and associated signed objects, will coexist in the RPKI
the RPKI repository system during this phase, analogous to repository system during this phase, analogous to what is
what is required by an algorithm transition for the RPKI required by an algorithm transition for the RPKI [RPKI-ALG].
[ID.sidr-algorithm-agility]. Relying parties MAY make use of Relying parties MAY make use of the old or the new certificate
the old or the new certificate formats when processing signed formats when processing signed objects retrieved from the RPKI
objects retrieved from the RPKI repository system. During repository system. During this phase, a relying party that
this phase, a relying party that elects to process both elects to process both formats will acquire the same values
formats will acquire the same values for all certificate for all certificate fields that overlap between the old and
fields that overlap between the old and new formats. Thus if new formats. Thus if either certificate format is verifiable,
either certificate format is verifiable, the relying party the relying party accepts the data from that certificate.
accepts the data from that certificate. This allows CAs to This allows CAs to issue certificates under the new format
issue certificates under the new format before all relying before all relying parties are prepared to process that
parties are prepared to process that format. format.
3. At the beginning of phase 3, all relying parties MUST be 3. At the beginning of phase 3, all relying parties MUST be
capable of processing certificates under the new format. capable of processing certificates under the new format.
During this phase CAs will issue new certificates ONLY under During this phase, CAs will issue new certificates ONLY under
the new format. During this phase, certificates issued under the new format. Certificates issued under the old OID will be
the old OID will be replaced with certificates containing the replaced with certificates containing the new policy OID. The
new policy OID. The repository system will no longer require repository system will no longer require matching old and new
matching old and new certificates under the different formats. certificates under the different formats.
At the end of phase 3, all certificates under the old OID will have At the end of phase 3, all certificates under the old OID will have
been replaced. The resource certificate profile RFC will be replaced been replaced. The resource certificate profile RFC will be replaced
to remove support for the old certificate format, and the CP will be to remove support for the old certificate format, and the CP will be
replaced to remove reference to the old policy OID and to the old replaced to remove reference to the old policy OID and to the old
resource certificate profile RFC. The system will have returned to a resource certificate profile RFC. The system will have returned to a
new, steady state. new, steady state.
10. Security Considerations 10. Security Considerations
The Security Considerations of [RFC5280] and [RFC3779] apply to The Security Considerations of [RFC5280] and [RFC3779] apply to
Resource Certificates. The Security Considerations of [RFC2986] and resource certificates. The Security Considerations of [RFC2986] and
[RFC4211] apply to Resource Certificate certification requests. [RFC4211] apply to resource certificate certification requests.
A Resource Certificate PKI cannot in and of itself resolve any forms A resource certificate PKI cannot in and of itself resolve any forms
of ambiguity relating to uniqueness of assertions of rights of use in of ambiguity relating to uniqueness of assertions of rights of use in
the event that two or more valid certificates encompass the same the event that two or more valid certificates encompass the same
resource. If the issuance of resource certificates is aligned to the resource. If the issuance of resource certificates is aligned to the
status of resource allocations and assignments then the information status of resource allocations and assignments, then the information
conveyed in a certificate is no better than the information in the conveyed in a certificate is no better than the information in the
allocation and assignment databases. allocation and assignment databases.
This profile requires that the key used to sign an issued certificate This profile requires that the key used to sign an issued certificate
is the same key used to sign the CRL that can revoke the certificate, be the same key used to sign the CRL that can revoke the certificate,
implying that the certification path used to validate the signature implying that the certification path used to validate the signature
on a certificate is the same as that used to validate the signature on a certificate is the same as that used to validate the signature
of the CRL that can revoke the certificate. It is noted that this is of the CRL that can revoke the certificate. It is noted that this is
a higher constraint than required in X.509 PKIs, and there may be a a tighter constraint than required in X.509 PKIs, and there may be a
risk in using a path validation implementation that is capable of risk in using a path validation implementation that is capable of
using separate validation paths for a certificate and the using separate validation paths for a certificate and the
corresponding CRL. If there are subject name collisions in the RPKI corresponding CRL. If there are subject name collisions in the RPKI
as a result of CAs not following the guidelines provided here as a result of CAs not following the guidelines provided here
relating to ensuring sufficient entropy in constructing subject relating to ensuring sufficient entropy in constructing subject
names, and this is combined with the situation that an RP uses an names, and this is combined with the situation that an RP uses an
implementation of validation path construction that is not in implementation of validation path construction that is not in
conformance with this RPKI profile, then it is possible that the conformance with this RPKI profile, then it is possible that the
subject name collisions can cause an RP to conclude that an otherwise subject name collisions can cause an RP to conclude that an otherwise
valid certificate has been revoked. valid certificate has been revoked.
11. IANA Considerations 11. Acknowledgements
[Note to IANA, to be removed prior to publication: there are no IANA
considerations stated in this document.]
12. Acknowledgements
The authors would like to particularly acknowledge the valued The authors would like to particularly acknowledge the valued
contribution from Stephen Kent in reviewing this document and contribution from Stephen Kent in reviewing this document and
proposing numerous sections of text that have been incorporated into proposing numerous sections of text that have been incorporated into
the text. The authors also acknowledge the contributions of Sandy the document. The authors also acknowledge the contributions of
Murphy, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo Patara Sandy Murphy, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo
and Rob Austein in the preparation and subsequent review of this Patara, and Rob Austein in the preparation and subsequent review of
document. The document also reflects review comments received from this document. The document also reflects review comments received
Roque Gagliano, Sean Turner and David Cooper. from Roque Gagliano, Sean Turner, and David Cooper.
13. References 12. References
13.1. Normative References
[ID.sidr-cp] 12.1. Normative References
Kent, S., Kong, D., Seo, K., and R. Watro, "Certificate
Policy (CP) for the Resource PKI (RPKI)", Work in
progress: Internet Drafts draft-ietf-sidr-c-13.txt,
September 2010.
[ID.sidr-rpki-algs] [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Huston, G., "A Profile for Algorithms and Key Sizes for Requirement Levels", BCP 14, RFC 2119, March 1997.
use in the Resource Public Key Infrastructure", Work in
progress: Internet
Drafts draft-ietf-sidr-rpki-algs-00.txt, August 2009.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification
Requirement Levels", BCP 14, RFC 2119, March 1997. Request Syntax Specification Version 1.7", RFC 2986,
November 2000.
[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP
Request Syntax Specification Version 1.7", RFC 2986, Addresses and AS Identifiers", RFC 3779, June 2004.
November 2000.
[RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure
Addresses and AS Identifiers", RFC 3779, June 2004. Certificate Request Message Format (CRMF)", RFC 4211,
September 2005.
[RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Certificate Request Message Format (CRMF)", RFC 4211, Housley, R., and W. Polk, "Internet X.509 Public Key
September 2005. Infrastructure Certificate and Certificate Revocation
List (CRL) Profile", RFC 5280, May 2008.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI
Housley, R., and W. Polk, "Internet X.509 Public Key Scheme", RFC 5781, February 2010.
Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, May 2008.
[X.509] ITU-T, "Recommendation X.509: The Directory - [RFC6484] Kent, S., Kong, D., Seo, K., and R. Watro, "Certificate
Authentication Framework", 2000. Policy (CP) for the Resource Public Key Infrastructure
(RPKI)", BCP 173, RFC 6484, February 2012.
[X.680] ITU-T, "Recommendation X.680 (2002) | ISO/IEC 8824-1:2002, [RFC6485] Huston, G., "The Profile for Algorithms and Key Sizes for
Information technology - Abstract Syntax Notation One Use in the Resource Public Key Infrastructure (RPKI)",
(ASN.1): Specification of basic notation", 2002. RFC 6485, February 2012.
13.2. Informative References [X.509] ITU-T, "Recommendation X.509: The Directory -
Authentication Framework", 2000.
[ID.sidr-algorithm-agility] [X.680] ITU-T, "Recommendation X.680 (2002) | ISO/IEC 8824-
Gagliano, R., Kent, S., and S. Turner, "Algorithm Agility 1:2002, Information technology - Abstract Syntax Notation
Procedure for RPKI", Work in progress: Internet One (ASN.1): Specification of basic notation", 2002.
Drafts draft-ietf-sidr-algorithm-agility-00.txt,
February 2011.
[ID.sidr-arch] 12.2. Informative References
Lepinski, M. and S. Kent, "An Infrastructure to Support
Secure Internet Routing", Work in progress: Internet
Drafts draft-ietf-sidr-arch-04.txt, November 2008.
[ID.sidr-keyroll] [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object
Huston, G., Michaelson, G., and S. Kent, "CA Key Rollover Classes and Attribute Types Version 2.0", RFC 2985,
in the RPKI", draft-ietf-sidr-keyroll-02.txt (work in November 2000.
progress), October 2010.
[ID.sidr-repos-struct] [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Huston, G., Loomans, R., and G. Michaelson, "A Profile for Resource Identifier (URI): Generic Syntax", STD 66,
Resource Certificate Repository Structure", RFC 3986, January 2005.
draft-ietf-sidr-repos-struct-04.txt (work in progress),
May 2010.
[ID.sidr-rpki-manifests] [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
Austein, R., Huston, G., Kent, S., and M. Lepinski, Unique IDentifier (UUID) URN Namespace", RFC 4122,
"Manifests for the Resource Public Key Infrastructure", July 2005.
Work in progress: Internet
Drafts draft-ietf-sidr-rpki-manifests-04.txt,
October 2008.
[ID.sidr-signed-object] [RFC4514] Zeilenga, K., "Lightweight Directory Access Protocol
Lepinski, M., Chi, A., and S. Kent, "Signed Object (LDAP): String Representation of Distinguished Names",
Template for the Resource Public Key Infrastructure", RFC 4514, June 2006.
draft-ietf-sidr-signed-object-01.txt (work in progress),
October 2010.
[RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support
Classes and Attribute Types Version 2.0", RFC 2985, Secure Internet Routing", RFC 6480, February 2012.
November 2000.
[RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally [RFC6481] Huston, G., Loomans, R., and G. Michaelson, "A Profile
Unique IDentifier (UUID) URN Namespace", RFC 4122, for Resource Certificate Repository Structure", RFC 6481,
July 2005. February 2012.
[RFC4514] Zeilenga, K., "Lightweight Directory Access Protocol [RFC6486] Austein, R., Huston, G., Kent, S., and M. Lepinski,
(LDAP): String Representation of Distinguished Names", "Manifests for the Resource Public Key Infrastructure
RFC 4514, June 2006. (RPKI)", RFC 6486, February 2012.
[RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI [RFC6488] Lepinski, M., Chi, A., and S. Kent, "Signed Object
Scheme", RFC 5781, February 2010. Template for the Resource Public Key Infrastructure
(RPKI)", RFC 6488, February 2012.
[RFC6489] Huston, G., Michaelson, G., and S. Kent, "Certification
Authority (CA) Key Rollover in the Resource Public Key
Infrastructure (RPKI)", BCP 174, RFC 6489, February 2012.
[RPKI-ALG] Gagliano, R., Kent, S., and S. Turner, "Algorithm Agility
Procedure for RPKI", Work in Progress, November 2011.
Appendix A. Example Resource Certificate Appendix A. Example Resource Certificate
The following is an example Resource Certificate. The following is an example resource certificate.
Certificate Name: 9JfgAEcq7Q-47IwMC5CJIJr6EJs.cer Certificate Name: 9JfgAEcq7Q-47IwMC5CJIJr6EJs.cer
Data: Data:
Version: 3 (0x2) Version: 3 (0x2)
Serial: 1500 (0x5dc) Serial: 1500 (0x5dc)
Signature Algorithm: SHA256WithRSAEncryption Signature Algorithm: SHA256WithRSAEncryption
Issuer: CN=APNIC Production-CVPQSgUkLy7pOXdNeVWGvnFX_0s Issuer: CN=APNIC Production-CVPQSgUkLy7pOXdNeVWGvnFX_0s
Validity Validity
Not Before: Oct 25 12:50:00 2008 GMT Not Before: Oct 25 12:50:00 2008 GMT
skipping to change at page 31, line 10 skipping to change at page 32, line 10
02:5b:2a:d0:8a:7a:33:0a:d5:ce:be:b5:a2:7d:8d: 02:5b:2a:d0:8a:7a:33:0a:d5:ce:be:b5:a2:7d:8d:
59:a1:9d:ee:60:ce:77:3d:e1:86:9a:84:93:90:9f: 59:a1:9d:ee:60:ce:77:3d:e1:86:9a:84:93:90:9f:
34:a7:02:40:59:3a:a5:d1:18:fb:6f:fc:af:d4:02: 34:a7:02:40:59:3a:a5:d1:18:fb:6f:fc:af:d4:02:
d9 d9
Authors' Addresses Authors' Addresses
Geoff Huston Geoff Huston
APNIC APNIC
Email: gih@apnic.net EMail: gih@apnic.net
URI: http://www.apnic.net URI: http://www.apnic.net
George Michaelson George Michaelson
APNIC APNIC
Email: ggm@apnic.net EMail: ggm@apnic.net
URI: http://www.apnic.net URI: http://www.apnic.net
Robert Loomans Robert Loomans
APNIC APNIC
Email: robertl@apnic.net EMail: robertl@apnic.net
URI: http://www.apnic.net URI: http://www.apnic.net
 End of changes. 192 change blocks. 
493 lines changed or deleted 460 lines changed or added

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