draft-ietf-sidr-res-certs-18.txt   draft-ietf-sidr-res-certs-19.txt 
SIDR G. Huston SIDR G. Huston
Internet-Draft G. Michaelson Internet-Draft G. Michaelson
Intended status: Standards Track R. Loomans Intended status: Standards Track R. Loomans
Expires: November 20, 2010 APNIC Expires: April 17, 2011 APNIC
May 19, 2010 October 14, 2010
A Profile for X.509 PKIX Resource Certificates A Profile for X.509 PKIX Resource Certificates
draft-ietf-sidr-res-certs-18 draft-ietf-sidr-res-certs-19
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 purposes of supporting validation of assertions of "right-of-use"
of an Internet Number Resource (IP Addresses and Autonomous System of Resources (INRs). The certificates issued under this profile are
Numbers). This profile is used to convey the Issuer's authorisation used to convey the Issuer's authorisation of the Subject to be
of the Subject to be regarded as the current holder of a "right-of- regarded as the current holder of a "right-of-use" of the INRs that
use" of the IP addresses and AS numbers that are described in the are described in the certificate. This document contains the
issued certificate. normative specification of Certificate and Certificate Revocation
List (CRL) syntax in the Resource Public Key Infrastructure (RPKI).
The document also specifies profiles for the format of certificate
requests. The document also specifies the Relying Party RPKI
certificate path validation procedure.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 20, 2010. This Internet-Draft will expire on April 17, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the Copyright (c) 2010 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
skipping to change at page 2, line 14 skipping to change at page 2, line 18
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 RPKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Single-Use EE Certificates . . . . . . . . . . . . . . . . 6 3.1. Single-Use EE Certificates . . . . . . . . . . . . . . . . 6
3.2. Multi-Use EE Certificates . . . . . . . . . . . . . . . . 7 3.2. Multi-Use EE Certificates . . . . . . . . . . . . . . . . 6
4. Resource Certificate Fields . . . . . . . . . . . . . . . . . 7 4. Resource Certificates . . . . . . . . . . . . . . . . . . . . 6
4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 7 4.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 6
4.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 7 4.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 7
4.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . . 8 4.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . . 7
4.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.8. Subject Public Key Info . . . . . . . . . . . . . . . . . 9 4.8. Subject Public Key Info . . . . . . . . . . . . . . . . . 8
4.9. Resource Certificate Version 3 Extension Fields . . . . . 9 4.9. Resource Certificate Extensions . . . . . . . . . . . . . 8
4.9.1. Basic Constraints . . . . . . . . . . . . . . . . . . 9 4.9.1. Basic Constraints . . . . . . . . . . . . . . . . . . 8
4.9.2. Subject Key Identifier . . . . . . . . . . . . . . . . 10 4.9.2. Subject Key Identifier . . . . . . . . . . . . . . . . 9
4.9.3. Authority Key Identifier . . . . . . . . . . . . . . . 10 4.9.3. Authority Key Identifier . . . . . . . . . . . . . . . 9
4.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . . 10 4.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . . 9
4.9.5. Extended Key Usage . . . . . . . . . . . . . . . . . . 11 4.9.5. Extended Key Usage . . . . . . . . . . . . . . . . . . 9
4.9.6. CRL Distribution Points . . . . . . . . . . . . . . . 11 4.9.6. CRL Distribution Points . . . . . . . . . . . . . . . 9
4.9.7. Authority Information Access . . . . . . . . . . . . . 12 4.9.7. Authority Information Access . . . . . . . . . . . . . 10
4.9.8. Subject Information Access . . . . . . . . . . . . . . 12 4.9.8. Subject Information Access . . . . . . . . . . . . . . 11
4.9.9. Certificate Policies . . . . . . . . . . . . . . . . . 14 4.9.9. Certificate Policies . . . . . . . . . . . . . . . . . 12
4.9.10. IP Resources . . . . . . . . . . . . . . . . . . . . . 14 4.9.10. IP Resources . . . . . . . . . . . . . . . . . . . . . 12
4.9.11. AS Resources . . . . . . . . . . . . . . . . . . . . . 15 4.9.11. AS Resources . . . . . . . . . . . . . . . . . . . . . 13
5. Resource Certificate Revocation List Profile . . . . . . . . . 15 5. Resource Certificate Revocation Lists . . . . . . . . . . . . 13
5.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 15 6. Resource Certificate Requests . . . . . . . . . . . . . . . . 14
5.2. Issuer Name . . . . . . . . . . . . . . . . . . . . . . . 15 6.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . . 14
5.3. This Update . . . . . . . . . . . . . . . . . . . . . . . 16
5.4. Next Update . . . . . . . . . . . . . . . . . . . . . . . 16
5.5. Signature . . . . . . . . . . . . . . . . . . . . . . . . 16
5.6. Revoked Certificate List . . . . . . . . . . . . . . . . . 16
5.6.1. Serial Number . . . . . . . . . . . . . . . . . . . . 16
5.6.2. Revocation Date . . . . . . . . . . . . . . . . . . . 16
5.7. CRL Extensions . . . . . . . . . . . . . . . . . . . . . . 16
5.7.1. Authority Key Identifier . . . . . . . . . . . . . . . 17
5.7.2. CRL Number . . . . . . . . . . . . . . . . . . . . . . 17
6. Resource Certificate Request Profile . . . . . . . . . . . . . 17
6.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . . 17
6.1.1. PKCS#10 Resource Certificate Request Template 6.1.1. PKCS#10 Resource Certificate Request Template
Fields . . . . . . . . . . . . . . . . . . . . . . . . 17 Fields . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 18 6.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.1. CRMF Resource Certificate Request Template Fields . . 19 6.2.1. CRMF Resource Certificate Request Template Fields . . 15
6.2.2. Resource Certificate Request Control Fields . . . . . 20 6.2.2. Resource Certificate Request Control Fields . . . . . 16
6.3. Certificate Extension Attributes in Certificate 6.3. Certificate Extension Attributes in Certificate
Requests . . . . . . . . . . . . . . . . . . . . . . . . . 20 Requests . . . . . . . . . . . . . . . . . . . . . . . . . 16
7. Resource Certificate Validation . . . . . . . . . . . . . . . 23 7. Resource Certificate Validation . . . . . . . . . . . . . . . 17
7.1. Resource Extension Validation . . . . . . . . . . . . . . 23 7.1. Resource Extension Validation . . . . . . . . . . . . . . 17
7.2. Resource Certification Path Validation . . . . . . . . . . 24 7.2. Resource Certification Path Validation . . . . . . . . . . 18
8. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 25 8. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 20
9. Security Considerations . . . . . . . . . . . . . . . . . . . 29 9. Security Considerations . . . . . . . . . . . . . . . . . . . 22
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 29 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 23
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23
12.1. Normative References . . . . . . . . . . . . . . . . . . . 30 12.1. Normative References . . . . . . . . . . . . . . . . . . . 23
12.2. Informative References . . . . . . . . . . . . . . . . . . 30 12.2. Informative References . . . . . . . . . . . . . . . . . . 24
Appendix A. Example Resource Certificate . . . . . . . . . . . . 31 Appendix A. Example Resource Certificate . . . . . . . . . . . . 25
Appendix B. Example Certificate Revocation List . . . . . . . . . 33 Appendix B. Example Certificate Revocation List . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 28
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 IP Addresses and [X.509] for use in the context of certification of Internet Number
AS Numbers. Such certificates are termed here "Resource Resources (INRs), i.e., IP Addresses and Autonomous System (AS)
Certificates". Resource Certificates are X.509 certificates that Numbers. Such certificates are termed "Resource Certificates". A
conform to the PKIX profile [RFC5280], and also conform to the Resource Certificate is a certificate that conforms to the PKIX
constraints specified in this profile. Resource Certificates attest profile [RFC5280], and that conforms to the constraints specified in
that the Issuer has granted the Subject a "right-of-use" for a listed this profile. A Resource Certificate attests that the Issuer has
set of IP addresses and Autonomous System numbers. granted the Subject a "right-of-use" for a listed set of IP addresses
and/or Autonomous System numbers.
A Resource Certificate describes an action by a certificate Issuer
that binds a list of IP Address blocks and AS Numbers to the Subject
of the issued certificate. The binding is identified by the
association of the Subject's private key with the Subject's public
key contained in the Resource Certificate, as signed by the private
key of the certificate's Issuer.
In the context of the public Internet, and the use of public number This document is referenced by Section 7 of the Certificate Policy
resources within this context, it is intended that Resource (CP) for the Resource Public Key Infrastructure (RPKI) [ID.sidr-cp].
Certificates are used in a manner that is explicitly aligned to the It is an integral part of that policy and the normative specification
public number resource distribution function. Specifically, when a for certificate and Certificate Revocation List (CRL) syntax used in
number resource is allocated or assigned by a number registry to an the RPKI. The document also specifies profiles for the format of
entity, this allocation is described by an associated Resource certificate requests, and the Relying Party (RP) RPKI certificate
Certificate. This certificate is issued by the number registry, and path validation procedure.
the Subject Public Key that is certified by the Issuer corresponds to
the public part of a key pair for which the private key is associated
with the entity who is the recipient of the number assignment or
allocation. A critical extension to the certificate enumerates the
IP Resources that were allocated or assigned by the Issuer to the
entity. In the context of the public number distribution function,
this corresponds to a hierarchical PKI structure, where Resource
Certificates are issued in only one 'direction' and there is a unique
path of certificates from a certification authority operating at the
apex of a resource distribution hierarchy to a valid certificate.
This PKI structure is termed here a "Resource PKI" (RPKI).
Validation of a Resource Certificate in such a hierarchical PKI can Resource Certificates are to be used in a manner that is consistent
be undertaken by establishing a valid Issuer-Subject certificate with the RPKI Certificate Policy [ID.sidr-cp]. They are issued by
chain from a certificate issued by a trust anchor certification entities that assign and/or allocate public INRs, and thus the RPKI
authority to the certificate [RFC4158], with the additional is aligned with the public INR distribution function. When an INR is
constraint of ensuring that each Subject's listed resources are fully allocated or assigned by a number registry to an entity, this
encompassed by those of the Issuer at each step in the Issuer-Subject allocation can be described by an associated Resource Certificate.
certificate chain. Validation therefore logically corresponds to This certificate is issued by the number registry, and it binds the
validation of an associated set of assignment or allocation actions certificate subject's key to the INRs enumerated in the certificate.
of IP number resources. One or two critical extensions, the IP Address Delegation or AS
Identifier Delegation Extensions [RFC3779], enumerate the INRs that
were allocated or assigned by the Issuer to the Subject.
Resource Certificates may be used in the context of the operation of RP validation of a Resource Certificate is performed in the manner
secure inter-domain routing protocols to convey a right-of-use of an specified in Section 7.1. This validation procedure differs from
IP number resource that is being passed within the routing protocol, that described in section 6 of [RFC5280], such that:
allowing relying parties to verify legitimacy and correctness of o additional validation processing imposed by the INR extensions is
routing information. Related use contexts include validation of required,
Internet Routing Registry objects, validation of routing requests, o a conformation of a public key match between the CRL issuer and
and detection of unauthorised use of IP addresses. 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 This profile defines those fields that are used in a Resource
Certificate that MUST be present for the certificate to be valid. Certificate that MUST be present for the certificate to be valid.
Relying Parties SHOULD check that a Resource Certificate conforms to Any extensions not explicitly mentioned MUST be absent. The same
this profile as a requisite for validation of a Resource Certificate. 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
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], "X.509 and Certificate Revocation List (CRL) Profile" [RFC5280], and "X.509
Extensions for IP Addresses and AS Identifiers" [RFC3779], "Internet Extensions for IP Addresses and AS Identifiers" [RFC3779].
Protocol" [RFC0791], "Internet Protocol Version 6 (IPv6) Addressing
Architecture" [RFC4291], "Internet Registry IP Allocation Guidelines"
[RFC2050], and related regional Internet registry address management
policy documents.
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 RFC 2119. document are to be interpreted as described in RFC 2119.
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 resources currently under the Subject's control certificate and the INRs currently under the Subject's control is
is described in [RFC3779]. described in [RFC3779]. This profile further requires that:
There are three aspects of this resource extension that are noted in
this profile:
1. RFC 3779 notes that a resource extension SHOULD be a CRITICAL o Every Resource Certificate MUST contain either the IP Address
extension to the X.509 Certificate. This Resource Certificate Delegation or the Autonomous System Identifier Delegation
profile further specifies that the use of this certificate extension, or both.
extension MUST be used in all Resource Certificates and MUST
be marked as CRITICAL.
2. RFC 3779 defines a sorted canonical form of describing a o These extensions MUST be marked as CRITICAL.
resource set, with maximal spanning ranges and maximal
spanning prefix masks as appropriate. All valid certificates
in this profile MUST use this sorted canonical form of
resource description in the resource extension field.
3. A test of the resource extension in the context of certificate o The sorted canonical format describing INRs, with maximal spanning
validity includes the condition that the resources described ranges and maximal spanning prefix masks, as defined in [RFC3779],
in the immediate parent CA certificate in the PKI (the MUST be used for the resource extension field, except where the
certificate where this certificate's Issuer is the Subject) "inherit" construct is used instead.
has a resource set (called here the "Issuer's resource set")
that MUST encompass the resource set of the issued
certificate. In this context "encompass" allows for the
Issuer's resource set to be the same as, or a strict superset
of, any Subject's resource set.
Certificate validation entails the construction of a sequence of When validating a Resource Certificate, a RP MUST verify that the
valid certificates in an Issuer-Subject chain (where the Subject INRs described in the Issuer's Resource Certificate encompass the
field of one certificate appears as the Issuer in the next INRs of the Resource Certificate being validated. In this context
certificate in the sequence) from a trust anchor to the certificate "encompass" allows for the Issuer's INRs to be the same as, or a
being validated. Moreover, the resource extensions in this strict superset of the Subject's INRs.
certificate sequence from the first CA under the trust anchor to the
certificate being validated form a sequence of encompassing
relationships in terms of the resources described in the resource
extension.
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 [ID.sidr-arch], 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 resources described in the certificate, relate to the usage of the INRs described in the certificate, e.g.,
e.g., ROAs and manifests. There are type types of EE certificates Route Origin Authorizations (ROAs) and manifests. There are two
defined within the RPKI framework, described in the following types of EE certificates defined within the RPKI framework: single-
sections. use and multi-use.
3.1. Single-Use EE Certificates 3.1. Single-Use EE Certificates
A signing party can exercise control over the validity of the signed The private key associated with a "single-use" EE certificate is used
object through control of the validity of the associated EE to sign a single RPKI signed object, i.e., the single-use EE
certificate as long as there is a 1:1 relationship between the signed certificate is used to validate only one object. The certificate is
object and the EE certificate, or, in other words, assuming the embedded in the object as part of a Cryptographic Message Syntax
private key of the key pair whose public key is the Subject Public (CMS) signed data structure [ID.sidr-signed-object].Because of the
Key of the EE certificate is used to sign exactly one object, and one-to-one relationship between the single-use EE certificate and the
each such object is signed with only one private key. This property signed object, revocation of the certificate effectively revokes the
allows for the RPKI itself to be used to control the validity of corresponding signed object.
these signed objects, rather than creating a novel object-specific
validation control mechanism. Upon revocation of the corresponding
EE certificate, the signature on that object will be considered
invalid, and any attestations made in the context of the signed
object can no longer be considered valid, assuming that a RP's
assessment of validity of a signed object is based upon a verifiable
signature.
EE certificates that are used to control the validity of a single
signed object in this manner are termed "single-use" EE certificates
in this specification.
3.2. Multi-Use EE Certificates 3.2. Multi-Use EE Certificates
It is not a requirement that all EE certificates in the RPKI be used If the private key associated with an EE certificate is intended to
in the context of "single-use" as described in the previous section. be used to validate more than one RPKI signed object, then the
The private key of a key pair whose public key is the Subject Public certificate is termed a "multi-use" EE certificate. All objects that
Key of an EE certificate may be used to sign multiple objects, either can be verified under a multi-use EE certificate are revoked when the
simultaneously or serially. In such a context the validity of the certificate is revoked.
signed object may need to be specified by an alternate mechanism,
unless it is the explicit intent of the signer that the validity of
the collection of all objects signed with a particular private key is
controlled by the validity of the associated EE certificate.
When keys are used in a manner that allows for the signing of
multiple objects, the associated EE certificates are termed "muti-
use" EE certificates in this specification.
4. Resource Certificate Fields 4. Resource Certificates
A Resource Certificate is a valid X.509 v3 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. Unless specifically noted as being OPTIONAL, listed in this section. Only the differences from [RFC5280] are
all the fields listed here MUST be present, and any other field MUST noted below.
NOT appear in a conforming Resource Certificate. Where a field value
is specified here this value MUST be used in conforming Resource Unless specifically noted as being OPTIONAL, all the fields listed
Certificates. here MUST be present, and any other field MUST NOT appear in a
conforming Resource Certificate. Where a field value is specified
here, this value MUST be used in conforming Resource Certificates.
4.1. Version 4.1. Version
Resource Certificates are X.509 Version 3 certificates. This field As Resource Certificates are X.509 Version 3 certificates, the
MUST be present, and the Version MUST be 3 (i.e. the value of this version MUST be 3 (i.e. the value of this field is 2).
field is 2).
RPs need not process version 1 or version 2 certificates (in contrast
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
This field describes the algorithm used to compute the signature on The algorithm used in this profile is specified in
this certificate. The algorithm used in this profile is specified in
[ID.sidr-rpki-algs]. [ID.sidr-rpki-algs].
4.4. Issuer 4.4. Issuer
This field identifies the entity that has signed and issued the The value of this field is a valid X.501 distinguished name.
certificate. The value of this field is a valid X.501 distinguished
name.
If the certificate is a subordinate certificate issued by virtue of An Issuer name MUST contain one instance of the Common Name attribute
the "cA" bit set in the immediate superior certificate, then the and MAY contain one instance of the Serial Number attribute. If both
Issuer name MUST correspond to the Subject name as contained in the attributes are present, it is RECOMMENDED that they appear as a set.
immediate superior certificate. The Common Name attribute MUST be encoded as a printable string.
Issuer names are not intended to be descriptive of the identity of
Issuer.
4.5. Subject The RPKI does not rely on Issuer names being globally unique, for
reasons of security. However, it is RECOMMENDED that Issuer names be
generated in a fashion that minimizes the likelihood of collisions.
See Section 8 for (non-normative) suggested name generation
mechanisms that fulfil this recommendation.
This field identifies the entity to whom the resource has been 4.5. Subject
allocated / assigned. The value of this field is a valid X.501
distinguished name.
In this profile the Subject name is determined by the Issuer, and The value of this field is a valid X.501 distinguished name, and is
each distinct subordinate CA and EE certified by the Issuer MUST be subject to the same constraints as the Issuer name.
identified using a Subject name that is unique per Issuer. In this
context "distinct" is defined as an entity and a given public key.
An Issuer SHOULD use a different Subject name if the Subject entity
or the Subject entity's key pair has changed.
As noted in [ID.sidr-arch], RPKI certificates do not attest to the In the RPKI the Subject name is determined by the Issuer, not
identity of the Subject, inferring that the Subject names used in proposed by the subject [ID.sidr-repos-struct]. Each distinct
certificates are not intended to be descriptive of the identity of subordinate CA and EE certified by the Issuer MUST be identified
Subject. using a Subject name that is unique per Issuer. In this context
"distinct" is defined as an entity and a given public key. An Issuer
SHOULD use a different Subject name if the Subject's key pair has
changed (i.e., when the CA issues a certificate as part of rekeying
the Subject.) Subject names are not intended to be descriptive of
the identity of Subject.
4.6. Valid From 4.6. Valid From
The starting time at which point the certificate is valid. In this The "Valid From" time SHOULD be no earlier than the time of
profile the "Valid From" time SHOULD be no earlier than the time of certificate generation.
certificate generation. As per Section 4.1.2.5 of [RFC5280],
Certification Authorities (CAs) conforming to this profile MUST
always encode the certificate's "Valid From" date through the year
2049 as UTCTime, and dates in 2050 or later MUST be encoded as
GeneralizedTime. These two time formats are defined in [RFC5280].
In this profile, it is valid for a certificate to have a value for In the RPKI it is valid for a certificate to have a value for this
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 a certificate was valid at a time in the past, or time information that a certificate was valid at a time in the past,
will be valid at a time in the future, as the scope of a relying or will be valid at a time in the future, as the scope of a relying
party's test of validity of a certificate refers specifically to party's test of validity of a certificate refers specifically to
validity at the current time. validity at the current time.
4.7. Valid To 4.7. Valid To
The Valid To time is the date and time at which point in time the The Valid To time represents the anticipated lifetime of the current
certificate's validity ends. It represents the anticipated lifetime resource allocation or assignment arrangement between the Issuer and
of the resource allocation / assignment arrangement between the the Subject.
Issuer and the Subject. As per Section 4.1.2.5 of [RFC5280], CAs
conforming to this profile MUST always encode the certificate's
"Valid To" date through the year 2049 as UTCTime, and dates in 2050
or later MUST be encoded as GeneralizedTime. These two time formats
are defined in [RFC5280].
As noted above, it is valid for a certificate to have a value for It is valid for a certificate to have a value for this field that
this field that post-dates the same field value in any superior post-dates the same field value in any superior certificate. The
certificate. The same caveats apply to Relying Party's assumptions same caveats apply to RP's assumptions relating to the certificate's
relating to the certificate's validity at any time other than the validity at any time other than the current time.
current time.
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 interval that exceeds the validity interval of the CA's validity interval that exceeds the validity interval of the CA's
certificate that will be used to validate the issued certificate, in certificate that will be used to validate the issued certificate, in
the context of this profile, it is anticipated that a CA may have the context of this profile, a CA MAY have valid grounds to issue a
valid grounds to issue a certificate with a validity interval that certificate with a validity interval that exceeds the validity
exceeds the validity interval of its certificate. interval of its certificate.
4.8. Subject Public Key Info 4.8. Subject Public Key Info
This field specifies the Subject's public key and the algorithm with The algorithm used in this profile is specified in
which the key is used. The algorithm used in this profile is [ID.sidr-rpki-algs].
specified in [ID.sidr-rpki-algs].
4.9. Resource Certificate Version 3 Extension Fields
As noted in Section 4.2 of [RFC5280], each extension in a certificate 4.9. Resource Certificate Extensions
is designated as either critical or non-critical. A certificate-
using system MUST reject the certificate if it encounters a critical
extension it does not recognise; however, a non-critical extension
MAY be ignored if it is not recognised [RFC5280].
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. Resource Certificate, except where explicitly noted otherwise. Each
extension in a resource certificate is designated as either critical
or non-critical. A certificate-using system MUST reject the
certificate if it encounters a critical extension it does not
recognise; however, a non-critical extension MAY be ignored if it is
not recognised [RFC5280].
4.9.1. Basic Constraints 4.9.1. Basic Constraints
The Basic Constraints extension identifies whether the Subject of the
certificate is a CA and the maximum depth of valid certification
paths that include this certificate.
The Issuer determines whether the "cA" boolean is set. If this bit
is set, then it indicates that the Subject is allowed to issue
resources certificates within this overall framework (i.e. the
Subject is a CA).
The Path Length Constraint is not specified in this profile and MUST
NOT be present.
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.
4.9.2. Subject Key Identifier The Issuer determines whether the "cA" boolean is set.
The Subject Key Identifier extension provides a means of identifying The Path Length Constraint is not specified for RPKI certificates,
certificates that contain a particular public key. To facilitate and MUST NOT be present.
certification path construction, this extension MUST appear in all
Resource Certificates. This extension is non-critical.
The value of the Subject Key Identifier MUST be the value placed in 4.9.2. Subject Key Identifier
the key identifier field of the Authority Key Identifier extension of
all certificates issued by this Subject.
The Key Identifier used here is the 160-bit SHA-1 hash of the value This extension MUST appear in all Resource Certificates. This
of the DER-encoded ASN.1 bit string of the Subject Public Key, as extension is non-critical.
described in Section 4.2.1.2 of [RFC5280].
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
Subject Public Key, as described in Section 4.2.1.2 of [RFC5280].
4.9.3. Authority Key Identifier 4.9.3. Authority Key Identifier
The authority key identifier extension provides a means of This extension MUST appear in all Resource Certificates, with the
identifying certificates that are signed by the Issuer's private key, exception of a CA who issues a "self-signed" certificate. The
by providing a hash value of the Issuer's public key. To facilitate authorityCertIssuer and authorityCertSerialNumber fields MUST NOT be
path construction, this extension MUST appear in all Resource present. This extension is non-critical.
Certificates. The keyIdentifier MUST be present in all Resource
Certificates, with the exception of a CA who issues a "self-signed"
certificate. The authorityCertIssuer and authorityCertSerialNumber
fields MUST NOT be present. This extension is non-critical.
The Key Identifier used here is the 160-bit SHA-1 hash of the value The Key Identifier used for resource certificates is the 160-bit
of the DER-encoded ASN.1 bit string of the Issuer's public key, as SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the
described in Section 4.2.1.1 of [RFC5280]. Issuer's public key, as described in Section 4.2.1.1 of [RFC5280].
4.9.4. Key Usage 4.9.4. Key Usage
This describes the purpose of the certificate. This is a critical This extension is a critical extension and MUST be present.
extension, and it 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.9.5. Extended Key Usage 4.9.5. Extended Key Usage
The Extended Key Usage Extension indicates one or more purposes for The Extended Key Usage (EKU) extension MUST NOT appear in any CA
which the public key in a certificate may be used. The uses are
specified via a SEQUENCE of one or more object identifiers (OIDs).
The EKU extension MUST NOT appear in any Certification Authority
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 such as ROAs or manifests. certificates used to verify RPKI objects (e.g., ROAs or manifests.
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. The extension MUST NOT be marked critical. Permitted other devices. Permitted values for the EKU OIDs will be specified
values for the EKU OIDs will be specified in Standards Track RFCs in Standards Track RFCs issued by other IETF working groups that
issued by other IETF working groups that adopt the RPKI profile and adopt the RPKI profile and that identify application-specific
that identify application-specific requirements that motivate the use requirements that motivate the use of such EKUs.
of such EKUs.
4.9.6. CRL Distribution Points 4.9.6. CRL Distribution Points
This field (CRLDP) identifies the location(s) of the CRL(s) This extension MUST be present, except in "self-signed" certificates,
associated with certificates issued by this Issuer. This profile and it is non-critical. In a self-signed certificate this extension
uses the URI form of object identification. The preferred URI access MUST be omitted.
mechanism is a single RSYNC URI ("rsync://") [RFC5781] that
references a single inclusive CRL for each Issuer. In this profile, the scope of the CRL is specified to be all
certificates issued by this CA Issuer.
The CRL Distribution Points (CRLDP) extension identifies the
location(s) of the CRL(s) associated with certificates issued by this
Issuer. The RPKI uses the URI form of object identification. The
preferred URI access mechanism is a single RSYNC 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 GeneralNames, and MUST NOT contain The distributionPoint MUST contain the fullName field, and MUST NOT
a nameRelativeToCRLIssuer. The form of the generalName MUST be of contain a nameRelativeToCRLIssuer. The form of the generalName MUST
type URI. be of type URI.
In this profile, the scope of the CRL is specified to be all
certificates issued by this CA Issuer.
The sequence of distributionPoint values MUST contain only a single The sequence of distributionPoint values MUST contain only a single
DistributionPointName set. The DistributionPointName set MAY contain DistributionPoint. The DistributionPoint MAY contain more than one
more than one URI value. An RSYNC URI [RFC5781]MUST be present in URI value. An RSYNC URI [RFC5781] MUST be present in the
the DistributionPointName set, and reference the most recent instance DistributionPoint, and reference the most recent instance of this
of this Issuer's certificate revocation list. Other access form URIs Issuer's CRL. Other access form URIs MAY be used in addition to the
MAY be used in addition to the RSYNC URI. RSYNC URI, representing alternate access mechanisms for this CRL.
This extension MUST be present and it is non-critical. There is one
exception, namely where a CA distributes its public key in the form
of a "self-signed" certificate, the CRLDP MUST be omitted.
4.9.7. Authority Information Access 4.9.7. Authority Information Access
This extension (AIA) identifies the point of publication of the In the context of the RPKI, this extension identifies the publication
certificate that is issued by the Issuer's immediate superior CA, point of the certificate of the issuer of the certificate in which
where this certificate's Issuer is the Subject. In this profile a the extension appears. In this profile a single reference to the
single reference object to publication location of the immediate publication point of the immediate superior certificate MUST be
superior certificate MUST be present, except in the case where a CA present, except for a "self-signed" certificate, in which case the
distributes its public key in the form of a "self-signed" extension MUST be omitted. This extension is non-critical.
certificate, in which case the AIA field SHOULD be omitted.
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.
When an Issuer re-issues a CA certificate, the subordinate A CA MUST use a persistent URL name scheme for CA certificates that
certificates need to reference this new certificate via the AIA it issues [ID.sidr-repos-struct]. This implies that a re-issued
field. In order to avoid the situation where a certificate re- certificate overwrites a previously issued certificate (to the same
issuance necessarily implies a requirement to re-issue all Subject) in the publication repository. In this way certificates
subordinate certificates, CA Certificate Issuers SHOULD use a subordinate to the re-issued (CA) certificate can maintain a constant
persistent URL name scheme for issued certificates. This implies Authority Information Access (AIA) extension pointer and thus need
that re-issued certificates overwrite previously issued certificates not be re-issued when the parent certificate is re-issued.
to the same Subject in the publication repository, and use the same
publication name as previously issued certificates. In this way
subordinate certificates can maintain a constant AIA field value and
need not be re-issued due solely to a re-issue of the superior
certificate. The Issuers' policy with respect to the persistence of
name objects of issued certificates MUST be specified in the Issuer's
Certification Practice Statement.
This extension is non-critical.
4.9.8. Subject Information Access 4.9.8. Subject Information Access
This extension (SIA) identifies the location of information and In the context of the RPKI, this extension (SIA) identifies the
services relating to the Subject of the certificate in which the SIA publication point of products signed by the Subject of the
extension appears. Where the Subject is a CA in this profile, this certificate.
information and service collection will include all current valid
certificates that have been issued by this Subject that are signed
with the Subject's corresponding private key.
This profile uses a URI form of location identification. The 4.9.8.1. SIA for CAs
preferred URI access mechanism is "rsync", and an RSYNC URI [RFC5781]
MUST be specified, with an accessMethod value of id-ad-caRepository
when the Subject of the certificate is a CA. The RSYNC URI MUST
reference an object collection rather than an individual object and
MUST use a trailing '/' in the URI.
Other accessMethod URIs that reference the same location MAY also be This extension MUST be present, and is non-critical.
included in the value sequence of this extension. The ordering of
URIs in this sequence reflect the Subject's relative preferences for
access methods to be used by parties for retrieval of objects from
the associated repository publication point, with the first method in
the accessMethod sequence being the most preferred.
This extension MUST be present when the Subject is a CA, and is non- This extension MUST have an instance of an accessMethod of id-ad-
critical. caRepository, with an accessLocation form of a URI that MUST specify
an RSYNC URI [RFC5781]. This URI points to the directory containing
all material issued by this CA. i.e., all valid CA certificates,
multi-use EE certificates, the current CRL, manifest and signed
objects signed by single-use EE certificates that have been issued by
this CA [ID.sidr-repos-struct]. Other accessDescription elements
with an accessMethod of id-ad-caRepository MAY be present. In such
cases, the accessLocation values describe alternate supported URI
access mechanisms for the same directory. The ordering of URIs in
this accessDescription sequence reflect the CA's relative preferences
for access methods to be used by relying parties, with he first
element of the sequence being the most preferred by the CA.
For EE certificates, where the Subject is not a CA, this extension This extension MUST have an instance of an AccessDescription with an
MAY be present, and is non-critical. If present, it either accessMethod of id-ad-rpkiManifest,
references the location where objects signed by the private key
associated with the EE certificate can be accessed, or, in the case
of single-use EE certificates it references the location of the
single object that has been signed by the corresponding private key.
When the Subject is an End-Entity, and it publishes objects signed id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
with the matching private key in a repository publication point, the
URI of the directory where these signed objects are published is used
as the value of the id-ad-signedObjectRepository element.
id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 }
id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 } with an RSYNC URI [RFC5781] form of accessLocation. The URI points
to the CA's manifest of published objects [ID.sidr-rpki-manifests] as
an object URL. Other accessDescription elements MAY exist for the
id-ad-rpkiManifest accessMethod, where the accessLocation value
indicates alternate access mechanisms for the same manifest object.
When the Subject is an End-Entity, and it publishes a single object 4.9.8.2. SIA for Multi-use EEs
signed with the matching private key, the URI of the location where
this signed object is published is used as the value of the id-ad-
signedObject element.
id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } This extension MUST be present, and is non-critical.
This profile requires the use of repository publication manifests This extension MUST have an instance of an accessMethod of id-ad-
[ID.sidr-manifests] to list all signed objects that are deposited in signedObjectRepository,
the repository publication point associated with a CA or an EE. The id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 }
publication point of the manifest for a CA or EE is placed in the SIA
extension of the CA or EE certificate. This profile uses a URI form
of manifest identification for the accessLocation. The preferred URI
access mechanisms is "rsync", and an RSYNC URI [RFC5781] MUST be
specified. Other accessDescription fields may exist for the id-ad-
rpkiManifest accessMethod, where the accessLocation value indicates
alternate URI access mechanisms for the same manifest object.
id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } with an accessLocation form of a URI that MUST specify an RSYNC URI
[RFC5781]. This URI points to the directory containing all signed
objects that are verified using this EE certificate
[ID.sidr-repos-struct]. Other accessDescription elements MAY exist
for the id-ad-signedObjectRepository accessMethod, where the
accessLocation value indicates alternate supported access mechanisms
for the same directory, ordered in terms of the EE's relative
preference for supported access mechanisms.
CA certificates MUST include in the SIA an accessMethod OID of id-ad- This extension MUST have an instance of an AccessDescription with an
rpkiManifest, where the associated accessLocation refers to the accessMethod of id-ad-rpkiManifest, with the same specification as
Subject's published manifest object as an object URL. the CA's manifest.
When an EE certificate is intended for use in verifying multiple 4.9.8.3. SIA for Single-use EEs
objects, EE certificate MUST include in the SIA an accessMethod OID
of id-ad-rpkiManifest, where the associated accessLocation refers to
the EE's published manifest object as an object URL.
When an EE certificate is used to verify a single published object, This extension MUST be present, and is non-critical.
the EE certificate MUST include in the SIA an accessMethod OID of id-
ad-signedObject, where the associated accessLocation refers to the
publication point of the single object that is verified using this EE
certificate. In this case, the SIA MUST NOT include the accessMethod
OID of id-ad-rpkiManifest.
4.9.9. Certificate Policies This extension MUST have an instance of an accessMethod of id-ad-
signedObject,
This extension MUST reference the Resource Certificate Policy, using id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 }
the OID Policy Identifier value of "1.3.6.1.5.5.7.14.2". This field
MUST be present and MUST contain only this value for Resource
Certificates.
No PolicyQualifiers are defined for use with this policy, and MUST with an accessLocation form of a URI that MUST include a RSYNC URI
NOT be included in this extension. [RFC5781]. This URI points to the signed object that is verified
using this EE certificate [ID.sidr-repos-struct]. Other
accessDescription elements may exist for the id-ad-signedObject
accessMethod, where the accessLocation value indicates alternate URI
access mechanisms for the same object, ordered in terms of the EE's
relative preference for supported access mechanisms.
This extension MUST be present and it is critical. Other AccessMethods MUST NOT be used for a single-use EE's SIA.
4.9.9. Certificate Policies
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]
4.9.10. IP Resources 4.9.10. IP Resources
Either the IP Resources extension, or the AS Resources extension, or
both, MUST be present in all RPKI certificates, and if present, MUST
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 AFI value. In the context of resource certificates
describing public number resources for use in the public Internet, describing public number resources for use in the public Internet,
the SAFI value MUST NOT be used. All Resource Certificates MUST the SAFI value MUST NOT be used.
include an IP Resources extension, an AS Resources extension, or both
extensions.
This extension, if present, MUST be marked critical.
Either the IP Resources extension, or the AS Resources extension, or This extension MUST either specify a non-empty set IP address
both, MUST be present in all RPKI certificates. records, or use the "inherit" setting to indicate that the IP address
resource set of this certificate is inherited from that of the
certificate's issuer.
4.9.11. AS Resources 4.9.11. AS Resources
Either the AS Resources extension, or the IP Resources extension, or
both, MUST be present in all RPKI certificates, and if present, MUST
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 may specify the "inherit" element. RDI values are NOT [RFC3779], or may specify the "inherit" element. RDI values are NOT
supported in this profile and MUST NOT be used. All Resource supported in this profile and MUST NOT be used.
Certificates MUST include an IP Resources extension, an AS Resources
extension, or both extensions.
This extension, if present, MUST be marked critical.
Either the IP Resources extension, or the AS Resources extension, or This extension MUST either specify a non-empty set AS number records,
both, MUST be present in all RPKI certificates. 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 List Profile 5. Resource Certificate Revocation Lists
Each CA MUST issue a version 2 Certificate Revocation List (CRL), Each CA MUST issue a version 2 Certificate Revocation List (CRL),
consistent with [RFC5280]. The CRL Issuer is the CA, and no indirect consistent with [RFC5280]. RPs are NOT required to process version 1
CRLs are supported in this profile. CRLs (in contrast to [RFC5280]). The CRL Issuer is the CA. CRLs
conforming to this profile MUST NOT include Indirect or Delta CRLs.
The scope of each CRL MUST be all certificates issued by this CA.
An entry MUST NOT be removed from the CRL until it appears on one The Issuer name is as in Section 4.4 above.
regularly scheduled CRL issued beyond the revoked certificate's
validity period, as required in [RFC5280].
This profile does not allow issuance of Delta CRLs. Where two or more CRLs issued by the same CA, the CRL with the
highest value of the "CRL Number" field supersedes all other CRLs
issued by this CA.
The algorithm used in CRLs issued under this profile is specified in
[ID.sidr-rpki-algs].
The scope of the CRL MUST be "all certificates issued by this CA".
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.
No CRL fields other than those listed here are permitted in CRLs An RPKI CA MUST include the two extensions Authority Key Identifier
issued under this profile. Unless otherwise indicated, these fields and CRL Number in every CRL that it issues. RPs MUST be prepared to
MUST be present in the CRL. Where two or more CRLs issued by a process CRLs with these extensions. No other CRL extensions are
single CA with the same scope, the CRL with the highest value of the allowed.
"CRL Number" field supersedes all other CRLs issued by this CA.
5.1. Version
Resource Certificate Revocation Lists are Version 2 certificates (the
integer value of this field is 1).
5.2. Issuer Name
The value of this field is the X.501 name of the issuing CA who is
also the signer of the CRL, and is identical to the Issuer name in
the Resource Certificates that are issued by this Issuer.
5.3. This Update
This field contains the date and time that this CRL was issued. The
value of this field MUST be encoded as UTCTime for dates through the
year 2049, and MUST be encoded as GeneralizedTime for dates in the
year 2050 or later.
5.4. Next Update
This is the date and time by which the next CRL SHOULD be issued.
The value of this field MUST be encoded as UTCTime for dates through
the year 2049, and MUST be encoded as GeneralizedTime for dates in
the year 2050 or later.
5.5. Signature
This field contains the algorithm used to sign this CRL. The
algorithm used in this profile is specified in [ID.sidr-rpki-algs].
5.6. Revoked Certificate List
When there are no revoked certificates, then the revoked certificate
list MUST be absent.
For each revoked resource certificate only the following fields MUST
be present. No CRL entry extensions are supported in this profile,
and CRL entry extensions MUST NOT be present in a CRL.
5.6.1. Serial Number
The serial number of the revoked certificate.
5.6.2. Revocation Date
The time the certificate was revoked. This time MUST NOT be a future
date (i.e., a date later than ThisUpdate). The value of this field
MUST be encoded as UTCTime for dates through the year 2049, and MUST
be encoded as GeneralizedTime for dates in the year 2050 or later.
5.7. CRL Extensions
The X.509 v2 CRL format allows extensions to be placed in a CRL. The
following extensions are supported in this profile, and MUST be
present in a CRL.
5.7.1. Authority Key Identifier
The authority key identifier extension provides a means of
identifying the public key corresponding to the private key used to
sign a CRL. Conforming CRL Issuers MUST use the key identifier
method. The syntax for this CRL extension is defined in section
4.2.1.1 of [RFC5280].
This extension is non-critical.
5.7.2. CRL Number
The CRL Number extension conveys a monotonically increasing sequence
number of positive integers for a given CA and scope. This extension
allows users to easily determine when a particular CRL supersedes
another CRL. The highest CRL Number value supersedes all other CRLs
issued by the CA with the same scope.
This extension is non-critical. For each revoked resource certificate only the two fields Serial
Number and Revocation Date MUST be present, and all other fields MUST
NOT be present. No CRL entry extensions are supported in this
profile, and CRL entry extensions MUST NOT be present in a CRL.
6. Resource Certificate Request Profile 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 Issuer MUST support Certificate Request Message Format (CRMF). A CA MUST support
PKCS#10 and a CA Issuer MAY, with mutual consent of the Subject, certificate issuance in PKCS#10 and a CA MAY support CRMF requests.
support CRMF.
Note that there is no certificate response defined in this profile.
For CA certificate and multi-use EE certificate requests, the CA
places the Resource Certificate in the repository, as per
[ID.sidr-cp]. No response is defined for single-use EE 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.
This request may be conveyed to the CA via a Registration Authority With the exception of the SubjectPublicKeyinfo and the SIA extension
(RA), acting under the direction of a Subject. request, the CA is permitted to alter any field in the request when
issuing a certificate.
With the exception of the public key related fields, the CA is
permitted to alter any requested field when issuing a corresponding
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 constraints 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 is optional. If present, the value of this field This field MAY be omitted. If present, the value of this field
SHOULD be empty, in which case the Issuer MUST generate a SHOULD be empty (i.e., NULL), in which case the CA MUST
Subject name that is unique in the context of certificates generate a Subject name that is unique in the context of
issued by this Issuer. If the value of this field is non- certificates issued by this CA. This field is allowed to be
empty, then the CA MAY consider the value of this field as the non-empty only for a rekey/reissuance request, and only if the
Subject's suggested Subject name, but the CA is NOT bound to CA has adopted a policy (in its Certificate Practice Statement
honour this suggestion, as the Subject name MUST be unique per (CPS)) that permits name reuse in these circumstances.
subordinate CA and EE in certificates issued by this Issuer.
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 [ID.sidr-rpki-algs].
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
X509v3 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 constraints to fields
that MAY appear in a CertificationRequest Object: that MAY appear in a CertificationRequest Object:
signatureAlgorithm signatureAlgorithm
The algorithm used in this profile is specified in The signatureAlgorithm value is specified in
[ID.sidr-rpki-algs]. [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 issuing a certificate. CRMF, is passed to a CA as the initial step in certificate issuance.
This request MAY be conveyed to the CA via a Registration Authority
(RA), acting under the direction of a Subject.
With the exception of the public key related fields, the CA is With the exception of the SubjectPublicKeyinfo and the SIA extension
permitted to alter any requested field when issuing a corresponding request, the CA is permitted to alter any requested field when
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 constraints 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 MAY be absent, or MAY specify the request of a This field SHOULD be omitted. If present, it MUST specify a
Version 3 Certificate. It SHOULD be omitted. request for a Version 3 Certificate. It
SerialNumber serialNumber
As per [RFC4211], this field is assigned by the CA and MUST be This field MUST be omitted.
omitted in this profile.
SigningAlgorithm signingAlgorithm
As per [RFC4211], this field is assigned by the CA and MUST be This field MUST be omitted.
omitted in this profile.
Issuer issuer
This field is assigned by the CA and MUST be omitted in this This MUST be omitted in this profile.
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 is optional. If present, the value of this field This field MAY be omitted. If present, the value of this field
SHOULD be empty, in which case the Issuer MUST generate a SHOULD be empty (i.e., NULL), in which case the CA MUST
Subject name that is unique in the context of certificates generate a Subject name that is unique in the context of
issued by this Issuer. If the value of this field is non- certificates issued by this CA. This field is allowed to be
empty, then the CA MAY consider the value of this field as the non-empty only for a rekey/reissuance request, and only if the
subject's suggested subject name, but the CA is NOT bound to CA has adopted a policy (in its CPS) that permits name reuse in
honour this suggestion, as the subject name MUST be unique per these circumstances.
Issuer in certificates issued by this Issuer.
PublicKey PublicKey
This field MUST be present. This field MUST be present.
extensions extensions
This attribute contains X509v3 Certificate Extensions. The The profile for extensions in certificate requests is specified
profile for extensions in certificate requests is specified in in Section 6.3.
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
It is noted that the intended model of authentication of the 'The intended model of authentication of the Subject is a "long
Subject is a "long term" model, and the advice as offered in term" model, and the guidance offered in [RFC4211] is that the
[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
with the BasicConstraints extension not present in the issued (hence no BasicConstraints extension will be included).
certificate.
The Path Length Constraint is not supported in this Resource
Certificate Profile, and this field MUST be omitted in this
profile.
The CA MAY honour the SubjectType CA bit set to on. If this
bit is set, then it indicates that the Subject is allowed to
issue resource certificates within this overall framework.
The CA MUST honour the SubjectType CA bit set to off (EE The pathLengthConstraint is not supported in this profile, and
certificate request), in which case the corresponding end this field MUST be omitted.
entity certificate will not contain a BasicConstraints
extension.
SubjectKeyIdentifier The CA MAY honour the cA boolean if set to true (CA certificate
This field is assigned by the CA and MUST be omitted in this request). If this bit is set, then it indicates that the
profile. Subject is requesting a CA certificate.
AuthorityKeyIdentifier The CA MUST honour the cA bit if set to false (EE certificate
This field is assigned by the CA and MUST be omitted in this request), in which case the corresponding EE certificate will
profile. not contain a Basic Constraints extension.
KeyUsage KeyUsage
The CA MAY honour KeyUsage extensions of keyCertSign and The CA MAY honour KeyUsage extensions of keyCertSign 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.
ExtendedKeyUsage ExtendedKeyUsage
The CA MAY honour ExtendedKeyUsage extensions of keyCertSign The CA MAY honour ExtendedKeyUsage extensions of keyCertSign
and cRLSign if present, as long as this is consistent with the and 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 when the Subject is a CA, and the This field MUST be present, and the field value SHOULD be
field value SHOULD be honoured by the CA. If the CA is not honoured by the CA if it conforms to the requirements set forth
able to honour the requested field value, then the CA MUST in Section 4.9.8. If the CA is unable to honour the requested
reject the Certificate Request. value for this field, then the CA MUST reject the Certificate
Request.
This field (SIA) identifies the location of information and
services relating to the Subject of the certificate in which
the SIA extension appears.
Where the Subject is a CA in this profile, this information and
service collection will include all current valid certificates
that have been issued by this Subject that are signed with the
Subject's corresponding private key.
This profile uses a URI form of location identification. An
RSYNC URI [RFC5781] MUST be specified, with an accessMethod
value of id-ad-caRepository when the Subject of the certificate
is a CA. The RSYNC URI MUST reference an object collection
rather than an individual object and MUST use a trailing '/' in
the URI. Other accessMethod URIs that reference the same
location MAY also be included in the value sequence of this
extension. The ordering of URIs in this sequence reflect the
Subject's relative preferences for access methods, with the
first method in the sequence being the most preferred by the
Subject.
A request for a CA certificate MUST include in the SIA of the
request the id-ad-caRepository accessMethod, and also MUST
include in the SIA of the request the accessMethod OID of id-
ad-rpkiManifest, where the associated accessLocation refers to
the Subject's published manifest object as an object URL.
This field MAY be present when the Subject is a EE. If it is
present the field value SHOULD be honoured by the CA. If the
CA is not able to honour the requested field value, then the CA
MUST reject the Certificate Request. If it is not present the
CA SHOULD honour this request and omit the SIA from the issued
certificate. If the CA is not able to honour the request to
omit the SIA, then the CA MUST reject the Certificate Request.
When an EE certificate is intended for use in verifying
multiple objects, the certificate request for the EE
certificate MUST include in the SIA of the request an
accessMethod OID of id-ad-signedObjectRepository, and also MUST
include in the SIA of the request an accessMethod OID of id-ad-
rpkiManifest, where the associated access location refers to
the publication point of the manifest object describing all
objects that are verified using this EE certificate.
When an EE certificate is used to sign a single published
object, the certificate request for the EE certificate MUST
include in the SIA of the request an accessMethod OID of id-ad-
signedObject, where the associated accessLocation refers to the
publication point of the single object that is verified using
this EE certificate, and MUST NOT include an id-ad-rpkiManifest
accessMethod OID in the SIA of the request.
In the case when the EE certificate is to be used exclusively
to sign one or more unpublished objects, such that the all
signed objects will not be published in any RPKI repository,
then the SIA SHOULD be omitted from the request.
CRLDistributionPoints
This field is assigned by the CA and MUST be omitted in this
profile.
AuthorityInformationAccess
This field is assigned by the CA and MUST be omitted in this
profile.
CertificatePolicies
This field is assigned by the CA and MUST be omitted in this
profile.
With the exceptions of the publicKey field and the
SubjectInformationAccess field, the CA is permitted to alter any
requested field.
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].
To meet this goal, the path validation process verifies, among other
things, that a prospective certification path (a sequence of n
certificates) satisfies the following conditions:
1. for all 'x' in {1, ..., n-1}, the Subject of certificate 'x'
is the Issuer of certificate ('x' + 1);
2. certificate '1' is issued by a trust anchor;
3. certificate 'n' is the certificate to be validated; and
4. for all 'x' in {1, ..., n}, certificate 'x' is valid.
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 definitions [RFC3779]
defines critical extensions for Internet number resources. These are define critical extensions for INRs. These are ASN.1 encoded
ASN.1 encoded representations of the IPv4 and IPv6 address range representations of the IPv4 and IPv6 address range and an AS number
(either as a prefix/length, or start-end pair) 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 IP address or AS number contiguous ranges, A and B, A
is "more specific" than B if range B includes all IP addresses is "more specific" than B if range B includes all IP addresses
skipping to change at page 24, line 9 skipping to change at page 18, line 28
Given two IP address or AS number contiguous ranges, A and B, A Given two IP address or AS number contiguous ranges, A and B, A
is "equal" to B if range A describes precisely the same is "equal" to B if range A describes precisely the same
collection of IP addresses or AS numbers as described by range collection of IP addresses or AS numbers as described by range
B. The definition of "inheritance" in [RFC3779] is equivalent B. The definition of "inheritance" in [RFC3779] is equivalent
to this "equality" comparison. 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 an Validation of a certificate's resource extension in the context of a
ordered certificate sequence numbered {1,2, ... , n} where Certification Path (see Section 7.2 entails that for every adjacent
certificate '1' is issued by a trust anchor and certificate 'n' is pair of certificates in the certification path (certificates 'x' and
the target certificate, and where the Subject of certificate 'x' is 'x + 1'), the number resources described in certificate 'x'
the Issuer of certificate ('x + 1'), includes verification that that "encompass" the number resources described in certificate 'x + 1',
the resources described in certificate 'x' "encompass" the resources and the resources described in the trust anchor information
described in certificate ('x + 1'), and the resources described in "encompass" the resources described in the first certificate in the
the trust anchor information "encompass" the resources described in certification path.
certificate '1'.
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 assembling an ordered sequence (or certificate consists of verifying that the digital signature of the
'Certification Path') of certificates ({1,2,...n} where '1' is a signed resource data is valid, using the public key of the target
certificate that has been issued by a trust anchor, and 'n' is the resource certificate, and also validating the resource certificate in
target certificate) verifying that all of the following conditions the context of the RPKI, using the path validation process. This
hold: path validation process verifies, among other things, that a
prospective certification path (a sequence of n certificates)
satisfies the following conditions:
1. for all 'x' in {1, ..., n-1}, the Subject of certificate 'x'
is the Issuer of certificate ('x' + 1);
2. certificate '1' is issued by a trust anchor;
3. certificate 'n' is the certificate to be validated; and
4. for all 'x' in {1, ..., n}, certificate 'x' is valid.
Certificate validation entails verifying that all of the following
conditions hold, in addition to the Certification Path Validation
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 and 3. The certificate contains all fields that MUST be present, as
contains field values as specified in this profile for all defined by this specification, and contains values for
field values that MUST be present. selected fields that are defined as allowable values by this
specification.
4. No field value that MUST NOT be present in this profile is 4. No field, or field value, that this specification defines as
present in the certificate. MUST NOT be present is used in the certificate.
5. The Issuer has not revoked the certificate by placing the 5. The Issuer has not revoked the certificate. A revoked
certificate's serial number on the Issuer's current certificate is identified by the certificate's serial number
Certificate Revocation List, and the Certificate Revocation being listed on the Issuer's current CRL, as identified by the
List is itself valid. 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 certificate itself.
6. That the resource extension data is "encompassed" by the 6. That the resource extension data is "encompassed" by the
resource extension data contained in a valid certificate where resource extension data contained in a valid certificate where
this Issuer is the Subject (the previous certificate in the this Issuer is the Subject (the previous certificate in the
ordered sequence) context of the ordered sequence defined by the Certification
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. in the Certification Path, and the public key in Certificate
'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 synchronisation across the
distributed publication repository structure. distributed publication repository structure [ID.sidr-repos-struct].
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 a relying party. Some means of creating a potential DOS attack on a RP. A RP executing
further heuristics may be required to halt the certification path this procedure MAY apply further heuristics to guide halting the
validation process in order to avoid some of the issues associated certification path validation process in order to avoid some of the
with attempts to validate such structures. It is suggested that issues associated with attempts to validate such malformed
implementations of Resource Certificate validation MAY halt with a certification path structures. Implementations of Resource
validation failure if the certification path length exceeds a locally Certificate validation MAY halt with a validation failure if the
defined configuration parameter. certification path length exceeds a locally defined configuration
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 do not made in the design of this certificate profile. These notes are non-
constitute a formal part of the profile specification, and the normative, i.e. this section of the document does not constitute a
interpretation of key words as defined in RFC2119 are not applicable formal part of the profile specification, and the interpretation of
in this section of the document. key words as defined in RFC2119 are not applicable in this section 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 use, and in this context it is not seen as being specific define use. In this context it is not seen as being
appropriate to be in the position of having certificates with appropriate to be in the position of having certificates with
additional non-critical extensions that relying parties may see additional non-critical extensions that RPs may see as valid
as valid certificates without understanding the extensions, but certificates without understanding the extensions, but were the
were the relying party in a position to understand the RP in a position to understand the extensions, would contradict
extensions, would contradict or qualify in some way this or qualify in some way this original judgment of validity.
original judgment of validity. This profile takes the position This profile takes the position of minimalism over
of minimalism over extensibility. The specific goal for the extensibility. The specific goal for the associated RPKI is to
associated Resource Public Key Infrastructure to precisely precisely match the INR allocation structure through an aligned
match the IP number resource allocation structure through an certificate structure that describes the allocation and its
aligned certificate structure that describes the allocation and context within the INR distribution hierarchy. The profile
its context within the number resource distribution hierarchy. defines a resource certificate that is structured to meet these
The profile defines a resource certificate that is structured requirements.
to meet these 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. new CA [ID.sidr-keyroll].
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.
Subject name: CRL Scope and Key Values:
For Subject names the Issuer should ensure that when an For CRL Scope this profile specifies that a CA issues a single
entity requests a certificate with a new key pair, the CA CRL at a time, and the scope of the CRL is all certificates
issues a certificate with a new Subject name. One way to issued by this CA. Because the CA instance is bound to a
achieve this is to use a commonName field value that is single key pair this implies that the CA's public key, the key
unique per subordinate entity, using an algorithm of the used to validate the CA's CRL, and the key used to validate the
CA's devising to ensure this uniqueness, and for the CA certificates revoked by that CRL are all the same key value.
to include the serialNumber field value of the X.501
distinguished name structure, with a serial number value
that is derived from the hash of the subject public key
value. Using an informal description of an ASN.1 data
structure, a Subject name can be constructed in this
manner as a Subject consisting of a SET whose elements
are a SEQUENCE of a single serialNumber and a SEQUENCE of
a single commonName.
It should also be noted that conventions are imposed on
Subject names used in resource certificates, as described
in [ID.sidr-arch], and that any name scheme should comply
with these conventions.
CRL Scope:
For CRL Scope this profile specifies that a CA issues a
single CRL sequence, and the scope of the CRL is all
certificates 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 used to validate the CA's CRL, and
the key used to validate the certificates revoked by that
CRL are all the same.
Repository Publication Point:
The definition of a CA affects the design of the
repository publication system. In order to minimize the
amount of forced re-certification on key rollover events,
a repository publication regime that uses the same
repository publication point for all CA instances that
refers to the same entity, but with different key values
will minimize the extent of re-generation of certificates
to only immediate subordinate certificates.
In order for two or more CA instances to share a single
repository publication point there needs to be a regime
of key management into OLD, CURRENT and FUTURE keys and a
similar regime of OLD, CURRENT and FUTURE CAs. An OLD CA
should regularly publish its CRL for as long as the OLD
CA instance is still valid, and issue EE certificates as
necessary to maintain a current manifest of all OLD CA
published products, but it should not sign any other
products. The CURRENT CA should publish its CRL, and
should publish all subordinate products, as well as
issuing EE certificates as necessary to maintain a
current manifest of all CURRENT CA published products.
FUTURE CAs should publish no products at all in the
repository publication point. It would be consistent
with this repository object name framework for the CRL
and manifest to be published using object names derived
from the hash of the public key value of the CA instance.
Key Rollover:
As a CA instance is associated with a single key pair, there
are some considerations regarding the procedure that should be
followed by an entity performing a key rollover function. The
entity will need to create a new CA instance and then use this
new CA instance to re-issue all subordinate products with the
new CA instance.
To perform a key rollover operation the entity will need to:
1. Generate a NEW key pair.
2. Generate a certificate request with the NEW key
pair and pass the request to the entity's immediate
superior CA as the certificate Issuer.
3. Request the entity's Issuer to generate and publish Repository Publication Point:
a NEW CA certificate, with an issuer-selected The definition of a CA affects the design of the repository
Subject name that is distinct from the Subject name publication system. In order to minimize the amount of forced
used in conjunction with the previous Subject name re-certification on key rollover events, a repository
value for this entity. publication regime that uses the same repository publication
point for all CA instances that refers to the same entity, but
with different key values will minimize the extent of re-
generation of certificates to only immediate subordinate
certificates. This is described in [ID.sidr-keyroll].
4. Mark the CURRENT CA as OLD and the NEW CA as Subject Name:
CURRENT. This profile specifies that Subject names must be unique per
Issuer, and does not specify that Subject names must be
globally unique (in terms of assured uniqueness). This is due
to the nature of the RPKI as a distributed PKI, implying that
there is no ready ability for Certification authorities to
coordinate a simple RPKI-wide unique name space without
resorting to additional critical external dependencies. CAs
are advised to use Subject name generation procedures that
minimize the potential for name clashes.
5. The CURRENT CA will generate new certificates for One way to achieve this is for a CA to use a Subject name
all existing subordinate CA and EE certificates, practice that uses the CommonName component of the
and publish those products in the same repository Distinguished Name as a constant value for any given entity
publication point and with the same repository that is the Subject of CA-issued certificates, and set the
publication point name as the previous OLD serialNumber component of the Distinguished Name to a value
subordinate CA and EE certificates. The keys in that is derived from the hash of the subject public key value.
these reissued certificates must not change.
6. Where the signing structure uses a packaging format If the CA elects not to use the serialNumber component of the
that includes the EE certificate within the signed DistinguishedName, then it is considered beneficial that a CA
data, signed objects that included OLD EE generates CommonNames that have themselves a random component
certificates in their signed data will need to be that includes significantly more than 40 bits of entropy in the
re-signed using an EE certificate issued by the name. Some non-normative recommendations to achieve this
CURRENT CA. In the case where the OLD EE include:
certificate is a "single use" EE certificate and
the associate private key has been destroyed this
will entail the generate of a new key pair, the
issuing of an EE certificate by the CURRENT CA. In
the case of a "multi-use" EE certificate, the EE
certificate should be issued using the CURRENT CA.
The object, together with the issued EE
certificate, should be signed with the associated
private key, and published in the same repository
publication point, using the same repository
publication point name, as the previously signed
object that it replaces (i.e. overwrite the old
signed object).
7. Generate a certificate revocation request for the 1) Hash of the subject public key (encoded as ASCII HEX).
OLD CA certificate and pass it to the entity's example: cn="999d99d564de366a29cd8468c45ede1848e2cc14"
Issuer.
8. Remove all published OLD CA products and destroy 2) A Universally Unique IDentifier (UUID) [RFC4122]
the OLD private key. example: cn="6437d442-6fb5-49ba-bbdb-19c260652098"
Name Uniqueness: 3) A randomly generated ASCII HEX encoded string of length
This profile specifies that Subject names must be unique per 20 or greater:
Issuer, and does not specify that Subject names must be example: cn="0f8fcc28e3be4869bc5f8fa114db05e1">
globally unique. (A string of 20 ASCII HEX digits would have 80-bits of
entropy)
Given that the RPKI is a distributed PKI, there is no inherent 4) An internal database key or subscriber ID combined with
ability for Certification authorities to coordinate PKI-wide one of the above
unique Subject names. CA's should use multi-attribute, example: cn="<DBkey1> (6437d442-6fb5-49ba-bbdb-
structured Subject names in their RPKI certificates. This 19c2606520980)"
advice is motivated by a desire to include within this (The issuing CA may wish to be able to extract the
specification a CA's Subject naming practice that uses a database key or subscriber ID from the commonName. Since
distinguished name component that is constant for any given only the issuing CA would need to be able to parse the
entity that is the Subject of CA-issued certificates (the commonName, the database key and the source of entropy
CommonName component of the Distinguished Name), yet still (e.g., a UUID) could be separated in any way that the CA
ensure that the structures Subject name changes whenever wanted, as long as it conformed to the rules for
Subject key rollover occurs (the serial number component of the PrintableString. The separator could be a space
Distinguished Name). Also, as the publication repository is character, parenthesis, hyphen, slash, question mark,
distributed, and distinct entities use distinct repository etc.
publication points any potential ambiguity is resolved by the
distinct publication point.
9. Security Considerations 9. Security Considerations
The Security Considerations of [RFC5280] and [RFC3779] apply to The Security Considerations of [RFC5280] and [RFC3779] apply to
Resource Certificates as defined by this profile, and their use. Resource Certificates. The Security Considerations of [RFC2986] and
[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
is the same key used to sign the CRL that can revoke the certificate,
implying that the certificate path used to validate a signature on a
certificates is the same as that used to validate a signatures the
CRL that revokes the certificate. It is noted that this is a higher
constraint than required in X.509 PKIs, and there may be a risk in
using a path validation implementation that is capable of using
separate validation paths for a certificate and the corresponding
CRL. If there are subject name collisions in the RPKI as a result of
CAs not following the guidelines provided here relating to ensuring
sufficient entropy in constructing subject names, and this is
combined with the situation that an RP uses an implementation of
validation path construction that is not in conformance with this
RPKI profile, then it is possible that the subject name collisions
can cause an RP to conclude that an otherwise valid certificate has
been revoked.
10. IANA Considerations 10. IANA Considerations
[Note to IANA, to be removed prior to publication: there are no IANA [Note to IANA, to be removed prior to publication: there are no IANA
considerations stated in this document.] considerations stated in this document.]
11. Acknowledgements 11. 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 text. The authors also acknowledge the contributions of Sandy
Murphy, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo Patara Murphy, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo Patara
and Rob Austein in the preparation and subsequent review of this and Rob Austein in the preparation and subsequent review of this
document. The document also reflects review comments received from document. The document also reflects review comments received from
Roque Gagliano, Sean Turner and David Cooper. Roque Gagliano, Sean Turner and David Cooper.
12. References 12. References
12.1. Normative References 12.1. Normative References
[ID.sidr-cp]
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] [ID.sidr-rpki-algs]
Huston, G., "A Profile for Algorithms and Key Sizes for Huston, G., "A Profile for Algorithms and Key Sizes for
use in the Resource Public Key Infrastructure", Work in use in the Resource Public Key Infrastructure", Work in
progress: Internet progress: Internet
Drafts draft-ietf-sidr-rpki-algs-00.txt, August 2009. Drafts draft-ietf-sidr-rpki-algs-00.txt, August 2009.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification
September 1981. Request Syntax Specification Version 1.7", RFC 2986,
November 2000.
[RFC2050] Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D., and
J. Postel, "INTERNET REGISTRY IP ALLOCATION GUIDELINES",
BCP 12, RFC 2050, November 1996.
[RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP
Addresses and AS Identifiers", RFC 3779, June 2004. Addresses and AS Identifiers", RFC 3779, June 2004.
[RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure
Certificate Request Message Format (CRMF)", RFC 4211, Certificate Request Message Format (CRMF)", RFC 4211,
September 2005. September 2005.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, May 2008. (CRL) Profile", RFC 5280, May 2008.
[X.509] ITU-T, "Recommendation X.509: The Directory - [X.509] ITU-T, "Recommendation X.509: The Directory -
Authentication Framework", 2000. Authentication Framework", 2000.
12.2. Informative References 12.2. Informative References
[ID.sidr-arch] [ID.sidr-arch]
Lepinski, M. and S. Kent, "An Infrastructure to Support Lepinski, M. and S. Kent, "An Infrastructure to Support
Secure Internet Routing", Work in progress: Internet Secure Internet Routing", Work in progress: Internet
Drafts draft-ietf-sidr-arch-04.txt, November 2008. Drafts draft-ietf-sidr-arch-04.txt, November 2008.
[ID.sidr-manifests] [ID.sidr-keyroll]
Huston, G., Michaelson, G., and S. Kent, "CA Key Rollover
in the RPKI", draft-ietf-sidr-keyroll-02.txt (work in
progress), October 2010.
[ID.sidr-repos-struct]
Huston, G., Loomans, R., and G. Michaleson, "A Profile for
Resource Certificate Repository Structure",
draft-ietf-sidr-repos-struct-04.txt (work in progress),
May 2010.
[ID.sidr-rpki-manifests]
Austein, R., Huston, G., Kent, S., and M. Lepinski, Austein, R., Huston, G., Kent, S., and M. Lepinski,
"Manifests for the Resource Public Key Infrastructure", "Manifests for the Resource Public Key Infrastructure",
Work in progress: Internet Work in progress: Internet
Drafts draft-ietf-sidr-rpki-manifests-04.txt, Drafts draft-ietf-sidr-rpki-manifests-04.txt,
October 2008. October 2008.
[ID.sidr-signed-object]
Lepinski, M., Chi, A., and S. Kent, "Signed Object
Template for the Resource Public Key Infrastructure",
draft-ietf-sidr-signed-object-01.txt (work in progress),
October 2010.
[RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object
Classes and Attribute Types Version 2.0", RFC 2985, Classes and Attribute Types Version 2.0", RFC 2985,
November 2000. November 2000.
[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
Request Syntax Specification Version 1.7", RFC 2986, Unique IDentifier (UUID) URN Namespace", RFC 4122,
November 2000. July 2005.
[RFC4158] Cooper, M., Dzambasow, Y., Hesse, P., Joseph, S., and R.
Nicholas, "Internet X.509 Public Key Infrastructure:
Certification Path Building", RFC 4158, September 2005.
[RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI [RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI
Scheme", RFC 5781, February 2010. Scheme", RFC 5781, February 2010.
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
Not After : Jan 31 00:00:00 2010 GMT Not After : Jan 31 00:00:00 2010 GMT
Subject: CN=A91872ED Subject: CN=A91872ED
Subject Public Key Info: Subject Public Key Info:
Public Key Algorithm: rsaEncryption Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit) RSA Public Key: (2048 bit)
skipping to change at page 33, line 10 skipping to change at page 27, line 12
24021 24021
38610 38610
131072 131072
131074 131074
sbgp-ipAddrBlock: critical sbgp-ipAddrBlock: critical
IPv4: IPv4:
203.133.248.0/22 203.133.248.0/22
203.147.108.0/23 203.147.108.0/23
Signature Algorithm: sha256WithRSAEncryption Signature Algorithm: sha256WithRSAEncryption
51:4c:77:e4:21:64:80:e9:35:30:20:9f:d8:4b:88:60:b8:1f: 51:4c:77:e4:21:64:80:e9:35:30:20:9f:d8:4b:88:60:b8:1f:
73:24:9d:b5:17:60:65:6a:28:cc:43:4b:68:97:ca:76:07:eb: 73:24:9d:b5:17:60:65:6a:28:cc:43:4b:68:97:ca:76:07:eb:
dc:bd:a2:08:3c:8c:56:38:c6:0a:1e:a8:af:f5:b9:42:02:6b: dc:bd:a2:08:3c:8c:56:38:c6:0a:1e:a8:af:f5:b9:42:02:6b:
77:e0:b1:1c:4a:88:e6:6f:b6:17:d3:59:41:d7:a0:62:86:59: 77:e0:b1:1c:4a:88:e6:6f:b6:17:d3:59:41:d7:a0:62:86:59:
29:79:26:76:34:d1:16:2d:75:05:cb:b2:99:bf:ca:c6:68:1b: 29:79:26:76:34:d1:16:2d:75:05:cb:b2:99:bf:ca:c6:68:1b:
b6:a9:b0:f4:43:2e:df:e3:7f:3c:b3:72:1a:99:fa:5d:94:a1: b6:a9:b0:f4:43:2e:df:e3:7f:3c:b3:72:1a:99:fa:5d:94:a1:
eb:57:9c:9a:2c:87:d6:40:32:c9:ff:a6:54:b8:91:87:fd:90: eb:57:9c:9a:2c:87:d6:40:32:c9:ff:a6:54:b8:91:87:fd:90:
55:ef:12:3e:1e:2e:cf:c5:ea:c3:4c:09:62:4f:88:00:a0:7f: 55:ef:12:3e:1e:2e:cf:c5:ea:c3:4c:09:62:4f:88:00:a0:7f:
cd:67:83:bc:27:e1:74:2c:18:4e:3f:12:1d:ef:29:0f:e3:27: cd:67:83:bc:27:e1:74:2c:18:4e:3f:12:1d:ef:29:0f:e3:27:
00:ce:14:eb:f0:01:f0:36:25:a2:33:a8:c6:2f:31:18:22:30: 00:ce:14:eb:f0:01:f0:36:25:a2:33:a8:c6:2f:31:18:22:30:
skipping to change at page 35, line 8 skipping to change at page 29, line 8
d3:f3:0c:8d:5c:49:a5:fb:49:fd:e7:c4:73:68:0a: d3:f3:0c:8d:5c:49:a5:fb:49:fd:e7:c4:73:68:0a:
09:0e:6d:68:a9:06:52:3a:36:4f:19:47:83:59:da: 09:0e:6d:68:a9:06:52:3a:36:4f:19:47:83:59:da:
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
Asia Pacific Network Information Centre APNIC
Email: gih@apnic.net Email: gih@apnic.net
URI: http://www.apnic.net URI: http://www.apnic.net
George Michaelson George Michaelson
Asia Pacific Network Information Centre APNIC
Email: ggm@apnic.net Email: ggm@apnic.net
URI: http://www.apnic.net URI: http://www.apnic.net
Robert Loomans Robert Loomans
Asia Pacific Network Information Centre APNIC
Email: robertl@apnic.net Email: robertl@apnic.net
URI: http://www.apnic.net URI: http://www.apnic.net
 End of changes. 154 change blocks. 
900 lines changed or deleted 607 lines changed or added

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