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