idnits 2.17.1 draft-ietf-sidr-res-certs-15.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 16. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 1983. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 1994. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 2001. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 2007. 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 Copyright Line does not match the current year == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: 5. The CURRENT CA will generate new certificates for all existing subordinate CA and EE certificates, and publish those products in the same repository publication point and with the same repository publication point name as the previous OLD subordinate CA and EE certificates. The keys in these reissued certificates MUST not change. -- 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 (November 17, 2008) is 5631 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) -- Looks like a reference, but probably isn't: '0' on line 1787 -- Looks like a reference, but probably isn't: '1' on line 1774 == Missing Reference: 'TBD' is mentioned on line 1922, but not defined ** Obsolete normative reference: RFC 2050 (Obsoleted by RFC 7020) ** Obsolete normative reference: RFC 3852 (Obsoleted by RFC 5652) == Outdated reference: A later version (-13) exists of draft-ietf-sidr-arch-03 == Outdated reference: A later version (-16) exists of draft-ietf-sidr-rpki-manifests-00 Summary: 3 errors (**), 0 flaws (~~), 6 warnings (==), 9 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: May 21, 2009 APNIC 6 November 17, 2008 8 A Profile for X.509 PKIX Resource Certificates 9 draft-ietf-sidr-res-certs-15 11 Status of this Memo 13 By submitting this Internet-Draft, each author represents that any 14 applicable patent or other IPR claims of which he or she is aware 15 have been or will be disclosed, and any of which he or she becomes 16 aware will be disclosed, in accordance with Section 6 of BCP 79. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that 20 other groups may also distribute working documents as Internet- 21 Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt. 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft will expire on May 21, 2009. 36 Abstract 38 This document defines a standard profile for X.509 certificates for 39 the purposes of supporting validation of assertions of "right-of-use" 40 of an Internet Number Resource (IP Addresses and Autonomous System 41 Numbers). This profile is used to convey the issuer's authorization 42 of the subject to be regarded as the current holder of a "right-of- 43 use" of the IP addresses and AS numbers that are described in the 44 issued certificate. 46 Table of Contents 48 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 49 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 50 2. Describing Resources in Certificates . . . . . . . . . . . . . 5 51 3. Resource Certificate Fields . . . . . . . . . . . . . . . . . 6 52 3.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 6 53 3.2. Serial number . . . . . . . . . . . . . . . . . . . . . . 6 54 3.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 7 55 3.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . . 7 56 3.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . . 7 57 3.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . . 7 58 3.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . . 8 59 3.8. Subject Public Key Info . . . . . . . . . . . . . . . . . 8 60 3.9. Resource Certificate Version 3 Extension Fields . . . . . 8 61 3.9.1. Basic Constraints . . . . . . . . . . . . . . . . . . 9 62 3.9.2. Subject Key Identifier . . . . . . . . . . . . . . . . 9 63 3.9.3. Authority Key Identifier . . . . . . . . . . . . . . . 9 64 3.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . . 10 65 3.9.5. CRL Distribution Points . . . . . . . . . . . . . . . 10 66 3.9.6. Authority Information Access . . . . . . . . . . . . . 11 67 3.9.7. Subject Information Access . . . . . . . . . . . . . . 11 68 3.9.8. Certificate Policies . . . . . . . . . . . . . . . . . 13 69 3.9.9. IP Resources . . . . . . . . . . . . . . . . . . . . . 13 70 3.9.10. AS Resources . . . . . . . . . . . . . . . . . . . . . 13 71 4. Resource Certificate Revocation List Profile . . . . . . . . . 14 72 4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 14 73 4.2. Issuer Name . . . . . . . . . . . . . . . . . . . . . . . 14 74 4.3. This Update . . . . . . . . . . . . . . . . . . . . . . . 14 75 4.4. Next Update . . . . . . . . . . . . . . . . . . . . . . . 14 76 4.5. Signature . . . . . . . . . . . . . . . . . . . . . . . . 15 77 4.6. Revoked Certificate List . . . . . . . . . . . . . . . . . 15 78 4.6.1. Serial Number . . . . . . . . . . . . . . . . . . . . 15 79 4.6.2. Revocation Date . . . . . . . . . . . . . . . . . . . 15 80 4.7. CRL Extensions . . . . . . . . . . . . . . . . . . . . . . 15 81 4.7.1. Authority Key Identifier . . . . . . . . . . . . . . . 15 82 4.7.2. CRL Number . . . . . . . . . . . . . . . . . . . . . . 16 83 5. Resource Certificate Request Profile . . . . . . . . . . . . . 16 84 5.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . . 16 85 5.1.1. PKCS#10 Resource Certificate Request Template 86 Fields . . . . . . . . . . . . . . . . . . . . . . . . 16 87 5.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . . 17 88 5.2.1. CRMF Resource Certificate Request Template Fields . . 18 89 5.2.2. Resource Certificate Request Control Fields . . . . . 19 90 5.3. Certificate Extension Attributes in Certificate 91 Requests . . . . . . . . . . . . . . . . . . . . . . . . . 19 92 6. Resource Certificate Validation . . . . . . . . . . . . . . . 21 93 6.1. Resource Extension Validation . . . . . . . . . . . . . . 22 94 6.2. Resource Certification Path Validation . . . . . . . . . . 23 95 6.3. Trust Anchors for Resource Certificates . . . . . . . . . 24 96 6.3.1. Distribution Format of Default Trust Anchor 97 Material . . . . . . . . . . . . . . . . . . . . . . . 25 98 7. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 28 99 8. Security Considerations . . . . . . . . . . . . . . . . . . . 31 100 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 101 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 32 102 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 32 103 11.1. Normative References . . . . . . . . . . . . . . . . . . . 32 104 11.2. Informative References . . . . . . . . . . . . . . . . . . 33 105 Appendix A. Example Resource Certificate . . . . . . . . . . . . 33 106 Appendix B. Example Certificate Revocation List . . . . . . . . . 36 107 Appendix C. Cryptographic Message Syntax Profile for RPKI 108 Trust Anchor Material . . . . . . . . . . . . . . . . 37 109 C.1. Signed-Data ContentType . . . . . . . . . . . . . . . . . 37 110 C.1.1. encapContentInfo . . . . . . . . . . . . . . . . . . . 38 111 C.1.2. signerInfos . . . . . . . . . . . . . . . . . . . . . 39 112 C.2. RTA Validation . . . . . . . . . . . . . . . . . . . . . . 41 113 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 42 114 Intellectual Property and Copyright Statements . . . . . . . . . . 44 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 While this profile describes the structure of a default Trust Anchor 163 for this PKI, Relying Parties (RPs) in this PKI are free to select 164 the trust anchors upon which they rely, and thus the PKI as viewed by 165 RPs need not match the public resource allocation hierarchy as 166 described here. 168 Resource Certificates may be used in the context of the operation of 169 secure inter-domain routing protocols to convey a right-of-use of an 170 IP number resource that is being passed within the routing protocol, 171 allowing relying parties to verify legitimacy and correctness of 172 routing information. Related use contexts include validation of 173 Internet Routing Registry objects, validation of routing requests, 174 and detection of potential unauthorized use of IP addresses. 176 This profile defines those fields that are used in a Resource 177 Certificate that MUST be present for the certificate to be valid. 178 Relying Parties SHOULD check that a Resource Certificate conforms to 179 this profile as a requisite for validation of a Resource Certificate. 181 1.1. Terminology 183 It is assumed that the reader is familiar with the terms and concepts 184 described in "Internet X.509 Public Key Infrastructure Certificate 185 and Certificate Revocation List (CRL) Profile" [RFC5280], "X.509 186 Extensions for IP Addresses and AS Identifiers" [RFC3779], "Internet 187 Protocol" [RFC0791], "Internet Protocol Version 6 (IPv6) Addressing 188 Architecture" [RFC4291], "Internet Registry IP Allocation Guidelines" 189 [RFC2050], and related regional Internet registry address management 190 policy documents. 192 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 193 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 194 document are to be interpreted as described in RFC 2119. 196 2. Describing Resources in Certificates 198 The framework for describing an association between the subject of a 199 certificate and the resources currently under the subject's control 200 is described in [RFC3779]. 202 There are three aspects of this resource extension that are noted in 203 this profile: 205 1. RFC 3779 notes that a resource extension SHOULD be a CRITICAL 206 extension to the X.509 Certificate. This Resource Certificate 207 profile further specifies that the use of this certificate 208 extension MUST be used in all Resource Certificates and MUST 209 be marked as CRITICAL. 211 2. RFC 3779 defines a sorted canonical form of describing a 212 resource set, with maximal spanning ranges and maximal 213 spanning prefix masks as appropriate. All valid certificates 214 in this profile MUST use this sorted canonical form of 215 resource description in the resource extension field. 217 3. A test of the resource extension in the context of certificate 218 validity includes the condition that the resources described 219 in the immediate parent CA certificate in the PKI (the 220 certificate where this certificate's issuer is the subject) 221 has a resource set (called here the "issuer's resource set") 222 that MUST encompass the resource set of the issued 223 certificate. In this context "encompass" allows for the 224 issuer's resource set to be the same as, or a strict superset 225 of, any subject's resource set. 227 Certificate validation entails the construction of a sequence of 228 valid certificates in an issuer-subject chain (where the subject 229 field of one certificate appears as the issuer in the next 230 certificate in the sequence) from a trust anchor to the certificate 231 being validated. Moreover, the resource extensions in this 232 certificate sequence from the first CA under the trust anchor to the 233 certificate being validated form a sequence of encompassing 234 relationships in terms of the resources described in the resource 235 extension. 237 3. Resource Certificate Fields 239 A Resource Certificate is a valid X.509 v3 public key certificate, 240 consistent with the PKIX profile [RFC5280], containing the fields 241 listed in this section. Unless specifically noted as being OPTIONAL, 242 all the fields listed here MUST be present, and any other field MUST 243 NOT appear in a conforming Resource Certificate. Where a field value 244 is specified here this value MUST be used in conforming Resource 245 Certificates. 247 3.1. Version 249 Resource Certificates are X.509 Version 3 certificates. This field 250 MUST be present, and the Version MUST be 3 (i.e. the value of this 251 field is 2). 253 3.2. Serial number 255 The serial number value is a positive integer that is unique per 256 Issuer. 258 3.3. Signature Algorithm 260 This field describes the algorithm used to compute the signature on 261 this certificate. This profile specifies a default of SHA-256 with 262 RSA (sha256WithRSAEncryption), and allows for the use of SHA-384 or 263 SHA-512. Accordingly, the value for this field MUST be one of the 264 OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } [RFC4055]. 266 3.4. Issuer 268 This field identifies the entity that has signed and issued the 269 certificate. The value of this field is a valid X.501 name. 270 Conventions are imposed on Issuer names used in resource 271 certificates, as described in [ID.sidr-arch]. 273 If the certificate is a subordinate certificate issued by virtue of 274 the "cA" bit set in the immediate superior certificate, then the 275 issuer name MUST correspond to the subject name as contained in the 276 immediate superior certificate. 278 3.5. Subject 280 This field identifies the entity to whom the resource has been 281 allocated / assigned. The value of this field is a valid X.501 name. 282 As noted above, conventions are imposed on Subject names used in 283 resource certificates, as described in [ID.sidr-arch]. 285 In this profile the subject name is determined by the issuer, and 286 each distinct subordinate CA and EE certified by the issuer MUST be 287 identified using a subject name that is unique per issuer. 289 In this context "distinct" is defined as an entity and a given public 290 key. An issuer SHOULD use a different subject name if the subject 291 entity or the subject entity's key pair has changed. 293 3.6. Valid From 295 The starting time at which point the certificate is valid. In this 296 profile the "Valid From" time SHOULD be no earlier than the time of 297 certificate generation. As per Section 4.1.2.5 of [RFC5280], 298 Certification Authorities (CAs) conforming to this profile MUST 299 always encode the certificate's "Valid From" date through the year 300 2049 as UTCTime, and dates in 2050 or later MUST be encoded as 301 GeneralizedTime. These two time formats are defined in [RFC5280]. 303 In this profile, it is valid for a certificate to have a value for 304 this field that pre-dates the same field value in any superior 305 certificate. Relying Parties should not attempt to infer from this 306 time information a certificate was valid at a time in the past, or 307 will be valid at a time in the future, as the validity of a 308 certificate refers to validity at the current time. 310 3.7. Valid To 312 The Valid To time is the date and time at which point in time the 313 certificate's validity ends. It represents the anticipated lifetime 314 of the resource allocation / assignment arrangement between the 315 issuer and the subject. As per Section 4.1.2.5 of [RFC5280], CAs 316 conforming to this profile MUST always encode the certificate's 317 "Valid To" date through the year 2049 as UTCTime, and dates in 2050 318 or later MUST be encoded as GeneralizedTime. These two time formats 319 are defined in [RFC5280]. 321 As noted above, it is valid for a certificate to have a value for 322 this field that post-dates the same field value in any superior 323 certificate. The same caveats apply to Relying Party's assumptions 324 relating to the certificate's validity at any time other than the 325 current time, 327 While a CA is typically advised against issuing a certificate with a 328 validity interval that exceeds the validity interval of the CA's 329 certificate that will be used to validate the issued certificate, in 330 the context of this profile, it is anticipated that a CA may have 331 valid grounds to issue a certificate with a validity interval that 332 exceeds the validity interval of its certificate. 334 3.8. Subject Public Key Info 336 This field specifies the subject's public key and the algorithm with 337 which the key is used. The public key algorithm MUST be RSA, and, 338 accordingly, the OID for the public key algorithm is 339 1.2.840.113549.1.1.1. The key size MUST be a minimum size of 2048 340 bits. 342 It is noted that larger key sizes are computationally expensive for 343 both the CA and relying parties, indicating that care should be taken 344 when deciding to use larger than the minimum key size noted above. 346 3.9. Resource Certificate Version 3 Extension Fields 348 As noted in Section 4.2 of [RFC5280], each extension in a certificate 349 is designated as either critical or non-critical. A certificate- 350 using system MUST reject the certificate if it encounters a critical 351 extension it does not recognize; however, a non-critical extension 352 MAY be ignored if it is not recognized [RFC5280]. 354 The following X.509 V3 extensions MUST be present in a conforming 355 Resource Certificate, except where explicitly noted otherwise. 357 3.9.1. Basic Constraints 359 The basic constraints extension identifies whether the subject of the 360 certificate is a CA and the maximum depth of valid certification 361 paths that include this certificate. 363 The issuer determines whether the "cA" boolean is set. If this bit 364 is set, then it indicates that the subject is allowed to issue 365 resources certificates within this overall framework (i.e. the 366 subject is a CA). 368 The Path Length Constraint is not specified in this profile and MUST 369 NOT be present. 371 The Basic Constraints extension field is a critical extension in the 372 Resource Certificate profile, and MUST be present when the subject is 373 a CA, and MUST NOT be present otherwise. 375 3.9.2. Subject Key Identifier 377 The subject key identifier extension provides a means of identifying 378 certificates that contain a particular public key. To facilitate 379 certification path construction, this extension MUST appear in all 380 Resource Certificates. This extension is non-critical. 382 The value of the subject key identifier MUST be the value placed in 383 the key identifier field of the Authority Key Identifier extension of 384 all certificates issued by this subject. 386 The Key Identifier used here is the 160-bit SHA-1 hash of the value 387 of the DER-encoded ASN.1 bit string of the subject public key, as 388 described in Section 4.2.1.2 of [RFC5280]. 390 3.9.3. Authority Key Identifier 392 The authority key identifier extension provides a means of 393 identifying certificates that are signed by the issuer's private key, 394 by providing a hash value of the issuer's public key. To facilitate 395 path construction, this extension MUST appear in all Resource 396 Certificates. The keyIdentifier MUST be present in all Resource 397 Certificates, with the exception of a CA who issues a "self-signed" 398 certificate. The authorityCertIssuer and authorityCertSerialNumber 399 fields MUST NOT be present. This extension is non-critical. 401 The Key Identifier used here is the 160-bit SHA-1 hash of the value 402 of the DER-encoded ASN.1 bit string of the issuer's public key, as 403 described in Section 4.2.1.1 of [RFC5280]. 405 3.9.4. Key Usage 407 This describes the purpose of the certificate. This is a critical 408 extension, and it MUST be present. 410 In certificates issued to Certification Authorities only the 411 keyCertSign and CRLSign bits are set to TRUE and these MUST be the 412 only bits set to TRUE. 414 In end-entity certificates the digitalSignature bit MUST be set to 415 TRUE and MUST be the only bit set to TRUE. 417 3.9.5. CRL Distribution Points 419 This field (CRLDP) identifies the location(s) of the CRL(s) 420 associated with certificates issued by this Issuer. This profile 421 uses the URI form of object identification. The preferred URI access 422 mechanism is a single RSYNC URI ("rsync://") [rsync] that references 423 a single inclusive CRL for each issuer. 425 In this profile the certificate issuer is also the CRL issuer, 426 implying at the CRLIssuer field MUST be omitted, and the 427 distributionPoint field MUST be present. The Reasons field MUST be 428 omitted. 430 The distributionPoint MUST contain GeneralNames, and MUST NOT contain 431 a nameRelativeToCRLIssuer. The form of the generalName MUST be of 432 type URI. 434 In this profile, the scope of the CRL is specified to be all 435 certificates issued by this CA issuer. 437 The sequence of distributionPoint values MUST contain only a single 438 DistributionPointName set. The DistributionPointName set MAY contain 439 more than one URI value. An RSYNC URI MUST be present in the 440 DistributionPointName set, and reference the most recent instance of 441 this issuer's certificate revocation list. Other access form URIs 442 MAY be used in addition to the RSYNC URI. 444 This extension MUST be present and it is non-critical. There is one 445 exception, namely where a CA distributes its public key in the form 446 of a "self-signed" certificate, the CRLDP MUST be omitted. 448 3.9.6. Authority Information Access 450 This extension (AIA) identifies the point of publication of the 451 certificate that is issued by the issuer's immediate superior CA, 452 where this certificate's issuer is the subject. In this profile a 453 single reference object to publication location of the immediate 454 superior certificate MUST be used, except in the case where a CA 455 distributes its public key in the form of a "self-signed" 456 certificate, in which case the AIA field SHOULD be omitted. 458 This profile uses a URI form of object identification. The preferred 459 URI access mechanisms is "rsync", and an RSYNC URI MUST be specified 460 with an accessMethod value of id-ad-caIssuers. The URI MUST 461 reference the point of publication of the certificate where this 462 issuer is the subject (the issuer's immediate superior certificate). 463 Other accessMethod URIs referencing the same object MAY also be 464 included in the value sequence of this extension. 466 When an Issuer re-issues a CA certificate, the subordinate 467 certificates need to reference this new certificate via the AIA 468 field. In order to avoid the situation where a certificate re- 469 issuance necessarily implies a requirement to re-issue all 470 subordinate certificates, CA Certificate issuers SHOULD use a 471 persistent URL name scheme for issued certificates. This implies 472 that re-issued certificates overwrite previously issued certificates 473 to the same subject in the publication repository, and use the same 474 publication name as previously issued certificates. In this way 475 subordinate certificates can maintain a constant AIA field value and 476 need not be re-issued due solely to a re-issue of the superior 477 certificate. The issuers' policy with respect to the persistence of 478 name objects of issued certificates MUST be specified in the Issuer's 479 Certification Practice Statement. 481 This extension is non-critical. 483 3.9.7. Subject Information Access 485 This extension (SIA) identifies the location of information and 486 services relating to the subject of the certificate in which the SIA 487 extension appears. Where the Subject is a CA in this profile, this 488 information and service collection will include all current valid 489 certificates that have been issued by this subject that are signed 490 with the subject's corresponding private key. 492 This profile uses a URI form of location identification. The 493 preferred URI access mechanism is "rsync", and an RSYNC URI MUST be 494 specified, with an accessMethod value of id-ad-caRepository when the 495 subject of the certificate is a CA. The RSYNC URI MUST reference an 496 object collection rather than an individual object and MUST use a 497 trailing '/' in the URI. 499 Other accessMethod URIs that reference the same location MAY also be 500 included in the value sequence of this extension. The ordering of 501 URIs in this sequence reflect the subject's relative preferences for 502 access methods to be used by parties for retrieval of objects from 503 the associated repository publication point, with the first method in 504 the accessMethod sequence being the most preferred. 506 This extension MUST be present when the subject is a CA, and is non- 507 critical. 509 For End Entity (EE) certificates, where the subject is not a CA, this 510 extension MAY be present, and is non-critical. If present, it either 511 references the location where objects signed by the private key 512 associated with the EE certificate can be accessed, or, in the case 513 of single-use EE certificates it references the location of the 514 single object that has been signed by the corresponding private key. 516 When the subject is an End Entity, and it publishes objects signed 517 with the matching private key in a repository, the directory where 518 these signed objects is published is referenced the id-ad- 519 signedObjectRepository OID. 521 id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } 523 id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 } 525 When the subject is an End Entity, and it publishes a single object 526 signed with the matching private key, the location where this signed 527 object is published is referenced the id-ad-signedObject OID. 529 id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } 531 This profile requires the use of repository publication manifests 532 [ID.sidr-manifests] to list all signed objects that are deposited in 533 the repository publication point associated with a CA or an EE. The 534 publication point of the manifest for a CA or EE is placed in the SIA 535 extension of the CA or EE certificate. This profile uses a URI form 536 of manifest identification for the accessLocation. The preferred URI 537 access mechanisms is "rsync", and an RSYNC URI MUST be specified. 538 Other accessDescription fields may exist for the id-ad-rpkiManifest 539 accessMethod, where the accessLocation value indicates alternate URI 540 access mechanisms for the same manifest object. 542 id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } 544 CA certificates MUST include in the SIA an accessMethod OID of id-ad- 545 rpkiManifest, where the associated accessLocation refers to the 546 subject's published manifest object as an object URL. 548 When an EE certificate is intended for use in verifying multiple 549 objects, EE certificate MUST include in the SIA an accessMethod OID 550 of id-ad-rpkiManifest, where the associated accessLocation refers to 551 the EE's published manifest object as an object URL. 553 When an EE certificate is used to verify a single published object, 554 the EE certificate MUST include in the SIA an accessMethod OID of id- 555 ad-signedObject, where the associated accessLocation refers to the 556 publication point of the single object that is verified using this EE 557 certificate. In this case, the SIA MUST NOT include the accessMethod 558 OID of id-ad-rpkiManifest. 560 3.9.8. Certificate Policies 562 This extension MUST reference the Resource Certificate Policy, using 563 the OID Policy Identifier value of "1.3.6.1.5.5.7.14.2". This field 564 MUST be present and MUST contain only this value for Resource 565 Certificates. 567 No PolicyQualifiers are defined for use with this policy and thus 568 none must be included in this extension. 570 This extension MUST be present and it is critical. 572 3.9.9. IP Resources 574 This extension contains the list of IP address resources as per 575 [RFC3779]. The value may specify the "inherit" element for a 576 particular AFI value. In the context of resource certificates 577 describing public number resources for use in the public Internet, 578 the SAFI value MUST NOT be used. All Resource Certificates MUST 579 include an IP Resources extension, an AS Resources extension, or both 580 extensions. 582 This extension, if present, MUST be marked critical. 584 3.9.10. AS Resources 586 This extension contains the list of AS number resources as per 587 [RFC3779], or may specify the "inherit" element. RDI values are NOT 588 supported in this profile and MUST NOT be used. All Resource 589 Certificates MUST include an IP Resources extension, an AS Resources 590 extension, or both extensions. 592 This extension, if present, MUST be marked critical. 594 4. Resource Certificate Revocation List Profile 596 Each CA MUST issue a version 2 Certificate Revocation List (CRL), 597 consistent with [RFC5280]. The CRL issuer is the CA, and no indirect 598 CRLs are supported in this profile. 600 An entry MUST NOT be removed from the CRL until it appears on one 601 regularly scheduled CRL issued beyond the revoked certificate's 602 validity period, as required in [RFC5280]. 604 This profile does not allow issuance of Delta CRLs. 606 The scope of the CRL MUST be "all certificates issued by this CA". 607 The contents of the CRL are a list of all non-expired certificates 608 that have been revoked by the CA. 610 No CRL fields other than those listed here are permitted in CRLs 611 issued under this profile. Unless otherwise indicated, these fields 612 MUST be present in the CRL. Where two or more CRLs issued by a 613 single CA with the same scope, the CRL with the highest value of the 614 "CRL Number" field supersedes all other CRLs issued by this CA. 616 4.1. Version 618 Resource Certificate Revocation Lists are Version 2 certificates (the 619 integer value of this field is 1). 621 4.2. Issuer Name 623 The value of this field is the X.501 name of the issuing CA who is 624 also the signer of the CRL, and is identical to the Issuer name in 625 the Resource Certificates that are issued by this issuer. 627 4.3. This Update 629 This field contains the date and time that this CRL was issued. The 630 value of this field MUST be encoded as UTCTime for dates through the 631 year 2049, and MUST be encoded as GeneralizedTime for dates in the 632 year 2050 or later. 634 4.4. Next Update 636 This is the date and time by which the next CRL SHOULD be issued. 637 The value of this field MUST be encoded as UTCTime for dates through 638 the year 2049, and MUST be encoded as GeneralizedTime for dates in 639 the year 2050 or later. 641 4.5. Signature 643 This field contains the algorithm used to sign this CRL. This 644 profile specifies a default of SHA-256 with RSA 645 (sha256WithRSAEncryption), and allows for the use of SHA-384 or SHA- 646 512. 648 It is noted that larger key sizes are computationally expensive for 649 both the CRL Issuer and relying parties, indicating that care should 650 be taken when deciding to use larger than the default key size. 652 4.6. Revoked Certificate List 654 When there are no revoked certificates, then the revoked certificate 655 list MUST be absent. 657 For each revoked resource certificate only the following fields MUST 658 be present. No CRL entry extensions are supported in this profile, 659 and CRL entry extensions MUST NOT be present in a CRL. 661 4.6.1. Serial Number 663 The serial number of the revoked certificate. 665 4.6.2. Revocation Date 667 The time the certificate was revoked. This time MUST NOT be a future 668 date (i.e., a date later than ThisUpdate). The value of this field 669 MUST be encoded as UTCTime for dates through the year 2049, and MUST 670 be encoded as GeneralizedTime for dates in the year 2050 or later. 672 4.7. CRL Extensions 674 The X.509 v2 CRL format allows extensions to be placed in a CRL. The 675 following extensions are supported in this profile, and MUST be 676 present in a CRL. 678 4.7.1. Authority Key Identifier 680 The authority key identifier extension provides a means of 681 identifying the public key corresponding to the private key used to 682 sign a CRL. Conforming CRL issuers MUST use the key identifier 683 method. The syntax for this CRL extension is defined in section 684 4.2.1.1 of [RFC5280]. 686 This extension is non-critical. 688 4.7.2. CRL Number 690 The CRL Number extension conveys a monotonically increasing sequence 691 number of positive integers for a given CA and scope. This extension 692 allows users to easily determine when a particular CRL supersedes 693 another CRL. The highest CRL Number value supersedes all other CRLs 694 issued by the CA with the same scope. 696 This extension is non-critical. 698 5. Resource Certificate Request Profile 700 A resource certificate request MAY use either of PKCS#10 or 701 Certificate Request Message Format (CRMF). A CA Issuer MUST support 702 PKCS#10 and a CA Issuer may, with mutual consent of the subject, 703 support CRMF. 705 5.1. PCKS#10 Profile 707 This profile refines the specification in [RFC2986], as it relates to 708 Resource Certificates. A Certificate Request Message object, 709 formatted according to PKCS#10, is passed to a CA as the initial step 710 in issuing a certificate. 712 This request may be conveyed to the CA via a Registration Authority 713 (RA), acting under the direction of a Subject. 715 With the exception of the public key related fields, the CA is 716 permitted to alter any requested field when issuing a corresponding 717 certificate. 719 5.1.1. PKCS#10 Resource Certificate Request Template Fields 721 This profile applies the following additional constraints to fields 722 that may appear in a CertificationRequestInfo: 724 Version 725 This field is mandatory and MUST have the value 0. 727 Subject 728 This field is optional. If present, the value of this field 729 SHOULD be empty, in which case the issuer MUST generate a 730 subject name that is unique in the context of certificates 731 issued by this issuer. If the value of this field is non- 732 empty, then the CA MAY consider the value of this field as the 733 subject's suggested subject name, but the CA is NOT bound to 734 honor this suggestion, as the subject name MUST be unique per 735 subordinate CA and EE in certificates issued by this issuer. 737 SubjectPublicKeyInfo 738 This field specifies the subject's public key and the algorithm 739 with which the key is used. The public key algorithm MUST be 740 RSA, and the OID for the algorithm is 1.2.840.113549.1.1.1. 741 This field also includes a bit-string representation of the 742 entity's public key. For the RSA public-key algorithm the bit 743 string contains the DER encoding of a value of PKCS #1 type 744 RSAPublicKey. 746 Attributes 747 [RFC2986] defines the attributes field as key-value pairs where 748 the key is an OID and the value's structure depends on the key. 750 The only attribute used in this profile is the ExtensionRequest 751 attribute as defined in [RFC2985]. This attribute contains 752 X509v3 Certificate Extensions. The profile for extensions in 753 certificate requests is specified in Section 5.3. 755 This profile applies the following additional constraints to fields 756 that MAY appear in a CertificationRequest Object: 758 signatureAlgorithm 759 This profile specifies a default of SHA-256 with RSA 760 (sha256WithRSAEncryption), and allows for the use of SHA-384 or 761 SHA-512. Accordingly, the value for this field MUST be one of 762 the OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } 763 [RFC4055]. 765 It is noted that larger key sizes are computationally expensive 766 for both the CA and relying parties, indicating that care 767 should be taken when deciding to use larger than the default 768 key size. 770 5.2. CRMF Profile 772 This profile refines the Certificate Request Message Format (CRMF) 773 specification in [RFC4211], as it relates to Resource Certificates. 774 A Certificate Request Message object, formatted according to the 775 CRMF, is passed to a CA as the initial step in issuing a certificate. 777 This request MAY be conveyed to the CA via a Registration Authority 778 (RA), acting under the direction of a subject. 780 With the exception of the public key related fields, the CA is 781 permitted to alter any requested field when issuing a corresponding 782 certificate. 784 5.2.1. CRMF Resource Certificate Request Template Fields 786 This profile applies the following additional constraints to fields 787 that may appear in a Certificate Request Template: 789 Version 790 This field MAY be absent, or MAY specify the request of a 791 Version 3 Certificate. It SHOULD be omitted. 793 SerialNumber 794 As per [RFC4211], this field is assigned by the CA and MUST be 795 omitted in this profile. 797 SigningAlgorithm 798 As per [RFC4211], this field is assigned by the CA and MUST be 799 omitted in this profile. 801 Issuer 802 This field is assigned by the CA and MUST be omitted in this 803 profile. 805 Validity 806 This field MAY be omitted. If omitted, the CA will issue a 807 Certificate with Validity dates as determined by the CA. If 808 specified, then the CA MAY override the requested values with 809 dates as determined by the CA. 811 Subject 812 This field is optional. If present, the value of this field 813 SHOULD be empty, in which case the issuer MUST generate a 814 subject name that is unique in the context of certificates 815 issued by this issuer. If the value of this field is non- 816 empty, then the CA MAY consider the value of this field as the 817 subject's suggested subject name, but the CA is NOT bound to 818 honor this suggestion, as the subject name MUST be unique per 819 issuer in certificates issued by this issuer. 821 PublicKey 822 This field MUST be present. 824 extensions 825 This attribute contains X509v3 Certificate Extensions. The 826 profile for extensions in certificate requests is specified in 827 Section 5.3. 829 5.2.2. Resource Certificate Request Control Fields 831 The following control fields are supported in this profile: 833 Authenticator Control 834 It is noted that the intended model of authentication of the 835 subject is a long term one, and the advice as offered in 836 [RFC4211] is that the Authenticator Control field be used. 838 5.3. Certificate Extension Attributes in Certificate Requests 840 The following extensions MAY appear in a PKCS#10 or CRMF Certificate 841 Request. Any other extensions MUST NOT appear in a Certificate 842 Request. This profile places the following additional constraints on 843 these extensions.: 845 BasicConstraints 846 If this is omitted then the CA will issue an end entity 847 certificate with the BasicConstraints extension not present in 848 the issued certificate. 850 The Path Length Constraint is not supported in this Resource 851 Certificate Profile, and this field MUST be omitted in this 852 profile. 854 The CA MAY honor the SubjectType CA bit set to on. If this bit 855 is set, then it indicates that the Subject is allowed to issue 856 resource certificates within this overall framework. 858 The CA MUST honor the SubjectType CA bit set to off (End Entity 859 certificate request), in which case the corresponding end 860 entity certificate will not contain a BasicConstraints 861 extension. 863 SubjectKeyIdentifier 864 This field is assigned by the CA and MUST be omitted in this 865 profile. 867 AuthorityKeyIdentifier 868 This field is assigned by the CA and MUST be omitted in this 869 profile. 871 KeyUsage 872 The CA MAY honor KeyUsage extensions of keyCertSign and cRLSign 873 if present, as long as this is consistent with the 874 BasicConstraints SubjectType sub field, when specified. 876 SubjectInformationAccess 877 This field MUST be present when the subject is a CA, and the 878 field value SHOULD be honored by the CA. If the CA is not able 879 to honor the requested field value, then the CA MUST reject the 880 Certificate Request. 882 This field (SIA) identifies the location of information and 883 services relating to the subject of the certificate in which 884 the SIA extension appears. 886 Where the subject is a CA in this profile, this information and 887 service collection will include all current valid certificates 888 that have been issued by this subject that are signed with the 889 subject's corresponding private key. 891 This profile uses a URI form of location identification. An 892 RSYNC URI MUST be specified, with an accessMethod value of id- 893 ad-caRepository when the subject of the certificate is a CA. 894 The RSYNC URI MUST reference an object collection rather than 895 an individual object and MUST use a trailing '/' in the URI. 896 Other accessMethod URIs that reference the same location MAY 897 also be included in the value sequence of this extension. The 898 ordering of URIs in this sequence reflect the subject's 899 relative preferences for access methods, with the first method 900 in the sequence being the most preferred by the Subject. 902 A request for a CA certificate MUST include in the SIA of the 903 request the id-ad-caRepository accessMethod, and also MUST 904 include in the SIA of the request the accessMethod OID of id- 905 ad-rpkiManifest, where the associated accessLocation refers to 906 the subject's published manifest object as an object URL. 908 This field MAY be present when the subject is a EE. If it is 909 present the field value SHOULD be honored by the CA. If the CA 910 is not able to honor the requested field value, then the CA 911 MUST reject the Certificate Request. If it is not present the 912 CA SHOULD honor this request and omit the SIA from the issued 913 certificate. If the CA is not able to honor the request to 914 omit the SIA, then the CA MUST reject the Certificate Request. 916 When an EE certificate is intended for use in verifying 917 multiple objects, the certificate request for the EE 918 certificate MUST include in the SIA of the request an 919 accessMethod OID of id-ad-signedObjectRepository, and also MUST 920 include in the SIA of the request an accessMethod OID of id-ad- 921 rpkiManifest, where the associated access location refers to 922 the publication point of the manifest object describing all 923 objects that are verified using this EE certificate. 925 When an EE certificate is used to sign a single published 926 object, the certificate request for the EE certificate MUST 927 include in the SIA of the request an accessMethod OID of id-ad- 928 signedObject, where the associated accessLocation refers to the 929 publication point of the single object that is verified using 930 this EE certificate, and MUST NOT include an id-ad-rpkiManifest 931 accessMethod OID in the SIA of the request. 933 In the case when the EE certificate is to be used exclusively 934 to sign one or more unpublished objects, such that the all 935 signed objects will not be published in any RPKI repository, 936 then the SIA SHOULD be omitted from the request. 938 CRLDistributionPoints 939 This field is assigned by the CA and MUST be omitted in this 940 profile. 942 AuthorityInformationAccess 943 This field is assigned by the CA and MUST be omitted in this 944 profile. 946 CertificatePolicies 947 This field is assigned by the CA and MUST be omitted in this 948 profile. 950 With the exceptions of the publicKey field and the 951 SubjectInformationAccess field, the CA is permitted to alter any 952 requested field. 954 6. Resource Certificate Validation 956 This section describes the Resource Certificate validation procedure. 957 This refines the generic procedure described in section 6 of 958 [RFC5280]. 960 To meet this goal, the path validation process verifies, among other 961 things, that a prospective certification path (a sequence of n 962 certificates) satisfies the following conditions: 964 1. for all x in {1, ..., n-1}, the subject of certificate x is 965 the issuer of certificate x+1; 967 2. certificate 1 is issued by a trust anchor (Note that a trust 968 anchor is NOT a resource certificate in this context and thus 969 does not contain RFC 3779 extensions.); 971 3. certificate n is the certificate to be validated; and 973 4. for all x in {1, ..., n}, the certificate is valid. 975 6.1. Resource Extension Validation 977 The IP resource extension definition [RFC3779] defines a critical 978 extensions for Internet number resources. These are ASN.1 encoded 979 representations of the IPv4 and IPv6 address range (either as a 980 prefix/length, or start-end pair) and the AS number set. 982 Valid Resource Certificates MUST have a valid IP address and/or AS 983 number resource extension. In order to validate a Resource 984 Certificate the resource extension MUST also be validated. This 985 validation process relies on definitions of comparison of resource 986 sets: 988 more specific 989 Given two IP address or AS number contiguous ranges, A and B, A 990 is "more specific" than B if range B includes all IP addresses 991 or AS numbers described by range A, and if range B is larger 992 than range A. 994 equal 995 Given two IP address or AS number contiguous ranges, A and B, A 996 is "equal" to B if range A describes precisely the same 997 collection of IP addresses or AS numbers as described by range 998 B. The definition of "inheritance" in [RFC3779] is equivalent 999 to this "equality" comparison. 1001 encompass 1002 Given two IP address and AS number sets X and Y, X 1003 "encompasses" Y if, for every contiguous range of IP addresses 1004 or AS numbers elements in set Y, the range element is either 1005 more specific than or equal to a contiguous range element 1006 within the set X. 1008 Validation of a certificate's resource extension in the context of an 1009 ordered certificate sequence of {1,2, ... , n} where '1' is issued by 1010 a trust anchor and 'n' is the target certificate, and where the 1011 subject of certificate 'x' is the issuer of certificate 'x' + 1, 1012 implies that the resources described in certificate 'x' "encompass" 1013 the resources described in certificate 'x' + 1, and the resources 1014 described in the trust anchor information "encompass" the resources 1015 described in certificate 1. 1017 6.2. Resource Certification Path Validation 1019 Validation of signed resource data using a target resource 1020 certificate consists of assembling an ordered sequence (or 1021 'Certification Path') of certificates ({1,2,...n} where '1' is a 1022 certificate that has been issued by a trust anchor, and 'n' is the 1023 target certificate) verifying that all of the following conditions 1024 hold: 1026 1. The certificate can be verified using the Issuer's public key 1027 and the signature algorithm 1029 2. The current time lies within the certificate's Validity From 1030 and To values. 1032 3. The certificate contains all fields that MUST be present and 1033 contains field values as specified in this profile for all 1034 field values that MUST be present. 1036 4. No field value that MUST NOT be present in this profile is 1037 present in the certificate. 1039 5. The Issuer has not revoked the certificate by placing the 1040 certificate's serial number on the Issuer's current 1041 Certificate Revocation List, and the Certificate Revocation 1042 List is itself valid. 1044 6. That the resource extension data is "encompassed" by the 1045 resource extension data contained in a valid certificate where 1046 this Issuer is the Subject (the previous certificate in the 1047 ordered sequence) 1049 7. The Certification Path originates with a certificate issued by 1050 a trust anchor, and there exists a signing chain across the 1051 Certification Path where the Subject of Certificate x in the 1052 Certification Path matches the Issuer in Certificate x+1 in 1053 the Certification Path. 1055 A certificate validation algorithm may perform these tests in any 1056 chosen order. 1058 Certificates and CRLs used in this process may be found in a locally 1059 maintained cache, maintained by a regular synchronization across the 1060 distributed publication repository structure. 1062 There exists the possibility of encountering certificate paths that 1063 are arbitrarily long, or attempting to generate paths with loops as 1064 means of creating a potential DOS attack on a relying party. Some 1065 further heuristics may be required to halt the certification path 1066 validation process in order to avoid some of the issues associated 1067 with attempts to validate such structures. It is suggested that 1068 implementations of Resource Certificate validation MAY halt with a 1069 validation failure if the certification path length exceeds a locally 1070 defined configuration parameter. 1072 6.3. Trust Anchors for Resource Certificates 1074 The default trust model for the resource certificate PKI maps to the 1075 extant public resource allocation system, comprised of IANA, RIRs, 1076 NIRs (in some regions) and LIRs. This is a strict hierarchy, in that 1077 any number resource and a corresponding recipient entity has only one 1078 'parent' issuing registry for that resource. Moreover, the issuing 1079 registry is not a direct or indirect subordinate recipient entity of 1080 the recipient entity in question (i.e., there are no loops in the 1081 model). 1083 Nonetheless, as in any PKI, selection of one or more entities as 1084 trust anchor is a task undertaken by each relying party. The 1085 structure of the resource certificate profile admits the same variety 1086 of trust models as PKIX (and X.509) standards. There is only one 1087 additional caveat on the general applicability of trust models, 1088 namely that in forming a validation path to a CA, the sequence of 1089 resource certificates MUST preserve the resource extension validation 1090 property, as described in Section 6.1. [RFC3779] establishes this 1091 requirement for certificate path validation when the extensions 1092 defined therein are employed. This poses a problem in the RPKI, as 1093 explained below. 1095 Based on experience, a top level resource certificate held by a 1096 registry will change several times a year, in response to receipt of 1097 additional resource allocations. This makes such certificates poor 1098 candidates as trust anchors, since one usually views a trust anchor 1099 as a long-lived set of data. Yet [RFC3779] requires that the trust 1100 anchor used for validation of certificates contains resource 1101 extensions MUST itself contain such extensions, and the extensions 1102 must be a superset of extensions contained in subordinate 1103 certificates in the path. 1105 This observation motivates a two-tier trust anchor model for the 1106 RPKI. The top tier trust anchor for each RIR (and IANA) will be a 1107 self-signed certificate that contains no resource extensions. It is 1108 a resource certificate as defined in this document, except for that 1109 one omission. This certificate will be referred to as a "registry 1110 root certificate" (RRC) or registry TA certificate. (Note that the 1111 term "registry" here is not intended to preclude use of this 1112 mechanism by other than the RIRs and the IANA.) Under this 1113 certificate one EE certificate is issued; that certificate also 1114 contains no resource extensions. The EE certificate is used to 1115 validate a CMS signed object that contains a self-signed certificate 1116 that itself contains resource extensions, and this self-signed 1117 certificate acts as a TA for resource certificate path validation. 1118 This latter certificate will be referred to as an RPKI TA 1119 (certificate). 1121 Both the registry TA and the RPKI TA will be represented as self- 1122 signed certificates, consistent with the wide-spread convention that 1123 is allowed (thought not mandated) by [RFC5280]. Following this 1124 convention makes it easier to reuse existing PKI software (e.g., 1125 OpenSSL) to process this trust anchor material. 1127 6.3.1. Distribution Format of Default Trust Anchor Material 1129 In the RPKI, the certificate framework corresponds to the hierarchies 1130 of the resource distribution function. In consideration of this, it 1131 is reasonable to nominate to relying parties a default set of trust 1132 anchor pairs (registry TA and RPKI TA) for the RPKI that correspond 1133 to the entities who operate at the upper levels of the associated 1134 resource allocation hierarchy. The corresponding nominated trust 1135 anchor CA(s) should therefore map, in some fashion, to apex point(s) 1136 of the hierarchical resource distribution structure. 1138 The characteristics of a trust anchor framework for the RPKI includes 1139 the following considerations: 1141 * The entity or entities that issue proposed trust anchor 1142 material for the RPKI should be as close as possible to the 1143 apex of the associated resource distribution hierarchy. 1145 * Such trust anchor material SHOULD be long-lived. As it can be 1146 reasonably anticipated that default trust anchor material would 1147 be distributed with relying party validation software, the 1148 implication is that the distributed default trust anchor 1149 material SHOULD remain constant for extended time intervals. 1151 * It is a poor trust model when any entity that issues putative 1152 trust anchor material claims to be authoritative for 1153 information or actions of which the entity has no direct 1154 knowledge, nor is in possession of a current definitive record 1155 of such actions. Entities who propose themselves in a role of 1156 a trust anchor issuer SHOULD be able to point to corroborative 1157 material supporting the assertion that they are legitimate 1158 authorities for the information for which they are representing 1159 themselves as a trust anchor for relying parties. 1161 An entity offering itself as a putative trust anchor for a part of 1162 the RPKI is required to regularly publish an RPKI CA certificate at a 1163 stable URL, and to publish at this URL trust anchor material, as 1164 follows: 1166 * The entity issues a registry root certificate (self-signed). 1167 This certificate is used to bootstrap validation of an RPKI TA 1168 (self-signed) certificate, as described below. The RPKI TA 1169 certificate MUST meet all of the criteria established in 1170 Section 3 of this document for a self-signed RPKI certificate. 1171 This certificate MUST be reissued periodically, prior to its 1172 expiration, and MUST be reissued upon any change in the 1173 resource set that has been allocated to the entity operating 1174 this CA. The validity interval of this certificate SHOULD 1175 reflect the anticipated period of changes to the entity's 1176 resource set . 1178 * The entity maintains a trust anchor key pair that is distinct 1179 from the key pair represented in the RPKI TA certificate noted 1180 above. 1182 * The entity issues a (self-signed) CA certificate that contains 1183 no RFC 3779 extension. This is called the RPKI TA certificate. 1184 This certificate MUST have the keyCertSign sign bit set in the 1185 key usage extension, and the CA flag set in the basic 1186 constraints extension, no AIA value and no CRLDP value. The 1187 validity period of this certificate should be very long, as is 1188 the norm for trust anchor material. The SIA of this 1189 certificate references a publication point where the CRL and 1190 the CMS structure defined below are published. 1192 * The registry trust anchor issues an EE certificate (a registry 1193 TA EE certificate) with a validity period identical to the 1194 validity period of its RPKI TA certificate. This EE 1195 certificate MUST have the digitalSignature bit set, and this 1196 MUST be the only bit set to TRUE in the key usage extension. 1197 There is no BasicConstraints extension in this certificate. 1199 The validity period of this registry TA EE certificate SHOULD 1200 be aligned to the validity period of the registry TA 1201 certificate. 1203 * The registry TA regularly issues a CRL. The CRL issuance cycle 1204 SHOULD be shorter than the validity period for the RPKI TA 1205 certificate. 1207 * Each time an RPKI TA certificate is re-issued, or prior to the 1208 expiration of the registry TA EE certificate, the registry 1209 generates a Cryptographic Message Syntax (CMS) [RFC3852] 1210 signed-data object, the payload of which is an RPKI TA 1211 certificate. The object is CMS-signed with the private key 1212 corresponding to the registry TA EE certificate. The registry 1213 TA EE certificate is included as a CMS signed attribute in the 1214 CMS object. The registry TA certificate and the associated CRL 1215 are not to be included in the CMS object. The format of the 1216 CMS object is specified in Appendix C. The CMS object is 1217 published at the location referenced in the SIA of the TA CA 1218 certificate. 1220 * The entity publicly distributes the registry TA certificate as 1221 its trust anchor material, in an out-of-band fashion, e.g., as 1222 part of widely-distributed relying party software. 1224 Relying Parties can assemble the default trust anchor collection by 1225 using the registry TA certificate for each nominated trust anchor: 1227 * The TA's CRL and CMS objects can be retrieved from the 1228 publication point referenced by the SIA in the registry TA 1229 certificate. 1231 * The CRL can be verified against the registry TA certificate. 1233 * The CMS signature can be verified using the included registry 1234 TA EE certificate together with the retrieved CRL and the 1235 (self-signed) TA certificate. 1237 * The relying party can then load the enclosed RPKI TA CA 1238 certificate as a trust anchor for validation fof those 1239 resources described in the IP Resource extensions [RFC3779] of 1240 this RPKI certificate. 1242 Relying Parties SHOULD perform this retrieval and validation 1243 operation at intervals no less frequent than the nextUpdate time of 1244 the published TA CA CRL, and SHOULD perform the retrieval operation 1245 prior to the expiration of the registry TA EE certificate, or upon 1246 revocation of the registry TA EE certificate that is used to verify 1247 the CMS object that holds the trust anchor's current RPKI TA CA 1248 certificate. 1250 If a trust anchor chooses to reissue its RPKI TA CA certificate 1251 before the expiration of that certificate, it MUST perform the follow 1252 actions: revise the nextUpdate time of the registry TA's CRL to 1253 reflect the issue date for the new registry TA EE certificate, issue 1254 a new registry TA EE certificate and a new CMS object with the new 1255 RPKI TA CA certificate, and revoke the old TA EE certificate at the 1256 nextUpdate time in the next issued CRL. This revocation will provide 1257 an indication to relying parties to perform the retrieval operation 1258 of the RPKI TA CA certificate at a time earlier than the normal 1259 update cycle time. 1261 7. Design Notes 1263 The following notes provide some additional commentary on the 1264 considerations that lie behind some of the design choices that were 1265 made in the design of this certificate profile. These notes do not 1266 constitute a formal part of the profile specification, and the 1267 interpretation of key words as defined in RFC2119 are not applicable 1268 in this section of the document. 1270 Certificate Extensions: 1271 This profile does not permit the use of any other critical or 1272 non-critical extensions. The rationale for this restriction is 1273 that the resource certificate profile is intended for a 1274 specific use, and in this context it is not seen as being 1275 appropriate to be in the position of having certificates with 1276 additional non-critical extensions that relying parties may see 1277 as valid certificates without understanding the extensions, but 1278 were the relying party in a position to understand the 1279 extensions, would contradict or qualify in some way this 1280 original judgment of validity. This profile takes the position 1281 of minimalism over extensibility. The specific goal for the 1282 associated Resource Public Key Infrastructure to precisely 1283 match the IP number resource allocation structure through an 1284 aligned certificate structure that describes the allocation and 1285 its context within the number resource distribution hierarchy. 1286 The profile defines a resource certificate that is structured 1287 to meet these requirements. 1289 Certification Authorities and Key Values: 1290 This profile uses a definition of an instance of a CA as a 1291 combination of a named entity and a key pair. Within this 1292 definition a CA instance cannot rollover a key pair. However, 1293 the entity can generate a new instance of a CA with a new key 1294 pair and roll over all the signed subordinate products to the 1295 new CA. 1297 This has a number of implications in terms of subject name 1298 management, CRL Scope and repository publication point 1299 management. 1301 Subject Name: 1302 For Subject Names the issuer should ensure that when an 1303 entity requests a certificate with a new key pair, the CA 1304 issues a certificate with a new subject name. One way to 1305 achieve this is for the issuer to use a mapping of the 1306 hash of the subject public key value into a character 1307 string for a CommonName that becomes the CA Subject Name. 1309 CRL Scope: 1310 For CRL Scope this profile specifies that a CA issues a 1311 single CRL sequence, and the scope of the CRL is all 1312 certificates issued by this CA. Because the CA instance 1313 is bound to a single key pair this implies that the CA's 1314 public key, the key used to validate the CA's CRL, and 1315 the key used to validate the certificates revoked by that 1316 CRL are all the same. 1318 Repository Publication Point: 1319 The definition of a CA affects the design of the 1320 repository publication system. In order to minimize the 1321 amount of forced re-certification on key rollover events, 1322 a repository publication regime that uses the same 1323 repository publication point for all CA instances that 1324 refers to the same entity, but with different key values 1325 will minimize the extent of re-generation of certificates 1326 to only immediate subordinate certificates. 1328 In order for two or more CA instances to share a single 1329 repository publication point there needs to be a regime 1330 of key management into OLD, CURRENT and FUTURE keys and a 1331 similar regime of OLD, CURRENT and FUTURE CAs. An OLD CA 1332 should regularly publish its CRL for as long as the OLD 1333 CA instance is still valid, and issue EE certificates as 1334 necessary to maintain a current manifest of all OLD CA 1335 published products, but it should not sign any other 1336 products. The CURRENT CA should publish its CRL, and 1337 should publish all subordinate products, as well as 1338 issuing EE certificates as necessary to maintain a 1339 current manifest of all CURRENT CA published products. 1340 FUTURE CAs should publish no products at all in the 1341 repository publication point. It would be consistent 1342 with this repository object name framework for the CRL 1343 and manifest to be published using object names derived 1344 from the hash of the public key value of the CA instance. 1346 Key Rollover: 1347 As a CA instance is associated with a single key pair, there 1348 are some considerations regarding the procedure that should be 1349 followed by an entity performing a key rollover function. The 1350 entity will need to create a new CA instance and then use this 1351 new CA instance to re-issue all subordinate products with the 1352 new CA instance. 1354 To perform a key rollover operation the entity will need to: 1356 1. Generate a NEW key pair. 1358 2. Generate a certificate request with the NEW key 1359 pair and pass the request to the entity's issuer. 1361 3. Request the entity's issuer to generate and publish 1362 a NEW CA certificate, with an issuer-selected 1363 subject name that is distinct from the subject name 1364 used in conjunction with the previous subject name 1365 value for this entity. 1367 4. Mark the CURRENT CA as OLD and the NEW CA as 1368 CURRENT. 1370 5. The CURRENT CA will generate new certificates for 1371 all existing subordinate CA and EE certificates, 1372 and publish those products in the same repository 1373 publication point and with the same repository 1374 publication point name as the previous OLD 1375 subordinate CA and EE certificates. The keys in 1376 these reissued certificates MUST not change. 1378 6. Where the signing structure uses a packaging format 1379 that includes the EE certificate within the signed 1380 data, signed objects that included OLD EE 1381 certificates in their signed data will need to be 1382 re-signed using an EE certificate issued by the 1383 CURRENT CA. In the case where the OLD EE 1384 certificate is a "single use" EE certificate and 1385 the associate private key has been destroyed this 1386 will entail the generate of a new key pair, the 1387 issuing of an EE certificate by the CURRENT CA. In 1388 the case of a "multi-use" EE certificate, the EE 1389 certificate should issued using the CURRENT CA. 1390 The object, together with the issued EE 1391 certificate, should be signed with the associated 1392 private key, and published in the same repository 1393 publication point, using the same repository 1394 publication point name, as the previously signed 1395 object that it replaces (i.e. overwrite the old 1396 signed object). 1398 7. Generate a certificate revocation request for the 1399 OLD CA certificate and pass it to the entity's 1400 issuer. 1402 8. Remove all published OLD CA products and destroy 1403 the OLD private key. 1405 Name Uniqueness: 1406 This profile specifies that subject names must be unique per 1407 issuer, and does not specify that subject names must be 1408 globally unique. 1410 Given that the Resource Certificate PKI is a distributed PKI, 1411 there is no inherent ability for Certification authorities to 1412 coordinate PKI-wide unique subject names. IANA and the RIRs 1413 SHOULD use multi-attribute, structured Subject names in their 1414 RPKI certificates. All other entities (NIRs, LIRs, etc.) MUST 1415 be issued certificates in which the Subject name contains a 1416 single relative distinguished name, consisting of a CommonName 1417 attribute. This restriction is motivated by the need to change 1418 the names of these CAs when key rollover occurs, and to 1419 minimize liability for issuers in the RPKI. Also, as the 1420 publication repository is distributed, and distinct entities 1421 use distinct repository publication points any potential 1422 ambiguity is resolved by the distinct publication point. 1424 8. Security Considerations 1426 The Security Considerations of [RFC5280] and [RFC3779]apply to 1427 Resource Certificates as defined by this profile, and their use. 1429 A Resource Certificate PKI cannot in and of itself resolve any forms 1430 of ambiguity relating to uniqueness of assertions of rights of use in 1431 the event that two or more valid certificates encompass the same 1432 resource. If the issuance of resource certificates is aligned to the 1433 status of resource allocations and assignments then the information 1434 conveyed in a certificate is no better than the information in the 1435 allocation and assignment databases. 1437 9. IANA Considerations 1439 [Note to IANA, to be removed prior to publication: there are no IANA 1440 considerations stated in this document.] 1442 10. Acknowledgements 1444 The authors would like to particularly acknowledge the valued 1445 contribution from Stephen Kent in reviewing this document and 1446 proposing numerous sections of text that have been incorporated into 1447 the text. The authors also acknowledge the contributions of Robert 1448 Kisteleki, Randy Bush, Russ Housley, Ricardo Patara and Rob Austein 1449 in the preparation and subsequent review of this document. The 1450 document also reflects review comments received from Sean Turner and 1451 David Cooper. 1453 11. References 1455 11.1. Normative References 1457 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 1458 September 1981. 1460 [RFC2050] Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D., and 1461 J. Postel, "INTERNET REGISTRY IP ALLOCATION GUIDELINES", 1462 BCP 12, RFC 2050, November 1996. 1464 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 1465 Addresses and AS Identifiers", RFC 3779, June 2004. 1467 [RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", 1468 RFC 3852, July 2004. 1470 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 1471 Algorithms and Identifiers for RSA Cryptography for use in 1472 the Internet X.509 Public Key Infrastructure Certificate 1473 and Certificate Revocation List (CRL) Profile", RFC 4055, 1474 June 2005. 1476 [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure 1477 Certificate Request Message Format (CRMF)", RFC 4211, 1478 September 2005. 1480 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1481 Architecture", RFC 4291, February 2006. 1483 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 1484 Housley, R., and W. Polk, "Internet X.509 Public Key 1485 Infrastructure Certificate and Certificate Revocation List 1486 (CRL) Profile", RFC 5280, May 2008. 1488 [X.509] ITU-T, "Recommendation X.509: The Directory - 1489 Authentication Framework", 2000. 1491 11.2. Informative References 1493 [ID.sidr-arch] 1494 Lepinski, M. and S. Kent, "An Infrastructure to Support 1495 Secure Internet Routing", Work in progress: Internet 1496 Drafts draft-ietf-sidr-arch-03.txt, February 2008. 1498 [ID.sidr-manifests] 1499 Austein, R., Huston, G., Kent, S., and M. Lepinski, 1500 "Manifests for the Resource Public Key Infrastructure", 1501 Work in progress: Internet 1502 Drafts draft-ietf-sidr-rpki-manifests-00.txt, 1503 January 2008. 1505 [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object 1506 Classes and Attribute Types Version 2.0", RFC 2985, 1507 November 2000. 1509 [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification 1510 Request Syntax Specification Version 1.7", RFC 2986, 1511 November 2000. 1513 [RFC4158] Cooper, M., Dzambasow, Y., Hesse, P., Joseph, S., and R. 1514 Nicholas, "Internet X.509 Public Key Infrastructure: 1515 Certification Path Building", RFC 4158, September 2005. 1517 [rsync] Tridgell, A., "rsync", April 2006, 1518 . 1520 Appendix A. Example Resource Certificate 1522 The following is an example Resource Certificate. 1524 Certificate Name: 9JfgAEcq7Q-47IwMC5CJIJr6EJs.cer 1526 Data: 1528 Version: 3 (0x2) 1529 Serial: 1500 (0x5dc) 1530 Signature Algorithm: SHA256WithRSEEncryption 1531 Issuer: CN=APNIC Production-CVPQSgUkLy7pOXdNeVWGvnFX_0s 1532 Validity 1533 Not Before: Oct 25 12:50:00 2008 GMT 1534 Not After : Jan 31 00:00:00 2010 GMT 1535 Subject: CN=A91872ED 1536 Subject Public Key Info: 1537 Public Key Algorithm: rsaEncryption 1538 RSA Public Key: (2048 bit) 1539 Modulus (2048 bit): 1540 00:bb:fb:4a:af:a4:b9:dc:d0:fa:6f:67:cc:27:39: 1541 34:d1:80:40:37:de:88:d1:64:a2:f1:b3:fa:c6:7f: 1542 bb:51:df:e1:c7:13:92:c3:c8:a2:aa:8c:d1:11:b3: 1543 aa:99:c0:ac:54:d3:65:83:c6:13:bf:0d:9f:33:2d: 1544 39:9f:ab:5f:cd:a3:e9:a1:fb:80:7d:1d:d0:2b:48: 1545 a5:55:e6:24:1f:06:41:35:1d:00:da:1f:99:85:13: 1546 26:39:24:c5:9a:81:15:98:fb:5f:f9:84:38:e5:d6: 1547 70:ce:5a:02:ca:dd:61:85:b3:43:2d:0b:35:d5:91: 1548 98:9d:da:1e:0f:c2:f6:97:b7:97:3e:e6:fc:c1:c4: 1549 3f:30:c4:81:03:25:99:09:4c:e2:4a:85:e7:46:4b: 1550 60:63:02:43:46:51:4d:ed:fd:a1:06:84:f1:4e:98: 1551 32:da:27:ee:80:82:d4:6b:cf:31:ea:21:af:6f:bd: 1552 70:34:e9:3f:d7:e4:24:cd:b8:e0:0f:8e:80:eb:11: 1553 1f:bc:c5:7e:05:8e:5c:7b:96:26:f8:2c:17:30:7d: 1554 08:9e:a4:72:66:f5:ca:23:2b:f2:ce:54:ec:4d:d9: 1555 d9:81:72:80:19:95:57:da:91:00:d9:b1:e8:8c:33: 1556 4a:9d:3c:4a:94:bf:74:4c:30:72:9b:1e:f5:8b:00: 1557 4d:e3 1558 Exponent: 65537 (0x10001) 1559 X509v3 extensions: 1560 X509v3 Subject Key Identifier: 1561 F4:97:E0:00:47:2A:ED:0F:B8:EC:8C:0C:0B:90:89: 1562 20:9A:FA:10:9B 1564 X509v3 Authority Key Identifier: 1565 keyid:09:53:D0:4A:05:24:2F:2E:E9:39:77:4D:79: 1566 55:86:BE:71:57:FF:4B 1568 X509v3 Key Usage: critical 1569 Certificate Sign, CRL Sign 1571 X509v3 Basic Constraints: critical 1572 CA:TRUE 1574 X509v3 CRL Distribution Points: 1575 URI:rsync://rpki.apnic.net/repository/A3C38A24 1576 D60311DCAB08F31979BDBE39/CVPQSgUkLy7pOXdNe 1577 VWGvnFX_0s.crl 1579 Authority Information Access: 1580 CA Issuers - URI:rsync://rpki.apnic.net/repos 1581 itory/8BDFC7DED5FD11DCB14CF4B1A703F9B7/CVP 1582 QSgUkLy7pOXdNeVWGvnFX_0s.cer 1584 X509v3 Certificate Policies: critical 1585 Policy: 1.3.6.1.5.5.7.14.2 1587 Subject Information Access: 1588 CA Repository - URI:rsync://rpki.apnic.net/mem 1589 ber_repository/A91872ED/06A83982887911DD81 1590 3F432B2086D636/ 1591 Manifest - URI:rsync://rpki.apnic.net/member_r 1592 epository/A91872ED/06A83982887911DD813F432 1593 B2086D636/9JfgAEcq7Q-47IwMC5CJIJr6EJs.mft 1595 AutonomousSysNum: critical 1596 Autonomous System Numbers: 1597 24021 1598 38610 1599 131072 1600 131074 1602 IPAddrBlock: critical 1603 IPv4: 1604 203.133.248.0/22 1605 203.147.108.0/23 1607 Signature Algorithm: sha256WithRSAEncryption 1608 51:4c:77:e4:21:64:80:e9:35:30:20:9f:d8:4b:88:60:b8:1f: 1609 73:24:9d:b5:17:60:65:6a:28:cc:43:4b:68:97:ca:76:07:eb: 1610 dc:bd:a2:08:3c:8c:56:38:c6:0a:1e:a8:af:f5:b9:42:02:6b: 1611 77:e0:b1:1c:4a:88:e6:6f:b6:17:d3:59:41:d7:a0:62:86:59: 1612 29:79:26:76:34:d1:16:2d:75:05:cb:b2:99:bf:ca:c6:68:1b: 1613 b6:a9:b0:f4:43:2e:df:e3:7f:3c:b3:72:1a:99:fa:5d:94:a1: 1614 eb:57:9c:9a:2c:87:d6:40:32:c9:ff:a6:54:b8:91:87:fd:90: 1615 55:ef:12:3e:1e:2e:cf:c5:ea:c3:4c:09:62:4f:88:00:a0:7f: 1616 cd:67:83:bc:27:e1:74:2c:18:4e:3f:12:1d:ef:29:0f:e3:27: 1617 00:ce:14:eb:f0:01:f0:36:25:a2:33:a8:c6:2f:31:18:22:30: 1618 cf:ca:97:43:ed:84:75:53:ab:b7:6c:75:f7:2f:55:5c:2e:82: 1619 0a:be:91:59:bf:c9:06:ef:bb:b4:a2:71:9e:03:b1:25:8e:29: 1620 7a:30:88:66:b4:f2:16:6e:df:ad:78:ff:d3:b2:9c:29:48:e3: 1621 be:87:5c:fc:20:2b:df:da:ca:30:58:c3:04:c9:63:72:48:8c: 1622 0a:5f:97:71 1624 Appendix B. Example Certificate Revocation List 1626 The following is an example Certificate Revocation List. 1627 CRL Name: q66IrWSGuBE7jqx8PAUHAlHCqRw.crl 1629 Data: 1630 Version: 2 1631 Signature Algorithm: 1632 Hash: SHA256, Encryption: RSA 1633 Issuer: CN=Demo Production APNIC CA - Not for real use, 1634 E=ca@apnic.net 1635 This Update: Thu Jul 27 06:30:34 2006 GMT 1636 Next Update: Fri Jul 28 06:30:34 2006 GMT 1637 Authority Key Identifier: Key Identifier: 1638 ab:ae:88:ad:64:86:b8:11:3b:8e:ac:7c:3c:05: 1639 07:02:51:c2:a9:1c 1640 Authority Key Identifier: Key Identifier g(AKI): 1641 q66IrWSGuBE7jqx8PAUHAlHCqRw 1642 CRLNumber: 4 1643 Revoked Certificates: 1 1644 Serial Number: 1 1645 Revocation Date: Mon Jul 17 05:10:19 2006 GMT 1646 Serial Number: 2 1647 Revocation Date: Mon Jul 17 05:12:25 2006 GMT 1648 Serial Number: 4 1649 Revocation Date: Mon Jul 17 05:40:39 2006 GMT 1650 Signature: 1651 b2:5a:e8:7c:bd:a8:00:0f:03:1a:17:fd:40:2c:46: 1652 0e:d5:64:87:e7:e7:bc:10:7d:b6:3e:39:21:a9:12: 1653 f4:5a:d8:b8:d4:bd:57:1a:7d:2f:7c:0d:c6:4f:27: 1654 17:c8:0e:ae:8c:89:ff:00:f7:81:97:c3:a1:6a:0a: 1655 f7:d2:46:06:9a:d1:d5:4d:78:e1:b7:b0:58:4d:09: 1656 d6:7c:1e:a0:40:af:86:5d:8c:c9:48:f6:e6:20:2e: 1657 b9:b6:81:03:0b:51:ac:23:db:9f:c1:8e:d6:94:54: 1658 66:a5:68:52:ee:dd:0f:10:5d:21:b8:b8:19:ff:29: 1659 6f:51:2e:c8:74:5c:2a:d2:c5:fa:99:eb:c5:c2:a2: 1660 d0:96:fc:54:b3:ba:80:4b:92:7f:85:54:76:c9:12: 1661 cb:32:ea:1d:12:7b:f8:f9:a2:5c:a1:b1:06:8e:d8: 1662 c5:42:61:00:8c:f6:33:11:29:df:6e:b2:cc:c3:7c: 1663 d3:f3:0c:8d:5c:49:a5:fb:49:fd:e7:c4:73:68:0a: 1664 09:0e:6d:68:a9:06:52:3a:36:4f:19:47:83:59:da: 1665 02:5b:2a:d0:8a:7a:33:0a:d5:ce:be:b5:a2:7d:8d: 1666 59:a1:9d:ee:60:ce:77:3d:e1:86:9a:84:93:90:9f: 1667 34:a7:02:40:59:3a:a5:d1:18:fb:6f:fc:af:d4:02: 1668 d9 1670 Appendix C. Cryptographic Message Syntax Profile for RPKI Trust Anchor 1671 Material 1673 Using the Cryptographic Message Syntax (CMS) [RFC3852], a RPKI Trust 1674 Anchor Object (RTA) is a type of signed-data object. The general 1675 format of a CMS object is: 1677 ContentInfo ::= SEQUENCE { 1678 contentType ContentType, 1679 content [0] EXPLICIT ANY DEFINED BY contentType } 1681 ContentType ::= OBJECT IDENTIFIER 1683 As a RTA is a signed-data object, it uses the corresponding OID, 1684 1.2.840.113549.1.7.2. [RFC3852]. 1686 C.1. Signed-Data ContentType 1688 According to the CMS specification, the signed-data content type 1689 shall have ASN.1 type SignedData: 1691 SignedData ::= SEQUENCE { 1692 version CMSVersion, 1693 digestAlgorithms DigestAlgorithmIdentifiers, 1694 encapContentInfo EncapsulatedContentInfo, 1695 certificates [0] IMPLICIT CertificateSet OPTIONAL, 1696 crls [1] IMPLICIT RevocationInfoChoices OPTIONAL, 1697 signerInfos SignerInfos } 1699 DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier 1701 SignerInfos ::= SET OF SignerInfo 1703 The elements of the signed-data content type are as follows: 1705 version 1706 The version is the syntax version number. It MUST be 3, 1707 corresponding to the signerInfo structure having version 1708 number 3. 1710 digestAlgorithms 1711 The digestAlgorithms set MUST include only SHA-256, the OID 1712 for which is 2.16.840.1.101.3.4.2.1. [RFC4055]. It MUST 1713 NOT contain any other algorithms. 1715 encapContentInfo 1716 This element is defined in Appendix C.1.1. 1718 certificates 1719 The certificates element MUST be included and MUST contain 1720 only the single PKI EE certificate needed to validate this 1721 CMS Object. The CertificateSet type is defined in section 1722 10 of [RFC3852] 1724 crls 1725 The crls element MUST be omitted. 1727 signerInfos 1728 This element is defined in Appendix C.1.2. 1730 C.1.1. encapContentInfo 1732 encapContentInfo is the signed content, consisting of a content type 1733 identifier and the content itself. 1735 EncapsulatedContentInfo ::= SEQUENCE { 1736 eContentType ContentType, 1737 eContent [0] EXPLICIT OCTET STRING OPTIONAL } 1739 ContentType ::= OBJECT IDENTIFIER 1741 The elements of this signed content type are as follows: 1743 eContentType 1744 The ContentType for an RTA is defined as id-ct- 1745 RPKITrustAnchor and has the numerical value of 1746 1.2.840.113549.1.9.16.1.33. 1748 id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2) 1749 us(840) rsadsi(113549) pkcs(1) pkcs9(9) 16 } 1751 id-ct OBJECT IDENTIFIER ::= { id-smime 1 } 1753 id-ct-RPKITrustAnchor OBJECT IDENTIFIER ::= { id-ct 33 } 1755 eContent 1756 The content of an RTA is an RPKI self-signed CA certificate. 1757 It is formally defined as: 1759 id-ct-RPKITrustAnchor ::= Certificate 1761 The definition of Certificate is taken from [X.509]. 1763 C.1.2. signerInfos 1765 SignerInfo is defined under CMS as: 1767 SignerInfo ::= SEQUENCE { 1768 version CMSVersion, 1769 sid SignerIdentifier, 1770 digestAlgorithm DigestAlgorithmIdentifier, 1771 signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL, 1772 signatureAlgorithm SignatureAlgorithmIdentifier, 1773 signature SignatureValue, 1774 unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL } 1776 The content of the SignerInfo element are as follows: 1778 version 1779 The version number MUST be 3, corresponding with the choice 1780 of SubjectKeyIdentifier for the sid. 1782 sid 1783 The sid is defined as: 1785 SignerIdentifier ::= CHOICE { 1786 issuerAndSerialNumber IssuerAndSerialNumber, 1787 subjectKeyIdentifier [0] SubjectKeyIdentifier } 1789 For a RTA, the sid MUST be a SubjectKeyIdentifier. 1791 digestAlgorithm 1792 The digestAlgorithm MUST be SHA-256, the OID for which is 1793 2.16.840.1.101.3.4.2.1. [RFC4055] 1795 signedAttrs 1796 The signedAttrs element is defined as: 1798 SignedAttributes ::= SET SIZE (1..MAX) OF Attribute 1800 Attribute ::= SEQUENCE { 1801 attrType OBJECT IDENTIFIER, 1802 attrValues SET OF AttributeValue } 1804 AttributeValue ::= ANY 1806 The signedAttr element MUST be present and MUST include the 1807 content-type and message-digest attributes. The signer MAY 1808 also include the signing-time signed attribute, the binary- 1809 signing-time signed attribute, or both signed attributes. 1810 Other signed attributes that are deemed appropriate MAY also 1811 be included. The intent is to allow additional signed 1812 attributes to be included if a future need is identified. 1813 This does not cause an interoperability concern because 1814 unrecognized signed attributes are ignored by the relying 1815 party. 1817 The signedAttr MUST include only a single instance of any 1818 particular attribute. Additionally, even though the syntax 1819 allows for a SET OF AttributeValue, in a RTA the attrValues 1820 must consist of only a single AttributeValue. 1822 ContentType Attribute 1823 The ContentType attribute MUST be present. The 1824 attrType OID for the ContentType attribute is 1825 1.2.840.113549.1.9.3. 1827 The attrValues for the ContentType attribute in 1828 a RTA MUST be 1.2.840.113549.1.9.16.1.24 1829 (matching the eContentType in the 1830 EncapsulatedContentInfo). 1832 MessageDigest Attribute 1833 The MessageDigest attribute MUST be present. 1834 The attrType OID for the MessageDigest Attribute 1835 is 1.2.840.113549.1.9.4. 1837 The attrValues for the MessageDigest attribute 1838 contains the output of the digest algorithm 1839 applied to the content being signed, as 1840 specified in Section 11.1 of [RFC3852]. 1842 SigningTime Attribute 1843 The SigningTime attribute MAY be present. If it 1844 is present it MUST be ignored by the relying 1845 party. The presence of absence of the 1846 SigningTime attribute in no way affects the 1847 validation of the RTA. The attrType OID for the 1848 SigningTime attribute is 1.2.840.113549.1.9.5. 1850 The attrValues for the SigningTime attribute is 1851 defined as: 1853 SigningTime ::= Time 1855 Time ::= CHOICE { 1856 utcTime UTCTime, 1857 generalizedTime GeneralizedTime } 1859 The Time element specifies the time, based on 1860 the local system clock, at which the digital 1861 signature was applied to the content. 1863 BinarySigningTime Attribute 1864 The BinarySigningTime attribute MAY be present. 1865 If it is present it MUST be ignored by the 1866 relying party. The presence of absence of the 1867 BinarySigningTime attribute in no way affects 1868 the validation of the RTA. The attrType OID for 1869 the SigningTime attribute is 1870 1.2.840.113549.1.9.16.2.46. 1872 The attrValues for the SigningTime attribute is 1873 defined as: 1875 BinarySigningTime ::= BinaryTime 1877 BinaryTime ::= INTEGER (0..MAX) 1879 The BinaryTime element specifies the time, based 1880 on the local system clock, at which the digital 1881 signature was applied to the content. 1883 signatureAlgorithm 1884 The signatureAlgorithm MUST be RSA (rsaEncryption), the OID 1885 for which is 1.2.840.113549.1.1.1.q 1887 signature 1888 The signature value is defined as: 1890 SignatureValue ::= OCTET STRING 1892 The signature characteristics are defined by the digest and 1893 signature algorithms. 1895 unsignedAttrs 1896 unsignedAttrs MUST be omitted. 1898 C.2. RTA Validation 1900 Before a relying party can use an RTA, the relying party must first 1901 validate the RTA by performing the following steps. 1903 1. Verify that the RTA syntax complies with this specification. 1904 In particular, verify the following: 1906 a. The contentType of the CMS object is SignedData (OID 1907 1.2.840.113549.1.7.2). 1909 b. The version of the SignedData object is 3. 1911 c. The digestAlgorithm in the SignedData object is SHA-256 1912 (OID 2.16.840.1.101.3.4.2.1). 1914 d. The certificates field in the SignedData object is present 1915 and contains a single EE certificate whose Subject Key 1916 Identifier (SKI) matches the sid field of the SignerInfo 1917 object. 1919 e. The crls field in the SignedData object is omitted. 1921 f. The eContentType in the EncapsulatedContentInfo is id-ct- 1922 RPKITrustAnchor (OID 1.2.840.113549.1.9.16.1.[TBD]) 1924 g. The version of the SignerInfo is 3. 1926 h. The digestAlgorithm in the SignerInfo object is SHA-256 1927 (OID 2.16.840.1.101.3.4.2.1). 1929 i. The signatureAlgorithm in the SignerInfo object is RSA 1930 (OID 1.2.840.113549.1.1.1). 1932 j. The signedAttrs field in the SignerInfo object is present 1933 and contains both the ContentType attribute (OID 1934 1.2.840.113549.1.9.3) and the MessageDigest attribute (OID 1935 1.2.840.113549.1.9.4). 1937 k. The unsignedAttrs field in the SignerInfo object is 1938 omitted. 1940 2. Use the public key in the EE certificate to verify the 1941 signature on the RTA. 1943 3. Verify that the EE certificate is a valid end-entity 1944 certificate in the Trust Anchor PKI by validating that the PKI 1945 CA certificate issued this EE certificate, and the PKI CA's 1946 CRL has not revoked the EE certificate, and that the PKI CA's 1947 CRL is valid. 1949 Authors' Addresses 1951 Geoff Huston 1952 Asia Pacific Network Information Centre 1954 Email: gih@apnic.net 1955 URI: http://www.apnic.net 1957 George Michaelson 1958 Asia Pacific Network Information Centre 1960 Email: ggm@apnic.net 1961 URI: http://www.apnic.net 1963 Robert Loomans 1964 Asia Pacific Network Information Centre 1966 Email: robertl@apnic.net 1967 URI: http://www.apnic.net 1969 Full Copyright Statement 1971 Copyright (C) The IETF Trust (2008). 1973 This document is subject to the rights, licenses and restrictions 1974 contained in BCP 78, and except as set forth therein, the authors 1975 retain all their rights. 1977 This document and the information contained herein are provided on an 1978 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 1979 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 1980 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 1981 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 1982 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 1983 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 1985 Intellectual Property 1987 The IETF takes no position regarding the validity or scope of any 1988 Intellectual Property Rights or other rights that might be claimed to 1989 pertain to the implementation or use of the technology described in 1990 this document or the extent to which any license under such rights 1991 might or might not be available; nor does it represent that it has 1992 made any independent effort to identify any such rights. Information 1993 on the procedures with respect to rights in RFC documents can be 1994 found in BCP 78 and BCP 79. 1996 Copies of IPR disclosures made to the IETF Secretariat and any 1997 assurances of licenses to be made available, or the result of an 1998 attempt made to obtain a general license or permission for the use of 1999 such proprietary rights by implementers or users of this 2000 specification can be obtained from the IETF on-line IPR repository at 2001 http://www.ietf.org/ipr. 2003 The IETF invites any interested party to bring to its attention any 2004 copyrights, patents or patent applications, or other proprietary 2005 rights that may cover technology that may be required to implement 2006 this standard. Please address the information to the IETF at 2007 ietf-ipr@ietf.org.