idnits 2.17.00 (12 Aug 2021) /tmp/idnits38499/draft-ietf-sidr-res-certs-16.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? -- It seems you're using the 'non-IETF stream' Licence Notice instead Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 3 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 26, 2009) is 4831 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2050 (Obsoleted by RFC 7020) == Outdated reference: draft-ietf-sidr-arch has been published as RFC 6480 == Outdated reference: draft-ietf-sidr-rpki-manifests has been published as RFC 6486 Summary: 2 errors (**), 0 flaws (~~), 4 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIDR G. Huston 3 Internet-Draft G. Michaelson 4 Intended status: Standards Track R. Loomans 5 Expires: August 30, 2009 APNIC 6 February 26, 2009 8 A Profile for X.509 PKIX Resource Certificates 9 draft-ietf-sidr-res-certs-16 11 Status of this Memo 13 This Internet-Draft is submitted to IETF in full conformance with the 14 provisions of BCP 78 and BCP 79. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt. 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 This Internet-Draft will expire on August 30, 2009. 34 Copyright Notice 36 Copyright (c) 2009 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents 41 (http://trustee.ietf.org/license-info) in effect on the date of 42 publication of this document. Please review these documents 43 carefully, as they describe your rights and restrictions with respect 44 to this document. 46 Abstract 48 This document defines a standard profile for X.509 certificates for 49 the purposes of supporting validation of assertions of "right-of-use" 50 of an Internet Number Resource (IP Addresses and Autonomous System 51 Numbers). This profile is used to convey the issuer's authorization 52 of the subject to be regarded as the current holder of a "right-of- 53 use" of the IP addresses and AS numbers that are described in the 54 issued certificate. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 59 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 60 2. Describing Resources in Certificates . . . . . . . . . . . . . 5 61 3. Resource Certificate Fields . . . . . . . . . . . . . . . . . 6 62 3.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 6 63 3.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 6 64 3.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 6 65 3.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 7 66 3.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 7 67 3.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . . 7 68 3.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . . 8 69 3.8. Subject Public Key Info . . . . . . . . . . . . . . . . . 8 70 3.9. Resource Certificate Version 3 Extension Fields . . . . . 8 71 3.9.1. Basic Constraints . . . . . . . . . . . . . . . . . . 9 72 3.9.2. Subject Key Identifier . . . . . . . . . . . . . . . . 9 73 3.9.3. Authority Key Identifier . . . . . . . . . . . . . . . 9 74 3.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . . 10 75 3.9.5. Extended Key Usage . . . . . . . . . . . . . . . . . . 10 76 3.9.6. CRL Distribution Points . . . . . . . . . . . . . . . 10 77 3.9.7. Authority Information Access . . . . . . . . . . . . . 11 78 3.9.8. Subject Information Access . . . . . . . . . . . . . . 12 79 3.9.9. Certificate Policies . . . . . . . . . . . . . . . . . 13 80 3.9.10. IP Resources . . . . . . . . . . . . . . . . . . . . . 13 81 3.9.11. AS Resources . . . . . . . . . . . . . . . . . . . . . 14 82 4. Resource Certificate Revocation List Profile . . . . . . . . . 14 83 4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 14 84 4.2. Issuer Name . . . . . . . . . . . . . . . . . . . . . . . 15 85 4.3. This Update . . . . . . . . . . . . . . . . . . . . . . . 15 86 4.4. Next Update . . . . . . . . . . . . . . . . . . . . . . . 15 87 4.5. Signature . . . . . . . . . . . . . . . . . . . . . . . . 15 88 4.6. Revoked Certificate List . . . . . . . . . . . . . . . . . 15 89 4.6.1. Serial Number . . . . . . . . . . . . . . . . . . . . 15 90 4.6.2. Revocation Date . . . . . . . . . . . . . . . . . . . 15 91 4.7. CRL Extensions . . . . . . . . . . . . . . . . . . . . . . 16 92 4.7.1. Authority Key Identifier . . . . . . . . . . . . . . . 16 93 4.7.2. CRL Number . . . . . . . . . . . . . . . . . . . . . . 16 94 5. Resource Certificate Request Profile . . . . . . . . . . . . . 16 95 5.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . . 16 96 5.1.1. PKCS#10 Resource Certificate Request Template 97 Fields . . . . . . . . . . . . . . . . . . . . . . . . 17 98 5.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 18 99 5.2.1. CRMF Resource Certificate Request Template Fields . . 18 100 5.2.2. Resource Certificate Request Control Fields . . . . . 19 101 5.3. Certificate Extension Attributes in Certificate 102 Requests . . . . . . . . . . . . . . . . . . . . . . . . . 19 103 6. Resource Certificate Validation . . . . . . . . . . . . . . . 22 104 6.1. Resource Extension Validation . . . . . . . . . . . . . . 22 105 6.2. Resource Certification Path Validation . . . . . . . . . . 23 106 7. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 25 107 8. Security Considerations . . . . . . . . . . . . . . . . . . . 28 108 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 109 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 29 110 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 111 11.1. Normative References . . . . . . . . . . . . . . . . . . . 29 112 11.2. Informative References . . . . . . . . . . . . . . . . . . 30 113 Appendix A. Example Resource Certificate . . . . . . . . . . . . 30 114 Appendix B. Example Certificate Revocation List . . . . . . . . . 32 115 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 34 117 1. Introduction 119 This document defines a standard profile for X.509 certificates 120 [X.509] for use in the context of certification of IP Addresses and 121 AS Numbers. Such certificates are termed here "Resource 122 Certificates." Resource Certificates are X.509 certificates that 123 conform to the PKIX profile [RFC5280], and also conform to the 124 constraints specified in this profile. Resource Certificates attest 125 that the issuer has granted the subject a "right-of-use" for a listed 126 set of IP addresses and Autonomous System numbers. 128 A Resource Certificate describes an action by a certificate issuer 129 that binds a list of IP Address blocks and AS Numbers to the subject 130 of the issued certificate. The binding is identified by the 131 association of the subject's private key with the subject's public 132 key contained in the Resource Certificate, as signed by the private 133 key of the certificate's issuer. 135 In the context of the public Internet, and the use of public number 136 resources within this context, it is intended that Resource 137 Certificates are used in a manner that is explicitly aligned to the 138 public number resource distribution function. Specifically, when a 139 number resource is allocated or assigned by a number registry to an 140 entity, this allocation is described by an associated Resource 141 Certificate. This certificate is issued by the number registry, and 142 the subject public key that is certified by the issuer corresponds to 143 the public part of a key pair for which the private key is associated 144 with the entity who is the recipient of the number assignment or 145 allocation. A critical extension to the certificate enumerates the 146 IP Resources that were allocated or assigned by the issuer to the 147 entity. In the context of the public number distribution function, 148 this corresponds to a hierarchical PKI structure, where Resource 149 Certificates are issued in only one 'direction' and there is a unique 150 path of certificates from a certification authority operating at the 151 apex of a resource distribution hierarchy to a valid certificate. 153 Validation of a Resource Certificate in such a hierarchical PKI can 154 be undertaken by establishing a valid issuer-subject certificate 155 chain from a certificate issued by a trust anchor certification 156 authority to the certificate [RFC4158], with the additional 157 constraint of ensuring that each subject's listed resources are fully 158 encompassed by those of the issuer at each step in the issuer-subject 159 certificate chain. Validation therefore logically corresponds to 160 validation of an associated set of assignment or allocation actions 161 of IP number resources. 163 Resource Certificates may be used in the context of the operation of 164 secure inter-domain routing protocols to convey a right-of-use of an 165 IP number resource that is being passed within the routing protocol, 166 allowing relying parties to verify legitimacy and correctness of 167 routing information. Related use contexts include validation of 168 Internet Routing Registry objects, validation of routing requests, 169 and detection of potential unauthorized use of IP addresses. 171 This profile defines those fields that are used in a Resource 172 Certificate that MUST be present for the certificate to be valid. 173 Relying Parties SHOULD check that a Resource Certificate conforms to 174 this profile as a requisite for validation of a Resource Certificate. 176 1.1. Terminology 178 It is assumed that the reader is familiar with the terms and concepts 179 described in "Internet X.509 Public Key Infrastructure Certificate 180 and Certificate Revocation List (CRL) Profile" [RFC5280], "X.509 181 Extensions for IP Addresses and AS Identifiers" [RFC3779], "Internet 182 Protocol" [RFC0791], "Internet Protocol Version 6 (IPv6) Addressing 183 Architecture" [RFC4291], "Internet Registry IP Allocation Guidelines" 184 [RFC2050], and related regional Internet registry address management 185 policy documents. 187 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 188 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 189 document are to be interpreted as described in RFC 2119. 191 2. Describing Resources in Certificates 193 The framework for describing an association between the subject of a 194 certificate and the resources currently under the subject's control 195 is described in [RFC3779]. 197 There are three aspects of this resource extension that are noted in 198 this profile: 200 1. RFC 3779 notes that a resource extension SHOULD be a CRITICAL 201 extension to the X.509 Certificate. This Resource Certificate 202 profile further specifies that the use of this certificate 203 extension MUST be used in all Resource Certificates and MUST 204 be marked as CRITICAL. 206 2. RFC 3779 defines a sorted canonical form of describing a 207 resource set, with maximal spanning ranges and maximal 208 spanning prefix masks as appropriate. All valid certificates 209 in this profile MUST use this sorted canonical form of 210 resource description in the resource extension field. 212 3. A test of the resource extension in the context of certificate 213 validity includes the condition that the resources described 214 in the immediate parent CA certificate in the PKI (the 215 certificate where this certificate's issuer is the subject) 216 has a resource set (called here the "issuer's resource set") 217 that MUST encompass the resource set of the issued 218 certificate. In this context "encompass" allows for the 219 issuer's resource set to be the same as, or a strict superset 220 of, any subject's resource set. 222 Certificate validation entails the construction of a sequence of 223 valid certificates in an issuer-subject chain (where the subject 224 field of one certificate appears as the issuer in the next 225 certificate in the sequence) from a trust anchor to the certificate 226 being validated. Moreover, the resource extensions in this 227 certificate sequence from the first CA under the trust anchor to the 228 certificate being validated form a sequence of encompassing 229 relationships in terms of the resources described in the resource 230 extension. 232 3. Resource Certificate Fields 234 A Resource Certificate is a valid X.509 v3 public key certificate, 235 consistent with the PKIX profile [RFC5280], containing the fields 236 listed in this section. Unless specifically noted as being OPTIONAL, 237 all the fields listed here MUST be present, and any other field MUST 238 NOT appear in a conforming Resource Certificate. Where a field value 239 is specified here this value MUST be used in conforming Resource 240 Certificates. 242 3.1. Version 244 Resource Certificates are X.509 Version 3 certificates. This field 245 MUST be present, and the Version MUST be 3 (i.e. the value of this 246 field is 2). 248 3.2. Serial number 250 The serial number value is a positive integer that is unique per 251 Issuer. 253 3.3. Signature Algorithm 255 This field describes the algorithm used to compute the signature on 256 this certificate. This profile specifies a default of SHA-256 with 257 RSA (sha256WithRSAEncryption), and allows for the use of SHA-384 or 258 SHA-512. Accordingly, the value for this field MUST be one of the 259 OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } [RFC4055]. 261 3.4. Issuer 263 This field identifies the entity that has signed and issued the 264 certificate. The value of this field is a valid X.501 distinguished 265 name. Conventions are imposed on Issuer names used in resource 266 certificates, as described in [ID.sidr-arch]. 268 If the certificate is a subordinate certificate issued by virtue of 269 the "cA" bit set in the immediate superior certificate, then the 270 issuer name MUST correspond to the subject name as contained in the 271 immediate superior certificate. 273 3.5. Subject 275 This field identifies the entity to whom the resource has been 276 allocated / assigned. The value of this field is a valid X.501 277 distinguished name. As noted above, conventions are imposed on 278 Subject names used in resource certificates, as described in 279 [ID.sidr-arch]. 281 In this profile the subject name is determined by the issuer, and 282 each distinct subordinate CA and EE certified by the issuer MUST be 283 identified using a subject name that is unique per issuer. 285 In this context "distinct" is defined as an entity and a given public 286 key. An issuer SHOULD use a different subject name if the subject 287 entity or the subject entity's key pair has changed. 289 3.6. Valid From 291 The starting time at which point the certificate is valid. In this 292 profile the "Valid From" time SHOULD be no earlier than the time of 293 certificate generation. As per Section 4.1.2.5 of [RFC5280], 294 Certification Authorities (CAs) conforming to this profile MUST 295 always encode the certificate's "Valid From" date through the year 296 2049 as UTCTime, and dates in 2050 or later MUST be encoded as 297 GeneralizedTime. These two time formats are defined in [RFC5280]. 299 In this profile, it is valid for a certificate to have a value for 300 this field that pre-dates the same field value in any superior 301 certificate. Relying Parties should not attempt to infer from this 302 time information a certificate was valid at a time in the past, or 303 will be valid at a time in the future, as the scope of a relying 304 party's test of validity of a certificate refers specifically to 305 validity at the current time. 307 3.7. Valid To 309 The Valid To time is the date and time at which point in time the 310 certificate's validity ends. It represents the anticipated lifetime 311 of the resource allocation / assignment arrangement between the 312 issuer and the subject. As per Section 4.1.2.5 of [RFC5280], CAs 313 conforming to this profile MUST always encode the certificate's 314 "Valid To" date through the year 2049 as UTCTime, and dates in 2050 315 or later MUST be encoded as GeneralizedTime. These two time formats 316 are defined in [RFC5280]. 318 As noted above, it is valid for a certificate to have a value for 319 this field that post-dates the same field value in any superior 320 certificate. The same caveats apply to Relying Party's assumptions 321 relating to the certificate's validity at any time other than the 322 current time, 324 While a CA is typically advised against issuing a certificate with a 325 validity interval that exceeds the validity interval of the CA's 326 certificate that will be used to validate the issued certificate, in 327 the context of this profile, it is anticipated that a CA may have 328 valid grounds to issue a certificate with a validity interval that 329 exceeds the validity interval of its certificate. 331 3.8. Subject Public Key Info 333 This field specifies the subject's public key and the algorithm with 334 which the key is used. The public key algorithm MUST be RSA, and, 335 accordingly, the OID for the public key algorithm is 336 1.2.840.113549.1.1.1. The key size MUST be a minimum size of 2048 337 bits. 339 It is noted that larger key sizes are computationally expensive for 340 both the CA and relying parties, indicating that care should be taken 341 when deciding to use larger than the minimum key size noted above. 343 3.9. Resource Certificate Version 3 Extension Fields 345 As noted in Section 4.2 of [RFC5280], each extension in a certificate 346 is designated as either critical or non-critical. A certificate- 347 using system MUST reject the certificate if it encounters a critical 348 extension it does not recognize; however, a non-critical extension 349 MAY be ignored if it is not recognized [RFC5280]. 351 The following X.509 V3 extensions MUST be present in a conforming 352 Resource Certificate, except where explicitly noted otherwise. 354 3.9.1. Basic Constraints 356 The basic constraints extension identifies whether the subject of the 357 certificate is a CA and the maximum depth of valid certification 358 paths that include this certificate. 360 The issuer determines whether the "cA" boolean is set. If this bit 361 is set, then it indicates that the subject is allowed to issue 362 resources certificates within this overall framework (i.e. the 363 subject is a CA). 365 The Path Length Constraint is not specified in this profile and MUST 366 NOT be present. 368 The Basic Constraints extension field is a critical extension in the 369 Resource Certificate profile, and MUST be present when the subject is 370 a CA, and MUST NOT be present otherwise. 372 3.9.2. Subject Key Identifier 374 The subject key identifier extension provides a means of identifying 375 certificates that contain a particular public key. To facilitate 376 certification path construction, this extension MUST appear in all 377 Resource Certificates. This extension is non-critical. 379 The value of the subject key identifier MUST be the value placed in 380 the key identifier field of the Authority Key Identifier extension of 381 all certificates issued by this subject. 383 The Key Identifier used here is the 160-bit SHA-1 hash of the value 384 of the DER-encoded ASN.1 bit string of the subject public key, as 385 described in Section 4.2.1.2 of [RFC5280]. 387 3.9.3. Authority Key Identifier 389 The authority key identifier extension provides a means of 390 identifying certificates that are signed by the issuer's private key, 391 by providing a hash value of the issuer's public key. To facilitate 392 path construction, this extension MUST appear in all Resource 393 Certificates. The keyIdentifier MUST be present in all Resource 394 Certificates, with the exception of a CA who issues a "self-signed" 395 certificate. The authorityCertIssuer and authorityCertSerialNumber 396 fields MUST NOT be present. This extension is non-critical. 398 The Key Identifier used here is the 160-bit SHA-1 hash of the value 399 of the DER-encoded ASN.1 bit string of the issuer's public key, as 400 described in Section 4.2.1.1 of [RFC5280]. 402 3.9.4. Key Usage 404 This describes the purpose of the certificate. This is a critical 405 extension, and it MUST be present. 407 In certificates issued to Certification Authorities only the 408 keyCertSign and CRLSign bits are set to TRUE and these MUST be the 409 only bits set to TRUE. 411 In end-entity certificates the digitalSignature bit MUST be set to 412 TRUE and MUST be the only bit set to TRUE. 414 3.9.5. Extended Key Usage 416 The Extended Key Usage Extension indicates one or more purposes for 417 which the public key in a certificate may be used. The uses are 418 specified via a SEQUENCE of one or more object identifiers (OIDs). 419 The EKU extension MUST NOT appear in any Certification Authority 420 certificate in the RPKI. This extension also MUST NOT appear in end 421 entity certificates used to verify RPKI objects such as ROAs or 422 manifests. 424 The EKU extension MAY appear in end entity certificates issued to 425 routers or other devices. The extension MUST NOT be marked critical. 426 Permitted values for the EKU OIDs will be specified in Standards 427 Track RFCs issued by other IETF working groups that adopt the RPKI 428 profile and that identify application-specific requirements that 429 motivate the use of such EKUs. 431 3.9.6. CRL Distribution Points 433 This field (CRLDP) identifies the location(s) of the CRL(s) 434 associated with certificates issued by this Issuer. This profile 435 uses the URI form of object identification. The preferred URI access 436 mechanism is a single RSYNC URI ("rsync://") [rsync] that references 437 a single inclusive CRL for each issuer. 439 In this profile the certificate issuer is also the CRL issuer, 440 implying at the CRLIssuer field MUST be omitted, and the 441 distributionPoint field MUST be present. The Reasons field MUST be 442 omitted. 444 The distributionPoint MUST contain GeneralNames, and MUST NOT contain 445 a nameRelativeToCRLIssuer. The form of the generalName MUST be of 446 type URI. 448 In this profile, the scope of the CRL is specified to be all 449 certificates issued by this CA issuer. 451 The sequence of distributionPoint values MUST contain only a single 452 DistributionPointName set. The DistributionPointName set MAY contain 453 more than one URI value. An RSYNC URI MUST be present in the 454 DistributionPointName set, and reference the most recent instance of 455 this issuer's certificate revocation list. Other access form URIs 456 MAY be used in addition to the RSYNC URI. 458 This extension MUST be present and it is non-critical. There is one 459 exception, namely where a CA distributes its public key in the form 460 of a "self-signed" certificate, the CRLDP MUST be omitted. 462 3.9.7. Authority Information Access 464 This extension (AIA) identifies the point of publication of the 465 certificate that is issued by the issuer's immediate superior CA, 466 where this certificate's issuer is the subject. In this profile a 467 single reference object to publication location of the immediate 468 superior certificate MUST be used, except in the case where a CA 469 distributes its public key in the form of a "self-signed" 470 certificate, in which case the AIA field SHOULD be omitted. 472 This profile uses a URI form of object identification. The preferred 473 URI access mechanisms is "rsync", and an RSYNC URI MUST be specified 474 with an accessMethod value of id-ad-caIssuers. The URI MUST 475 reference the point of publication of the certificate where this 476 issuer is the subject (the issuer's immediate superior certificate). 477 Other accessMethod URIs referencing the same object MAY also be 478 included in the value sequence of this extension. 480 When an Issuer re-issues a CA certificate, the subordinate 481 certificates need to reference this new certificate via the AIA 482 field. In order to avoid the situation where a certificate re- 483 issuance necessarily implies a requirement to re-issue all 484 subordinate certificates, CA Certificate issuers SHOULD use a 485 persistent URL name scheme for issued certificates. This implies 486 that re-issued certificates overwrite previously issued certificates 487 to the same subject in the publication repository, and use the same 488 publication name as previously issued certificates. In this way 489 subordinate certificates can maintain a constant AIA field value and 490 need not be re-issued due solely to a re-issue of the superior 491 certificate. The issuers' policy with respect to the persistence of 492 name objects of issued certificates MUST be specified in the Issuer's 493 Certification Practice Statement. 495 This extension is non-critical. 497 3.9.8. Subject Information Access 499 This extension (SIA) identifies the location of information and 500 services relating to the subject of the certificate in which the SIA 501 extension appears. Where the Subject is a CA in this profile, this 502 information and service collection will include all current valid 503 certificates that have been issued by this subject that are signed 504 with the subject's corresponding private key. 506 This profile uses a URI form of location identification. The 507 preferred URI access mechanism is "rsync", and an RSYNC URI MUST be 508 specified, with an accessMethod value of id-ad-caRepository when the 509 subject of the certificate is a CA. The RSYNC URI MUST reference an 510 object collection rather than an individual object and MUST use a 511 trailing '/' in the URI. 513 Other accessMethod URIs that reference the same location MAY also be 514 included in the value sequence of this extension. The ordering of 515 URIs in this sequence reflect the subject's relative preferences for 516 access methods to be used by parties for retrieval of objects from 517 the associated repository publication point, with the first method in 518 the accessMethod sequence being the most preferred. 520 This extension MUST be present when the subject is a CA, and is non- 521 critical. 523 For End Entity (EE) certificates, where the subject is not a CA, this 524 extension MAY be present, and is non-critical. If present, it either 525 references the location where objects signed by the private key 526 associated with the EE certificate can be accessed, or, in the case 527 of single-use EE certificates it references the location of the 528 single object that has been signed by the corresponding private key. 530 When the subject is an End Entity, and it publishes objects signed 531 with the matching private key in a repository, the directory where 532 these signed objects is published is referenced the id-ad- 533 signedObjectRepository OID. 535 id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } 537 id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 } 539 When the subject is an End Entity, and it publishes a single object 540 signed with the matching private key, the location where this signed 541 object is published is referenced the id-ad-signedObject OID. 543 id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } 545 This profile requires the use of repository publication manifests 546 [ID.sidr-manifests] to list all signed objects that are deposited in 547 the repository publication point associated with a CA or an EE. The 548 publication point of the manifest for a CA or EE is placed in the SIA 549 extension of the CA or EE certificate. This profile uses a URI form 550 of manifest identification for the accessLocation. The preferred URI 551 access mechanisms is "rsync", and an RSYNC URI MUST be specified. 552 Other accessDescription fields may exist for the id-ad-rpkiManifest 553 accessMethod, where the accessLocation value indicates alternate URI 554 access mechanisms for the same manifest object. 556 id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } 558 CA certificates MUST include in the SIA an accessMethod OID of id-ad- 559 rpkiManifest, where the associated accessLocation refers to the 560 subject's published manifest object as an object URL. 562 When an EE certificate is intended for use in verifying multiple 563 objects, EE certificate MUST include in the SIA an accessMethod OID 564 of id-ad-rpkiManifest, where the associated accessLocation refers to 565 the EE's published manifest object as an object URL. 567 When an EE certificate is used to verify a single published object, 568 the EE certificate MUST include in the SIA an accessMethod OID of id- 569 ad-signedObject, where the associated accessLocation refers to the 570 publication point of the single object that is verified using this EE 571 certificate. In this case, the SIA MUST NOT include the accessMethod 572 OID of id-ad-rpkiManifest. 574 3.9.9. Certificate Policies 576 This extension MUST reference the Resource Certificate Policy, using 577 the OID Policy Identifier value of "1.3.6.1.5.5.7.14.2". This field 578 MUST be present and MUST contain only this value for Resource 579 Certificates. 581 No PolicyQualifiers are defined for use with this policy and thus 582 none must be included in this extension. 584 This extension MUST be present and it is critical. 586 3.9.10. IP Resources 588 This extension contains the list of IP address resources as per 589 [RFC3779]. The value may specify the "inherit" element for a 590 particular AFI value. In the context of resource certificates 591 describing public number resources for use in the public Internet, 592 the SAFI value MUST NOT be used. All Resource Certificates MUST 593 include an IP Resources extension, an AS Resources extension, or both 594 extensions. 596 This extension, if present, MUST be marked critical. 598 Either the IP Resources extension, or the AS Resources extension, or 599 both, MUST be present in all RPKI certificates. 601 3.9.11. AS Resources 603 This extension contains the list of AS number resources as per 604 [RFC3779], or may specify the "inherit" element. RDI values are NOT 605 supported in this profile and MUST NOT be used. All Resource 606 Certificates MUST include an IP Resources extension, an AS Resources 607 extension, or both extensions. 609 This extension, if present, MUST be marked critical. 611 Either the IP Resources extension, or the AS Resources extension, or 612 both, MUST be present in all RPKI certificates. 614 4. Resource Certificate Revocation List Profile 616 Each CA MUST issue a version 2 Certificate Revocation List (CRL), 617 consistent with [RFC5280]. The CRL issuer is the CA, and no indirect 618 CRLs are supported in this profile. 620 An entry MUST NOT be removed from the CRL until it appears on one 621 regularly scheduled CRL issued beyond the revoked certificate's 622 validity period, as required in [RFC5280]. 624 This profile does not allow issuance of Delta CRLs. 626 The scope of the CRL MUST be "all certificates issued by this CA". 627 The contents of the CRL are a list of all non-expired certificates 628 that have been revoked by the CA. 630 No CRL fields other than those listed here are permitted in CRLs 631 issued under this profile. Unless otherwise indicated, these fields 632 MUST be present in the CRL. Where two or more CRLs issued by a 633 single CA with the same scope, the CRL with the highest value of the 634 "CRL Number" field supersedes all other CRLs issued by this CA. 636 4.1. Version 638 Resource Certificate Revocation Lists are Version 2 certificates (the 639 integer value of this field is 1). 641 4.2. Issuer Name 643 The value of this field is the X.501 name of the issuing CA who is 644 also the signer of the CRL, and is identical to the Issuer name in 645 the Resource Certificates that are issued by this issuer. 647 4.3. This Update 649 This field contains the date and time that this CRL was issued. The 650 value of this field MUST be encoded as UTCTime for dates through the 651 year 2049, and MUST be encoded as GeneralizedTime for dates in the 652 year 2050 or later. 654 4.4. Next Update 656 This is the date and time by which the next CRL SHOULD be issued. 657 The value of this field MUST be encoded as UTCTime for dates through 658 the year 2049, and MUST be encoded as GeneralizedTime for dates in 659 the year 2050 or later. 661 4.5. Signature 663 This field contains the algorithm used to sign this CRL. This 664 profile specifies a default of SHA-256 with RSA 665 (sha256WithRSAEncryption), and allows for the use of SHA-384 or SHA- 666 512. 668 It is noted that larger key sizes are computationally expensive for 669 both the CRL Issuer and relying parties, indicating that care should 670 be taken when deciding to use larger than the default key size. 672 4.6. Revoked Certificate List 674 When there are no revoked certificates, then the revoked certificate 675 list MUST be absent. 677 For each revoked resource certificate only the following fields MUST 678 be present. No CRL entry extensions are supported in this profile, 679 and CRL entry extensions MUST NOT be present in a CRL. 681 4.6.1. Serial Number 683 The serial number of the revoked certificate. 685 4.6.2. Revocation Date 687 The time the certificate was revoked. This time MUST NOT be a future 688 date (i.e., a date later than ThisUpdate). The value of this field 689 MUST be encoded as UTCTime for dates through the year 2049, and MUST 690 be encoded as GeneralizedTime for dates in the year 2050 or later. 692 4.7. CRL Extensions 694 The X.509 v2 CRL format allows extensions to be placed in a CRL. The 695 following extensions are supported in this profile, and MUST be 696 present in a CRL. 698 4.7.1. Authority Key Identifier 700 The authority key identifier extension provides a means of 701 identifying the public key corresponding to the private key used to 702 sign a CRL. Conforming CRL issuers MUST use the key identifier 703 method. The syntax for this CRL extension is defined in section 704 4.2.1.1 of [RFC5280]. 706 This extension is non-critical. 708 4.7.2. CRL Number 710 The CRL Number extension conveys a monotonically increasing sequence 711 number of positive integers for a given CA and scope. This extension 712 allows users to easily determine when a particular CRL supersedes 713 another CRL. The highest CRL Number value supersedes all other CRLs 714 issued by the CA with the same scope. 716 This extension is non-critical. 718 5. Resource Certificate Request Profile 720 A resource certificate request MAY use either of PKCS#10 or 721 Certificate Request Message Format (CRMF). A CA Issuer MUST support 722 PKCS#10 and a CA Issuer may, with mutual consent of the subject, 723 support CRMF. 725 5.1. PCKS#10 Profile 727 This profile refines the specification in [RFC2986], as it relates to 728 Resource Certificates. A Certificate Request Message object, 729 formatted according to PKCS#10, is passed to a CA as the initial step 730 in issuing a certificate. 732 This request may be conveyed to the CA via a Registration Authority 733 (RA), acting under the direction of a Subject. 735 With the exception of the public key related fields, the CA is 736 permitted to alter any requested field when issuing a corresponding 737 certificate. 739 5.1.1. PKCS#10 Resource Certificate Request Template Fields 741 This profile applies the following additional constraints to fields 742 that may appear in a CertificationRequestInfo: 744 Version 745 This field is mandatory and MUST have the value 0. 747 Subject 748 This field is optional. If present, the value of this field 749 SHOULD be empty, in which case the issuer MUST generate a 750 subject name that is unique in the context of certificates 751 issued by this issuer. If the value of this field is non- 752 empty, then the CA MAY consider the value of this field as the 753 subject's suggested subject name, but the CA is NOT bound to 754 honor this suggestion, as the subject name MUST be unique per 755 subordinate CA and EE in certificates issued by this issuer. 757 SubjectPublicKeyInfo 758 This field specifies the subject's public key and the algorithm 759 with which the key is used. The public key algorithm MUST be 760 RSA, and the OID for the algorithm is 1.2.840.113549.1.1.1. 761 This field also includes a bit-string representation of the 762 entity's public key. For the RSA public-key algorithm the bit 763 string contains the DER encoding of a value of PKCS #1 type 764 RSAPublicKey. 766 Attributes 767 [RFC2986] defines the attributes field as key-value pairs where 768 the key is an OID and the value's structure depends on the key. 770 The only attribute used in this profile is the ExtensionRequest 771 attribute as defined in [RFC2985]. This attribute contains 772 X509v3 Certificate Extensions. The profile for extensions in 773 certificate requests is specified in Section 5.3. 775 This profile applies the following additional constraints to fields 776 that MAY appear in a CertificationRequest Object: 778 signatureAlgorithm 779 This profile specifies a default of SHA-256 with RSA 780 (sha256WithRSAEncryption), and allows for the use of SHA-384 or 781 SHA-512. Accordingly, the value for this field MUST be one of 782 the OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } 783 [RFC4055]. 785 It is noted that larger key sizes are computationally expensive 786 for both the CA and relying parties, indicating that care 787 should be taken when deciding to use larger than the default 788 key size. 790 5.2. CRMF Profile 792 This profile refines the Certificate Request Message Format (CRMF) 793 specification in [RFC4211], as it relates to Resource Certificates. 794 A Certificate Request Message object, formatted according to the 795 CRMF, is passed to a CA as the initial step in issuing a certificate. 797 This request MAY be conveyed to the CA via a Registration Authority 798 (RA), acting under the direction of a subject. 800 With the exception of the public key related fields, the CA is 801 permitted to alter any requested field when issuing a corresponding 802 certificate. 804 5.2.1. CRMF Resource Certificate Request Template Fields 806 This profile applies the following additional constraints to fields 807 that may appear in a Certificate Request Template: 809 Version 810 This field MAY be absent, or MAY specify the request of a 811 Version 3 Certificate. It SHOULD be omitted. 813 SerialNumber 814 As per [RFC4211], this field is assigned by the CA and MUST be 815 omitted in this profile. 817 SigningAlgorithm 818 As per [RFC4211], this field is assigned by the CA and MUST be 819 omitted in this profile. 821 Issuer 822 This field is assigned by the CA and MUST be omitted in this 823 profile. 825 Validity 826 This field MAY be omitted. If omitted, the CA will issue a 827 Certificate with Validity dates as determined by the CA. If 828 specified, then the CA MAY override the requested values with 829 dates as determined by the CA. 831 Subject 832 This field is optional. If present, the value of this field 833 SHOULD be empty, in which case the issuer MUST generate a 834 subject name that is unique in the context of certificates 835 issued by this issuer. If the value of this field is non- 836 empty, then the CA MAY consider the value of this field as the 837 subject's suggested subject name, but the CA is NOT bound to 838 honor this suggestion, as the subject name MUST be unique per 839 issuer in certificates issued by this issuer. 841 PublicKey 842 This field MUST be present. 844 extensions 845 This attribute contains X509v3 Certificate Extensions. The 846 profile for extensions in certificate requests is specified in 847 Section 5.3. 849 5.2.2. Resource Certificate Request Control Fields 851 The following control fields are supported in this profile: 853 Authenticator Control 854 It is noted that the intended model of authentication of the 855 subject is a "long term" model, and the advice as offered in 856 [RFC4211] is that the Authenticator Control field be used. 858 5.3. Certificate Extension Attributes in Certificate Requests 860 The following extensions MAY appear in a PKCS#10 or CRMF Certificate 861 Request. Any other extensions MUST NOT appear in a Certificate 862 Request. This profile places the following additional constraints on 863 these extensions.: 865 BasicConstraints 866 If this is omitted then the CA will issue an end entity 867 certificate with the BasicConstraints extension not present in 868 the issued certificate. 870 The Path Length Constraint is not supported in this Resource 871 Certificate Profile, and this field MUST be omitted in this 872 profile. 874 The CA MAY honor the SubjectType CA bit set to on. If this bit 875 is set, then it indicates that the Subject is allowed to issue 876 resource certificates within this overall framework. 878 The CA MUST honor the SubjectType CA bit set to off (End Entity 879 certificate request), in which case the corresponding end 880 entity certificate will not contain a BasicConstraints 881 extension. 883 SubjectKeyIdentifier 884 This field is assigned by the CA and MUST be omitted in this 885 profile. 887 AuthorityKeyIdentifier 888 This field is assigned by the CA and MUST be omitted in this 889 profile. 891 KeyUsage 892 The CA MAY honor KeyUsage extensions of keyCertSign and cRLSign 893 if present, as long as this is consistent with the 894 BasicConstraints SubjectType sub field, when specified. 896 ExtendedKeyUsage 897 The CA MAY honor ExtendedKeyUsage extensions of keyCertSign and 898 cRLSign if present, as long as this is consistent with the 899 BasicConstraints SubjectType sub field, when specified. 901 SubjectInformationAccess 902 This field MUST be present when the subject is a CA, and the 903 field value SHOULD be honored by the CA. If the CA is not able 904 to honor the requested field value, then the CA MUST reject the 905 Certificate Request. 907 This field (SIA) identifies the location of information and 908 services relating to the subject of the certificate in which 909 the SIA extension appears. 911 Where the subject is a CA in this profile, this information and 912 service collection will include all current valid certificates 913 that have been issued by this subject that are signed with the 914 subject's corresponding private key. 916 This profile uses a URI form of location identification. An 917 RSYNC URI MUST be specified, with an accessMethod value of id- 918 ad-caRepository when the subject of the certificate is a CA. 919 The RSYNC URI MUST reference an object collection rather than 920 an individual object and MUST use a trailing '/' in the URI. 921 Other accessMethod URIs that reference the same location MAY 922 also be included in the value sequence of this extension. The 923 ordering of URIs in this sequence reflect the subject's 924 relative preferences for access methods, with the first method 925 in the sequence being the most preferred by the Subject. 927 A request for a CA certificate MUST include in the SIA of the 928 request the id-ad-caRepository accessMethod, and also MUST 929 include in the SIA of the request the accessMethod OID of id- 930 ad-rpkiManifest, where the associated accessLocation refers to 931 the subject's published manifest object as an object URL. 933 This field MAY be present when the subject is a EE. If it is 934 present the field value SHOULD be honored by the CA. If the CA 935 is not able to honor the requested field value, then the CA 936 MUST reject the Certificate Request. If it is not present the 937 CA SHOULD honor this request and omit the SIA from the issued 938 certificate. If the CA is not able to honor the request to 939 omit the SIA, then the CA MUST reject the Certificate Request. 941 When an EE certificate is intended for use in verifying 942 multiple objects, the certificate request for the EE 943 certificate MUST include in the SIA of the request an 944 accessMethod OID of id-ad-signedObjectRepository, and also MUST 945 include in the SIA of the request an accessMethod OID of id-ad- 946 rpkiManifest, where the associated access location refers to 947 the publication point of the manifest object describing all 948 objects that are verified using this EE certificate. 950 When an EE certificate is used to sign a single published 951 object, the certificate request for the EE certificate MUST 952 include in the SIA of the request an accessMethod OID of id-ad- 953 signedObject, where the associated accessLocation refers to the 954 publication point of the single object that is verified using 955 this EE certificate, and MUST NOT include an id-ad-rpkiManifest 956 accessMethod OID in the SIA of the request. 958 In the case when the EE certificate is to be used exclusively 959 to sign one or more unpublished objects, such that the all 960 signed objects will not be published in any RPKI repository, 961 then the SIA SHOULD be omitted from the request. 963 CRLDistributionPoints 964 This field is assigned by the CA and MUST be omitted in this 965 profile. 967 AuthorityInformationAccess 968 This field is assigned by the CA and MUST be omitted in this 969 profile. 971 CertificatePolicies 972 This field is assigned by the CA and MUST be omitted in this 973 profile. 975 With the exceptions of the publicKey field and the 976 SubjectInformationAccess field, the CA is permitted to alter any 977 requested field. 979 6. Resource Certificate Validation 981 This section describes the Resource Certificate validation procedure. 982 This refines the generic procedure described in section 6 of 983 [RFC5280]. 985 To meet this goal, the path validation process verifies, among other 986 things, that a prospective certification path (a sequence of n 987 certificates) satisfies the following conditions: 989 1. for all 'x' in {1, ..., n-1}, the subject of certificate 'x' 990 is the issuer of certificate ('x' + 1); 992 2. certificate '1' is issued by a trust anchor ; 994 3. certificate 'n' is the certificate to be validated; and 996 4. for all 'x' in {1, ..., n}, certificate 'x' is valid. 998 6.1. Resource Extension Validation 1000 The IP Resources and AS Resources extensions definitions [RFC3779] 1001 defines critical extensions for Internet number resources. These are 1002 ASN.1 encoded representations of the IPv4 and IPv6 address range 1003 (either as a prefix/length, or start-end pair) and an AS number set. 1005 Valid Resource Certificates MUST have a valid IP address and/or AS 1006 number resource extension. In order to validate a Resource 1007 Certificate the resource extension MUST also be validated. This 1008 validation process relies on definitions of comparison of resource 1009 sets: 1011 more specific 1012 Given two IP address or AS number contiguous ranges, A and B, A 1013 is "more specific" than B if range B includes all IP addresses 1014 or AS numbers described by range A, and if range B is larger 1015 than range A. 1017 equal 1018 Given two IP address or AS number contiguous ranges, A and B, A 1019 is "equal" to B if range A describes precisely the same 1020 collection of IP addresses or AS numbers as described by range 1021 B. The definition of "inheritance" in [RFC3779] is equivalent 1022 to this "equality" comparison. 1024 encompass 1025 Given two IP address and AS number sets X and Y, X 1026 "encompasses" Y if, for every contiguous range of IP addresses 1027 or AS numbers elements in set Y, the range element is either 1028 more specific than or equal to a contiguous range element 1029 within the set X. 1031 Validation of a certificate's resource extension in the context of an 1032 ordered certificate sequence of {1,2, ... , n} where certificate '1' 1033 is issued by a trust anchor and certificate 'n' is the target 1034 certificate, and where the subject of certificate 'x' is the issuer 1035 of certificate ('x' + 1), includes verification that that the 1036 resources described in certificate 'x' "encompass" the resources 1037 described in certificate ('x' + 1), and the resources described in 1038 the trust anchor information "encompass" the resources described in 1039 certificate '1'. 1041 6.2. Resource Certification Path Validation 1043 Validation of signed resource data using a target resource 1044 certificate consists of assembling an ordered sequence (or 1045 'Certification Path') of certificates ({1,2,...n} where '1' is a 1046 certificate that has been issued by a trust anchor, and 'n' is the 1047 target certificate) verifying that all of the following conditions 1048 hold: 1050 1. The certificate can be verified using the Issuer's public key 1051 and the signature algorithm 1053 2. The current time lies within the certificate's Validity From 1054 and To values. 1056 3. The certificate contains all fields that MUST be present and 1057 contains field values as specified in this profile for all 1058 field values that MUST be present. 1060 4. No field value that MUST NOT be present in this profile is 1061 present in the certificate. 1063 5. The Issuer has not revoked the certificate by placing the 1064 certificate's serial number on the Issuer's current 1065 Certificate Revocation List, and the Certificate Revocation 1066 List is itself valid. 1068 6. That the resource extension data is "encompassed" by the 1069 resource extension data contained in a valid certificate where 1070 this Issuer is the Subject (the previous certificate in the 1071 ordered sequence) 1073 7. The Certification Path originates with a certificate issued by 1074 a trust anchor, and there exists a signing chain across the 1075 Certification Path where the Subject of Certificate 'x' in the 1076 Certification Path matches the Issuer in Certificate ('x' + 1) 1077 in the Certification Path. 1079 A certificate validation algorithm may perform these tests in any 1080 chosen order. 1082 Certificates and CRLs used in this process may be found in a locally 1083 maintained cache, maintained by a regular synchronization across the 1084 distributed publication repository structure. 1086 There exists the possibility of encountering certificate paths that 1087 are arbitrarily long, or attempting to generate paths with loops as 1088 means of creating a potential DOS attack on a relying party. Some 1089 further heuristics may be required to halt the certification path 1090 validation process in order to avoid some of the issues associated 1091 with attempts to validate such structures. It is suggested that 1092 implementations of Resource Certificate validation MAY halt with a 1093 validation failure if the certification path length exceeds a locally 1094 defined configuration parameter. 1096 7. Design Notes 1098 The following notes provide some additional commentary on the 1099 considerations that lie behind some of the design choices that were 1100 made in the design of this certificate profile. These notes do not 1101 constitute a formal part of the profile specification, and the 1102 interpretation of key words as defined in RFC2119 are not applicable 1103 in this section of the document. 1105 Certificate Extensions: 1106 This profile does not permit the use of any other critical or 1107 non-critical extensions. The rationale for this restriction is 1108 that the resource certificate profile is intended for a 1109 specific use, and in this context it is not seen as being 1110 appropriate to be in the position of having certificates with 1111 additional non-critical extensions that relying parties may see 1112 as valid certificates without understanding the extensions, but 1113 were the relying party in a position to understand the 1114 extensions, would contradict or qualify in some way this 1115 original judgment of validity. This profile takes the position 1116 of minimalism over extensibility. The specific goal for the 1117 associated Resource Public Key Infrastructure to precisely 1118 match the IP number resource allocation structure through an 1119 aligned certificate structure that describes the allocation and 1120 its context within the number resource distribution hierarchy. 1121 The profile defines a resource certificate that is structured 1122 to meet these requirements. 1124 Certification Authorities and Key Values: 1125 This profile uses a definition of an instance of a CA as a 1126 combination of a named entity and a key pair. Within this 1127 definition a CA instance cannot rollover a key pair. However, 1128 the entity can generate a new instance of a CA with a new key 1129 pair and roll over all the signed subordinate products to the 1130 new CA. 1132 This has a number of implications in terms of subject name 1133 management, CRL Scope and repository publication point 1134 management. 1136 Subject Name: 1137 For Subject Names the issuer should ensure that when an 1138 entity requests a certificate with a new key pair, the CA 1139 issues a certificate with a new subject name. One way to 1140 achieve this is to use a CommonName value that is unique 1141 per subordinate entity, using an algorithm of the CA's 1142 devising to ensure this uniqueness, and for the CA to 1143 include the serial number field of the X.501 1144 distinguished name structure, with a serial number value 1145 that is derived from the hash of the subject public key 1146 value. It should also be noted that conventions are 1147 imposed on Subject names used in resource certificates, 1148 as described in [ID.sidr-arch], and that any name scheme 1149 should comply with these conventions. 1151 CRL Scope: 1152 For CRL Scope this profile specifies that a CA issues a 1153 single CRL sequence, and the scope of the CRL is all 1154 certificates issued by this CA. Because the CA instance 1155 is bound to a single key pair this implies that the CA's 1156 public key, the key used to validate the CA's CRL, and 1157 the key used to validate the certificates revoked by that 1158 CRL are all the same. 1160 Repository Publication Point: 1161 The definition of a CA affects the design of the 1162 repository publication system. In order to minimize the 1163 amount of forced re-certification on key rollover events, 1164 a repository publication regime that uses the same 1165 repository publication point for all CA instances that 1166 refers to the same entity, but with different key values 1167 will minimize the extent of re-generation of certificates 1168 to only immediate subordinate certificates. 1170 In order for two or more CA instances to share a single 1171 repository publication point there needs to be a regime 1172 of key management into OLD, CURRENT and FUTURE keys and a 1173 similar regime of OLD, CURRENT and FUTURE CAs. An OLD CA 1174 should regularly publish its CRL for as long as the OLD 1175 CA instance is still valid, and issue EE certificates as 1176 necessary to maintain a current manifest of all OLD CA 1177 published products, but it should not sign any other 1178 products. The CURRENT CA should publish its CRL, and 1179 should publish all subordinate products, as well as 1180 issuing EE certificates as necessary to maintain a 1181 current manifest of all CURRENT CA published products. 1182 FUTURE CAs should publish no products at all in the 1183 repository publication point. It would be consistent 1184 with this repository object name framework for the CRL 1185 and manifest to be published using object names derived 1186 from the hash of the public key value of the CA instance. 1188 Key Rollover: 1189 As a CA instance is associated with a single key pair, there 1190 are some considerations regarding the procedure that should be 1191 followed by an entity performing a key rollover function. The 1192 entity will need to create a new CA instance and then use this 1193 new CA instance to re-issue all subordinate products with the 1194 new CA instance. 1196 To perform a key rollover operation the entity will need to: 1198 1. Generate a NEW key pair. 1200 2. Generate a certificate request with the NEW key 1201 pair and pass the request to the entity's issuer. 1203 3. Request the entity's issuer to generate and publish 1204 a NEW CA certificate, with an issuer-selected 1205 subject name that is distinct from the subject name 1206 used in conjunction with the previous subject name 1207 value for this entity. 1209 4. Mark the CURRENT CA as OLD and the NEW CA as 1210 CURRENT. 1212 5. The CURRENT CA will generate new certificates for 1213 all existing subordinate CA and EE certificates, 1214 and publish those products in the same repository 1215 publication point and with the same repository 1216 publication point name as the previous OLD 1217 subordinate CA and EE certificates. The keys in 1218 these reissued certificates must not change. 1220 6. Where the signing structure uses a packaging format 1221 that includes the EE certificate within the signed 1222 data, signed objects that included OLD EE 1223 certificates in their signed data will need to be 1224 re-signed using an EE certificate issued by the 1225 CURRENT CA. In the case where the OLD EE 1226 certificate is a "single use" EE certificate and 1227 the associate private key has been destroyed this 1228 will entail the generate of a new key pair, the 1229 issuing of an EE certificate by the CURRENT CA. In 1230 the case of a "multi-use" EE certificate, the EE 1231 certificate should issued using the CURRENT CA. 1232 The object, together with the issued EE 1233 certificate, should be signed with the associated 1234 private key, and published in the same repository 1235 publication point, using the same repository 1236 publication point name, as the previously signed 1237 object that it replaces (i.e. overwrite the old 1238 signed object). 1240 7. Generate a certificate revocation request for the 1241 OLD CA certificate and pass it to the entity's 1242 issuer. 1244 8. Remove all published OLD CA products and destroy 1245 the OLD private key. 1247 Name Uniqueness: 1248 This profile specifies that subject names must be unique per 1249 issuer, and does not specify that subject names must be 1250 globally unique. 1252 Given that the Resource Certificate PKI is a distributed PKI, 1253 there is no inherent ability for Certification authorities to 1254 coordinate PKI-wide unique subject names. CA's should use 1255 multi-attribute, structured Subject names in their RPKI 1256 certificates. This advice is motivated by a desire to include 1257 within this specification a CA's subject naming practice that 1258 uses a distinguished name component that is constant for any 1259 given entity that is the subject of CA-issued certificates (the 1260 CommonName component of the Distinguished Name), yet still 1261 ensure that the structures Subject name changes whenever 1262 subject key rollover occurs (the serial number component of the 1263 Distinguished Name). Also, as the publication repository is 1264 distributed, and distinct entities use distinct repository 1265 publication points any potential ambiguity is resolved by the 1266 distinct publication point. 1268 8. Security Considerations 1270 The Security Considerations of [RFC5280] and [RFC3779]apply to 1271 Resource Certificates as defined by this profile, and their use. 1273 A Resource Certificate PKI cannot in and of itself resolve any forms 1274 of ambiguity relating to uniqueness of assertions of rights of use in 1275 the event that two or more valid certificates encompass the same 1276 resource. If the issuance of resource certificates is aligned to the 1277 status of resource allocations and assignments then the information 1278 conveyed in a certificate is no better than the information in the 1279 allocation and assignment databases. 1281 9. IANA Considerations 1283 [Note to IANA, to be removed prior to publication: there are no IANA 1284 considerations stated in this document.] 1286 10. Acknowledgements 1288 The authors would like to particularly acknowledge the valued 1289 contribution from Stephen Kent in reviewing this document and 1290 proposing numerous sections of text that have been incorporated into 1291 the text. The authors also acknowledge the contributions of Sandy 1292 Murphy, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo Patara 1293 and Rob Austein in the preparation and subsequent review of this 1294 document. The document also reflects review comments received from 1295 Roque Gagliano, Sean Turner and David Cooper. 1297 11. References 1299 11.1. Normative References 1301 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 1302 September 1981. 1304 [RFC2050] Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D., and 1305 J. Postel, "INTERNET REGISTRY IP ALLOCATION GUIDELINES", 1306 BCP 12, RFC 2050, November 1996. 1308 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 1309 Addresses and AS Identifiers", RFC 3779, June 2004. 1311 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 1312 Algorithms and Identifiers for RSA Cryptography for use in 1313 the Internet X.509 Public Key Infrastructure Certificate 1314 and Certificate Revocation List (CRL) Profile", RFC 4055, 1315 June 2005. 1317 [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure 1318 Certificate Request Message Format (CRMF)", RFC 4211, 1319 September 2005. 1321 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1322 Architecture", RFC 4291, February 2006. 1324 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 1325 Housley, R., and W. Polk, "Internet X.509 Public Key 1326 Infrastructure Certificate and Certificate Revocation List 1327 (CRL) Profile", RFC 5280, May 2008. 1329 [X.509] ITU-T, "Recommendation X.509: The Directory - 1330 Authentication Framework", 2000. 1332 11.2. Informative References 1334 [ID.sidr-arch] 1335 Lepinski, M. and S. Kent, "An Infrastructure to Support 1336 Secure Internet Routing", Work in progress: Internet 1337 Drafts draft-ietf-sidr-arch-04.txt, November 2008. 1339 [ID.sidr-manifests] 1340 Austein, R., Huston, G., Kent, S., and M. Lepinski, 1341 "Manifests for the Resource Public Key Infrastructure", 1342 Work in progress: Internet 1343 Drafts draft-ietf-sidr-rpki-manifests-04.txt, 1344 October 2008. 1346 [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object 1347 Classes and Attribute Types Version 2.0", RFC 2985, 1348 November 2000. 1350 [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification 1351 Request Syntax Specification Version 1.7", RFC 2986, 1352 November 2000. 1354 [RFC4158] Cooper, M., Dzambasow, Y., Hesse, P., Joseph, S., and R. 1355 Nicholas, "Internet X.509 Public Key Infrastructure: 1356 Certification Path Building", RFC 4158, September 2005. 1358 [rsync] Tridgell, A., "rsync", April 2006, 1359 . 1361 Appendix A. Example Resource Certificate 1363 The following is an example Resource Certificate. 1365 Certificate Name: 9JfgAEcq7Q-47IwMC5CJIJr6EJs.cer 1367 Data: 1368 Version: 3 (0x2( 1369 Serial: 1500 (0x5dc) 1370 Signature Algorithm: SHA256WithRSAEncryption 1371 Issuer: CN=APNIC Production-CVPQSgUkLy7pOXdNeVWGvnFX_0s 1372 Validity 1373 Not Before: Oct 25 12:50:00 2008 GMT 1374 Not After : Jan 31 00:00:00 2010 GMT 1375 Subject: CN=A91872ED 1376 Subject Public Key Info: 1377 Public Key Algorithm: rsaEncryption 1378 RSA Public Key: (2048 bit) 1379 Modulus (2048 bit): 1380 00:bb:fb:4a:af:a4:b9:dc:d0:fa:6f:67:cc:27:39: 1381 34:d1:80:40:37:de:88:d1:64:a2:f1:b3:fa:c6:7f: 1382 bb:51:df:e1:c7:13:92:c3:c8:a2:aa:8c:d1:11:b3: 1383 aa:99:c0:ac:54:d3:65:83:c6:13:bf:0d:9f:33:2d: 1384 39:9f:ab:5f:cd:a3:e9:a1:fb:80:7d:1d:d0:2b:48: 1385 a5:55:e6:24:1f:06:41:35:1d:00:da:1f:99:85:13: 1386 26:39:24:c5:9a:81:15:98:fb:5f:f9:84:38:e5:d6: 1387 70:ce:5a:02:ca:dd:61:85:b3:43:2d:0b:35:d5:91: 1388 98:9d:da:1e:0f:c2:f6:97:b7:97:3e:e6:fc:c1:c4: 1389 3f:30:c4:81:03:25:99:09:4c:e2:4a:85:e7:46:4b: 1390 60:63:02:43:46:51:4d:ed:fd:a1:06:84:f1:4e:98: 1391 32:da:27:ee:80:82:d4:6b:cf:31:ea:21:af:6f:bd: 1392 70:34:e9:3f:d7:e4:24:cd:b8:e0:0f:8e:80:eb:11: 1393 1f:bc:c5:7e:05:8e:5c:7b:96:26:f8:2c:17:30:7d: 1394 08:9e:a4:72:66:f5:ca:23:2b:f2:ce:54:ec:4d:d9: 1395 d9:81:72:80:19:95:57:da:91:00:d9:b1:e8:8c:33: 1396 4a:9d:3c:4a:94:bf:74:4c:30:72:9b:1e:f5:8b:00: 1397 4d:e3 1398 Exponent: 65537 (0x10001) 1399 X509v3 extensions: 1400 X509v3 Subject Key Identifier: 1401 F4:97:E0:00:47:2A:ED:0F:B8:EC:8C:0C:0B:90:89: 1402 20:9A:FA:10:9B 1404 X509v3 Authority Key Identifier: 1405 keyid:09:53:D0:4A:05:24:2F:2E:E9:39:77:4D:79: 1406 55:86:BE:71:57:FF:4B 1408 X509v3 Key Usage: critical 1409 Certificate Sign, CRL Sign 1411 X509v3 Basic Constraints: critical 1412 CA:TRUE 1414 X509v3 CRL Distribution Points: 1415 URI:rsync://rpki.apnic.net/repository/A3C38A24 1416 D60311DCAB08F31979BDBE39/CVPQSgUkLy7pOXdNe 1417 VWGvnFX_0s.crl 1419 Authority Information Access: 1420 CA Issuers - URI:rsync://rpki.apnic.net/repos 1421 itory/8BDFC7DED5FD11DCB14CF4B1A703F9B7/CVP 1422 QSgUkLy7pOXdNeVWGvnFX_0s.cer 1424 X509v3 Certificate Policies: critical 1425 Policy: 1.3.6.1.5.5.7.14.2 1427 Subject Information Access: 1428 CA Repository - URI:rsync://rpki.apnic.net/mem 1429 ber_repository/A91872ED/06A83982887911DD81 1430 3F432B2086D636/ 1431 Manifest - URI:rsync://rpki.apnic.net/member_r 1432 epository/A91872ED/06A83982887911DD813F432 1433 B2086D636/9JfgAEcq7Q-47IwMC5CJIJr6EJs.mft 1435 sbgp-autonomousSysNum: critical 1436 Autonomous System Numbers: 1437 24021 1438 38610 1439 131072 1440 131074 1442 sbgp-ipAddrBlock: critical 1443 IPv4: 1444 203.133.248.0/22 1445 203.147.108.0/23 1447 Signature Algorithm: sha256WithRSAEncryption 1448 51:4c:77:e4:21:64:80:e9:35:30:20:9f:d8:4b:88:60:b8:1f: 1449 73:24:9d:b5:17:60:65:6a:28:cc:43:4b:68:97:ca:76:07:eb: 1450 dc:bd:a2:08:3c:8c:56:38:c6:0a:1e:a8:af:f5:b9:42:02:6b: 1451 77:e0:b1:1c:4a:88:e6:6f:b6:17:d3:59:41:d7:a0:62:86:59: 1452 29:79:26:76:34:d1:16:2d:75:05:cb:b2:99:bf:ca:c6:68:1b: 1453 b6:a9:b0:f4:43:2e:df:e3:7f:3c:b3:72:1a:99:fa:5d:94:a1: 1454 eb:57:9c:9a:2c:87:d6:40:32:c9:ff:a6:54:b8:91:87:fd:90: 1455 55:ef:12:3e:1e:2e:cf:c5:ea:c3:4c:09:62:4f:88:00:a0:7f: 1456 cd:67:83:bc:27:e1:74:2c:18:4e:3f:12:1d:ef:29:0f:e3:27: 1457 00:ce:14:eb:f0:01:f0:36:25:a2:33:a8:c6:2f:31:18:22:30: 1458 cf:ca:97:43:ed:84:75:53:ab:b7:6c:75:f7:2f:55:5c:2e:82: 1459 0a:be:91:59:bf:c9:06:ef:bb:b4:a2:71:9e:03:b1:25:8e:29: 1460 7a:30:88:66:b4:f2:16:6e:df:ad:78:ff:d3:b2:9c:29:48:e3: 1461 be:87:5c:fc:20:2b:df:da:ca:30:58:c3:04:c9:63:72:48:8c: 1462 0a:5f:97:71 1464 Appendix B. Example Certificate Revocation List 1466 The following is an example Certificate Revocation List. 1468 CRL Name: q66IrWSGuBE7jqx8PAUHAlHCqRw.crl 1470 Data: 1471 Version: 2 1472 Signature Algorithm: 1473 Hash: SHA256, Encryption: RSA 1474 Issuer: CN=Demo Production APNIC CA - Not for real use, 1475 E=ca@apnic.net 1476 This Update: Thu Jul 27 06:30:34 2006 GMT 1477 Next Update: Fri Jul 28 06:30:34 2006 GMT 1478 Authority Key Identifier: Key Identifier: 1479 ab:ae:88:ad:64:86:b8:11:3b:8e:ac:7c:3c:05: 1480 07:02:51:c2:a9:1c 1481 Authority Key Identifier: Key Identifier g(AKI): 1482 q66IrWSGuBE7jqx8PAUHAlHCqRw 1483 CRLNumber: 4 1484 Revoked Certificates: 1 1485 Serial Number: 1 1486 Revocation Date: Mon Jul 17 05:10:19 2006 GMT 1487 Serial Number: 2 1488 Revocation Date: Mon Jul 17 05:12:25 2006 GMT 1489 Serial Number: 4 1490 Revocation Date: Mon Jul 17 05:40:39 2006 GMT 1491 Signature: 1492 b2:5a:e8:7c:bd:a8:00:0f:03:1a:17:fd:40:2c:46: 1493 0e:d5:64:87:e7:e7:bc:10:7d:b6:3e:39:21:a9:12: 1494 f4:5a:d8:b8:d4:bd:57:1a:7d:2f:7c:0d:c6:4f:27: 1495 17:c8:0e:ae:8c:89:ff:00:f7:81:97:c3:a1:6a:0a: 1496 f7:d2:46:06:9a:d1:d5:4d:78:e1:b7:b0:58:4d:09: 1497 d6:7c:1e:a0:40:af:86:5d:8c:c9:48:f6:e6:20:2e: 1498 b9:b6:81:03:0b:51:ac:23:db:9f:c1:8e:d6:94:54: 1499 66:a5:68:52:ee:dd:0f:10:5d:21:b8:b8:19:ff:29: 1500 6f:51:2e:c8:74:5c:2a:d2:c5:fa:99:eb:c5:c2:a2: 1501 d0:96:fc:54:b3:ba:80:4b:92:7f:85:54:76:c9:12: 1502 cb:32:ea:1d:12:7b:f8:f9:a2:5c:a1:b1:06:8e:d8: 1503 c5:42:61:00:8c:f6:33:11:29:df:6e:b2:cc:c3:7c: 1504 d3:f3:0c:8d:5c:49:a5:fb:49:fd:e7:c4:73:68:0a: 1505 09:0e:6d:68:a9:06:52:3a:36:4f:19:47:83:59:da: 1506 02:5b:2a:d0:8a:7a:33:0a:d5:ce:be:b5:a2:7d:8d: 1507 59:a1:9d:ee:60:ce:77:3d:e1:86:9a:84:93:90:9f: 1508 34:a7:02:40:59:3a:a5:d1:18:fb:6f:fc:af:d4:02: 1509 d9 1511 Authors' Addresses 1513 Geoff Huston 1514 Asia Pacific Network Information Centre 1516 Email: gih@apnic.net 1517 URI: http://www.apnic.net 1519 George Michaelson 1520 Asia Pacific Network Information Centre 1522 Email: ggm@apnic.net 1523 URI: http://www.apnic.net 1525 Robert Loomans 1526 Asia Pacific Network Information Centre 1528 Email: robertl@apnic.net 1529 URI: http://www.apnic.net