| < draft-ietf-sidr-res-certs-13.txt | draft-ietf-sidr-res-certs-14.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: March 23, 2009 APNIC | Expires: April 29, 2009 APNIC | |||
| September 19, 2008 | October 26, 2008 | |||
| A Profile for X.509 PKIX Resource Certificates | A Profile for X.509 PKIX Resource Certificates | |||
| draft-ietf-sidr-res-certs-13 | draft-ietf-sidr-res-certs-14 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| 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." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on March 23, 2009. | This Internet-Draft will expire on April 29, 2009. | |||
| 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 an Internet Number Resource (IP Addresses and Autonomous System | |||
| Numbers). This profile is used to convey the issuer's authorization | Numbers). This profile is used to convey the issuer's authorization | |||
| of the subject to be regarded as the current holder of a "right-of- | of the subject to be regarded as the current holder of a "right-of- | |||
| use" of the IP addresses and AS numbers that are described in the | use" of the IP addresses and AS numbers that are described in the | |||
| issued certificate. | issued certificate. | |||
| 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. Resource Certificate Fields . . . . . . . . . . . . . . . . . 6 | 3. Resource Certificate Fields . . . . . . . . . . . . . . . . . 6 | |||
| 3.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 6 | 3.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.8. Subject Public Key Info . . . . . . . . . . . . . . . . . 8 | 3.8. Subject Public Key Info . . . . . . . . . . . . . . . . . 8 | |||
| 3.9. Resource Certificate Version 3 Extension Fields . . . . . 8 | 3.9. Resource Certificate Version 3 Extension Fields . . . . . 8 | |||
| 3.9.1. Basic Constraints . . . . . . . . . . . . . . . . . . 9 | 3.9.1. Basic Constraints . . . . . . . . . . . . . . . . . . 9 | |||
| 3.9.2. Subject Key Identifier . . . . . . . . . . . . . . . . 9 | 3.9.2. Subject Key Identifier . . . . . . . . . . . . . . . . 9 | |||
| 3.9.3. Authority Key Identifier . . . . . . . . . . . . . . . 9 | 3.9.3. Authority Key Identifier . . . . . . . . . . . . . . . 9 | |||
| 3.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . . 10 | 3.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| skipping to change at page 3, line 6 ¶ | skipping to change at page 3, line 6 ¶ | |||
| Fields . . . . . . . . . . . . . . . . . . . . . . . . 16 | Fields . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 17 | 5.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.2.1. CRMF Resource Certificate Request Template Fields . . 18 | 5.2.1. CRMF Resource Certificate Request Template Fields . . 18 | |||
| 5.2.2. Resource Certificate Request Control Fields . . . . . 19 | 5.2.2. Resource Certificate Request Control Fields . . . . . 19 | |||
| 5.3. Certificate Extension Attributes in Certificate | 5.3. Certificate Extension Attributes in Certificate | |||
| Requests . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Requests . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 6. Resource Certificate Validation . . . . . . . . . . . . . . . 21 | 6. Resource Certificate Validation . . . . . . . . . . . . . . . 21 | |||
| 6.1. Resource Extension Validation . . . . . . . . . . . . . . 22 | 6.1. Resource Extension Validation . . . . . . . . . . . . . . 22 | |||
| 6.2. Resource Certification Path Validation . . . . . . . . . . 23 | 6.2. Resource Certification Path Validation . . . . . . . . . . 23 | |||
| 6.3. Trust Anchors for Resource Certificates . . . . . . . . . 24 | 6.3. Trust Anchors for Resource Certificates . . . . . . . . . 24 | |||
| 6.3.1. Distribution Format of Nominated Trust Anchor | 6.3.1. Distribution Format of Default Trust Anchor | |||
| Material . . . . . . . . . . . . . . . . . . . . . . . 25 | Material . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 7. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 7. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 31 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 31 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 32 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 32 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . . 32 | 11.1. Normative References . . . . . . . . . . . . . . . . . . . 32 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . . 33 | 11.2. Informative References . . . . . . . . . . . . . . . . . . 32 | |||
| Appendix A. Example Resource Certificate . . . . . . . . . . . . 33 | Appendix A. Example Resource Certificate . . . . . . . . . . . . 33 | |||
| Appendix B. Example Certificate Revocation List . . . . . . . . . 35 | Appendix B. Example Certificate Revocation List . . . . . . . . . 35 | |||
| Appendix C. Cryptographic Message Syntax Profile for RPKI | Appendix C. Cryptographic Message Syntax Profile for RPKI | |||
| Trust Anchor Material . . . . . . . . . . . . . . . . 37 | Trust Anchor Material . . . . . . . . . . . . . . . . 37 | |||
| C.1. Signed-Data ContentType . . . . . . . . . . . . . . . . . 37 | C.1. Signed-Data ContentType . . . . . . . . . . . . . . . . . 37 | |||
| C.1.1. encapContentInfo . . . . . . . . . . . . . . . . . . . 38 | C.1.1. encapContentInfo . . . . . . . . . . . . . . . . . . . 38 | |||
| C.1.2. signerInfos . . . . . . . . . . . . . . . . . . . . . 39 | C.1.2. signerInfos . . . . . . . . . . . . . . . . . . . . . 39 | |||
| C.2. RTA Validation . . . . . . . . . . . . . . . . . . . . . . 41 | C.2. RTA Validation . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 42 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . . 44 | Intellectual Property and Copyright Statements . . . . . . . . . . 44 | |||
| skipping to change at page 4, line 30 ¶ | skipping to change at page 4, line 30 ¶ | |||
| key contained in the Resource Certificate, as signed by the private | key contained in the Resource Certificate, as signed by the private | |||
| key of the certificate's issuer. | key of the certificate's issuer. | |||
| In the context of the public Internet, and the use of public number | In the context of the public Internet, and the use of public number | |||
| resources within this context, it is intended that Resource | resources within this context, it is intended that Resource | |||
| Certificates are used in a manner that is explicitly aligned to the | Certificates are used in a manner that is explicitly aligned to the | |||
| public number resource distribution function. Specifically, when a | public number resource distribution function. Specifically, when a | |||
| number resource is allocated or assigned by a number registry to an | number resource is allocated or assigned by a number registry to an | |||
| entity, this allocation is described by an associated Resource | entity, this allocation is described by an associated Resource | |||
| Certificate. This certificate is issued by the number registry, and | Certificate. This certificate is issued by the number registry, and | |||
| the subject's public key that is being certified by the issuer | the subject public key that is certified by the issuer corresponds to | |||
| corresponds to the public key part of a public / private key pair | the public part of a key pair for which the private key is associated | |||
| that was generated by the same entity who is the recipient of the | with the entity who is the recipient of the number assignment or | |||
| number assignment or allocation. A critical extension to the | allocation. A critical extension to the certificate enumerates the | |||
| certificate enumerates the IP Resources that were allocated or | IP Resources that were allocated or assigned by the issuer to the | |||
| assigned by the issuer to the entity. In the context of the public | entity. In the context of the public number distribution function, | |||
| number distribution function, this corresponds to a hierarchical PKI | this corresponds to a hierarchical PKI structure, where Resource | |||
| structure, where Resource Certificates are only issued in one | Certificates are issued in only one 'direction' and there is a unique | |||
| 'direction' and there is a single unique path of certificates from a | path of certificates from a certification authority operating at the | |||
| certification authority operating at the apex of a resource | apex of a resource distribution hierarchy to a valid certificate. | |||
| distribution hierarchy to a valid certificate. | ||||
| Validation of a Resource Certificate in such a hierarchical PKI can | Validation of a Resource Certificate in such a hierarchical PKI can | |||
| be undertaken by establishing a valid issuer-subject certificate | be undertaken by establishing a valid issuer-subject certificate | |||
| chain from a certificate issued by a trust anchor certification | chain from a certificate issued by a trust anchor certification | |||
| authority to the certificate [RFC4158], with the additional | authority to the certificate [RFC4158], with the additional | |||
| constraint of ensuring that each subject's listed resources are fully | constraint of ensuring that each subject's listed resources are fully | |||
| encompassed by those of the issuer at each step in the issuer-subject | encompassed by those of the issuer at each step in the issuer-subject | |||
| certificate chain. | certificate chain. Validation therefore logically corresponds to | |||
| validation of an associated set of assignment or allocation actions | ||||
| of IP number resources. | ||||
| While this profile describes the structure of a default Trust Anchor | ||||
| for this PKI, Relying Parties (RPs) in this PKI are free to select | ||||
| the trust anchors upon which they rely, and thus the PKI as viewed by | ||||
| RPs need not match the public resource allocation hierarchy as | ||||
| described here. | ||||
| Resource Certificates may be used in the context of the operation of | Resource Certificates may be used in the context of the operation of | |||
| secure inter-domain routing protocols to convey a right-of-use of an | secure inter-domain routing protocols to convey a right-of-use of an | |||
| IP number resource that is being passed within the routing protocol, | IP number resource that is being passed within the routing protocol, | |||
| allowing relying parties to verify legitimacy and correctness of | allowing relying parties to verify legitimacy and correctness of | |||
| routing information. Related use contexts include validation of | routing information. Related use contexts include validation of | |||
| Internet Routing Registry objects, validation of routing requests, | Internet Routing Registry objects, validation of routing requests, | |||
| and detection of potential unauthorised use of IP addresses. | and detection of potential unauthorized use of IP addresses. | |||
| 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 | Relying Parties SHOULD check that a Resource Certificate conforms to | |||
| this profile as a requisite for validation of a Resource Certificate. | this profile as a requisite for validation of a Resource Certificate. | |||
| 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 | |||
| skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 13 ¶ | |||
| be marked as CRITICAL. | be marked as CRITICAL. | |||
| 2. RFC 3779 defines a sorted canonical form of describing a | 2. RFC 3779 defines a sorted canonical form of describing a | |||
| resource set, with maximal spanning ranges and maximal | resource set, with maximal spanning ranges and maximal | |||
| spanning prefix masks as appropriate. All valid certificates | spanning prefix masks as appropriate. All valid certificates | |||
| in this profile MUST use this sorted canonical form of | in this profile MUST use this sorted canonical form of | |||
| resource description in the resource extension field. | resource description in the resource extension field. | |||
| 3. A test of the resource extension in the context of certificate | 3. A test of the resource extension in the context of certificate | |||
| validity includes the condition that the resources described | validity includes the condition that the resources described | |||
| in the immediate superior certificate in the PKI hierarchy | in the immediate parent CA certificate in the PKI (the | |||
| (the certificate where this certificate's issuer is the | certificate where this certificate's issuer is the subject) | |||
| subject) has a resource set (called here the "issuer's | has a resource set (called here the "issuer's resource set") | |||
| resource set") that MUST encompass the resource set of the | that MUST encompass the resource set of the issued | |||
| issued certificate. In this context "encompass" allows for | certificate. In this context "encompass" allows for the | |||
| the issuer's resource set to be the same as, or a strict | issuer's resource set to be the same as, or a strict superset | |||
| superset of, any subject's resource set. | of, any subject's resource set. | |||
| A test of certificate validity entails the identification of a | Certificate validation entails the construction of a sequence of | |||
| sequence of valid certificates in an issuer-subject chain (where the | valid certificates in an issuer-subject chain (where the subject | |||
| subject field of one certificate appears as the issuer in the next | field of one certificate appears as the issuer in the next | |||
| certificate in the sequence) from a trust anchor certification | certificate in the sequence) from a trust anchor to the certificate | |||
| authority to the certificate being validated, and that the resource | being validated. Moreover, the resource extensions in this | |||
| extensions in this certificate sequence from the trust anchor's | certificate sequence from the first CA under the trust anchor to the | |||
| issued certificate to the certificate being validated form a sequence | certificate being validated form a sequence of encompassing | |||
| of encompassing relationships in terms of the resources described in | relationships in terms of the resources described in the resource | |||
| the resource extension. | extension. | |||
| 3. Resource Certificate Fields | 3. Resource Certificate Fields | |||
| A Resource Certificate is a valid X.509 v3 public key certificate, | A Resource Certificate is a valid X.509 v3 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. Unless specifically noted as being OPTIONAL, | |||
| all the fields listed here MUST be present, and any other field MUST | all the fields listed here MUST be present, and any other field MUST | |||
| NOT appear in a conforming Resource Certificate. Where a field value | NOT appear in a conforming Resource Certificate. Where a field value | |||
| is specified here this value MUST be used in conforming Resource | is specified here this value MUST be used in conforming Resource | |||
| Certificates. | Certificates. | |||
| skipping to change at page 6, line 49 ¶ | skipping to change at page 7, line 8 ¶ | |||
| field is 2). | field is 2). | |||
| 3.2. Serial number | 3.2. Serial number | |||
| The serial number value is a positive integer that is unique per | The serial number value is a positive integer that is unique per | |||
| Issuer. | Issuer. | |||
| 3.3. Signature Algorithm | 3.3. Signature Algorithm | |||
| This field describes the algorithm used to compute the signature on | This field describes the algorithm used to compute the signature on | |||
| this certificate. This profile specifies a minimum of SHA-256 with | this certificate. This profile specifies a default of SHA-256 with | |||
| RSA (sha256WithRSAEncryption), and allows for the use of SHA-384 or | RSA (sha256WithRSAEncryption), and allows for the use of SHA-384 or | |||
| SHA-512. Accordingly, the value for this field MUST be one of the | SHA-512. Accordingly, the value for this field MUST be one of the | |||
| OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } [RFC4055]. | OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } [RFC4055]. | |||
| 3.4. Issuer | 3.4. Issuer | |||
| This field identifies the entity that has signed and issued the | This field identifies the entity that has signed and issued the | |||
| certificate. The value of this field is a valid X.501 name. | certificate. The value of this field is a valid X.501 name. | |||
| Conventions are imposed on Issuer names used in resource | ||||
| certificates, as described in [ID.sidr-arch]. | ||||
| If the certificate is a subordinate certificate issued by virtue of | If the certificate is a subordinate certificate issued by virtue of | |||
| the "cA" bit set in the immediate superior certificate, then the | the "cA" bit set in the immediate superior certificate, then the | |||
| issuer name MUST correspond to the subject name as contained in the | issuer name MUST correspond to the subject name as contained in the | |||
| immediate superior certificate. | immediate superior certificate. | |||
| This field MUST be non-empty. | ||||
| 3.5. Subject | 3.5. Subject | |||
| This field identifies the entity to whom the resource has been | This field identifies the entity to whom the resource has been | |||
| allocated / assigned. The value of this field is a valid X.501 name. | allocated / assigned. The value of this field is a valid X.501 name. | |||
| As noted above, conventions are imposed on Subject names used in | ||||
| resource certificates, as described in [ID.sidr-arch]. | ||||
| In this profile the subject name is determined by the issuer, and | In this profile the subject name is determined by the issuer, and | |||
| each distinct subordinate CA and EE certified by the issuer MUST be | each distinct subordinate CA and EE certified by the issuer MUST be | |||
| identified using a subject name that is unique per issuer. | identified using a subject name that is unique per issuer. | |||
| In this context "distinct" is defined as an entity and a given key | In this context "distinct" is defined as an entity and a given public | |||
| pair. An issuer SHOULD use a a different subject name if the subject | key. An issuer SHOULD use a different subject name if the subject | |||
| entity or the subject entity's key pair has changed. | entity or the subject entity's key pair has changed. | |||
| This field MUST be non-empty. | ||||
| 3.6. Valid From | 3.6. Valid From | |||
| The starting time at which point the certificate is valid. In this | The starting time at which point the certificate is valid. In this | |||
| profile 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. As per Section 4.1.2.5 of [RFC5280], | certificate generation. As per Section 4.1.2.5 of [RFC5280], | |||
| Certification Authorities (CAs) conforming to this profile MUST | Certification Authorities (CAs) conforming to this profile MUST | |||
| always encode the certificate's "Valid From" date through the year | always encode the certificate's "Valid From" date through the year | |||
| 2049 as UTCTime, and dates in 2050 or later MUST be encoded as | 2049 as UTCTime, and dates in 2050 or later MUST be encoded as | |||
| GeneralizedTime. These two time formats are defined in [RFC5280]. | GeneralizedTime. These two time formats are defined in [RFC5280]. | |||
| In this profile, it is valid for a certificate to have a value for | In this profile, it is valid for a certificate to have a value for | |||
| this field that pre-dates the same field value in any superior | this field that pre-dates the same field value in any superior | |||
| certificate. However, it is not valid to infer from this information | certificate. Relying Parties should not attempt to infer from this | |||
| that a certificate was, or will be, valid at any particular time | time information a certificate was valid at a time in the past, or | |||
| other than the current time. | will be valid at a time in the future, as the validity of a | |||
| certificate refers to validity at the current time. | ||||
| 3.7. Valid To | 3.7. Valid To | |||
| The Valid To time is the date and time at which point in time the | The Valid To time is the date and time at which point in time the | |||
| certificate's validity ends. It represents the anticipated lifetime | certificate's validity ends. It represents the anticipated lifetime | |||
| of the resource allocation / assignment arrangement between the | of the resource allocation / assignment arrangement between the | |||
| issuer and the subject. As per Section 4.1.2.5 of [RFC5280], CAs | issuer and the subject. As per Section 4.1.2.5 of [RFC5280], CAs | |||
| conforming to this profile MUST always encode the certificate's | conforming to this profile MUST always encode the certificate's | |||
| "Valid To" date through the year 2049 as UTCTime, and dates in 2050 | "Valid To" date through the year 2049 as UTCTime, and dates in 2050 | |||
| or later MUST be encoded as GeneralizedTime. These two time formats | or later MUST be encoded as GeneralizedTime. These two time formats | |||
| are defined in [RFC5280]. | are defined in [RFC5280]. | |||
| In this profile, it is valid for a certificate to have a value for | As noted above, it is valid for a certificate to have a value for | |||
| this field that post-dates the same field value in any superior | this field that post-dates the same field value in any superior | |||
| certificate. However, it is not valid to infer from this information | certificate. The same caveats apply to Relying Party's assumptions | |||
| that a certificate was, or will be, valid at any particular time | relating to the certificate's validity at any time other than the | |||
| other than the current time. | current time, | |||
| CAs are 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. | certificate that will be used to validate the issued certificate, in | |||
| However, in the context of this profile, it is anticipated that a CA | the context of this profile, it is anticipated that a CA may have | |||
| may have valid grounds to issue a certificate with a validity | valid grounds to issue a certificate with a validity interval that | |||
| interval that exceeds the validity interval of the CA's certificate. | exceeds the validity interval of its certificate. | |||
| 3.8. Subject Public Key Info | 3.8. Subject Public Key Info | |||
| This field specifies the subject's public key and the algorithm with | This field specifies the subject's public key and the algorithm with | |||
| which the key is used. The public key algorithm MUST be RSA, and, | which the key is used. The public key algorithm MUST be RSA, and, | |||
| accordingly, the OID for the public key algorithm is | accordingly, the OID for the public key algorithm is | |||
| 1.2.840.113549.1.1.1. The key size MUST be a minimum size of 2048 | 1.2.840.113549.1.1.1. The key size MUST be a minimum size of 2048 | |||
| bits. | bits. | |||
| It is noted that larger key sizes are computationally expensive for | It is noted that larger key sizes are computationally expensive for | |||
| both the CA and relying parties, indicating that care should be taken | both the CA and relying parties, indicating that care should be taken | |||
| when deciding to use larger than the minimum key size. | when deciding to use larger than the minimum key size noted above. | |||
| 3.9. Resource Certificate Version 3 Extension Fields | 3.9. Resource Certificate Version 3 Extension Fields | |||
| As noted in Section 4.2 of [RFC5280], each extension in a certificate | As noted in Section 4.2 of [RFC5280], each extension in a certificate | |||
| is designated as either critical or non-critical. A certificate- | is designated as either critical or non-critical. A certificate- | |||
| using system MUST reject the certificate if it encounters a critical | using system MUST reject the certificate if it encounters a critical | |||
| extension it does not recognise; however, a non-critical extension | extension it does not recognize; however, a non-critical extension | |||
| MAY be ignored if it is not recognised [RFC5280]. | MAY be ignored if it is not recognized [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. | |||
| 3.9.1. Basic Constraints | 3.9.1. Basic Constraints | |||
| The basic constraints extension identifies whether the subject of the | The basic constraints extension identifies whether the subject of the | |||
| certificate is a CA and the maximum depth of valid certification | certificate is a CA and the maximum depth of valid certification | |||
| paths that include this certificate. | paths that include this certificate. | |||
| The issuer determines whether the "cA" boolean is set. If this bit | The issuer determines whether the "cA" boolean is set. If this bit | |||
| is set, then it indicates that the subject is allowed to issue | is set, then it indicates that the subject is allowed to issue | |||
| resources certificates within this overall framework (i.e. the | resources certificates within this overall framework (i.e. the | |||
| subject is permitted be a CA). | subject is a CA). | |||
| The Path Length Constraint is not specified in this profile and MUST | The Path Length Constraint is not specified in this profile and MUST | |||
| NOT be present. | 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. | |||
| 3.9.2. Subject Key Identifier | 3.9.2. Subject Key Identifier | |||
| The subject key identifier extension provides a means of identifying | The subject key identifier extension provides a means of identifying | |||
| certificates that contain a particular public key. To facilitate | certificates that contain a particular public key. To facilitate | |||
| certification path construction, this extension MUST appear in all | certification path construction, this extension MUST appear in all | |||
| Resource Certificates. This extension is non-critical. | Resource Certificates. This extension is non-critical. | |||
| The value of the subject key identifier MUST be the value placed in | The value of the subject key identifier MUST be the value placed in | |||
| the key identifier field of the Authority Key Identifier extension of | the key identifier field of the Authority Key Identifier extension of | |||
| immediate subordinate certificates (all certificates issued by the | all certificates issued by this subject. | |||
| subject of this certificate). | ||||
| The Key Identifier used here is the 160-bit SHA-1 hash of the value | The Key Identifier used here is the 160-bit SHA-1 hash of the value | |||
| of the DER-encoded ASN.1 bit string of the subject public key, as | of the DER-encoded ASN.1 bit string of the subject public key, as | |||
| described in Section 4.2.1.2 of [RFC5280]. | described in Section 4.2.1.2 of [RFC5280]. | |||
| 3.9.3. Authority Key Identifier | 3.9.3. Authority Key Identifier | |||
| The authority key identifier extension provides a means of | The authority key identifier extension provides a means of | |||
| identifying certificates that are signed by the issuer's private key, | identifying certificates that are signed by the issuer's private key, | |||
| by providing a hash value of the issuer's public key. To facilitate | by providing a hash value of the issuer's public key. To facilitate | |||
| path construction, this extension MUST appear in all Resource | path construction, this extension MUST appear in all Resource | |||
| Certificates. The keyIdentifier sub field MUST be present in all | Certificates. The keyIdentifier MUST be present in all Resource | |||
| Resource Certificates, with the exception of a CA who issues a "self- | Certificates, with the exception of a CA who issues a "self-signed" | |||
| signed" certificate. The authorityCertIssuer and | certificate. The authorityCertIssuer and authorityCertSerialNumber | |||
| authorityCertSerialNumber sub fields MUST NOT be present. This | fields MUST NOT be present. This extension is non-critical. | |||
| extension is non-critical. | ||||
| The Key Identifier used here is the 160-bit SHA-1 hash of the value | The Key Identifier used here is the 160-bit SHA-1 hash of the value | |||
| of the DER-encoded ASN.1 bit string of the issuer's public key, as | of the DER-encoded ASN.1 bit string of the issuer's public key, as | |||
| described in Section 4.2.1.1 of [RFC5280]. | described in Section 4.2.1.1 of [RFC5280]. | |||
| 3.9.4. Key Usage | 3.9.4. Key Usage | |||
| This describes the purpose of the certificate. This is a critical | This describes the purpose of the certificate. This is a critical | |||
| extension, and it MUST be present. | extension, and it MUST be present. | |||
| In certificates issued to Certificate Authorities only the | In certificates issued to Certification Authorities only the | |||
| keyCertSign and CRLSign bits are set to TRUE and MUST be the only | keyCertSign and CRLSign bits are set to TRUE and these MUST be the | |||
| bits set to TRUE. | only bits set to TRUE. | |||
| In end-entity certificates the digitalSignature bit MUST be set and | In end-entity certificates the digitalSignature bit MUST be set to | |||
| MUST be the only bit set to TRUE. | TRUE and MUST be the only bit set to TRUE. | |||
| 3.9.5. CRL Distribution Points | 3.9.5. CRL Distribution Points | |||
| This field (CRLDP) identifies the location(s) of the CRL(s) | This field (CRLDP) identifies the location(s) of the CRL(s) | |||
| associated with certificates issued by this Issuer. This profile | associated with certificates issued by this Issuer. This profile | |||
| uses the URI form of object identification. The preferred URI access | uses the URI form of object identification. The preferred URI access | |||
| mechanism is a single RSYNC URI ("rsync://") [rsync] that references | mechanism is a single RSYNC URI ("rsync://") [rsync] that references | |||
| a single inclusive CRL for each issuer. | 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 at the CRLIssuer sub field MUST be omitted, and the | implying at the CRLIssuer field MUST be omitted, and the | |||
| distributionPoint sub-field MUST be present. The Reasons sub-field | distributionPoint field MUST be present. The Reasons field MUST be | |||
| MUST be omitted. | omitted. | |||
| The distributionPoint MUST contain general names, and MUST NOT | The distributionPoint MUST contain general names, and MUST NOT | |||
| contain a nameRelativeToCRLIssuer. The type of the general name MUST | contain a nameRelativeToCRLIssuer. The type of the general name MUST | |||
| be of type URI. | be of type URI. | |||
| In this profile, the scope of the CRL is specified to be all | In this profile, the scope of the CRL is specified to be all | |||
| certificates issued by this CA issuer. | certificates issued by this CA issuer. | |||
| The 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 | DistributionPointName set. The DistributionPointName set MAY contain | |||
| skipping to change at page 11, line 7 ¶ | skipping to change at page 11, line 7 ¶ | |||
| DistributionPointName set, and reference the most recent instance of | DistributionPointName set, and reference the most recent instance of | |||
| this issuer's certificate revocation list. Other access form URIs | this issuer's certificate revocation list. Other access form URIs | |||
| MAY be used in addition to the RSYNC URI. | MAY be used in addition to the RSYNC URI. | |||
| This extension MUST be present and it is non-critical. There is one | 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 | exception, namely where a CA distributes its public key in the form | |||
| of a "self-signed" certificate, the CRLDP MUST be omitted. | of a "self-signed" certificate, the CRLDP MUST be omitted. | |||
| 3.9.6. Authority Information Access | 3.9.6. Authority Information Access | |||
| This field (AIA) identifies the point of publication of the | This extension (AIA) identifies the point of publication of the | |||
| certificate that is issued by the issuer's immediate superior CA, | certificate that is issued by the issuer's immediate superior CA, | |||
| where this certificate's issuer is the subject. In this profile a | where this certificate's issuer is the subject. In this profile a | |||
| single reference object to publication location of the immediate | single reference object to publication location of the immediate | |||
| superior certificate MUST be used, except in the case where a CA | superior certificate MUST be used, except in the case where a CA | |||
| distributes its public key in the form of a "self-signed" | distributes its public key in the form of a "self-signed" | |||
| certificate, in which case the AIA field SHOULD be omitted. | 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 MUST be specified | URI access mechanisms is "rsync", and an RSYNC URI MUST be specified | |||
| with an accessMethod value of id-ad-caIssuers. The URI MUST | with an accessMethod value of id-ad-caIssuers. The URI MUST | |||
| skipping to change at page 11, line 42 ¶ | skipping to change at page 11, line 42 ¶ | |||
| subordinate certificates can maintain a constant AIA field value and | subordinate certificates can maintain a constant AIA field value and | |||
| need not be re-issued due solely to a re-issue of the superior | need not be re-issued due solely to a re-issue of the superior | |||
| certificate. The issuers' policy with respect to the persistence of | certificate. The issuers' policy with respect to the persistence of | |||
| name objects of issued certificates MUST be specified in the Issuer's | name objects of issued certificates MUST be specified in the Issuer's | |||
| Certification Practice Statement. | Certification Practice Statement. | |||
| This extension is non-critical. | This extension is non-critical. | |||
| 3.9.7. Subject Information Access | 3.9.7. Subject Information Access | |||
| This field (SIA) identifies the location of information and services | This extension (SIA) identifies the location of information and | |||
| relating to the subject of the certificate in which the SIA extension | services relating to the subject of the certificate in which the SIA | |||
| appears. Where the Subject is a CA in this profile, this information | extension appears. Where the Subject is a CA in this profile, this | |||
| and service collection will include all current valid certificates | information and service collection will include all current valid | |||
| that have been issued by this subject that are signed with the | certificates that have been issued by this subject that are signed | |||
| subject's corresponding private key. | with the subject's corresponding private key. | |||
| This profile uses a URI form of location identification. The | This profile uses a URI form of location identification. The | |||
| preferred URI access mechanism is "rsync", and an RSYNC URI MUST be | preferred URI access mechanism is "rsync", and an RSYNC URI MUST be | |||
| specified, with an access method value of id-ad-caRepository when the | specified, with an access method value of id-ad-caRepository when the | |||
| subject of the certificate is a CA. The RSYNC URI MUST reference an | subject of the certificate is a CA. The RSYNC URI MUST reference an | |||
| object collection rather than an individual object and MUST use a | object collection rather than an individual object and MUST use a | |||
| trailing '/' in the URI. | trailing '/' in the URI. | |||
| Other access method URIs that reference the same location MAY also be | Other access method URIs that reference the same location MAY also be | |||
| included in the value sequence of this extension. The ordering of | included in the value sequence of this extension. The ordering of | |||
| URIs in this sequence reflect the subject's relative preferences for | URIs in this sequence reflect the subject's relative preferences for | |||
| access methods, with the first method in the sequence being the most | access methods, with the first method in the sequence being the most | |||
| preferred. | preferred. | |||
| This field MUST be present when the subject is a CA, and is non- | This extension MUST be present when the subject is a CA, and is non- | |||
| critical. | critical. | |||
| For End Entity (EE) certificates, where the subject is not a CA, this | For End Entity (EE) certificates, where the subject is not a CA, this | |||
| field MAY be present, and is non-critical. If present, it either | extension MAY be present, and is non-critical. If present, it either | |||
| references the location where objects signed by the key pair | references the location where objects signed by the private key | |||
| associated with the EE certificate can be accessed, or, in the case | associated with the EE certificate can be accessed, or, in the case | |||
| of single-use EE certificates it references the location of the | of single-use EE certificates it references the location of the | |||
| single object that has been signed by the corresponding key pair. | single object that has been signed by the corresponding private key. | |||
| When the subject is an End Entity, and it publishes objects signed | When the subject is an End Entity, and it publishes objects signed | |||
| with the matching private key in a repository, the directory where | with the matching private key in a repository, the directory where | |||
| these signed objects is published is referenced the id-ad- | these signed objects is published is referenced the id-ad- | |||
| signedObjectRepository OID. | signedObjectRepository OID. | |||
| id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } | id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } | |||
| id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 } | id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 } | |||
| When the subject is an End Entity, and it publishes a single object | When the subject is an End Entity, and it publishes a single object | |||
| signed with the matching private key, the location where this signed | signed with the matching private key, the location where this signed | |||
| object is published is referenced the id-ad-signedObject OID. | object is published is referenced the id-ad-signedObject OID. | |||
| id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } | id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } | |||
| This profile requires the use of repository publication manifests | This profile requires the use of repository publication manifests | |||
| [ID.SIDR-MANIFESTS] to list all signed objects that are deposited in | [ID.sidr-manifests] to list all signed objects that are deposited in | |||
| the repository publication point associated with a CA or an EE. The | the repository publication point associated with a CA or an EE. The | |||
| publication point of the manifest for a CA or EE is placed in the SIA | 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 | extension of the CA or EE certificate. This profile uses a URI form | |||
| of manifest identification for the accessLocation. The preferred URI | of manifest identification for the accessLocation. The preferred URI | |||
| access mechanisms is "rsync", and an RSYNC URI MUST be specified. | access mechanisms is "rsync", and an RSYNC URI MUST be specified. | |||
| Other accessDescription fields may exist with this id-ad-Manifest | Other accessDescription fields may exist with this id-ad-Manifest | |||
| accessMethod, where the accessLocation value indicates alternate URI | accessMethod, where the accessLocation value indicates alternate URI | |||
| access mechanisms for the same manifest object. | access mechanisms for the same manifest object. | |||
| id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } | id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } | |||
| skipping to change at page 13, line 13 ¶ | skipping to change at page 13, line 13 ¶ | |||
| CA certificates MUST include in the SIA an accessMethod OID of id-ad- | CA certificates MUST include in the SIA an accessMethod OID of id-ad- | |||
| rpkiManifest, where the associated accessLocation refers to the | rpkiManifest, where the associated accessLocation refers to the | |||
| subject's published manifest object as an object URL. | subject's published manifest object as an object URL. | |||
| When an EE certificate is intended for use in verifying multiple | When an EE certificate is intended for use in verifying multiple | |||
| objects, EE certificate MUST include in the SIA an access method OID | objects, EE certificate MUST include in the SIA an access method OID | |||
| of id-ad-rpkiManifest, where the associated access location refers to | of id-ad-rpkiManifest, where the associated access location refers to | |||
| the publication point of the objects that are verified using this EE | the publication point of the objects that are verified using this EE | |||
| certificate. | certificate. | |||
| When an EE certificate is used to sign a single published object, the | When an EE certificate is used to verify a single published object, | |||
| EE certificate MUST include in the SIA an access method OID of id-ad- | the EE certificate MUST include in the SIA an access method OID of | |||
| signedObject, where the associated access location refers to the | id-ad-signedObject, where the associated access location refers to | |||
| publication point of the single object that is verified using this EE | the publication point of the single object that is verified using | |||
| certificate. In this case, the SIA MUST NOT include the access | this EE certificate. In this case, the SIA MUST NOT include the | |||
| method OID of id-ad-rpkiManifest. | access method OID of id-ad-rpkiManifest. | |||
| 3.9.8. Certificate Policies | 3.9.8. Certificate Policies | |||
| This extension MUST reference the Resource Certificate Policy, using | This extension MUST reference the Resource Certificate Policy, using | |||
| the OID Policy Identifier value of "1.3.6.1.5.5.7.14.2". This field | 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 | MUST be present and MUST contain only this value for Resource | |||
| Certificates. | Certificates. | |||
| PolicyQualifiers MUST NOT be used in this profile. | No PolicyQualifiers are defined for use with this policy and thus | |||
| none must be included in this extension. | ||||
| This extension MUST be present and it is critical. | This extension MUST be present and it is critical. | |||
| 3.9.9. IP Resources | 3.9.9. IP Resources | |||
| This field 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. All Resource Certificates MUST | |||
| include an IP Resources extension, an AS Resources extension, or both | include an IP Resources extension, an AS Resources extension, or both | |||
| extensions. | extensions. | |||
| This extension, if present, MUST be marked critical. | This extension, if present, MUST be marked critical. | |||
| 3.9.10. AS Resources | 3.9.10. AS Resources | |||
| This field contains the list of AS number resources as per [RFC3779], | This extension contains the list of AS number resources as per | |||
| or may specify the "inherit" element. RDI values are NOT supported | [RFC3779], or may specify the "inherit" element. RDI values are NOT | |||
| in this profile and MUST NOT be used. All Resource Certificates MUST | supported in this profile and MUST NOT be used. All Resource | |||
| include an IP Resources extension, an AS Resources extension, or both | Certificates MUST include an IP Resources extension, an AS Resources | |||
| extensions. | extension, or both extensions. | |||
| This extension, if present, MUST be marked critical. | This extension, if present, MUST be marked critical. | |||
| 4. Resource Certificate Revocation List Profile | 4. Resource Certificate Revocation List Profile | |||
| 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]. The CRL issuer is the CA, and no indirect | |||
| CRLs are supported in this profile. | CRLs are supported in this profile. | |||
| An entry MUST NOT be removed from the CRL until it appears on one | An entry MUST NOT be removed from the CRL until it appears on one | |||
| regularly scheduled CRL issued beyond the revoked certificate's | regularly scheduled CRL issued beyond the revoked certificate's | |||
| validity period. | validity period, as required in [RFC5280]. | |||
| This profile does not allow issuance of Delta CRLs. | This profile does not allow issuance of Delta CRLs. | |||
| The scope of the CRL MUST be "all certificates issued by this CA". | 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 | No CRL fields other than those listed here are permitted in CRLs | |||
| issued under this profile. Unless otherwise indicated, these fields | issued under this profile. Unless otherwise indicated, these fields | |||
| MUST be present in the CRL. Where two or more CRLs issued by a | MUST be present in the CRL. Where two or more CRLs issued by a | |||
| skipping to change at page 15, line 8 ¶ | skipping to change at page 15, line 9 ¶ | |||
| 4.4. Next Update | 4.4. Next Update | |||
| This is the date and time by which the next CRL SHOULD be issued. | 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 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 2049, and MUST be encoded as GeneralizedTime for dates in | |||
| the year 2050 or later. | the year 2050 or later. | |||
| 4.5. Signature | 4.5. Signature | |||
| This field contains the algorithm used to sign this CRL. This | This field contains the algorithm used to sign this CRL. This | |||
| profile specifies a minimum of SHA-256 with RSA | profile specifies a default of SHA-256 with RSA | |||
| (sha256WithRSAEncryption), and allows for the use of SHA-384 or SHA- | (sha256WithRSAEncryption), and allows for the use of SHA-384 or SHA- | |||
| 512. This field MUST be present. | 512. | |||
| It is noted that larger key sizes are computationally expensive for | It is noted that larger key sizes are computationally expensive for | |||
| both the CRL Issuer and relying parties, indicating that care should | both the CRL Issuer and relying parties, indicating that care should | |||
| be taken when deciding to use larger than the minimum key size. | be taken when deciding to use larger than the default key size. | |||
| 4.6. Revoked Certificate List | 4.6. Revoked Certificate List | |||
| When there are no revoked certificates, then the revoked certificate | When there are no revoked certificates, then the revoked certificate | |||
| list MUST be absent. | list MUST be absent. | |||
| For each revoked resource certificate only the following fields MUST | For each revoked resource certificate only the following fields MUST | |||
| be present. No CRL entry extensions are supported in this profile, | be present. No CRL entry extensions are supported in this profile, | |||
| and CRL entry extensions MUST NOT be present in a CRL. | and CRL entry extensions MUST NOT be present in a CRL. | |||
| 4.6.1. Serial Number | 4.6.1. Serial Number | |||
| The issuer's serial number of the revoked certificate. | The serial number of the revoked certificate. | |||
| 4.6.2. Revocation Date | 4.6.2. Revocation Date | |||
| The time the certificate was revoked. This time MUST NOT be a future | The time the certificate was revoked. This time MUST NOT be a future | |||
| date. The value of this field MUST be encoded as UTCTime for dates | date (i.e., a date later than ThisUpdate). The value of this field | |||
| through the year 2049, and MUST be encoded as GeneralizedTime for | MUST be encoded as UTCTime for dates through the year 2049, and MUST | |||
| dates in the year 2050 or later. | be encoded as GeneralizedTime for dates in the year 2050 or later. | |||
| 4.7. CRL Extensions | 4.7. CRL Extensions | |||
| The X.509 v2 CRL format allows extensions to be placed in a CRL. The | 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 | following extensions are supported in this profile, and MUST be | |||
| present in a CRL. | present in a CRL. | |||
| 4.7.1. Authority Key Identifier | 4.7.1. Authority Key Identifier | |||
| The authority key identifier extension provides a means of | The authority key identifier extension provides a means of | |||
| skipping to change at page 17, line 4 ¶ | skipping to change at page 17, line 4 ¶ | |||
| 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 is optional. If present, the value of this field | |||
| SHOULD be empty, in which case the issuer MUST generate a | SHOULD be empty, in which case the issuer MUST generate a | |||
| subject name that is unique in the context of certificates | subject name that is unique in the context of certificates | |||
| issued by this issuer. If the value of this field is non- | issued by this issuer. If the value of this field is non- | |||
| empty, then the CA MAY consider the value of this field as the | empty, then the CA MAY consider the value of this field as the | |||
| subject's suggested subject name, but the CA is NOT bound to | subject's suggested subject name, but the CA is NOT bound to | |||
| honour this suggestion, as the subject name MUST be unique per | honor this suggestion, as the subject name MUST be unique per | |||
| subordinate CA and EE in certificates issued by this issuer. | 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 public key algorithm MUST be | with which the key is used. The public key algorithm MUST be | |||
| RSA, and the OID for the algorithm is 1.2.840.113549.1.1.1. | RSA, and the OID for the algorithm is 1.2.840.113549.1.1.1. | |||
| This field also includes a bit-string representation of the | This field also includes a bit-string representation of the | |||
| entity's public key. For the RSA public-key algorithm the bit | entity's public key. For the RSA public-key algorithm the bit | |||
| string contains the DER encoding of a value of PKCS #1 type | string contains the DER encoding of a value of PKCS #1 type | |||
| RSAPublicKey. | RSAPublicKey. | |||
| skipping to change at page 17, line 29 ¶ | skipping to change at page 17, line 29 ¶ | |||
| 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 | X509v3 Certificate Extensions. The profile for extensions in | |||
| certificate requests is specified in Section 5.3. | certificate requests is specified in Section 5.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 | |||
| This profile specifies a minimum of SHA-256 with RSA | This profile specifies a default of SHA-256 with RSA | |||
| (sha256WithRSAEncryption), and allows for the use of SHA-384 or | (sha256WithRSAEncryption), and allows for the use of SHA-384 or | |||
| SHA-512. Accordingly, the value for this field MUST be one of | SHA-512. Accordingly, the value for this field MUST be one of | |||
| the OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } | the OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } | |||
| [RFC4055]. | [RFC4055]. | |||
| It is noted that larger key sizes are computationally expensive | It is noted that larger key sizes are computationally expensive | |||
| for both the CA and relying parties, indicating that care | for both the CA and relying parties, indicating that care | |||
| should be taken when deciding to use larger than the minimum | should be taken when deciding to use larger than the default | |||
| key size. | key size. | |||
| 5.2. CRMF Profile | 5.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 issuing a certificate. | |||
| This request MAY be conveyed to the CA via a Registration Authority | This request MAY be conveyed to the CA via a Registration Authority | |||
| skipping to change at page 18, line 41 ¶ | skipping to change at page 18, line 41 ¶ | |||
| 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 is optional. If present, the value of this field | |||
| SHOULD be empty, in which case the issuer MUST generate a | SHOULD be empty, in which case the issuer MUST generate a | |||
| subject name that is unique in the context of certificates | subject name that is unique in the context of certificates | |||
| issued by this issuer. If the value of this field is non- | issued by this issuer. If the value of this field is non- | |||
| empty, then the CA MAY consider the value of this field as the | empty, then the CA MAY consider the value of this field as the | |||
| subject's suggested subject name, but the CA is NOT bound to | subject's suggested subject name, but the CA is NOT bound to | |||
| honour this suggestion, as the subject name MUST be unique per | honor this suggestion, as the subject name MUST be unique per | |||
| issuer in certificates issued by this issuer. | 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 | This attribute contains X509v3 Certificate Extensions. The | |||
| profile for extensions in certificate requests is specified in | profile for extensions in certificate requests is specified in | |||
| Section 5.3. | Section 5.3. | |||
| skipping to change at page 19, line 35 ¶ | skipping to change at page 19, line 35 ¶ | |||
| BasicConstraints | BasicConstraints | |||
| If this is omitted then the CA will issue an end entity | If this is omitted then the CA will issue an end entity | |||
| certificate with the BasicConstraints extension not present in | certificate with the BasicConstraints extension not present in | |||
| the issued certificate. | the issued certificate. | |||
| The Path Length Constraint is not supported in this Resource | The Path Length Constraint is not supported in this Resource | |||
| Certificate Profile, and this field MUST be omitted in this | Certificate Profile, and this field MUST be omitted in this | |||
| profile. | profile. | |||
| The CA MAY honour the SubjectType CA bit set to on. If this | The CA MAY honor the SubjectType CA bit set to on. If this bit | |||
| bit is set, then it indicates that the Subject is allowed to | is set, then it indicates that the Subject is allowed to issue | |||
| issue resource certificates within this overall framework. | resource certificates within this overall framework. | |||
| The CA MUST honour the SubjectType CA bit set to off (End | The CA MUST honor the SubjectType CA bit set to off (End Entity | |||
| Entity certificate request), in which case the corresponding | certificate request), in which case the corresponding end | |||
| end entity certificate will not contain a BasicConstraints | entity certificate will not contain a BasicConstraints | |||
| extension. | extension. | |||
| SubjectKeyIdentifier | SubjectKeyIdentifier | |||
| This field is assigned by the CA and MUST be omitted in this | This field is assigned by the CA and MUST be omitted in this | |||
| profile. | profile. | |||
| AuthorityKeyIdentifier | AuthorityKeyIdentifier | |||
| This field is assigned by the CA and MUST be omitted in this | This field is assigned by the CA and MUST be omitted in this | |||
| profile. | profile. | |||
| KeyUsage | KeyUsage | |||
| The CA MAY honor KeyUsage extensions of keyCertSign and cRLSign | The CA MAY honor KeyUsage extensions of keyCertSign and cRLSign | |||
| if present, as long as this is consistent with the | if present, as long as this is consistent with the | |||
| BasicConstraints SubjectType sub field, when specified. | BasicConstraints SubjectType sub field, when specified. | |||
| SubjectInformationAccess | SubjectInformationAccess | |||
| This field MUST be present when the subject is a CA, and the | This field MUST be present when the subject is a CA, and the | |||
| field value SHOULD be honoured by the CA. If the CA is not | field value SHOULD be honored by the CA. If the CA is not able | |||
| able to honor the requested field value, then the CA MUST | to honor the requested field value, then the CA MUST reject the | |||
| reject the Certificate Request. | Certificate Request. | |||
| This field (SIA) identifies the location of information and | This field (SIA) identifies the location of information and | |||
| services relating to the subject of the certificate in which | services relating to the subject of the certificate in which | |||
| the SIA extension appears. | the SIA extension appears. | |||
| Where the subject is a CA in this profile, this information and | Where the subject is a CA in this profile, this information and | |||
| service collection will include all current valid certificates | service collection will include all current valid certificates | |||
| that have been issued by this subject that are signed with the | that have been issued by this subject that are signed with the | |||
| subject's corresponding private key. | subject's corresponding private key. | |||
| skipping to change at page 20, line 47 ¶ | skipping to change at page 20, line 47 ¶ | |||
| relative preferences for access methods, with the first method | relative preferences for access methods, with the first method | |||
| in the sequence being the most preferred by the Subject. | in the sequence being the most preferred by the Subject. | |||
| A request for a CA certificate MUST include in the SIA of the | A request for a CA certificate MUST include in the SIA of the | |||
| request the id-ad-caRepository access method, and also MUST | request the id-ad-caRepository access method, and also MUST | |||
| include in the SIA of the request the accessMethod OID of id- | include in the SIA of the request the accessMethod OID of id- | |||
| ad-rpkiManifest, where the associated accessLocation refers to | ad-rpkiManifest, where the associated accessLocation refers to | |||
| the subject's published manifest object as an object URL. | the subject's published manifest object as an object URL. | |||
| This field MAY be present when the subject is a EE. If it is | 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 | present the field value SHOULD be honored by the CA. If the CA | |||
| CA is not able to honor the requested field value, then the CA | is not able to honor the requested field value, then the CA | |||
| MUST reject the Certificate Request. If it is not present the | MUST reject the Certificate Request. If it is not present the | |||
| CA SHOULD honor this request and omit the SIA from the issued | CA SHOULD honor this request and omit the SIA from the issued | |||
| certificate. If the CA is not able to honor the request to | certificate. If the CA is not able to honor the request to | |||
| omit the SIA, then the CA MUST reject the Certificate Request. | omit the SIA, then the CA MUST reject the Certificate Request. | |||
| When an EE certificate is intended for use in verifying | When an EE certificate is intended for use in verifying | |||
| multiple objects, the certificate request for the EE | multiple objects, the certificate request for the EE | |||
| certificate MUST include in the SIA of the request an access | certificate MUST include in the SIA of the request an access | |||
| method OID of id-ad-signedObjectRepository, and also MUST | method OID of id-ad-signedObjectRepository, and also MUST | |||
| include in the SIA of the request an access method OID of id- | include in the SIA of the request an access method OID of id- | |||
| skipping to change at page 22, line 9 ¶ | skipping to change at page 22, line 9 ¶ | |||
| 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 | To meet this goal, the path validation process verifies, among other | |||
| things, that a prospective certification path (a sequence of n | things, that a prospective certification path (a sequence of n | |||
| certificates) satisfies the following conditions: | certificates) satisfies the following conditions: | |||
| 1. for all x in {1, ..., n-1}, the subject of certificate x is | 1. for all x in {1, ..., n-1}, the subject of certificate x is | |||
| the issuer of certificate x+1; | the issuer of certificate x+1; | |||
| 2. certificate 1 is issued by a trust anchor; | 2. certificate 1 is issued by a trust anchor (Note that a trust | |||
| anchor is NOT a resource certificate in this context and thus | ||||
| does not contain RFC 3779 extensions.); | ||||
| 3. certificate n is the certificate to be validated; and | 3. certificate n is the certificate to be validated; and | |||
| 4. for all x in {1, ..., n}, the certificate is valid. | 4. for all x in {1, ..., n}, the certificate is valid. | |||
| 6.1. Resource Extension Validation | 6.1. Resource Extension Validation | |||
| The IP resource extension definition [RFC3779] defines a critical | The IP resource extension definition [RFC3779] defines a critical | |||
| extensions for Internet number resources. These are ASN.1 encoded | extensions for Internet number resources. These are ASN.1 encoded | |||
| representations of the IPv4 and IPv6 address range (either as a | representations of the IPv4 and IPv6 address range (either as a | |||
| skipping to change at page 24, line 6 ¶ | skipping to change at page 24, line 9 ¶ | |||
| 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 in | Certification Path matches the Issuer in Certificate x+1 in | |||
| the Certification Path. | the Certification Path. | |||
| 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 top-down synchronization | maintained cache, maintained by a regular synchronization across the | |||
| pass, seeded with the CAs who operate at the apex of the resource | distributed publication repository structure. | |||
| distribution hierarchy, via reference to issued certificates and | ||||
| their SIA fields as forward pointers, plus the CRLDP. Alternatively, | ||||
| validation may be performed using a bottom-up process with on-line | ||||
| certificate access using the certificate's AIA and CRLDP pointers to | ||||
| guide the certificate retrieval process for each certificate's | ||||
| immediate superior CA certificate. | ||||
| 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 certificate validator. | means of creating a potential DOS attack on a relying party. Some | |||
| Some further heuristics may be required to halt the certification | further heuristics may be required to halt the certification path | |||
| path validation process in order to avoid some of the issues | validation process in order to avoid some of the issues associated | |||
| associated with attempts to validate such structures. It is | with attempts to validate such structures. It is suggested that | |||
| suggested that implementations of Resource Certificate validation MAY | implementations of Resource Certificate validation MAY halt with a | |||
| halt with a validation failure if the certification path length | validation failure if the certification path length exceeds a pre- | |||
| exceeds a pre-determined configuration parameter. | determined configuration parameter. | |||
| 6.3. Trust Anchors for Resource Certificates | 6.3. Trust Anchors for Resource Certificates | |||
| The trust model that may be used in the resource certificate | The default trust model for the resource certificate PKI maps to the | |||
| framework in the context of validation of assertions of public number | extant public resource allocation system, comprised of IANA, RIRs, | |||
| resources in public-use contexts is one that readily maps to a top- | NIRs (in some regions) and LIRs. This is a strict hierarchy, in that | |||
| down delegated CA model that mirrors the delegation of resources from | any number resource and a corresponding recipient entity has only one | |||
| a registry distribution point to the entities that are the direct | 'parent' issuing registry for that resource. Moreover, the issuing | |||
| recipients of these resources. Within this trust model these | registry is not a direct or indirect subordinate recipient entity of | |||
| recipient entities may, in turn, operate a registry and perform | the recipient entity in question (i.e., there are no loops in the | |||
| further allocations or assignments. This is a strict hierarchy, in | model). | |||
| that any number resource and a corresponding recipient entity has | ||||
| only one 'parent' issuing registry for that number resource (i.e. | ||||
| there is always a unique parent entity for any resource and | ||||
| corresponding entity), and that the issuing registry is not a direct | ||||
| or indirect subordinate recipient entity of the recipient entity in | ||||
| question (i.e. no loops in the model). | ||||
| The more general consideration is that selection of one or more trust | Nonetheless, as in any PKI, selection of one or more entities as | |||
| anchor CAs is a task undertaken by relying parties. The structure of | trust anchor is a task undertaken by each relying party. The | |||
| the resource certificate profile admits potentially the same variety | structure of the resource certificate profile admits the same variety | |||
| of trust models as the PKIX profile. There is only one additional | of trust models as PKIX (and X.509) standards. There is only one | |||
| caveat on the general applicability of trust models and PKIX | additional caveat on the general applicability of trust models, | |||
| frameworks, namely that in forming a validation path to a trust | namely that in forming a validation path to a CA immediately below a | |||
| anchor CA, the sequence of certificates MUST preserve the resource | trust anchor, the sequence of certificates MUST preserve the resource | |||
| extension validation property, as described in Section 6.1, and the | extension validation property, as described in Section 6.1. | |||
| validation of the first certificate in the validation path not only | Section 6.1. | |||
| involves the verification that the certificate was issued by a trust | ||||
| anchor CA, but also that the resource set described in the | ||||
| certificate MUST be encompassed by the trust anchor CA's resource | ||||
| set, as described in Section 6.1. | ||||
| The trust anchor information, describing a CA that serves as a trust | The trust anchor information, describing a CA that serves as a trust | |||
| anchor, includes the following: | anchor, includes the following: | |||
| 1. the trusted issuer name, | 1. the trust anchor name, | |||
| 2. the trusted public key algorithm, | ||||
| 3. the trusted public key, | ||||
| 4. optionally, the trusted public key parameters associated with | 2. the public key algorithm, | |||
| the public key, and | 3. the trust anchor's public key, and | |||
| 5. a resource set, consisting of a set of IPv4 resources, IPv6 | 4. optionally, parameters associated with the public key. | |||
| resources and AS number resources. | ||||
| The trust anchor information may be provided to the path processing | The trust anchor information may be provided to the path processing | |||
| procedure in the form of a self-signed certificate. | procedure in the form of a self-signed certificate. | |||
| 6.3.1. Distribution Format of Nominated Trust Anchor Material | 6.3.1. Distribution Format of Default Trust Anchor Material | |||
| In the RPKI the hierarchical certificate framework corresponds to the | In the RPKI, the certificate framework corresponds to the hierarchies | |||
| hierarchies of the resource distribution function. In consideration | of the resource distribution function. In consideration of this, it | |||
| of this, it is reasonable to nominate to relying parties a default | is reasonable to nominate to relying parties a default set of trust | |||
| set of trust anchors for the RPKI that correspond to the entities who | anchors for the RPKI that correspond to the entities who operate at | |||
| operate at the upper levels of the associated resource allocation | the upper levels of the associated resource allocation hierarchy. | |||
| hierarchy. The corresponding nominated trust anchor CA(s) should | The corresponding nominated trust anchor CA(s) should therefore map, | |||
| therefore map, in some fashion, to apex point(s) of the hierarchical | in some fashion, to apex point(s) of the hierarchical resource | |||
| resource distribution structure. | distribution structure. | |||
| The characteristics of a trust anchor framework for the RPKI includes | The characteristics of a trust anchor framework for the RPKI includes | |||
| the following considerations: | the following considerations: | |||
| * The entity or entities that issue proposed trust anchor | * The entity or entities that issue proposed trust anchor | |||
| material for the RPKI should be as close as possible to the | material for the RPKI should be as close as possible to the | |||
| apex of the associated resource distribution hierarchy. | apex of the associated resource distribution hierarchy. | |||
| * Such trust anchor material SHOULD be long-lived. As it can be | * Such trust anchor material SHOULD be long-lived. As it can be | |||
| reasonably anticipated that default nominated trust anchor | reasonably anticipated that default trust anchor material would | |||
| material would be distributed with relying party validation | be distributed with relying party validation software, the | |||
| software, the implication is that the distributed default | implication is that the distributed default trust anchor | |||
| nominated trust anchor material SHOULD remain constant for | material SHOULD remain constant for extended time intervals. | |||
| extended time intervals. | ||||
| * It is a poor trust model when any entity that issues putative | * It is a poor trust model when any entity that issues putative | |||
| trust anchor material is forced to be authoritative over | trust anchor material claims to be authoritative for | |||
| information or actions of which the entity has no direct | information or actions of which the entity has no direct | |||
| knowledge, nor is in possession of a current definitive record | knowledge, nor is in possession of a current definitive record | |||
| of such actions. Entities who propose themselves in a role of | of such actions. Entities who propose themselves in a role of | |||
| a trust anchor issuer SHOULD be able to point to corroborative | a trust anchor issuer SHOULD be able to point to corroborative | |||
| material supporting the assertion that they are legitimate | material supporting the assertion that they are legitimate | |||
| authorities for the information where they are representing | authorities for the information for which they are representing | |||
| themselves as a potential trust anchor for relying parties. | themselves as a trust anchor for relying parties. | |||
| An entity offering itself as a putative RPKI trust anchor for a part | An entity offering itself as a putative trust anchor for a part of | |||
| of the RPKI is required to regularly publish a RPKI CA certificate at | the RPKI is required to regularly publish an RPKI CA certificate at a | |||
| a stable URL, and to publish a packaged form of this URL as | stable URL, and to publish this URL as distributed trust anchor | |||
| distributed trust anchor material, as follows: | material, as follows: | |||
| * The entity issues a RPKI self-signed "root" CA certificate that | * The entity issues an RPKI self-signed "root" CA certificate | |||
| is used as the apex of a RPKI certificate issuance hierarchy. | that is used as the apex of an RPKI certificate validation | |||
| This certificate MUST have the keyCertSign sign bit set in the | tree. This certificate MUST meet all of the criteria | |||
| key usage extension, and the CA flag set in the basic | established in Section 3 of this document for a self-signed | |||
| constraints extension, no AIA value and no CRLDP value. This | RPKI certificate. This certificate MUST be reissued | |||
| certificate MUST be reissued at regular intervals prior to | periodically, prior to its expiration, and MUST be reissued | |||
| expiration of the current RPKI self-signed certificate, and | upon any change in the resource set that has been allocated to | |||
| MUST be reissued upon any change in the resource set that has | the entity operating this CA. The validity interval of this | |||
| been allocated to the entity who is operating this CA. The | certificate SHOULD reflect the anticipated period of changes to | |||
| validity interval of this certificate SHOULD reflect the | the entity's resource set . | |||
| anticipated period of the regular RPKI certificate re-issuance. | ||||
| * The entity maintains a "trust anchor material" key pair. | * The entity maintains a trust anchor key pair that is distinct | |||
| from the key pair represented in the self-signed RPKI CA noted | ||||
| above. | ||||
| * The entity issues a PKI self-signed CA certificate [RFC5280] | * The entity issues a self-signed CA certificate [RFC5280] (that | |||
| using the trust anchor material key pair, where the subject | contains no RFC 3779 extension) where the subject public key in | |||
| public key in the certificate is the public key of the trust | the certificate is the public key of the trust anchor and the | |||
| anchor material key pair and the certificate is signed by the | certificate is signed using the corresponding private key of | |||
| corresponding private key of trust anchor material key pair. | trust anchor key pair. This is called the TA CA certificate. | |||
| This certificate MUST have the keyCertSign sign bit set in the | This certificate MUST have the keyCertSign sign bit set in the | |||
| key usage extension, and the CA flag set in the basic | key usage extension, and the CA flag set in the basic | |||
| constraints extension, no AIA value and no CRLDP value. The | constraints extension, no AIA value and no CRLDP value. The | |||
| validity period of this certificate shold be very long-lived, | validity period of this certificate should be very long, as is | |||
| with the period to be defined by the entity. The SIA of this | the norm for trust anchor material. The SIA of this | |||
| certificate references a publication point where the CRL and | certificate references a publication point where the CRL and | |||
| the subordinate product of this certificate are published. | the CMS structure defined below are published. | |||
| * The PKI CA issues a subordinate PKI EE certificate with a | * The trust anchor (TA) issues an EE certificate (a TA EE | |||
| validity period identical to the validity period of the RPKI | certificate) with a validity period identical to the validity | |||
| self-signed "root" CA certificate. This PKI EE certificate | period of its RPKI self-signed "root" CA certificate. This EE | |||
| MUST have the digitalSignature bit set, and this MUST be the | certificate MUST have the digitalSignature bit set, and this | |||
| only bit set to TRUE. The CA flag set MUST be cleared in the | MUST be the only bit set to TRUE. There is no BasicConstraints | |||
| basic constraints extension. The validity period of this | extension in this certificate. The validity period of this TA | |||
| certificate SHOULD be aligned to the validity period of the | EE certificate SHOULD be aligned to the validity period of the | |||
| RPKI self-signed "root" CA certificate. | RPKI self-signed "root" CA certificate. | |||
| * The PKI CA regularly issues a CRL. The CRL issuance cycle | * The TA CA regularly issues a CRL. The CRL issuance cycle | |||
| SHOULD be shorter than the validity period for the RPKI self- | SHOULD be shorter than the validity period for the RPKI self- | |||
| signed "root" certificate. | signed "root" certificate. | |||
| * Each time the RPKI self-signed "root" certificate is re-issued, | * Each time the RPKI self-signed "root" certificate is re-issued, | |||
| or prior to the expiration of the PKI EE certificate, the PKI | or prior to the expiration of the TA EE certificate, the TA | |||
| CA generates a Cryptographic Message Syntax (CMS) [RFC3852] | generates a Cryptographic Message Syntax (CMS) [RFC3852] | |||
| signed-data object, where the payload is the RPKI self-signed | signed-data object, the payload of which is an RPKI self-signed | |||
| "root" certificate. The object is CMS-signed with the private | "root" certificate. The object is CMS-signed with the private | |||
| key of the PKI EE certificate. The PKI EE certificate is | key of the TA EE certificate. The TA EE certificate is | |||
| included as a CMS signed attribute in the CMS object. The PKI | included as a CMS signed attribute in the CMS object. The TA | |||
| self-signed CA certificate and the asociated CRL are not to be | CA certificate and the associated CRL are not to be included in | |||
| included in the CMS object. The format of the CMS object is | the CMS object. The format of the CMS object is specified in | |||
| specified in Appendix C. The CMS object is published at the | Appendix C. The CMS object is published at the location | |||
| location referenced in the SIA of the PKI self-signed CA | referenced in the SIA of the TA CA certificate. | |||
| certificate. | ||||
| * The entity publically distributes the PKI self-signed CA | ||||
| certificate as its proposed trust anchor material. | ||||
| * The entity publishes the modulus and exponent of the "trust | * The entity publicly distributes the TA CA certificate as its | |||
| anchor material" public key using a trusted form of publication | trust anchor material, in an out-of-band fashion, e.g., as part | |||
| that allows the entity's identity to be validated and the | of widely distributed relying party software. | |||
| retrieval of the published information to be secured. | ||||
| Relying Parties can assemble the default trust anchor collection by | Relying Parties can assemble the default trust anchor collection by | |||
| using the distributed PKI self-signed CA certificate for each | using the TA CA certificate for each nominated trust anchor: | |||
| nominated trust anchor: | ||||
| * The public key in the self-signed CA PKI certificate can be | ||||
| validated using the modulus and exponent values as retrieved | ||||
| from the entity's publication point using a secured retrieval | ||||
| operation. | ||||
| * The PKI CA's CRL and CMS objects can be retrieved from the | * The TA CA's CRL and CMS objects can be retrieved from the | |||
| publication point referenced by the SIA in the PKI CA | publication point referenced by the SIA in the TA CA | |||
| certificate. | certificate. | |||
| * The CRL can be verified against the PKI CA certificate. | * The CRL can be verified against the TA CA certificate. | |||
| * The CMS signature can be verified using the included PKI EE | * The CMS signature can be verified using the included TA EE | |||
| certificate together with the retrieved CRL and the self-signed | certificate together with the retrieved CRL and the self-signed | |||
| PKI CA certificate. | TA CA certificate. | |||
| * The relying party can then load the enclosed RPKI self-signed | * The relying party can then load the enclosed RPKI self-signed | |||
| CA certificate as a trust anchor for RPKI validation for those | CA certificate as a trust anchor for RPKI validation for those | |||
| resources described in the resource extension of this RPKI | resources described in the IP Resource extensions [RFC3779] of | |||
| certificate. | this RPKI certificate. | |||
| Relying Parties SHOULD perform this retrieval and validation | Relying Parties SHOULD perform this retrieval and validation | |||
| operation at intervals no less frequent than the nextUpdate time of | operation at intervals no less frequent than the nextUpdate time of | |||
| the published CRL, and SHOULD perform the retrieval operation prior | the published TA CA CRL, and SHOULD perform the retrieval operation | |||
| to the expiration of the PKI EE certificate, or upon revocation of | prior to the expiration of the TA EE certificate, or upon revocation | |||
| the PKI EE certificate that was used to sign the CMS object that held | of the TA EE certificate that is used to verify the CMS object that | |||
| the relying party's current RPKI self-signed CA certificate. | holds the trust anchor's current RPKI self-signed CA certificate. | |||
| If a trust anchor CA wishes to perform an issuance of the RPKI self- | If a trust anchor chooses to reissue its RPKI self- signed CA | |||
| signed CA certificate outside the established update cycle time, it | certificate before the expiration of that certificate, it MUST | |||
| can notify relying parties of this by revising the nextUpdate time of | perform the follow actions: revise the nextUpdate time of the TA CA's | |||
| the PKI CA's CRL to a shorter interval, issuing a new PKI CA | CRL to reflect the issue date for the new TA EE certificate, issue a | |||
| certificate and a new CMS object with the new RPKI self-signed CA | new TA EE certificate and a new CMS object with the new RPKI self- | |||
| certificate, and revoking the old PKI EE certificate at the | signed CA certificate, and revoke the old TA EE certificate at the | |||
| nextUpdate time in the next issued CRL. This revocation will provide | nextUpdate time in the next issued CRL. This revocation will provide | |||
| an indication to relying parties to perform the retrieval operation | an indication to relying parties to perform the retrieval operation | |||
| ofthe RPKI self-signed CA certificate at a time earlier than the | of the RPKI self-signed CA certificate at a time earlier than the | |||
| normal update cycle time. | normal update cycle time. . | |||
| 7. Design Notes | 7. 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 do not | |||
| constitute a formal part of the profile specification, and the | constitute a formal part of the profile specification, and the | |||
| interpretation of key words as defined in RFC2119 are not applicable | interpretation of key words as defined in RFC2119 are not applicable | |||
| in this section of the document. | in this section of the document. | |||
| Certificate Extensions: | Certificate Extensions: | |||
| This profile does not not permit the use of any other critical | This profile does not permit the use of any other critical or | |||
| or non-critical extensions. The rationale for this restriction | non-critical extensions. The rationale for this restriction is | |||
| 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 use, and 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 relying parties may see | |||
| as valid certificates without understanding the extensions, but | as valid certificates without understanding the extensions, but | |||
| were the relying party in a position to understand the | were the relying party in a position to understand the | |||
| extensions, would contradict or qualify in some way this | extensions, would contradict or qualify in some way this | |||
| original judgement of validity. This profile takes the | original judgment of validity. This profile takes the position | |||
| position of minimialism over extensibility. The specific goal | of minimalism over extensibility. The specific goal for the | |||
| for the associated Resource Public Key Infrastructure to | associated Resource Public Key Infrastructure to precisely | |||
| precisely match the IP number resource allocation structure | match the IP number resource allocation structure through an | |||
| through an aligned certificate structure that describes the | aligned certificate structure that describes the allocation and | |||
| allocation and its context within the number resource | its context within the number resource distribution hierarchy. | |||
| distribution hierarchy. The profile defines a resource | The profile defines a resource certificate that is structured | |||
| certificate that is structured to meet these 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 certified 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. | |||
| 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: | Subject Name: | |||
| For Subject Names the issuer should ensure that when an | For Subject Names the issuer should ensure that when an | |||
| entity requests a certificate with a new key pair it | entity requests a certificate with a new key pair, the CA | |||
| issues a certificate with a new subject name. One way to | issues a certificate with a new subject name. One way to | |||
| achieve this is for the issuer to use a mapping of the | achieve this is for the issuer to use a mapping of the | |||
| hash of the subject public key value into a suitable | hash of the subject public key value into a character | |||
| distinguished name to use as the Subject Name. | string for a CommonName that becomes the CA Subject Name. | |||
| CRL Scope: | CRL Scope: | |||
| For CRL Scope this profile specifies that a CA issues a | For CRL Scope this profile specifies that a CA issues a | |||
| single CRL sequence, and the scope of the CRL is all | single CRL sequence, and the scope of the CRL is all | |||
| products issued by this CA. Becuase the CA instance is | certificates issued by this CA. Because the CA instance | |||
| bound to a single key pair this implies that the CA's key | is bound to a single key pair this implies that the CA's | |||
| value, the key value that signs the CA's CRL and the key | public key, the key used to validate the CA's CRL, and | |||
| value that signed the revoked products of the CA are all | the key used to validate the certificates revoked by that | |||
| the same key value. | CRL are all the same. | |||
| Repository Publication Point: | Repository Publication Point: | |||
| The definition of a CA affects the design of the | The definition of a CA affects the design of the | |||
| repository publication system. In order to minimise the | repository publication system. In order to minimize the | |||
| amount of forced re-certification on key rollover events, | amount of forced re-certification on key rollover events, | |||
| a repository publication regime that uses the same | a repository publication regime that uses the same | |||
| repository publication point for all CA instances that | repository publication point for all CA instances that | |||
| refers to the same entity, but with different key values | refers to the same entity, but with different key values | |||
| will minimise the extent of re-generation of certificate | will minimize the extent of re-generation of certificates | |||
| products to immediate subordinate certificates. | to only immediate subordinate certificates. | |||
| In order for two or more CA instances to share a single | In order for two or more CA instances to share a single | |||
| repository publication point there needs to be a regime | repository publication point there needs to be a regime | |||
| of key management into OLD, CURRENT and FUTURE keys and a | of key management into OLD, CURRENT and FUTURE keys and a | |||
| similar regine of OLD, CURRENT and FUTURE CAs. An OLD CA | similar regime of OLD, CURRENT and FUTURE CAs. An OLD CA | |||
| should regularly publish its CRL for as long as the OLD | should regularly publish its CRL for as long as the OLD | |||
| CA instance is still valid, and issue EE certificates as | CA instance is still valid, and issue EE certificates as | |||
| necessary to maintain a regularly issued signed manifest | necessary to maintain a current manifest of all OLD CA | |||
| of all OLD CA published products, but should not sign any | published products, but it should not sign any other | |||
| other products. The CURRENT CA should publish its CRL, | products. The CURRENT CA should publish its CRL, and | |||
| and should publish all subordinate products, as well as | should publish all subordinate products, as well as | |||
| issuing EE certificates as necessary to maintain a | issuing EE certificates as necessary to maintain a | |||
| regularly issued signed manifest of all CURRENT CA | current manifest of all CURRENT CA published products. | |||
| published products. FUTURE CAs should publish no | FUTURE CAs should publish no products at all in the | |||
| products at all in the repository publication point. It | repository publication point. It would be consistent | |||
| would be consistent with this repository object name | with this repository object name framework for the CRL | |||
| framework for the CRL and manifest to be published using | and manifest to be published using object names derived | |||
| object names derived from the hash of the public key | from the hash of the public key value of the CA instance. | |||
| value of the CA instance. | ||||
| Key Rollover: | Key Rollover: | |||
| As a CA instance is associated with a single key pair, then | As a CA instance is associated with a single key pair, there | |||
| there are some considerations regarding the procedure that | are some considerations regarding the procedure that should be | |||
| should be followed by an entity performing a key rollover | followed by an entity performing a key rollover function. The | |||
| function. The entity will need to create a new CA instance and | entity will need to create a new CA instance and then use this | |||
| then use this new CA instance to re-issue all subordinate | new CA instance to re-issue all subordinate products with the | |||
| products with the new CA instance. | new CA instance. | |||
| To perform a key rollover operation the entity will need to: | To perform a key rollover operation the entity will need to: | |||
| 1. Generate a NEW key pair. | 1. Generate a NEW key pair. | |||
| 2. Generate a certificate request with the NEW key | 2. Generate a certificate request with the NEW key | |||
| pair and pass the request to the entity's issuer. | pair and pass the request to the entity's issuer. | |||
| 3. The entity's issuer to generate and publish a NEW | 3. Request the entity's issuer to generate and publish | |||
| CA certificate, with an issuer-selected subject | a NEW CA certificate, with an issuer-selected | |||
| name that is distinct from the subject name used in | subject name that is distinct from the subject name | |||
| conjunction with the previous subject name value | used in conjunction with the previous subject name | |||
| for this entity. | value for this entity. | |||
| 4. Mark the CURRENT CA as OLD and the NEW CA as | 4. Mark the CURRENT CA as OLD and the NEW CA as | |||
| CURRENT. | CURRENT. | |||
| 5. The CURRENT CA to generate subordinate certificates | 5. The CURRENT CA will generate new certificates for | |||
| for all existing subordinate CA and EE products, | all existing subordinate CA and EE certificates, | |||
| and publish those products in the same repository | and publish those products in the same repository | |||
| publication point and with the same repository | publication point and with the same repository | |||
| publication point name as the previous OLD | publication point name as the previous OLD | |||
| subordinate CA and EE products. | subordinate CA and EE certificates. The keys in | |||
| these reissued certificates MUST not change. | ||||
| 6. The new subordinate EE certificates will need to | 6. Where the signing structure uses a packaging format | |||
| re-sign the objects signed by the OLD EE | that includes the EE certificate within the signed | |||
| certificate, and publish these objects in the same | data, signed objects that included OLD EE | |||
| repository publication point and the same | certificates in their signed data will need to be | |||
| repository publication point name as the previous | re-signed using an EE certificate issued by the | |||
| OLD signed objects. | CURRENT CA. In the case where the OLD EE | |||
| 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 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 | 7. Generate a certificate revocation request for the | |||
| OLD CA certificate and pass it to the entity's | OLD CA certificate and pass it to the entity's | |||
| issuer. | issuer. | |||
| 8. Remove all published OLD CA products and destroy | 8. Remove all published OLD CA products and destroy | |||
| the OLD keypair. | the OLD private key. | |||
| Name Uniqueness: | Name Uniqueness: | |||
| This profile specifies that subject names must be unique per | This profile specifies that subject names must be unique per | |||
| issuer, and does not specify that subject names must be | issuer, and does not specify that subject names must be | |||
| globally unique. | globally unique. | |||
| Given that the Resource Certificate PKI is a distributed PKI, | Given that the Resource Certificate PKI is a distributed PKI, | |||
| there is no inherent ability for Cartification authorities to | there is no inherent ability for Certification authorities to | |||
| coordinate PKI-wide unique subject names. Hierarchically | coordinate PKI-wide unique subject names. IANA and the RIRs | |||
| structured subject names probably should not incorporate the | SHOULD use multi-attribute, structured Subject names in their | |||
| use superior CA issuer names due to the issue of forced | RPKI certificates. All other entities (NIRs, LIRs, etc.) MUST | |||
| reissuance of subordinate products in the event of a re-keying | be issued certificates in which the Subject name contains a | |||
| of a superior CA, as the practical implementation of a re-key | single relative distinguished name, consisting of a CommonName | |||
| operation is a change of CA. However, as the publication | attribute. This restriction is motivated by the need to change | |||
| repository is distributed, and distinct entities use distinct | the names of these CAs when key rollover occurs, and to | |||
| repository publication points any potential ambiguity is | minimize liability for issuers in the RPKI. Also, as the | |||
| resolved by the distinct publication point. | publication repository is distributed, and distinct entities | |||
| use distinct repository publication points any potential | ||||
| ambiguity is resolved by the distinct publication point. | ||||
| 8. Security Considerations | 8. 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 as defined by this profile, and their use. | |||
| 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 | |||
| skipping to change at page 33, line 11 ¶ | skipping to change at page 32, line 48 ¶ | |||
| [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. | |||
| 11.2. Informative References | 11.2. Informative References | |||
| [ID.SIDR-MANIFESTS] | [ID.sidr-arch] | |||
| Lepinski, M. and S. Kent, "An Infrastructure to Support | ||||
| Secure Internet Routing", Work in progress: Internet | ||||
| Drafts draft-ietf-sidr-arch-03.txt, February 2008. | ||||
| [ID.sidr-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-00.txt, | Drafts draft-ietf-sidr-rpki-manifests-00.txt, | |||
| January 2008. | January 2008. | |||
| [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. | |||
| skipping to change at page 41, line 10 ¶ | skipping to change at page 41, line 10 ¶ | |||
| Time ::= CHOICE { | Time ::= CHOICE { | |||
| utcTime UTCTime, | utcTime UTCTime, | |||
| generalizedTime GeneralizedTime } | generalizedTime GeneralizedTime } | |||
| The Time element specifies the time, based on | The Time element specifies the time, based on | |||
| the local system clock, at which the digital | the local system clock, at which the digital | |||
| signature was applied to the content. | signature was applied to the content. | |||
| BinarySigningTime Attribute | BinarySigningTime Attribute | |||
| The The BinarySigningTime attribute MAY be | The BinarySigningTime attribute MAY be present. | |||
| present. If it is present it MUST be ignored by | If it is present it MUST be ignored by the | |||
| the relying party. The presence of absence of | relying party. The presence of absence of the | |||
| the BinarySigningTime attribute in no way | BinarySigningTime attribute in no way affects | |||
| affects the validation of the RTA. The attrType | the validation of the RTA. The attrType OID for | |||
| OID for the SigningTime attribute is | the SigningTime attribute is | |||
| 1.2.840.113549.1.9.16.2.46. | 1.2.840.113549.1.9.16.2.46. | |||
| The attrValues for the SigningTime attribute is | The attrValues for the SigningTime attribute is | |||
| defined as: | defined as: | |||
| BinarySigningTime ::= BinaryTime | BinarySigningTime ::= BinaryTime | |||
| BinaryTime ::= INTEGER (0..MAX) | BinaryTime ::= INTEGER (0..MAX) | |||
| The BinaryTime element specifies the time, based | The BinaryTime element specifies the time, based | |||
| skipping to change at page 42, line 14 ¶ | skipping to change at page 42, line 14 ¶ | |||
| a. The contentType of the CMS object is SignedData (OID | a. The contentType of the CMS object is SignedData (OID | |||
| 1.2.840.113549.1.7.2). | 1.2.840.113549.1.7.2). | |||
| b. The version of the SignedData object is 3. | b. The version of the SignedData object is 3. | |||
| c. The digestAlgorithm in the SignedData object is SHA-256 | c. The digestAlgorithm in the SignedData object is SHA-256 | |||
| (OID 2.16.840.1.101.3.4.2.1). | (OID 2.16.840.1.101.3.4.2.1). | |||
| d. The certificates field in the SignedData object is present | d. The certificates field in the SignedData object is present | |||
| and contains an EE certificate whose Subject Key | and contains a single EE certificate whose Subject Key | |||
| Identifier (SKI) matches the sid field of the SignerInfo | Identifier (SKI) matches the sid field of the SignerInfo | |||
| object. | object. | |||
| e. The crls field in the SignedData object is omitted. | e. The crls field in the SignedData object is omitted. | |||
| f. The eContentType in the EncapsulatedContentInfo is id-ct- | f. The eContentType in the EncapsulatedContentInfo is id-ct- | |||
| RPKITrustAnchor (OID 1.2.840.113549.1.9.16.1.[TBD]) | RPKITrustAnchor (OID 1.2.840.113549.1.9.16.1.[TBD]) | |||
| g. The version of the SignerInfo is 3. | g. The version of the SignerInfo is 3. | |||
| End of changes. 109 change blocks. | ||||
| 342 lines changed or deleted | 339 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/ | ||||