| < 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.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||