idnits 2.17.1 draft-ietf-sidr-res-certs-18.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. 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 (May 19, 2010) is 5084 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: 1 error (**), 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: November 20, 2010 APNIC 6 May 19, 2010 8 A Profile for X.509 PKIX Resource Certificates 9 draft-ietf-sidr-res-certs-18 11 Abstract 13 This document defines a standard profile for X.509 certificates for 14 the purposes of supporting validation of assertions of "right-of-use" 15 of an Internet Number Resource (IP Addresses and Autonomous System 16 Numbers). This profile is used to convey the Issuer's authorisation 17 of the Subject to be regarded as the current holder of a "right-of- 18 use" of the IP addresses and AS numbers that are described in the 19 issued certificate. 21 Status of this Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on November 20, 2010. 38 Copyright Notice 40 Copyright (c) 2010 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 56 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 57 2. Describing Resources in Certificates . . . . . . . . . . . . . 5 58 3. End-Entity (EE) Certificates and Signing Functions in the 59 RPKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 60 3.1. Single-Use EE Certificates . . . . . . . . . . . . . . . . 6 61 3.2. Multi-Use EE Certificates . . . . . . . . . . . . . . . . 7 62 4. Resource Certificate Fields . . . . . . . . . . . . . . . . . 7 63 4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 7 64 4.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 7 65 4.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 7 66 4.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 8 67 4.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 8 68 4.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . . 8 69 4.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . . 9 70 4.8. Subject Public Key Info . . . . . . . . . . . . . . . . . 9 71 4.9. Resource Certificate Version 3 Extension Fields . . . . . 9 72 4.9.1. Basic Constraints . . . . . . . . . . . . . . . . . . 9 73 4.9.2. Subject Key Identifier . . . . . . . . . . . . . . . . 10 74 4.9.3. Authority Key Identifier . . . . . . . . . . . . . . . 10 75 4.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . . 10 76 4.9.5. Extended Key Usage . . . . . . . . . . . . . . . . . . 11 77 4.9.6. CRL Distribution Points . . . . . . . . . . . . . . . 11 78 4.9.7. Authority Information Access . . . . . . . . . . . . . 12 79 4.9.8. Subject Information Access . . . . . . . . . . . . . . 12 80 4.9.9. Certificate Policies . . . . . . . . . . . . . . . . . 14 81 4.9.10. IP Resources . . . . . . . . . . . . . . . . . . . . . 14 82 4.9.11. AS Resources . . . . . . . . . . . . . . . . . . . . . 15 83 5. Resource Certificate Revocation List Profile . . . . . . . . . 15 84 5.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 15 85 5.2. Issuer Name . . . . . . . . . . . . . . . . . . . . . . . 15 86 5.3. This Update . . . . . . . . . . . . . . . . . . . . . . . 16 87 5.4. Next Update . . . . . . . . . . . . . . . . . . . . . . . 16 88 5.5. Signature . . . . . . . . . . . . . . . . . . . . . . . . 16 89 5.6. Revoked Certificate List . . . . . . . . . . . . . . . . . 16 90 5.6.1. Serial Number . . . . . . . . . . . . . . . . . . . . 16 91 5.6.2. Revocation Date . . . . . . . . . . . . . . . . . . . 16 92 5.7. CRL Extensions . . . . . . . . . . . . . . . . . . . . . . 16 93 5.7.1. Authority Key Identifier . . . . . . . . . . . . . . . 17 94 5.7.2. CRL Number . . . . . . . . . . . . . . . . . . . . . . 17 95 6. Resource Certificate Request Profile . . . . . . . . . . . . . 17 96 6.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . . 17 97 6.1.1. PKCS#10 Resource Certificate Request Template 98 Fields . . . . . . . . . . . . . . . . . . . . . . . . 17 99 6.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 18 100 6.2.1. CRMF Resource Certificate Request Template Fields . . 19 101 6.2.2. Resource Certificate Request Control Fields . . . . . 20 102 6.3. Certificate Extension Attributes in Certificate 103 Requests . . . . . . . . . . . . . . . . . . . . . . . . . 20 104 7. Resource Certificate Validation . . . . . . . . . . . . . . . 23 105 7.1. Resource Extension Validation . . . . . . . . . . . . . . 23 106 7.2. Resource Certification Path Validation . . . . . . . . . . 24 107 8. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 25 108 9. Security Considerations . . . . . . . . . . . . . . . . . . . 29 109 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 110 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 29 111 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30 112 12.1. Normative References . . . . . . . . . . . . . . . . . . . 30 113 12.2. Informative References . . . . . . . . . . . . . . . . . . 30 114 Appendix A. Example Resource Certificate . . . . . . . . . . . . 31 115 Appendix B. Example Certificate Revocation List . . . . . . . . . 33 116 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35 118 1. Introduction 120 This document defines a standard profile for X.509 certificates 121 [X.509] for use in the context of certification of IP Addresses and 122 AS Numbers. Such certificates are termed here "Resource 123 Certificates". Resource Certificates are X.509 certificates that 124 conform to the PKIX profile [RFC5280], and also conform to the 125 constraints specified in this profile. Resource Certificates attest 126 that the Issuer has granted the Subject a "right-of-use" for a listed 127 set of IP addresses and Autonomous System numbers. 129 A Resource Certificate describes an action by a certificate Issuer 130 that binds a list of IP Address blocks and AS Numbers to the Subject 131 of the issued certificate. The binding is identified by the 132 association of the Subject's private key with the Subject's public 133 key contained in the Resource Certificate, as signed by the private 134 key of the certificate's Issuer. 136 In the context of the public Internet, and the use of public number 137 resources within this context, it is intended that Resource 138 Certificates are used in a manner that is explicitly aligned to the 139 public number resource distribution function. Specifically, when a 140 number resource is allocated or assigned by a number registry to an 141 entity, this allocation is described by an associated Resource 142 Certificate. This certificate is issued by the number registry, and 143 the Subject Public Key that is certified by the Issuer corresponds to 144 the public part of a key pair for which the private key is associated 145 with the entity who is the recipient of the number assignment or 146 allocation. A critical extension to the certificate enumerates the 147 IP Resources that were allocated or assigned by the Issuer to the 148 entity. In the context of the public number distribution function, 149 this corresponds to a hierarchical PKI structure, where Resource 150 Certificates are issued in only one 'direction' and there is a unique 151 path of certificates from a certification authority operating at the 152 apex of a resource distribution hierarchy to a valid certificate. 153 This PKI structure is termed here a "Resource PKI" (RPKI). 155 Validation of a Resource Certificate in such a hierarchical PKI can 156 be undertaken by establishing a valid Issuer-Subject certificate 157 chain from a certificate issued by a trust anchor certification 158 authority to the certificate [RFC4158], with the additional 159 constraint of ensuring that each Subject's listed resources are fully 160 encompassed by those of the Issuer at each step in the Issuer-Subject 161 certificate chain. Validation therefore logically corresponds to 162 validation of an associated set of assignment or allocation actions 163 of IP number resources. 165 Resource Certificates may be used in the context of the operation of 166 secure inter-domain routing protocols to convey a right-of-use of an 167 IP number resource that is being passed within the routing protocol, 168 allowing relying parties to verify legitimacy and correctness of 169 routing information. Related use contexts include validation of 170 Internet Routing Registry objects, validation of routing requests, 171 and detection of unauthorised use of IP addresses. 173 This profile defines those fields that are used in a Resource 174 Certificate that MUST be present for the certificate to be valid. 175 Relying Parties SHOULD check that a Resource Certificate conforms to 176 this profile as a requisite for validation of a Resource Certificate. 178 1.1. Terminology 180 It is assumed that the reader is familiar with the terms and concepts 181 described in "Internet X.509 Public Key Infrastructure Certificate 182 and Certificate Revocation List (CRL) Profile" [RFC5280], "X.509 183 Extensions for IP Addresses and AS Identifiers" [RFC3779], "Internet 184 Protocol" [RFC0791], "Internet Protocol Version 6 (IPv6) Addressing 185 Architecture" [RFC4291], "Internet Registry IP Allocation Guidelines" 186 [RFC2050], and related regional Internet registry address management 187 policy documents. 189 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 190 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 191 document are to be interpreted as described in RFC 2119. 193 2. Describing Resources in Certificates 195 The framework for describing an association between the Subject of a 196 certificate and the resources currently under the Subject's control 197 is described in [RFC3779]. 199 There are three aspects of this resource extension that are noted in 200 this profile: 202 1. RFC 3779 notes that a resource extension SHOULD be a CRITICAL 203 extension to the X.509 Certificate. This Resource Certificate 204 profile further specifies that the use of this certificate 205 extension MUST be used in all Resource Certificates and MUST 206 be marked as CRITICAL. 208 2. RFC 3779 defines a sorted canonical form of describing a 209 resource set, with maximal spanning ranges and maximal 210 spanning prefix masks as appropriate. All valid certificates 211 in this profile MUST use this sorted canonical form of 212 resource description in the resource extension field. 214 3. A test of the resource extension in the context of certificate 215 validity includes the condition that the resources described 216 in the immediate parent CA certificate in the PKI (the 217 certificate where this certificate's Issuer is the Subject) 218 has a resource set (called here the "Issuer's resource set") 219 that MUST encompass the resource set of the issued 220 certificate. In this context "encompass" allows for the 221 Issuer's resource set to be the same as, or a strict superset 222 of, any Subject's resource set. 224 Certificate validation entails the construction of a sequence of 225 valid certificates in an Issuer-Subject chain (where the Subject 226 field of one certificate appears as the Issuer in the next 227 certificate in the sequence) from a trust anchor to the certificate 228 being validated. Moreover, the resource extensions in this 229 certificate sequence from the first CA under the trust anchor to the 230 certificate being validated form a sequence of encompassing 231 relationships in terms of the resources described in the resource 232 extension. 234 3. End-Entity (EE) Certificates and Signing Functions in the RPKI 236 As noted in [ID.sidr-arch], the primary function of End-Entity (EE) 237 certificates in the RPKI is the verification of signed objects that 238 relate to the usage of the resources described in the certificate, 239 e.g., ROAs and manifests. There are type types of EE certificates 240 defined within the RPKI framework, described in the following 241 sections. 243 3.1. Single-Use EE Certificates 245 A signing party can exercise control over the validity of the signed 246 object through control of the validity of the associated EE 247 certificate as long as there is a 1:1 relationship between the signed 248 object and the EE certificate, or, in other words, assuming the 249 private key of the key pair whose public key is the Subject Public 250 Key of the EE certificate is used to sign exactly one object, and 251 each such object is signed with only one private key. This property 252 allows for the RPKI itself to be used to control the validity of 253 these signed objects, rather than creating a novel object-specific 254 validation control mechanism. Upon revocation of the corresponding 255 EE certificate, the signature on that object will be considered 256 invalid, and any attestations made in the context of the signed 257 object can no longer be considered valid, assuming that a RP's 258 assessment of validity of a signed object is based upon a verifiable 259 signature. 261 EE certificates that are used to control the validity of a single 262 signed object in this manner are termed "single-use" EE certificates 263 in this specification. 265 3.2. Multi-Use EE Certificates 267 It is not a requirement that all EE certificates in the RPKI be used 268 in the context of "single-use" as described in the previous section. 269 The private key of a key pair whose public key is the Subject Public 270 Key of an EE certificate may be used to sign multiple objects, either 271 simultaneously or serially. In such a context the validity of the 272 signed object may need to be specified by an alternate mechanism, 273 unless it is the explicit intent of the signer that the validity of 274 the collection of all objects signed with a particular private key is 275 controlled by the validity of the associated EE certificate. 277 When keys are used in a manner that allows for the signing of 278 multiple objects, the associated EE certificates are termed "muti- 279 use" EE certificates in this specification. 281 4. Resource Certificate Fields 283 A Resource Certificate is a valid X.509 v3 public key certificate, 284 consistent with the PKIX profile [RFC5280], containing the fields 285 listed in this section. Unless specifically noted as being OPTIONAL, 286 all the fields listed here MUST be present, and any other field MUST 287 NOT appear in a conforming Resource Certificate. Where a field value 288 is specified here this value MUST be used in conforming Resource 289 Certificates. 291 4.1. Version 293 Resource Certificates are X.509 Version 3 certificates. This field 294 MUST be present, and the Version MUST be 3 (i.e. the value of this 295 field is 2). 297 4.2. Serial number 299 The serial number value is a positive integer that is unique for each 300 certificate issued by a given CA. 302 4.3. Signature Algorithm 304 This field describes the algorithm used to compute the signature on 305 this certificate. The algorithm used in this profile is specified in 307 [ID.sidr-rpki-algs]. 309 4.4. Issuer 311 This field identifies the entity that has signed and issued the 312 certificate. The value of this field is a valid X.501 distinguished 313 name. 315 If the certificate is a subordinate certificate issued by virtue of 316 the "cA" bit set in the immediate superior certificate, then the 317 Issuer name MUST correspond to the Subject name as contained in the 318 immediate superior certificate. 320 4.5. Subject 322 This field identifies the entity to whom the resource has been 323 allocated / assigned. The value of this field is a valid X.501 324 distinguished name. 326 In this profile the Subject name is determined by the Issuer, and 327 each distinct subordinate CA and EE certified by the Issuer MUST be 328 identified using a Subject name that is unique per Issuer. In this 329 context "distinct" is defined as an entity and a given public key. 330 An Issuer SHOULD use a different Subject name if the Subject entity 331 or the Subject entity's key pair has changed. 333 As noted in [ID.sidr-arch], RPKI certificates do not attest to the 334 identity of the Subject, inferring that the Subject names used in 335 certificates are not intended to be descriptive of the identity of 336 Subject. 338 4.6. Valid From 340 The starting time at which point the certificate is valid. In this 341 profile the "Valid From" time SHOULD be no earlier than the time of 342 certificate generation. As per Section 4.1.2.5 of [RFC5280], 343 Certification Authorities (CAs) conforming to this profile MUST 344 always encode the certificate's "Valid From" date through the year 345 2049 as UTCTime, and dates in 2050 or later MUST be encoded as 346 GeneralizedTime. These two time formats are defined in [RFC5280]. 348 In this profile, it is valid for a certificate to have a value for 349 this field that pre-dates the same field value in any superior 350 certificate. Relying Parties should not attempt to infer from this 351 time information a certificate was valid at a time in the past, or 352 will be valid at a time in the future, as the scope of a relying 353 party's test of validity of a certificate refers specifically to 354 validity at the current time. 356 4.7. Valid To 358 The Valid To time is the date and time at which point in time the 359 certificate's validity ends. It represents the anticipated lifetime 360 of the resource allocation / assignment arrangement between the 361 Issuer and the Subject. As per Section 4.1.2.5 of [RFC5280], CAs 362 conforming to this profile MUST always encode the certificate's 363 "Valid To" date through the year 2049 as UTCTime, and dates in 2050 364 or later MUST be encoded as GeneralizedTime. These two time formats 365 are defined in [RFC5280]. 367 As noted above, it is valid for a certificate to have a value for 368 this field that post-dates the same field value in any superior 369 certificate. The same caveats apply to Relying Party's assumptions 370 relating to the certificate's validity at any time other than the 371 current time. 373 While a CA is typically advised against issuing a certificate with a 374 validity interval that exceeds the validity interval of the CA's 375 certificate that will be used to validate the issued certificate, in 376 the context of this profile, it is anticipated that a CA may have 377 valid grounds to issue a certificate with a validity interval that 378 exceeds the validity interval of its certificate. 380 4.8. Subject Public Key Info 382 This field specifies the Subject's public key and the algorithm with 383 which the key is used. The algorithm used in this profile is 384 specified in [ID.sidr-rpki-algs]. 386 4.9. Resource Certificate Version 3 Extension Fields 388 As noted in Section 4.2 of [RFC5280], each extension in a certificate 389 is designated as either critical or non-critical. A certificate- 390 using system MUST reject the certificate if it encounters a critical 391 extension it does not recognise; however, a non-critical extension 392 MAY be ignored if it is not recognised [RFC5280]. 394 The following X.509 V3 extensions MUST be present in a conforming 395 Resource Certificate, except where explicitly noted otherwise. 397 4.9.1. Basic Constraints 399 The Basic Constraints extension identifies whether the Subject of the 400 certificate is a CA and the maximum depth of valid certification 401 paths that include this certificate. 403 The Issuer determines whether the "cA" boolean is set. If this bit 404 is set, then it indicates that the Subject is allowed to issue 405 resources certificates within this overall framework (i.e. the 406 Subject is a CA). 408 The Path Length Constraint is not specified in this profile and MUST 409 NOT be present. 411 The Basic Constraints extension field is a critical extension in the 412 Resource Certificate profile, and MUST be present when the Subject is 413 a CA, and MUST NOT be present otherwise. 415 4.9.2. Subject Key Identifier 417 The Subject Key Identifier extension provides a means of identifying 418 certificates that contain a particular public key. To facilitate 419 certification path construction, this extension MUST appear in all 420 Resource Certificates. This extension is non-critical. 422 The value of the Subject Key Identifier MUST be the value placed in 423 the key identifier field of the Authority Key Identifier extension of 424 all certificates issued by this Subject. 426 The Key Identifier used here is the 160-bit SHA-1 hash of the value 427 of the DER-encoded ASN.1 bit string of the Subject Public Key, as 428 described in Section 4.2.1.2 of [RFC5280]. 430 4.9.3. Authority Key Identifier 432 The authority key identifier extension provides a means of 433 identifying certificates that are signed by the Issuer's private key, 434 by providing a hash value of the Issuer's public key. To facilitate 435 path construction, this extension MUST appear in all Resource 436 Certificates. The keyIdentifier MUST be present in all Resource 437 Certificates, with the exception of a CA who issues a "self-signed" 438 certificate. The authorityCertIssuer and authorityCertSerialNumber 439 fields MUST NOT be present. This extension is non-critical. 441 The Key Identifier used here is the 160-bit SHA-1 hash of the value 442 of the DER-encoded ASN.1 bit string of the Issuer's public key, as 443 described in Section 4.2.1.1 of [RFC5280]. 445 4.9.4. Key Usage 447 This describes the purpose of the certificate. This is a critical 448 extension, and it MUST be present. 450 In certificates issued to Certification Authorities only the 451 keyCertSign and CRLSign bits are set to TRUE and these MUST be the 452 only bits set to TRUE. 454 In EE certificates the digitalSignature bit MUST be set to TRUE and 455 MUST be the only bit set to TRUE. 457 4.9.5. Extended Key Usage 459 The Extended Key Usage Extension indicates one or more purposes for 460 which the public key in a certificate may be used. The uses are 461 specified via a SEQUENCE of one or more object identifiers (OIDs). 462 The EKU extension MUST NOT appear in any Certification Authority 463 certificate in the RPKI. This extension also MUST NOT appear in EE 464 certificates used to verify RPKI objects such as ROAs or manifests. 466 The EKU extension MAY appear in EE certificates issued to routers or 467 other devices. The extension MUST NOT be marked critical. Permitted 468 values for the EKU OIDs will be specified in Standards Track RFCs 469 issued by other IETF working groups that adopt the RPKI profile and 470 that identify application-specific requirements that motivate the use 471 of such EKUs. 473 4.9.6. CRL Distribution Points 475 This field (CRLDP) identifies the location(s) of the CRL(s) 476 associated with certificates issued by this Issuer. This profile 477 uses the URI form of object identification. The preferred URI access 478 mechanism is a single RSYNC URI ("rsync://") [RFC5781] that 479 references a single inclusive CRL for each Issuer. 481 In this profile the certificate Issuer is also the CRL Issuer, 482 implying that the CRLIssuer field MUST be omitted, and the 483 distributionPoint field MUST be present. The Reasons field MUST be 484 omitted. 486 The distributionPoint MUST contain GeneralNames, and MUST NOT contain 487 a nameRelativeToCRLIssuer. The form of the generalName MUST be of 488 type URI. 490 In this profile, the scope of the CRL is specified to be all 491 certificates issued by this CA Issuer. 493 The sequence of distributionPoint values MUST contain only a single 494 DistributionPointName set. The DistributionPointName set MAY contain 495 more than one URI value. An RSYNC URI [RFC5781]MUST be present in 496 the DistributionPointName set, and reference the most recent instance 497 of this Issuer's certificate revocation list. Other access form URIs 498 MAY be used in addition to the RSYNC URI. 500 This extension MUST be present and it is non-critical. There is one 501 exception, namely where a CA distributes its public key in the form 502 of a "self-signed" certificate, the CRLDP MUST be omitted. 504 4.9.7. Authority Information Access 506 This extension (AIA) identifies the point of publication of the 507 certificate that is issued by the Issuer's immediate superior CA, 508 where this certificate's Issuer is the Subject. In this profile a 509 single reference object to publication location of the immediate 510 superior certificate MUST be present, except in the case where a CA 511 distributes its public key in the form of a "self-signed" 512 certificate, in which case the AIA field SHOULD be omitted. 514 This profile uses a URI form of object identification. The preferred 515 URI access mechanisms is "rsync", and an RSYNC URI [RFC5781] MUST be 516 specified with an accessMethod value of id-ad-caIssuers. The URI 517 MUST reference the point of publication of the certificate where this 518 Issuer is the Subject (the Issuer's immediate superior certificate). 519 Other accessMethod URIs referencing the same object MAY also be 520 included in the value sequence of this extension. 522 When an Issuer re-issues a CA certificate, the subordinate 523 certificates need to reference this new certificate via the AIA 524 field. In order to avoid the situation where a certificate re- 525 issuance necessarily implies a requirement to re-issue all 526 subordinate certificates, CA Certificate Issuers SHOULD use a 527 persistent URL name scheme for issued certificates. This implies 528 that re-issued certificates overwrite previously issued certificates 529 to the same Subject in the publication repository, and use the same 530 publication name as previously issued certificates. In this way 531 subordinate certificates can maintain a constant AIA field value and 532 need not be re-issued due solely to a re-issue of the superior 533 certificate. The Issuers' policy with respect to the persistence of 534 name objects of issued certificates MUST be specified in the Issuer's 535 Certification Practice Statement. 537 This extension is non-critical. 539 4.9.8. Subject Information Access 541 This extension (SIA) identifies the location of information and 542 services relating to the Subject of the certificate in which the SIA 543 extension appears. Where the Subject is a CA in this profile, this 544 information and service collection will include all current valid 545 certificates that have been issued by this Subject that are signed 546 with the Subject's corresponding private key. 548 This profile uses a URI form of location identification. The 549 preferred URI access mechanism is "rsync", and an RSYNC URI [RFC5781] 550 MUST be specified, with an accessMethod value of id-ad-caRepository 551 when the Subject of the certificate is a CA. The RSYNC URI MUST 552 reference an object collection rather than an individual object and 553 MUST use a trailing '/' in the URI. 555 Other accessMethod URIs that reference the same location MAY also be 556 included in the value sequence of this extension. The ordering of 557 URIs in this sequence reflect the Subject's relative preferences for 558 access methods to be used by parties for retrieval of objects from 559 the associated repository publication point, with the first method in 560 the accessMethod sequence being the most preferred. 562 This extension MUST be present when the Subject is a CA, and is non- 563 critical. 565 For EE certificates, where the Subject is not a CA, this extension 566 MAY be present, and is non-critical. If present, it either 567 references the location where objects signed by the private key 568 associated with the EE certificate can be accessed, or, in the case 569 of single-use EE certificates it references the location of the 570 single object that has been signed by the corresponding private key. 572 When the Subject is an End-Entity, and it publishes objects signed 573 with the matching private key in a repository publication point, the 574 URI of the directory where these signed objects are published is used 575 as the value of the id-ad-signedObjectRepository element. 577 id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } 579 id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 } 581 When the Subject is an End-Entity, and it publishes a single object 582 signed with the matching private key, the URI of the location where 583 this signed object is published is used as the value of the id-ad- 584 signedObject element. 586 id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } 588 This profile requires the use of repository publication manifests 589 [ID.sidr-manifests] to list all signed objects that are deposited in 590 the repository publication point associated with a CA or an EE. The 591 publication point of the manifest for a CA or EE is placed in the SIA 592 extension of the CA or EE certificate. This profile uses a URI form 593 of manifest identification for the accessLocation. The preferred URI 594 access mechanisms is "rsync", and an RSYNC URI [RFC5781] MUST be 595 specified. Other accessDescription fields may exist for the id-ad- 596 rpkiManifest accessMethod, where the accessLocation value indicates 597 alternate URI access mechanisms for the same manifest object. 599 id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } 601 CA certificates MUST include in the SIA an accessMethod OID of id-ad- 602 rpkiManifest, where the associated accessLocation refers to the 603 Subject's published manifest object as an object URL. 605 When an EE certificate is intended for use in verifying multiple 606 objects, EE certificate MUST include in the SIA an accessMethod OID 607 of id-ad-rpkiManifest, where the associated accessLocation refers to 608 the EE's published manifest object as an object URL. 610 When an EE certificate is used to verify a single published object, 611 the EE certificate MUST include in the SIA an accessMethod OID of id- 612 ad-signedObject, where the associated accessLocation refers to the 613 publication point of the single object that is verified using this EE 614 certificate. In this case, the SIA MUST NOT include the accessMethod 615 OID of id-ad-rpkiManifest. 617 4.9.9. Certificate Policies 619 This extension MUST reference the Resource Certificate Policy, using 620 the OID Policy Identifier value of "1.3.6.1.5.5.7.14.2". This field 621 MUST be present and MUST contain only this value for Resource 622 Certificates. 624 No PolicyQualifiers are defined for use with this policy, and MUST 625 NOT be included in this extension. 627 This extension MUST be present and it is critical. 629 4.9.10. IP Resources 631 This extension contains the list of IP address resources as per 632 [RFC3779]. The value may specify the "inherit" element for a 633 particular AFI value. In the context of resource certificates 634 describing public number resources for use in the public Internet, 635 the SAFI value MUST NOT be used. All Resource Certificates MUST 636 include an IP Resources extension, an AS Resources extension, or both 637 extensions. 639 This extension, if present, MUST be marked critical. 641 Either the IP Resources extension, or the AS Resources extension, or 642 both, MUST be present in all RPKI certificates. 644 4.9.11. AS Resources 646 This extension contains the list of AS number resources as per 647 [RFC3779], or may specify the "inherit" element. RDI values are NOT 648 supported in this profile and MUST NOT be used. All Resource 649 Certificates MUST include an IP Resources extension, an AS Resources 650 extension, or both extensions. 652 This extension, if present, MUST be marked critical. 654 Either the IP Resources extension, or the AS Resources extension, or 655 both, MUST be present in all RPKI certificates. 657 5. Resource Certificate Revocation List Profile 659 Each CA MUST issue a version 2 Certificate Revocation List (CRL), 660 consistent with [RFC5280]. The CRL Issuer is the CA, and no indirect 661 CRLs are supported in this profile. 663 An entry MUST NOT be removed from the CRL until it appears on one 664 regularly scheduled CRL issued beyond the revoked certificate's 665 validity period, as required in [RFC5280]. 667 This profile does not allow issuance of Delta CRLs. 669 The scope of the CRL MUST be "all certificates issued by this CA". 670 The contents of the CRL are a list of all non-expired certificates 671 that have been revoked by the CA. 673 No CRL fields other than those listed here are permitted in CRLs 674 issued under this profile. Unless otherwise indicated, these fields 675 MUST be present in the CRL. Where two or more CRLs issued by a 676 single CA with the same scope, the CRL with the highest value of the 677 "CRL Number" field supersedes all other CRLs issued by this CA. 679 5.1. Version 681 Resource Certificate Revocation Lists are Version 2 certificates (the 682 integer value of this field is 1). 684 5.2. Issuer Name 686 The value of this field is the X.501 name of the issuing CA who is 687 also the signer of the CRL, and is identical to the Issuer name in 688 the Resource Certificates that are issued by this Issuer. 690 5.3. This Update 692 This field contains the date and time that this CRL was issued. The 693 value of this field MUST be encoded as UTCTime for dates through the 694 year 2049, and MUST be encoded as GeneralizedTime for dates in the 695 year 2050 or later. 697 5.4. Next Update 699 This is the date and time by which the next CRL SHOULD be issued. 700 The value of this field MUST be encoded as UTCTime for dates through 701 the year 2049, and MUST be encoded as GeneralizedTime for dates in 702 the year 2050 or later. 704 5.5. Signature 706 This field contains the algorithm used to sign this CRL. The 707 algorithm used in this profile is specified in [ID.sidr-rpki-algs]. 709 5.6. Revoked Certificate List 711 When there are no revoked certificates, then the revoked certificate 712 list MUST be absent. 714 For each revoked resource certificate only the following fields MUST 715 be present. No CRL entry extensions are supported in this profile, 716 and CRL entry extensions MUST NOT be present in a CRL. 718 5.6.1. Serial Number 720 The serial number of the revoked certificate. 722 5.6.2. Revocation Date 724 The time the certificate was revoked. This time MUST NOT be a future 725 date (i.e., a date later than ThisUpdate). The value of this field 726 MUST be encoded as UTCTime for dates through the year 2049, and MUST 727 be encoded as GeneralizedTime for dates in the year 2050 or later. 729 5.7. CRL Extensions 731 The X.509 v2 CRL format allows extensions to be placed in a CRL. The 732 following extensions are supported in this profile, and MUST be 733 present in a CRL. 735 5.7.1. Authority Key Identifier 737 The authority key identifier extension provides a means of 738 identifying the public key corresponding to the private key used to 739 sign a CRL. Conforming CRL Issuers MUST use the key identifier 740 method. The syntax for this CRL extension is defined in section 741 4.2.1.1 of [RFC5280]. 743 This extension is non-critical. 745 5.7.2. CRL Number 747 The CRL Number extension conveys a monotonically increasing sequence 748 number of positive integers for a given CA and scope. This extension 749 allows users to easily determine when a particular CRL supersedes 750 another CRL. The highest CRL Number value supersedes all other CRLs 751 issued by the CA with the same scope. 753 This extension is non-critical. 755 6. Resource Certificate Request Profile 757 A resource certificate request MAY use either of PKCS#10 or 758 Certificate Request Message Format (CRMF). A CA Issuer MUST support 759 PKCS#10 and a CA Issuer MAY, with mutual consent of the Subject, 760 support CRMF. 762 6.1. PCKS#10 Profile 764 This profile refines the specification in [RFC2986], as it relates to 765 Resource Certificates. A Certificate Request Message object, 766 formatted according to PKCS#10, is passed to a CA as the initial step 767 in issuing a certificate. 769 This request may be conveyed to the CA via a Registration Authority 770 (RA), acting under the direction of a Subject. 772 With the exception of the public key related fields, the CA is 773 permitted to alter any requested field when issuing a corresponding 774 certificate. 776 6.1.1. PKCS#10 Resource Certificate Request Template Fields 778 This profile applies the following additional constraints to fields 779 that may appear in a CertificationRequestInfo: 781 Version 782 This field is mandatory and MUST have the value 0. 784 Subject 785 This field is optional. If present, the value of this field 786 SHOULD be empty, in which case the Issuer MUST generate a 787 Subject name that is unique in the context of certificates 788 issued by this Issuer. If the value of this field is non- 789 empty, then the CA MAY consider the value of this field as the 790 Subject's suggested Subject name, but the CA is NOT bound to 791 honour this suggestion, as the Subject name MUST be unique per 792 subordinate CA and EE in certificates issued by this Issuer. 794 SubjectPublicKeyInfo 795 This field specifies the Subject's public key and the algorithm 796 with which the key is used. The algorithm used in this profile 797 is specified in [ID.sidr-rpki-algs]. 799 Attributes 800 [RFC2986] defines the attributes field as key-value pairs where 801 the key is an OID and the value's structure depends on the key. 803 The only attribute used in this profile is the ExtensionRequest 804 attribute as defined in [RFC2985]. This attribute contains 805 X509v3 Certificate Extensions. The profile for extensions in 806 certificate requests is specified in Section 6.3. 808 This profile applies the following additional constraints to fields 809 that MAY appear in a CertificationRequest Object: 811 signatureAlgorithm 812 The algorithm used in this profile is specified in 813 [ID.sidr-rpki-algs]. 815 6.2. CRMF Profile 817 This profile refines the Certificate Request Message Format (CRMF) 818 specification in [RFC4211], as it relates to Resource Certificates. 819 A Certificate Request Message object, formatted according to the 820 CRMF, is passed to a CA as the initial step in issuing a certificate. 822 This request MAY be conveyed to the CA via a Registration Authority 823 (RA), acting under the direction of a Subject. 825 With the exception of the public key related fields, the CA is 826 permitted to alter any requested field when issuing a corresponding 827 certificate. 829 6.2.1. CRMF Resource Certificate Request Template Fields 831 This profile applies the following additional constraints to fields 832 that may appear in a Certificate Request Template: 834 Version 835 This field MAY be absent, or MAY specify the request of a 836 Version 3 Certificate. It SHOULD be omitted. 838 SerialNumber 839 As per [RFC4211], this field is assigned by the CA and MUST be 840 omitted in this profile. 842 SigningAlgorithm 843 As per [RFC4211], this field is assigned by the CA and MUST be 844 omitted in this profile. 846 Issuer 847 This field is assigned by the CA and MUST be omitted in this 848 profile. 850 Validity 851 This field MAY be omitted. If omitted, the CA will issue a 852 Certificate with Validity dates as determined by the CA. If 853 specified, then the CA MAY override the requested values with 854 dates as determined by the CA. 856 Subject 857 This field is optional. If present, the value of this field 858 SHOULD be empty, in which case the Issuer MUST generate a 859 Subject name that is unique in the context of certificates 860 issued by this Issuer. If the value of this field is non- 861 empty, then the CA MAY consider the value of this field as the 862 subject's suggested subject name, but the CA is NOT bound to 863 honour this suggestion, as the subject name MUST be unique per 864 Issuer in certificates issued by this Issuer. 866 PublicKey 867 This field MUST be present. 869 extensions 870 This attribute contains X509v3 Certificate Extensions. The 871 profile for extensions in certificate requests is specified in 872 Section 6.3. 874 6.2.2. Resource Certificate Request Control Fields 876 The following control fields are supported in this profile: 878 Authenticator Control 879 It is noted that the intended model of authentication of the 880 Subject is a "long term" model, and the advice as offered in 881 [RFC4211] is that the Authenticator Control field be used. 883 6.3. Certificate Extension Attributes in Certificate Requests 885 The following extensions MAY appear in a PKCS#10 or CRMF Certificate 886 Request. Any other extensions MUST NOT appear in a Certificate 887 Request. This profile places the following additional constraints on 888 these extensions: 890 BasicConstraints 891 If this is omitted then the CA will issue an EE certificate 892 with the BasicConstraints extension not present in the issued 893 certificate. 895 The Path Length Constraint is not supported in this Resource 896 Certificate Profile, and this field MUST be omitted in this 897 profile. 899 The CA MAY honour the SubjectType CA bit set to on. If this 900 bit is set, then it indicates that the Subject is allowed to 901 issue resource certificates within this overall framework. 903 The CA MUST honour the SubjectType CA bit set to off (EE 904 certificate request), in which case the corresponding end 905 entity certificate will not contain a BasicConstraints 906 extension. 908 SubjectKeyIdentifier 909 This field is assigned by the CA and MUST be omitted in this 910 profile. 912 AuthorityKeyIdentifier 913 This field is assigned by the CA and MUST be omitted in this 914 profile. 916 KeyUsage 917 The CA MAY honour KeyUsage extensions of keyCertSign and 918 cRLSign if present, as long as this is consistent with the 919 BasicConstraints SubjectType sub field, when specified. 921 ExtendedKeyUsage 922 The CA MAY honour ExtendedKeyUsage extensions of keyCertSign 923 and cRLSign if present, as long as this is consistent with the 924 BasicConstraints SubjectType sub field, when specified. 926 SubjectInformationAccess 927 This field MUST be present when the Subject is a CA, and the 928 field value SHOULD be honoured by the CA. If the CA is not 929 able to honour the requested field value, then the CA MUST 930 reject the Certificate Request. 932 This field (SIA) identifies the location of information and 933 services relating to the Subject of the certificate in which 934 the SIA extension appears. 936 Where the Subject is a CA in this profile, this information and 937 service collection will include all current valid certificates 938 that have been issued by this Subject that are signed with the 939 Subject's corresponding private key. 941 This profile uses a URI form of location identification. An 942 RSYNC URI [RFC5781] MUST be specified, with an accessMethod 943 value of id-ad-caRepository when the Subject of the certificate 944 is a CA. The RSYNC URI MUST reference an object collection 945 rather than an individual object and MUST use a trailing '/' in 946 the URI. Other accessMethod URIs that reference the same 947 location MAY also be included in the value sequence of this 948 extension. The ordering of URIs in this sequence reflect the 949 Subject's relative preferences for access methods, with the 950 first method in the sequence being the most preferred by the 951 Subject. 953 A request for a CA certificate MUST include in the SIA of the 954 request the id-ad-caRepository accessMethod, and also MUST 955 include in the SIA of the request the accessMethod OID of id- 956 ad-rpkiManifest, where the associated accessLocation refers to 957 the Subject's published manifest object as an object URL. 959 This field MAY be present when the Subject is a EE. If it is 960 present the field value SHOULD be honoured by the CA. If the 961 CA is not able to honour the requested field value, then the CA 962 MUST reject the Certificate Request. If it is not present the 963 CA SHOULD honour this request and omit the SIA from the issued 964 certificate. If the CA is not able to honour the request to 965 omit the SIA, then the CA MUST reject the Certificate Request. 967 When an EE certificate is intended for use in verifying 968 multiple objects, the certificate request for the EE 969 certificate MUST include in the SIA of the request an 970 accessMethod OID of id-ad-signedObjectRepository, and also MUST 971 include in the SIA of the request an accessMethod OID of id-ad- 972 rpkiManifest, where the associated access location refers to 973 the publication point of the manifest object describing all 974 objects that are verified using this EE certificate. 976 When an EE certificate is used to sign a single published 977 object, the certificate request for the EE certificate MUST 978 include in the SIA of the request an accessMethod OID of id-ad- 979 signedObject, where the associated accessLocation refers to the 980 publication point of the single object that is verified using 981 this EE certificate, and MUST NOT include an id-ad-rpkiManifest 982 accessMethod OID in the SIA of the request. 984 In the case when the EE certificate is to be used exclusively 985 to sign one or more unpublished objects, such that the all 986 signed objects will not be published in any RPKI repository, 987 then the SIA SHOULD be omitted from the request. 989 CRLDistributionPoints 990 This field is assigned by the CA and MUST be omitted in this 991 profile. 993 AuthorityInformationAccess 994 This field is assigned by the CA and MUST be omitted in this 995 profile. 997 CertificatePolicies 998 This field is assigned by the CA and MUST be omitted in this 999 profile. 1001 With the exceptions of the publicKey field and the 1002 SubjectInformationAccess field, the CA is permitted to alter any 1003 requested field. 1005 7. Resource Certificate Validation 1007 This section describes the Resource Certificate validation procedure. 1008 This refines the generic procedure described in section 6 of 1009 [RFC5280]. 1011 To meet this goal, the path validation process verifies, among other 1012 things, that a prospective certification path (a sequence of n 1013 certificates) satisfies the following conditions: 1015 1. for all 'x' in {1, ..., n-1}, the Subject of certificate 'x' 1016 is the Issuer of certificate ('x' + 1); 1018 2. certificate '1' is issued by a trust anchor; 1020 3. certificate 'n' is the certificate to be validated; and 1022 4. for all 'x' in {1, ..., n}, certificate 'x' is valid. 1024 7.1. Resource Extension Validation 1026 The IP Resources and AS Resources extensions definitions [RFC3779] 1027 defines critical extensions for Internet number resources. These are 1028 ASN.1 encoded representations of the IPv4 and IPv6 address range 1029 (either as a prefix/length, or start-end pair) and an AS number set. 1031 Valid Resource Certificates MUST have a valid IP address and/or AS 1032 number resource extension. In order to validate a Resource 1033 Certificate the resource extension MUST also be validated. This 1034 validation process relies on definitions of comparison of resource 1035 sets: 1037 more specific 1038 Given two IP address or AS number contiguous ranges, A and B, A 1039 is "more specific" than B if range B includes all IP addresses 1040 or AS numbers described by range A, and if range B is larger 1041 than range A. 1043 equal 1044 Given two IP address or AS number contiguous ranges, A and B, A 1045 is "equal" to B if range A describes precisely the same 1046 collection of IP addresses or AS numbers as described by range 1047 B. The definition of "inheritance" in [RFC3779] is equivalent 1048 to this "equality" comparison. 1050 encompass 1051 Given two IP address and AS number sets X and Y, X 1052 "encompasses" Y if, for every contiguous range of IP addresses 1053 or AS numbers elements in set Y, the range element is either 1054 more specific than or equal to a contiguous range element 1055 within the set X. 1057 Validation of a certificate's resource extension in the context of an 1058 ordered certificate sequence numbered {1,2, ... , n} where 1059 certificate '1' is issued by a trust anchor and certificate 'n' is 1060 the target certificate, and where the Subject of certificate 'x' is 1061 the Issuer of certificate ('x + 1'), includes verification that that 1062 the resources described in certificate 'x' "encompass" the resources 1063 described in certificate ('x + 1'), and the resources described in 1064 the trust anchor information "encompass" the resources described in 1065 certificate '1'. 1067 7.2. Resource Certification Path Validation 1069 Validation of signed resource data using a target resource 1070 certificate consists of assembling an ordered sequence (or 1071 'Certification Path') of certificates ({1,2,...n} where '1' is a 1072 certificate that has been issued by a trust anchor, and 'n' is the 1073 target certificate) verifying that all of the following conditions 1074 hold: 1076 1. The certificate can be verified using the Issuer's public key 1077 and the signature algorithm 1079 2. The current time lies within the certificate's Validity From 1080 and To values. 1082 3. The certificate contains all fields that MUST be present and 1083 contains field values as specified in this profile for all 1084 field values that MUST be present. 1086 4. No field value that MUST NOT be present in this profile is 1087 present in the certificate. 1089 5. The Issuer has not revoked the certificate by placing the 1090 certificate's serial number on the Issuer's current 1091 Certificate Revocation List, and the Certificate Revocation 1092 List is itself valid. 1094 6. That the resource extension data is "encompassed" by the 1095 resource extension data contained in a valid certificate where 1096 this Issuer is the Subject (the previous certificate in the 1097 ordered sequence) 1099 7. The Certification Path originates with a certificate issued by 1100 a trust anchor, and there exists a signing chain across the 1101 Certification Path where the Subject of Certificate 'x' in the 1102 Certification Path matches the Issuer in Certificate ('x' + 1) 1103 in the Certification Path. 1105 A certificate validation algorithm may perform these tests in any 1106 chosen order. 1108 Certificates and CRLs used in this process may be found in a locally 1109 maintained cache, maintained by a regular synchronisation across the 1110 distributed publication repository structure. 1112 There exists the possibility of encountering certificate paths that 1113 are arbitrarily long, or attempting to generate paths with loops as 1114 means of creating a potential DOS attack on a relying party. Some 1115 further heuristics may be required to halt the certification path 1116 validation process in order to avoid some of the issues associated 1117 with attempts to validate such structures. It is suggested that 1118 implementations of Resource Certificate validation MAY halt with a 1119 validation failure if the certification path length exceeds a locally 1120 defined configuration parameter. 1122 8. Design Notes 1124 The following notes provide some additional commentary on the 1125 considerations that lie behind some of the design choices that were 1126 made in the design of this certificate profile. These notes do not 1127 constitute a formal part of the profile specification, and the 1128 interpretation of key words as defined in RFC2119 are not applicable 1129 in this section of the document. 1131 Certificate Extensions: 1132 This profile does not permit the use of any other critical or 1133 non-critical extensions. The rationale for this restriction is 1134 that the resource certificate profile is intended for a 1135 specific use, and in this context it is not seen as being 1136 appropriate to be in the position of having certificates with 1137 additional non-critical extensions that relying parties may see 1138 as valid certificates without understanding the extensions, but 1139 were the relying party in a position to understand the 1140 extensions, would contradict or qualify in some way this 1141 original judgment of validity. This profile takes the position 1142 of minimalism over extensibility. The specific goal for the 1143 associated Resource Public Key Infrastructure to precisely 1144 match the IP number resource allocation structure through an 1145 aligned certificate structure that describes the allocation and 1146 its context within the number resource distribution hierarchy. 1147 The profile defines a resource certificate that is structured 1148 to meet these requirements. 1150 Certification Authorities and Key Values: 1151 This profile uses a definition of an instance of a CA as a 1152 combination of a named entity and a key pair. Within this 1153 definition a CA instance cannot rollover a key pair. However, 1154 the entity can generate a new instance of a CA with a new key 1155 pair and roll over all the signed subordinate products to the 1156 new CA. 1158 This has a number of implications in terms of Subject name 1159 management, CRL Scope and repository publication point 1160 management. 1162 Subject name: 1163 For Subject names the Issuer should ensure that when an 1164 entity requests a certificate with a new key pair, the CA 1165 issues a certificate with a new Subject name. One way to 1166 achieve this is to use a commonName field value that is 1167 unique per subordinate entity, using an algorithm of the 1168 CA's devising to ensure this uniqueness, and for the CA 1169 to include the serialNumber field value of the X.501 1170 distinguished name structure, with a serial number value 1171 that is derived from the hash of the subject public key 1172 value. Using an informal description of an ASN.1 data 1173 structure, a Subject name can be constructed in this 1174 manner as a Subject consisting of a SET whose elements 1175 are a SEQUENCE of a single serialNumber and a SEQUENCE of 1176 a single commonName. 1178 It should also be noted that conventions are imposed on 1179 Subject names used in resource certificates, as described 1180 in [ID.sidr-arch], and that any name scheme should comply 1181 with these conventions. 1183 CRL Scope: 1184 For CRL Scope this profile specifies that a CA issues a 1185 single CRL sequence, and the scope of the CRL is all 1186 certificates issued by this CA. Because the CA instance 1187 is bound to a single key pair this implies that the CA's 1188 public key, the key used to validate the CA's CRL, and 1189 the key used to validate the certificates revoked by that 1190 CRL are all the same. 1192 Repository Publication Point: 1193 The definition of a CA affects the design of the 1194 repository publication system. In order to minimize the 1195 amount of forced re-certification on key rollover events, 1196 a repository publication regime that uses the same 1197 repository publication point for all CA instances that 1198 refers to the same entity, but with different key values 1199 will minimize the extent of re-generation of certificates 1200 to only immediate subordinate certificates. 1202 In order for two or more CA instances to share a single 1203 repository publication point there needs to be a regime 1204 of key management into OLD, CURRENT and FUTURE keys and a 1205 similar regime of OLD, CURRENT and FUTURE CAs. An OLD CA 1206 should regularly publish its CRL for as long as the OLD 1207 CA instance is still valid, and issue EE certificates as 1208 necessary to maintain a current manifest of all OLD CA 1209 published products, but it should not sign any other 1210 products. The CURRENT CA should publish its CRL, and 1211 should publish all subordinate products, as well as 1212 issuing EE certificates as necessary to maintain a 1213 current manifest of all CURRENT CA published products. 1214 FUTURE CAs should publish no products at all in the 1215 repository publication point. It would be consistent 1216 with this repository object name framework for the CRL 1217 and manifest to be published using object names derived 1218 from the hash of the public key value of the CA instance. 1220 Key Rollover: 1221 As a CA instance is associated with a single key pair, there 1222 are some considerations regarding the procedure that should be 1223 followed by an entity performing a key rollover function. The 1224 entity will need to create a new CA instance and then use this 1225 new CA instance to re-issue all subordinate products with the 1226 new CA instance. 1228 To perform a key rollover operation the entity will need to: 1230 1. Generate a NEW key pair. 1232 2. Generate a certificate request with the NEW key 1233 pair and pass the request to the entity's immediate 1234 superior CA as the certificate Issuer. 1236 3. Request the entity's Issuer to generate and publish 1237 a NEW CA certificate, with an issuer-selected 1238 Subject name that is distinct from the Subject name 1239 used in conjunction with the previous Subject name 1240 value for this entity. 1242 4. Mark the CURRENT CA as OLD and the NEW CA as 1243 CURRENT. 1245 5. The CURRENT CA will generate new certificates for 1246 all existing subordinate CA and EE certificates, 1247 and publish those products in the same repository 1248 publication point and with the same repository 1249 publication point name as the previous OLD 1250 subordinate CA and EE certificates. The keys in 1251 these reissued certificates must not change. 1253 6. Where the signing structure uses a packaging format 1254 that includes the EE certificate within the signed 1255 data, signed objects that included OLD EE 1256 certificates in their signed data will need to be 1257 re-signed using an EE certificate issued by the 1258 CURRENT CA. In the case where the OLD EE 1259 certificate is a "single use" EE certificate and 1260 the associate private key has been destroyed this 1261 will entail the generate of a new key pair, the 1262 issuing of an EE certificate by the CURRENT CA. In 1263 the case of a "multi-use" EE certificate, the EE 1264 certificate should be issued using the CURRENT CA. 1265 The object, together with the issued EE 1266 certificate, should be signed with the associated 1267 private key, and published in the same repository 1268 publication point, using the same repository 1269 publication point name, as the previously signed 1270 object that it replaces (i.e. overwrite the old 1271 signed object). 1273 7. Generate a certificate revocation request for the 1274 OLD CA certificate and pass it to the entity's 1275 Issuer. 1277 8. Remove all published OLD CA products and destroy 1278 the OLD private key. 1280 Name Uniqueness: 1281 This profile specifies that Subject names must be unique per 1282 Issuer, and does not specify that Subject names must be 1283 globally unique. 1285 Given that the RPKI is a distributed PKI, there is no inherent 1286 ability for Certification authorities to coordinate PKI-wide 1287 unique Subject names. CA's should use multi-attribute, 1288 structured Subject names in their RPKI certificates. This 1289 advice is motivated by a desire to include within this 1290 specification a CA's Subject naming practice that uses a 1291 distinguished name component that is constant for any given 1292 entity that is the Subject of CA-issued certificates (the 1293 CommonName component of the Distinguished Name), yet still 1294 ensure that the structures Subject name changes whenever 1295 Subject key rollover occurs (the serial number component of the 1296 Distinguished Name). Also, as the publication repository is 1297 distributed, and distinct entities use distinct repository 1298 publication points any potential ambiguity is resolved by the 1299 distinct publication point. 1301 9. Security Considerations 1303 The Security Considerations of [RFC5280] and [RFC3779] apply to 1304 Resource Certificates as defined by this profile, and their use. 1306 A Resource Certificate PKI cannot in and of itself resolve any forms 1307 of ambiguity relating to uniqueness of assertions of rights of use in 1308 the event that two or more valid certificates encompass the same 1309 resource. If the issuance of resource certificates is aligned to the 1310 status of resource allocations and assignments then the information 1311 conveyed in a certificate is no better than the information in the 1312 allocation and assignment databases. 1314 10. IANA Considerations 1316 [Note to IANA, to be removed prior to publication: there are no IANA 1317 considerations stated in this document.] 1319 11. Acknowledgements 1321 The authors would like to particularly acknowledge the valued 1322 contribution from Stephen Kent in reviewing this document and 1323 proposing numerous sections of text that have been incorporated< into 1324 the text. The authors also acknowledge the contributions of Sandy 1325 Murphy, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo Patara 1326 and Rob Austein in the preparation and subsequent review of this 1327 document. The document also reflects review comments received from 1328 Roque Gagliano, Sean Turner and David Cooper. 1330 12. References 1332 12.1. Normative References 1334 [ID.sidr-rpki-algs] 1335 Huston, G., "A Profile for Algorithms and Key Sizes for 1336 use in the Resource Public Key Infrastructure", Work in 1337 progress: Internet 1338 Drafts draft-ietf-sidr-rpki-algs-00.txt, August 2009. 1340 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 1341 September 1981. 1343 [RFC2050] Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D., and 1344 J. Postel, "INTERNET REGISTRY IP ALLOCATION GUIDELINES", 1345 BCP 12, RFC 2050, November 1996. 1347 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 1348 Addresses and AS Identifiers", RFC 3779, June 2004. 1350 [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure 1351 Certificate Request Message Format (CRMF)", RFC 4211, 1352 September 2005. 1354 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1355 Architecture", RFC 4291, February 2006. 1357 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 1358 Housley, R., and W. Polk, "Internet X.509 Public Key 1359 Infrastructure Certificate and Certificate Revocation List 1360 (CRL) Profile", RFC 5280, May 2008. 1362 [X.509] ITU-T, "Recommendation X.509: The Directory - 1363 Authentication Framework", 2000. 1365 12.2. Informative References 1367 [ID.sidr-arch] 1368 Lepinski, M. and S. Kent, "An Infrastructure to Support 1369 Secure Internet Routing", Work in progress: Internet 1370 Drafts draft-ietf-sidr-arch-04.txt, November 2008. 1372 [ID.sidr-manifests] 1373 Austein, R., Huston, G., Kent, S., and M. Lepinski, 1374 "Manifests for the Resource Public Key Infrastructure", 1375 Work in progress: Internet 1376 Drafts draft-ietf-sidr-rpki-manifests-04.txt, 1377 October 2008. 1379 [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object 1380 Classes and Attribute Types Version 2.0", RFC 2985, 1381 November 2000. 1383 [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification 1384 Request Syntax Specification Version 1.7", RFC 2986, 1385 November 2000. 1387 [RFC4158] Cooper, M., Dzambasow, Y., Hesse, P., Joseph, S., and R. 1388 Nicholas, "Internet X.509 Public Key Infrastructure: 1389 Certification Path Building", RFC 4158, September 2005. 1391 [RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI 1392 Scheme", RFC 5781, February 2010. 1394 Appendix A. Example Resource Certificate 1396 The following is an example Resource Certificate. 1398 Certificate Name: 9JfgAEcq7Q-47IwMC5CJIJr6EJs.cer 1400 Data: 1401 Version: 3 (0x2( 1402 Serial: 1500 (0x5dc) 1403 Signature Algorithm: SHA256WithRSAEncryption 1404 Issuer: CN=APNIC Production-CVPQSgUkLy7pOXdNeVWGvnFX_0s 1405 Validity 1406 Not Before: Oct 25 12:50:00 2008 GMT 1407 Not After : Jan 31 00:00:00 2010 GMT 1408 Subject: CN=A91872ED 1409 Subject Public Key Info: 1410 Public Key Algorithm: rsaEncryption 1411 RSA Public Key: (2048 bit) 1412 Modulus (2048 bit): 1413 00:bb:fb:4a:af:a4:b9:dc:d0:fa:6f:67:cc:27:39: 1414 34:d1:80:40:37:de:88:d1:64:a2:f1:b3:fa:c6:7f: 1415 bb:51:df:e1:c7:13:92:c3:c8:a2:aa:8c:d1:11:b3: 1416 aa:99:c0:ac:54:d3:65:83:c6:13:bf:0d:9f:33:2d: 1417 39:9f:ab:5f:cd:a3:e9:a1:fb:80:7d:1d:d0:2b:48: 1418 a5:55:e6:24:1f:06:41:35:1d:00:da:1f:99:85:13: 1419 26:39:24:c5:9a:81:15:98:fb:5f:f9:84:38:e5:d6: 1420 70:ce:5a:02:ca:dd:61:85:b3:43:2d:0b:35:d5:91: 1421 98:9d:da:1e:0f:c2:f6:97:b7:97:3e:e6:fc:c1:c4: 1422 3f:30:c4:81:03:25:99:09:4c:e2:4a:85:e7:46:4b: 1423 60:63:02:43:46:51:4d:ed:fd:a1:06:84:f1:4e:98: 1424 32:da:27:ee:80:82:d4:6b:cf:31:ea:21:af:6f:bd: 1425 70:34:e9:3f:d7:e4:24:cd:b8:e0:0f:8e:80:eb:11: 1427 1f:bc:c5:7e:05:8e:5c:7b:96:26:f8:2c:17:30:7d: 1428 08:9e:a4:72:66:f5:ca:23:2b:f2:ce:54:ec:4d:d9: 1429 d9:81:72:80:19:95:57:da:91:00:d9:b1:e8:8c:33: 1430 4a:9d:3c:4a:94:bf:74:4c:30:72:9b:1e:f5:8b:00: 1431 4d:e3 1432 Exponent: 65537 (0x10001) 1433 X509v3 extensions: 1434 X509v3 Subject Key Identifier: 1435 F4:97:E0:00:47:2A:ED:0F:B8:EC:8C:0C:0B:90:89: 1436 20:9A:FA:10:9B 1438 X509v3 Authority Key Identifier: 1439 keyid:09:53:D0:4A:05:24:2F:2E:E9:39:77:4D:79: 1440 55:86:BE:71:57:FF:4B 1442 X509v3 Key Usage: critical 1443 Certificate Sign, CRL Sign 1445 X509v3 Basic Constraints: critical 1446 CA:TRUE 1448 X509v3 CRL Distribution Points: 1449 URI:rsync://rpki.apnic.net/repository/A3C38A24 1450 D60311DCAB08F31979BDBE39/CVPQSgUkLy7pOXdNe 1451 VWGvnFX_0s.crl 1453 Authority Information Access: 1454 CA Issuers - URI:rsync://rpki.apnic.net/repos 1455 itory/8BDFC7DED5FD11DCB14CF4B1A703F9B7/CVP 1456 QSgUkLy7pOXdNeVWGvnFX_0s.cer 1458 X509v3 Certificate Policies: critical 1459 Policy: 1.3.6.1.5.5.7.14.2 1461 Subject Information Access: 1462 CA Repository - URI:rsync://rpki.apnic.net/mem 1463 ber_repository/A91872ED/06A83982887911DD81 1464 3F432B2086D636/ 1465 Manifest - URI:rsync://rpki.apnic.net/member_r 1466 epository/A91872ED/06A83982887911DD813F432 1467 B2086D636/9JfgAEcq7Q-47IwMC5CJIJr6EJs.mft 1469 sbgp-autonomousSysNum: critical 1470 Autonomous System Numbers: 1471 24021 1472 38610 1473 131072 1474 131074 1476 sbgp-ipAddrBlock: critical 1477 IPv4: 1478 203.133.248.0/22 1479 203.147.108.0/23 1481 Signature Algorithm: sha256WithRSAEncryption 1482 51:4c:77:e4:21:64:80:e9:35:30:20:9f:d8:4b:88:60:b8:1f: 1483 73:24:9d:b5:17:60:65:6a:28:cc:43:4b:68:97:ca:76:07:eb: 1484 dc:bd:a2:08:3c:8c:56:38:c6:0a:1e:a8:af:f5:b9:42:02:6b: 1485 77:e0:b1:1c:4a:88:e6:6f:b6:17:d3:59:41:d7:a0:62:86:59: 1486 29:79:26:76:34:d1:16:2d:75:05:cb:b2:99:bf:ca:c6:68:1b: 1487 b6:a9:b0:f4:43:2e:df:e3:7f:3c:b3:72:1a:99:fa:5d:94:a1: 1488 eb:57:9c:9a:2c:87:d6:40:32:c9:ff:a6:54:b8:91:87:fd:90: 1489 55:ef:12:3e:1e:2e:cf:c5:ea:c3:4c:09:62:4f:88:00:a0:7f: 1490 cd:67:83:bc:27:e1:74:2c:18:4e:3f:12:1d:ef:29:0f:e3:27: 1491 00:ce:14:eb:f0:01:f0:36:25:a2:33:a8:c6:2f:31:18:22:30: 1492 cf:ca:97:43:ed:84:75:53:ab:b7:6c:75:f7:2f:55:5c:2e:82: 1493 0a:be:91:59:bf:c9:06:ef:bb:b4:a2:71:9e:03:b1:25:8e:29: 1494 7a:30:88:66:b4:f2:16:6e:df:ad:78:ff:d3:b2:9c:29:48:e3: 1495 be:87:5c:fc:20:2b:df:da:ca:30:58:c3:04:c9:63:72:48:8c: 1496 0a:5f:97:71 1498 Appendix B. Example Certificate Revocation List 1500 The following is an example Certificate Revocation List. 1502 CRL Name: q66IrWSGuBE7jqx8PAUHAlHCqRw.crl 1504 Data: 1505 Version: 2 1506 Signature Algorithm: 1507 Hash: SHA256, Encryption: RSA 1508 Issuer: CN=Demo Production APNIC CA - Not for real use, 1509 E=ca@apnic.net 1510 This Update: Thu Jul 27 06:30:34 2006 GMT 1511 Next Update: Fri Jul 28 06:30:34 2006 GMT 1512 Authority Key Identifier: Key Identifier: 1513 ab:ae:88:ad:64:86:b8:11:3b:8e:ac:7c:3c:05: 1514 07:02:51:c2:a9:1c 1515 Authority Key Identifier: Key Identifier g(AKI): 1516 q66IrWSGuBE7jqx8PAUHAlHCqRw 1517 CRLNumber: 4 1518 Revoked Certificates: 1 1519 Serial Number: 1 1520 Revocation Date: Mon Jul 17 05:10:19 2006 GMT 1521 Serial Number: 2 1522 Revocation Date: Mon Jul 17 05:12:25 2006 GMT 1523 Serial Number: 4 1524 Revocation Date: Mon Jul 17 05:40:39 2006 GMT 1525 Signature: 1526 b2:5a:e8:7c:bd:a8:00:0f:03:1a:17:fd:40:2c:46: 1527 0e:d5:64:87:e7:e7:bc:10:7d:b6:3e:39:21:a9:12: 1528 f4:5a:d8:b8:d4:bd:57:1a:7d:2f:7c:0d:c6:4f:27: 1529 17:c8:0e:ae:8c:89:ff:00:f7:81:97:c3:a1:6a:0a: 1530 f7:d2:46:06:9a:d1:d5:4d:78:e1:b7:b0:58:4d:09: 1531 d6:7c:1e:a0:40:af:86:5d:8c:c9:48:f6:e6:20:2e: 1532 b9:b6:81:03:0b:51:ac:23:db:9f:c1:8e:d6:94:54: 1533 66:a5:68:52:ee:dd:0f:10:5d:21:b8:b8:19:ff:29: 1534 6f:51:2e:c8:74:5c:2a:d2:c5:fa:99:eb:c5:c2:a2: 1535 d0:96:fc:54:b3:ba:80:4b:92:7f:85:54:76:c9:12: 1536 cb:32:ea:1d:12:7b:f8:f9:a2:5c:a1:b1:06:8e:d8: 1537 c5:42:61:00:8c:f6:33:11:29:df:6e:b2:cc:c3:7c: 1538 d3:f3:0c:8d:5c:49:a5:fb:49:fd:e7:c4:73:68:0a: 1539 09:0e:6d:68:a9:06:52:3a:36:4f:19:47:83:59:da: 1540 02:5b:2a:d0:8a:7a:33:0a:d5:ce:be:b5:a2:7d:8d: 1541 59:a1:9d:ee:60:ce:77:3d:e1:86:9a:84:93:90:9f: 1542 34:a7:02:40:59:3a:a5:d1:18:fb:6f:fc:af:d4:02: 1543 d9 1545 Authors' Addresses 1547 Geoff Huston 1548 Asia Pacific Network Information Centre 1550 Email: gih@apnic.net 1551 URI: http://www.apnic.net 1553 George Michaelson 1554 Asia Pacific Network Information Centre 1556 Email: ggm@apnic.net 1557 URI: http://www.apnic.net 1559 Robert Loomans 1560 Asia Pacific Network Information Centre 1562 Email: robertl@apnic.net 1563 URI: http://www.apnic.net