idnits 2.17.00 (12 Aug 2021) /tmp/idnits35539/draft-ietf-sidr-res-certs-13.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 1942. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 1953. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 1960. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 1966. 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 1 instance of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (September 19, 2008) is 4991 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 1746 -- Looks like a reference, but probably isn't: '1' on line 1733 == Missing Reference: 'TBD' is mentioned on line 1881, but not defined ** Obsolete normative reference: RFC 2050 (Obsoleted by RFC 7020) ** Obsolete normative reference: RFC 3852 (Obsoleted by RFC 5652) == Outdated reference: draft-ietf-sidr-rpki-manifests has been published as RFC 6486 Summary: 3 errors (**), 0 flaws (~~), 4 warnings (==), 10 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIDR G. Huston 3 Internet-Draft G. Michaelson 4 Intended status: Standards Track R. Loomans 5 Expires: March 23, 2009 APNIC 6 September 19, 2008 8 A Profile for X.509 PKIX Resource Certificates 9 draft-ietf-sidr-res-certs-13 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 March 23, 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 . . . . . . . . . . . . . . . . . . . 6 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 Nominated 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 . . . . . . . . . 35 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's public key that is being certified by the issuer 142 corresponds to the public key part of a public / private key pair 143 that was generated by the same entity who is the recipient of the 144 number assignment or allocation. A critical extension to the 145 certificate enumerates the IP Resources that were allocated or 146 assigned by the issuer to the entity. In the context of the public 147 number distribution function, this corresponds to a hierarchical PKI 148 structure, where Resource Certificates are only issued in one 149 'direction' and there is a single unique path of certificates from a 150 certification authority operating at the apex of a resource 151 distribution hierarchy to a valid certificate. 153 Validation of a Resource Certificate in such a hierarchical PKI can 154 be undertaken by establishing a valid issuer-subject certificate 155 chain from a certificate issued by a trust anchor certification 156 authority to the certificate [RFC4158], with the additional 157 constraint of ensuring that each subject's listed resources are fully 158 encompassed by those of the issuer at each step in the issuer-subject 159 certificate chain. 161 Resource Certificates may be used in the context of the operation of 162 secure inter-domain routing protocols to convey a right-of-use of an 163 IP number resource that is being passed within the routing protocol, 164 allowing relying parties to verify legitimacy and correctness of 165 routing information. Related use contexts include validation of 166 Internet Routing Registry objects, validation of routing requests, 167 and detection of potential unauthorised use of IP addresses. 169 This profile defines those fields that are used in a Resource 170 Certificate that MUST be present for the certificate to be valid. 171 Relying Parties SHOULD check that a Resource Certificate conforms to 172 this profile as a requisite for validation of a Resource Certificate. 174 1.1. Terminology 176 It is assumed that the reader is familiar with the terms and concepts 177 described in "Internet X.509 Public Key Infrastructure Certificate 178 and Certificate Revocation List (CRL) Profile" [RFC5280], "X.509 179 Extensions for IP Addresses and AS Identifiers" [RFC3779], "Internet 180 Protocol" [RFC0791], "Internet Protocol Version 6 (IPv6) Addressing 181 Architecture" [RFC4291], "Internet Registry IP Allocation Guidelines" 182 [RFC2050], and related regional Internet registry address management 183 policy documents. 185 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 186 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 187 document are to be interpreted as described in RFC 2119. 189 2. Describing Resources in Certificates 191 The framework for describing an association between the subject of a 192 certificate and the resources currently under the subject's control 193 is described in [RFC3779]. 195 There are three aspects of this resource extension that are noted in 196 this profile: 198 1. RFC 3779 notes that a resource extension SHOULD be a CRITICAL 199 extension to the X.509 Certificate. This Resource Certificate 200 profile further specifies that the use of this certificate 201 extension MUST be used in all Resource Certificates and MUST 202 be marked as CRITICAL. 204 2. RFC 3779 defines a sorted canonical form of describing a 205 resource set, with maximal spanning ranges and maximal 206 spanning prefix masks as appropriate. All valid certificates 207 in this profile MUST use this sorted canonical form of 208 resource description in the resource extension field. 210 3. A test of the resource extension in the context of certificate 211 validity includes the condition that the resources described 212 in the immediate superior certificate in the PKI hierarchy 213 (the certificate where this certificate's issuer is the 214 subject) has a resource set (called here the "issuer's 215 resource set") that MUST encompass the resource set of the 216 issued certificate. In this context "encompass" allows for 217 the issuer's resource set to be the same as, or a strict 218 superset of, any subject's resource set. 220 A test of certificate validity entails the identification of a 221 sequence of valid certificates in an issuer-subject chain (where the 222 subject field of one certificate appears as the issuer in the next 223 certificate in the sequence) from a trust anchor certification 224 authority to the certificate being validated, and that the resource 225 extensions in this certificate sequence from the trust anchor's 226 issued certificate to the certificate being validated form a sequence 227 of encompassing relationships in terms of the resources described in 228 the resource extension. 230 3. Resource Certificate Fields 232 A Resource Certificate is a valid X.509 v3 public key certificate, 233 consistent with the PKIX profile [RFC5280], containing the fields 234 listed in this section. Unless specifically noted as being OPTIONAL, 235 all the fields listed here MUST be present, and any other field MUST 236 NOT appear in a conforming Resource Certificate. Where a field value 237 is specified here this value MUST be used in conforming Resource 238 Certificates. 240 3.1. Version 242 Resource Certificates are X.509 Version 3 certificates. This field 243 MUST be present, and the Version MUST be 3 (i.e. the value of this 244 field is 2). 246 3.2. Serial number 248 The serial number value is a positive integer that is unique per 249 Issuer. 251 3.3. Signature Algorithm 253 This field describes the algorithm used to compute the signature on 254 this certificate. This profile specifies a minimum of SHA-256 with 255 RSA (sha256WithRSAEncryption), and allows for the use of SHA-384 or 256 SHA-512. Accordingly, the value for this field MUST be one of the 257 OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } [RFC4055]. 259 3.4. Issuer 261 This field identifies the entity that has signed and issued the 262 certificate. The value of this field is a valid X.501 name. 264 If the certificate is a subordinate certificate issued by virtue of 265 the "cA" bit set in the immediate superior certificate, then the 266 issuer name MUST correspond to the subject name as contained in the 267 immediate superior certificate. 269 This field MUST be non-empty. 271 3.5. Subject 273 This field identifies the entity to whom the resource has been 274 allocated / assigned. The value of this field is a valid X.501 name. 276 In this profile the subject name is determined by the issuer, and 277 each distinct subordinate CA and EE certified by the issuer MUST be 278 identified using a subject name that is unique per issuer. 280 In this context "distinct" is defined as an entity and a given key 281 pair. An issuer SHOULD use a a different subject name if the subject 282 entity or the subject entity's key pair has changed. 284 This field MUST be non-empty. 286 3.6. Valid From 288 The starting time at which point the certificate is valid. In this 289 profile the "Valid From" time SHOULD be no earlier than the time of 290 certificate generation. As per Section 4.1.2.5 of [RFC5280], 291 Certification Authorities (CAs) conforming to this profile MUST 292 always encode the certificate's "Valid From" date through the year 293 2049 as UTCTime, and dates in 2050 or later MUST be encoded as 294 GeneralizedTime. These two time formats are defined in [RFC5280]. 296 In this profile, it is valid for a certificate to have a value for 297 this field that pre-dates the same field value in any superior 298 certificate. However, it is not valid to infer from this information 299 that a certificate was, or will be, valid at any particular time 300 other than the current time. 302 3.7. Valid To 304 The Valid To time is the date and time at which point in time the 305 certificate's validity ends. It represents the anticipated lifetime 306 of the resource allocation / assignment arrangement between the 307 issuer and the subject. As per Section 4.1.2.5 of [RFC5280], CAs 308 conforming to this profile MUST always encode the certificate's 309 "Valid To" date through the year 2049 as UTCTime, and dates in 2050 310 or later MUST be encoded as GeneralizedTime. These two time formats 311 are defined in [RFC5280]. 313 In this profile, it is valid for a certificate to have a value for 314 this field that post-dates the same field value in any superior 315 certificate. However, it is not valid to infer from this information 316 that a certificate was, or will be, valid at any particular time 317 other than the current time. 319 CAs are typically advised against issuing a certificate with a 320 validity interval that exceeds the validity interval of the CA's 321 certificate that will be used to validate the issued certificate. 322 However, in the context of this profile, it is anticipated that a CA 323 may have valid grounds to issue a certificate with a validity 324 interval that exceeds the validity interval of the CA's certificate. 326 3.8. Subject Public Key Info 328 This field specifies the subject's public key and the algorithm with 329 which the key is used. The public key algorithm MUST be RSA, and, 330 accordingly, the OID for the public key algorithm is 331 1.2.840.113549.1.1.1. The key size MUST be a minimum size of 2048 332 bits. 334 It is noted that larger key sizes are computationally expensive for 335 both the CA and relying parties, indicating that care should be taken 336 when deciding to use larger than the minimum key size. 338 3.9. Resource Certificate Version 3 Extension Fields 340 As noted in Section 4.2 of [RFC5280], each extension in a certificate 341 is designated as either critical or non-critical. A certificate- 342 using system MUST reject the certificate if it encounters a critical 343 extension it does not recognise; however, a non-critical extension 344 MAY be ignored if it is not recognised [RFC5280]. 346 The following X.509 V3 extensions MUST be present in a conforming 347 Resource Certificate, except where explicitly noted otherwise. 349 3.9.1. Basic Constraints 351 The basic constraints extension identifies whether the subject of the 352 certificate is a CA and the maximum depth of valid certification 353 paths that include this certificate. 355 The issuer determines whether the "cA" boolean is set. If this bit 356 is set, then it indicates that the subject is allowed to issue 357 resources certificates within this overall framework (i.e. the 358 subject is permitted be a CA). 360 The Path Length Constraint is not specified in this profile and MUST 361 NOT be present. 363 The Basic Constraints extension field is a critical extension in the 364 Resource Certificate profile, and MUST be present when the subject is 365 a CA, and MUST NOT be present otherwise. 367 3.9.2. Subject Key Identifier 369 The subject key identifier extension provides a means of identifying 370 certificates that contain a particular public key. To facilitate 371 certification path construction, this extension MUST appear in all 372 Resource Certificates. This extension is non-critical. 374 The value of the subject key identifier MUST be the value placed in 375 the key identifier field of the Authority Key Identifier extension of 376 immediate subordinate certificates (all certificates issued by the 377 subject of this certificate). 379 The Key Identifier used here is the 160-bit SHA-1 hash of the value 380 of the DER-encoded ASN.1 bit string of the subject public key, as 381 described in Section 4.2.1.2 of [RFC5280]. 383 3.9.3. Authority Key Identifier 385 The authority key identifier extension provides a means of 386 identifying certificates that are signed by the issuer's private key, 387 by providing a hash value of the issuer's public key. To facilitate 388 path construction, this extension MUST appear in all Resource 389 Certificates. The keyIdentifier sub field MUST be present in all 390 Resource Certificates, with the exception of a CA who issues a "self- 391 signed" certificate. The authorityCertIssuer and 392 authorityCertSerialNumber sub fields MUST NOT be present. This 393 extension is non-critical. 395 The Key Identifier used here is the 160-bit SHA-1 hash of the value 396 of the DER-encoded ASN.1 bit string of the issuer's public key, as 397 described in Section 4.2.1.1 of [RFC5280]. 399 3.9.4. Key Usage 401 This describes the purpose of the certificate. This is a critical 402 extension, and it MUST be present. 404 In certificates issued to Certificate Authorities only the 405 keyCertSign and CRLSign bits are set to TRUE and MUST be the only 406 bits set to TRUE. 408 In end-entity certificates the digitalSignature bit MUST be set and 409 MUST be the only bit set to TRUE. 411 3.9.5. CRL Distribution Points 413 This field (CRLDP) identifies the location(s) of the CRL(s) 414 associated with certificates issued by this Issuer. This profile 415 uses the URI form of object identification. The preferred URI access 416 mechanism is a single RSYNC URI ("rsync://") [rsync] that references 417 a single inclusive CRL for each issuer. 419 In this profile the certificate issuer is also the CRL issuer, 420 implying at the CRLIssuer sub field MUST be omitted, and the 421 distributionPoint sub-field MUST be present. The Reasons sub-field 422 MUST be omitted. 424 The distributionPoint MUST contain general names, and MUST NOT 425 contain a nameRelativeToCRLIssuer. The type of the general name MUST 426 be of type URI. 428 In this profile, the scope of the CRL is specified to be all 429 certificates issued by this CA issuer. 431 The sequence of distributionPoint values MUST contain only a single 432 DistributionPointName set. The DistributionPointName set MAY contain 433 more than one URI value. An RSYNC URI MUST be present in the 434 DistributionPointName set, and reference the most recent instance of 435 this issuer's certificate revocation list. Other access form URIs 436 MAY be used in addition to the RSYNC URI. 438 This extension MUST be present and it is non-critical. There is one 439 exception, namely where a CA distributes its public key in the form 440 of a "self-signed" certificate, the CRLDP MUST be omitted. 442 3.9.6. Authority Information Access 444 This field (AIA) identifies the point of publication of the 445 certificate that is issued by the issuer's immediate superior CA, 446 where this certificate's issuer is the subject. In this profile a 447 single reference object to publication location of the immediate 448 superior certificate MUST be used, except in the case where a CA 449 distributes its public key in the form of a "self-signed" 450 certificate, in which case the AIA field SHOULD be omitted. 452 This profile uses a URI form of object identification. The preferred 453 URI access mechanisms is "rsync", and an RSYNC URI MUST be specified 454 with an accessMethod value of id-ad-caIssuers. The URI MUST 455 reference the point of publication of the certificate where this 456 issuer is the subject (the issuer's immediate superior certificate). 457 Other access method URIs referencing the same object MAY also be 458 included in the value sequence of this extension. 460 When an Issuer re-issues a CA certificate, the subordinate 461 certificates need to reference this new certificate via the AIA 462 field. In order to avoid the situation where a certificate re- 463 issuance necessarily implies a requirement to re-issue all 464 subordinate certificates, CA Certificate issuers SHOULD use a 465 persistent URL name scheme for issued certificates. This implies 466 that re-issued certificates overwrite previously issued certificates 467 to the same subject in the publication repository, and use the same 468 publication name as previously issued certificates. In this way 469 subordinate certificates can maintain a constant AIA field value and 470 need not be re-issued due solely to a re-issue of the superior 471 certificate. The issuers' policy with respect to the persistence of 472 name objects of issued certificates MUST be specified in the Issuer's 473 Certification Practice Statement. 475 This extension is non-critical. 477 3.9.7. Subject Information Access 479 This field (SIA) identifies the location of information and services 480 relating to the subject of the certificate in which the SIA extension 481 appears. Where the Subject is a CA in this profile, this information 482 and service collection will include all current valid certificates 483 that have been issued by this subject that are signed with the 484 subject's corresponding private key. 486 This profile uses a URI form of location identification. The 487 preferred URI access mechanism is "rsync", and an RSYNC URI MUST be 488 specified, with an access method value of id-ad-caRepository when the 489 subject of the certificate is a CA. The RSYNC URI MUST reference an 490 object collection rather than an individual object and MUST use a 491 trailing '/' in the URI. 493 Other access method URIs that reference the same location MAY also be 494 included in the value sequence of this extension. The ordering of 495 URIs in this sequence reflect the subject's relative preferences for 496 access methods, with the first method in the sequence being the most 497 preferred. 499 This field MUST be present when the subject is a CA, and is non- 500 critical. 502 For End Entity (EE) certificates, where the subject is not a CA, this 503 field MAY be present, and is non-critical. If present, it either 504 references the location where objects signed by the key pair 505 associated with the EE certificate can be accessed, or, in the case 506 of single-use EE certificates it references the location of the 507 single object that has been signed by the corresponding key pair. 509 When the subject is an End Entity, and it publishes objects signed 510 with the matching private key in a repository, the directory where 511 these signed objects is published is referenced the id-ad- 512 signedObjectRepository OID. 514 id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } 516 id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad 9 } 518 When the subject is an End Entity, and it publishes a single object 519 signed with the matching private key, the location where this signed 520 object is published is referenced the id-ad-signedObject OID. 522 id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } 524 This profile requires the use of repository publication manifests 525 [ID.SIDR-MANIFESTS] to list all signed objects that are deposited in 526 the repository publication point associated with a CA or an EE. The 527 publication point of the manifest for a CA or EE is placed in the SIA 528 extension of the CA or EE certificate. This profile uses a URI form 529 of manifest identification for the accessLocation. The preferred URI 530 access mechanisms is "rsync", and an RSYNC URI MUST be specified. 531 Other accessDescription fields may exist with this id-ad-Manifest 532 accessMethod, where the accessLocation value indicates alternate URI 533 access mechanisms for the same manifest object. 535 id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } 537 CA certificates MUST include in the SIA an accessMethod OID of id-ad- 538 rpkiManifest, where the associated accessLocation refers to the 539 subject's published manifest object as an object URL. 541 When an EE certificate is intended for use in verifying multiple 542 objects, EE certificate MUST include in the SIA an access method OID 543 of id-ad-rpkiManifest, where the associated access location refers to 544 the publication point of the objects that are verified using this EE 545 certificate. 547 When an EE certificate is used to sign a single published object, the 548 EE certificate MUST include in the SIA an access method OID of id-ad- 549 signedObject, where the associated access location refers to the 550 publication point of the single object that is verified using this EE 551 certificate. In this case, the SIA MUST NOT include the access 552 method OID of id-ad-rpkiManifest. 554 3.9.8. Certificate Policies 556 This extension MUST reference the Resource Certificate Policy, using 557 the OID Policy Identifier value of "1.3.6.1.5.5.7.14.2". This field 558 MUST be present and MUST contain only this value for Resource 559 Certificates. 561 PolicyQualifiers MUST NOT be used in this profile. 563 This extension MUST be present and it is critical. 565 3.9.9. IP Resources 567 This field contains the list of IP address resources as per 568 [RFC3779]. The value may specify the "inherit" element for a 569 particular AFI value. In the context of resource certificates 570 describing public number resources for use in the public Internet, 571 the SAFI value MUST NOT be used. All Resource Certificates MUST 572 include an IP Resources extension, an AS Resources extension, or both 573 extensions. 575 This extension, if present, MUST be marked critical. 577 3.9.10. AS Resources 579 This field contains the list of AS number resources as per [RFC3779], 580 or may specify the "inherit" element. RDI values are NOT supported 581 in this profile and MUST NOT be used. All Resource Certificates MUST 582 include an IP Resources extension, an AS Resources extension, or both 583 extensions. 585 This extension, if present, MUST be marked critical. 587 4. Resource Certificate Revocation List Profile 589 Each CA MUST issue a version 2 Certificate Revocation List (CRL), 590 consistent with [RFC5280]. The CRL issuer is the CA, and no indirect 591 CRLs are supported in this profile. 593 An entry MUST NOT be removed from the CRL until it appears on one 594 regularly scheduled CRL issued beyond the revoked certificate's 595 validity period. 597 This profile does not allow issuance of Delta CRLs. 599 The scope of the CRL MUST be "all certificates issued by this CA". 600 The contents of the CRL are a list of all non-expired certificates 601 that have been revoked by the CA. 603 No CRL fields other than those listed here are permitted in CRLs 604 issued under this profile. Unless otherwise indicated, these fields 605 MUST be present in the CRL. Where two or more CRLs issued by a 606 single CA with the same scope, the CRL with the highest value of the 607 "CRL Number" field supersedes all other CRLs issued by this CA. 609 4.1. Version 611 Resource Certificate Revocation Lists are Version 2 certificates (the 612 integer value of this field is 1). 614 4.2. Issuer Name 616 The value of this field is the X.501 name of the issuing CA who is 617 also the signer of the CRL, and is identical to the Issuer name in 618 the Resource Certificates that are issued by this issuer. 620 4.3. This Update 622 This field contains the date and time that this CRL was issued. The 623 value of this field MUST be encoded as UTCTime for dates through the 624 year 2049, and MUST be encoded as GeneralizedTime for dates in the 625 year 2050 or later. 627 4.4. Next Update 629 This is the date and time by which the next CRL SHOULD be issued. 630 The value of this field MUST be encoded as UTCTime for dates through 631 the year 2049, and MUST be encoded as GeneralizedTime for dates in 632 the year 2050 or later. 634 4.5. Signature 636 This field contains the algorithm used to sign this CRL. This 637 profile specifies a minimum of SHA-256 with RSA 638 (sha256WithRSAEncryption), and allows for the use of SHA-384 or SHA- 639 512. This field MUST be present. 641 It is noted that larger key sizes are computationally expensive for 642 both the CRL Issuer and relying parties, indicating that care should 643 be taken when deciding to use larger than the minimum key size. 645 4.6. Revoked Certificate List 647 When there are no revoked certificates, then the revoked certificate 648 list MUST be absent. 650 For each revoked resource certificate only the following fields MUST 651 be present. No CRL entry extensions are supported in this profile, 652 and CRL entry extensions MUST NOT be present in a CRL. 654 4.6.1. Serial Number 656 The issuer's serial number of the revoked certificate. 658 4.6.2. Revocation Date 660 The time the certificate was revoked. This time MUST NOT be a future 661 date. The value of this field MUST be encoded as UTCTime for dates 662 through the year 2049, and MUST be encoded as GeneralizedTime for 663 dates in the year 2050 or later. 665 4.7. CRL Extensions 667 The X.509 v2 CRL format allows extensions to be placed in a CRL. The 668 following extensions are supported in this profile, and MUST be 669 present in a CRL. 671 4.7.1. Authority Key Identifier 673 The authority key identifier extension provides a means of 674 identifying the public key corresponding to the private key used to 675 sign a CRL. Conforming CRL issuers MUST use the key identifier 676 method. The syntax for this CRL extension is defined in section 677 4.2.1.1 of [RFC5280]. 679 This extension is non-critical. 681 4.7.2. CRL Number 683 The CRL Number extension conveys a monotonically increasing sequence 684 number of positive integers for a given CA and scope. This extension 685 allows users to easily determine when a particular CRL supersedes 686 another CRL. The highest CRL Number value supersedes all other CRLs 687 issued by the CA with the same scope. 689 This extension is non-critical. 691 5. Resource Certificate Request Profile 693 A resource certificate request MAY use either of PKCS#10 or 694 Certificate Request Message Format (CRMF). A CA Issuer MUST support 695 PKCS#10 and a CA Issuer may, with mutual consent of the subject, 696 support CRMF. 698 5.1. PCKS#10 Profile 700 This profile refines the specification in [RFC2986], as it relates to 701 Resource Certificates. A Certificate Request Message object, 702 formatted according to PKCS#10, is passed to a CA as the initial step 703 in issuing a certificate. 705 This request may be conveyed to the CA via a Registration Authority 706 (RA), acting under the direction of a Subject. 708 With the exception of the public key related fields, the CA is 709 permitted to alter any requested field when issuing a corresponding 710 certificate. 712 5.1.1. PKCS#10 Resource Certificate Request Template Fields 714 This profile applies the following additional constraints to fields 715 that may appear in a CertificationRequestInfo: 717 Version 718 This field is mandatory and MUST have the value 0. 720 Subject 721 This field is optional. If present, the value of this field 722 SHOULD be empty, in which case the issuer MUST generate a 723 subject name that is unique in the context of certificates 724 issued by this issuer. If the value of this field is non- 725 empty, then the CA MAY consider the value of this field as the 726 subject's suggested subject name, but the CA is NOT bound to 727 honour this suggestion, as the subject name MUST be unique per 728 subordinate CA and EE in certificates issued by this issuer. 730 SubjectPublicKeyInfo 731 This field specifies the subject's public key and the algorithm 732 with which the key is used. The public key algorithm MUST be 733 RSA, and the OID for the algorithm is 1.2.840.113549.1.1.1. 734 This field also includes a bit-string representation of the 735 entity's public key. For the RSA public-key algorithm the bit 736 string contains the DER encoding of a value of PKCS #1 type 737 RSAPublicKey. 739 Attributes 740 [RFC2986] defines the attributes field as key-value pairs where 741 the key is an OID and the value's structure depends on the key. 743 The only attribute used in this profile is the ExtensionRequest 744 attribute as defined in [RFC2985]. This attribute contains 745 X509v3 Certificate Extensions. The profile for extensions in 746 certificate requests is specified in Section 5.3. 748 This profile applies the following additional constraints to fields 749 that MAY appear in a CertificationRequest Object: 751 signatureAlgorithm 752 This profile specifies a minimum of SHA-256 with RSA 753 (sha256WithRSAEncryption), and allows for the use of SHA-384 or 754 SHA-512. Accordingly, the value for this field MUST be one of 755 the OID values { pkcs-1 11 }, { pkcs-1 12 } or { pkcs-1 13 } 756 [RFC4055]. 758 It is noted that larger key sizes are computationally expensive 759 for both the CA and relying parties, indicating that care 760 should be taken when deciding to use larger than the minimum 761 key size. 763 5.2. CRMF Profile 765 This profile refines the Certificate Request Message Format (CRMF) 766 specification in [RFC4211], as it relates to Resource Certificates. 767 A Certificate Request Message object, formatted according to the 768 CRMF, is passed to a CA as the initial step in issuing a certificate. 770 This request MAY be conveyed to the CA via a Registration Authority 771 (RA), acting under the direction of a subject. 773 With the exception of the public key related fields, the CA is 774 permitted to alter any requested field when issuing a corresponding 775 certificate. 777 5.2.1. CRMF Resource Certificate Request Template Fields 779 This profile applies the following additional constraints to fields 780 that may appear in a Certificate Request Template: 782 Version 783 This field MAY be absent, or MAY specify the request of a 784 Version 3 Certificate. It SHOULD be omitted. 786 SerialNumber 787 As per [RFC4211], this field is assigned by the CA and MUST be 788 omitted in this profile. 790 SigningAlgorithm 791 As per [RFC4211], this field is assigned by the CA and MUST be 792 omitted in this profile. 794 Issuer 795 This field is assigned by the CA and MUST be omitted in this 796 profile. 798 Validity 799 This field MAY be omitted. If omitted, the CA will issue a 800 Certificate with Validity dates as determined by the CA. If 801 specified, then the CA MAY override the requested values with 802 dates as determined by the CA. 804 Subject 805 This field is optional. If present, the value of this field 806 SHOULD be empty, in which case the issuer MUST generate a 807 subject name that is unique in the context of certificates 808 issued by this issuer. If the value of this field is non- 809 empty, then the CA MAY consider the value of this field as the 810 subject's suggested subject name, but the CA is NOT bound to 811 honour this suggestion, as the subject name MUST be unique per 812 issuer in certificates issued by this issuer. 814 PublicKey 815 This field MUST be present. 817 extensions 818 This attribute contains X509v3 Certificate Extensions. The 819 profile for extensions in certificate requests is specified in 820 Section 5.3. 822 5.2.2. Resource Certificate Request Control Fields 824 The following control fields are supported in this profile: 826 Authenticator Control 827 It is noted that the intended model of authentication of the 828 subject is a long term one, and the advice as offered in 829 [RFC4211] is that the Authenticator Control field be used. 831 5.3. Certificate Extension Attributes in Certificate Requests 833 The following extensions MAY appear in a PKCS#10 or CRMF Certificate 834 Request. Any other extensions MUST NOT appear in a Certificate 835 Request. This profile places the following additional constraints on 836 these extensions.: 838 BasicConstraints 839 If this is omitted then the CA will issue an end entity 840 certificate with the BasicConstraints extension not present in 841 the issued certificate. 843 The Path Length Constraint is not supported in this Resource 844 Certificate Profile, and this field MUST be omitted in this 845 profile. 847 The CA MAY honour the SubjectType CA bit set to on. If this 848 bit is set, then it indicates that the Subject is allowed to 849 issue resource certificates within this overall framework. 851 The CA MUST honour the SubjectType CA bit set to off (End 852 Entity certificate request), in which case the corresponding 853 end entity certificate will not contain a BasicConstraints 854 extension. 856 SubjectKeyIdentifier 857 This field is assigned by the CA and MUST be omitted in this 858 profile. 860 AuthorityKeyIdentifier 861 This field is assigned by the CA and MUST be omitted in this 862 profile. 864 KeyUsage 865 The CA MAY honor KeyUsage extensions of keyCertSign and cRLSign 866 if present, as long as this is consistent with the 867 BasicConstraints SubjectType sub field, when specified. 869 SubjectInformationAccess 870 This field MUST be present when the subject is a CA, and the 871 field value SHOULD be honoured by the CA. If the CA is not 872 able to honor the requested field value, then the CA MUST 873 reject the Certificate Request. 875 This field (SIA) identifies the location of information and 876 services relating to the subject of the certificate in which 877 the SIA extension appears. 879 Where the subject is a CA in this profile, this information and 880 service collection will include all current valid certificates 881 that have been issued by this subject that are signed with the 882 subject's corresponding private key. 884 This profile uses a URI form of location identification. An 885 RSYNC URI MUST be specified, with an access method value of id- 886 ad-caRepository when the subject of the certificate is a CA. 887 The RSYNC URI MUST reference an object collection rather than 888 an individual object and MUST use a trailing '/' in the URI. 889 Other access method URIs that reference the same location MAY 890 also be included in the value sequence of this extension. The 891 ordering of URIs in this sequence reflect the subject's 892 relative preferences for access methods, with the first method 893 in the sequence being the most preferred by the Subject. 895 A request for a CA certificate MUST include in the SIA of the 896 request the id-ad-caRepository access method, and also MUST 897 include in the SIA of the request the accessMethod OID of id- 898 ad-rpkiManifest, where the associated accessLocation refers to 899 the subject's published manifest object as an object URL. 901 This field MAY be present when the subject is a EE. If it is 902 present the field value SHOULD be honoured by the CA. If the 903 CA is not able to honor the requested field value, then the CA 904 MUST reject the Certificate Request. If it is not present the 905 CA SHOULD honor this request and omit the SIA from the issued 906 certificate. If the CA is not able to honor the request to 907 omit the SIA, then the CA MUST reject the Certificate Request. 909 When an EE certificate is intended for use in verifying 910 multiple objects, the certificate request for the EE 911 certificate MUST include in the SIA of the request an access 912 method OID of id-ad-signedObjectRepository, and also MUST 913 include in the SIA of the request an access method OID of id- 914 ad-rpkiManifest, where the associated access location refers to 915 the publication point of the objects that are verified using 916 this EE certificate. 918 When an EE certificate is used to sign a single published 919 object, the certificate request for the EE certificate MUST 920 include in the SIA of the request an access method OID of id- 921 ad-signedObject, where the associated access location refers to 922 the publication point of the single object that is verified 923 using this EE certificate, and MUST NOT include an id-ad- 924 rpkiManifest access method OID in the SIA of the request. 926 In the case when the EE certificate is to be used exclusively 927 to sign one or more unpublished objects, such that the all 928 signed objects will not be published in any RPKI repository, 929 then the SIA SHOULD be omitted from the request. 931 CRLDistributionPoints 932 This field is assigned by the CA and MUST be omitted in this 933 profile. 935 AuthorityInformationAccess 936 This field is assigned by the CA and MUST be omitted in this 937 profile. 939 CertificatePolicies 940 This field is assigned by the CA and MUST be omitted in this 941 profile. 943 With the exceptions of the publicKey field and the 944 SubjectInformationAccess field, the CA is permitted to alter any 945 requested field. 947 6. Resource Certificate Validation 949 This section describes the Resource Certificate validation procedure. 950 This refines the generic procedure described in section 6 of 951 [RFC5280]. 953 To meet this goal, the path validation process verifies, among other 954 things, that a prospective certification path (a sequence of n 955 certificates) satisfies the following conditions: 957 1. for all x in {1, ..., n-1}, the subject of certificate x is 958 the issuer of certificate x+1; 960 2. certificate 1 is issued by a trust anchor; 962 3. certificate n is the certificate to be validated; and 964 4. for all x in {1, ..., n}, the certificate is valid. 966 6.1. Resource Extension Validation 968 The IP resource extension definition [RFC3779] defines a critical 969 extensions for Internet number resources. These are ASN.1 encoded 970 representations of the IPv4 and IPv6 address range (either as a 971 prefix/length, or start-end pair) and the AS number set. 973 Valid Resource Certificates MUST have a valid IP address and/or AS 974 number resource extension. In order to validate a Resource 975 Certificate the resource extension MUST also be validated. This 976 validation process relies on definitions of comparison of resource 977 sets: 979 more specific 980 Given two IP address or AS number contiguous ranges, A and B, A 981 is "more specific" than B if range B includes all IP addresses 982 or AS numbers described by range A, and if range B is larger 983 than range A. 985 equal 986 Given two IP address or AS number contiguous ranges, A and B, A 987 is "equal" to B if range A describes precisely the same 988 collection of IP addresses or AS numbers as described by range 989 B. The definition of "inheritance" in [RFC3779] is equivalent 990 to this "equality" comparison. 992 encompass 993 Given two IP address and AS number sets X and Y, X 994 "encompasses" Y if, for every contiguous range of IP addresses 995 or AS numbers elements in set Y, the range element is either 996 more specific than or equal to a contiguous range element 997 within the set X. 999 Validation of a certificate's resource extension in the context of an 1000 ordered certificate sequence of {1,2, ... , n} where '1' is issued by 1001 a trust anchor and 'n' is the target certificate, and where the 1002 subject of certificate 'x' is the issuer of certificate 'x' + 1, 1003 implies that the resources described in certificate 'x' "encompass" 1004 the resources described in certificate 'x' + 1, and the resources 1005 described in the trust anchor information "encompass" the resources 1006 described in certificate 1. 1008 6.2. Resource Certification Path Validation 1010 Validation of signed resource data using a target resource 1011 certificate consists of assembling an ordered sequence (or 1012 'Certification Path') of certificates ({1,2,...n} where '1' is a 1013 certificate that has been issued by a trust anchor, and 'n' is the 1014 target certificate) verifying that all of the following conditions 1015 hold: 1017 1. The certificate can be verified using the Issuer's public key 1018 and the signature algorithm 1020 2. The current time lies within the certificate's Validity From 1021 and To values. 1023 3. The certificate contains all fields that MUST be present and 1024 contains field values as specified in this profile for all 1025 field values that MUST be present. 1027 4. No field value that MUST NOT be present in this profile is 1028 present in the certificate. 1030 5. The Issuer has not revoked the certificate by placing the 1031 certificate's serial number on the Issuer's current 1032 Certificate Revocation List, and the Certificate Revocation 1033 List is itself valid. 1035 6. That the resource extension data is "encompassed" by the 1036 resource extension data contained in a valid certificate where 1037 this Issuer is the Subject (the previous certificate in the 1038 ordered sequence) 1040 7. The Certification Path originates with a certificate issued by 1041 a trust anchor, and there exists a signing chain across the 1042 Certification Path where the Subject of Certificate x in the 1043 Certification Path matches the Issuer in Certificate x+1 in 1044 the Certification Path. 1046 A certificate validation algorithm may perform these tests in any 1047 chosen order. 1049 Certificates and CRLs used in this process may be found in a locally 1050 maintained cache, maintained by a regular top-down synchronization 1051 pass, seeded with the CAs who operate at the apex of the resource 1052 distribution hierarchy, via reference to issued certificates and 1053 their SIA fields as forward pointers, plus the CRLDP. Alternatively, 1054 validation may be performed using a bottom-up process with on-line 1055 certificate access using the certificate's AIA and CRLDP pointers to 1056 guide the certificate retrieval process for each certificate's 1057 immediate superior CA certificate. 1059 There exists the possibility of encountering certificate paths that 1060 are arbitrarily long, or attempting to generate paths with loops as 1061 means of creating a potential DOS attack on a certificate validator. 1062 Some further heuristics may be required to halt the certification 1063 path validation process in order to avoid some of the issues 1064 associated with attempts to validate such structures. It is 1065 suggested that implementations of Resource Certificate validation MAY 1066 halt with a validation failure if the certification path length 1067 exceeds a pre-determined configuration parameter. 1069 6.3. Trust Anchors for Resource Certificates 1071 The trust model that may be used in the resource certificate 1072 framework in the context of validation of assertions of public number 1073 resources in public-use contexts is one that readily maps to a top- 1074 down delegated CA model that mirrors the delegation of resources from 1075 a registry distribution point to the entities that are the direct 1076 recipients of these resources. Within this trust model these 1077 recipient entities may, in turn, operate a registry and perform 1078 further allocations or assignments. This is a strict hierarchy, in 1079 that any number resource and a corresponding recipient entity has 1080 only one 'parent' issuing registry for that number resource (i.e. 1081 there is always a unique parent entity for any resource and 1082 corresponding entity), and that the issuing registry is not a direct 1083 or indirect subordinate recipient entity of the recipient entity in 1084 question (i.e. no loops in the model). 1086 The more general consideration is that selection of one or more trust 1087 anchor CAs is a task undertaken by relying parties. The structure of 1088 the resource certificate profile admits potentially the same variety 1089 of trust models as the PKIX profile. There is only one additional 1090 caveat on the general applicability of trust models and PKIX 1091 frameworks, namely that in forming a validation path to a trust 1092 anchor CA, the sequence of certificates MUST preserve the resource 1093 extension validation property, as described in Section 6.1, and the 1094 validation of the first certificate in the validation path not only 1095 involves the verification that the certificate was issued by a trust 1096 anchor CA, but also that the resource set described in the 1097 certificate MUST be encompassed by the trust anchor CA's resource 1098 set, as described in Section 6.1. 1100 The trust anchor information, describing a CA that serves as a trust 1101 anchor, includes the following: 1103 1. the trusted issuer name, 1105 2. the trusted public key algorithm, 1107 3. the trusted public key, 1109 4. optionally, the trusted public key parameters associated with 1110 the public key, and 1112 5. a resource set, consisting of a set of IPv4 resources, IPv6 1113 resources and AS number resources. 1115 The trust anchor information may be provided to the path processing 1116 procedure in the form of a self-signed certificate. 1118 6.3.1. Distribution Format of Nominated Trust Anchor Material 1120 In the RPKI the hierarchical certificate framework corresponds to the 1121 hierarchies of the resource distribution function. In consideration 1122 of this, it is reasonable to nominate to relying parties a default 1123 set of trust anchors for the RPKI that correspond to the entities who 1124 operate at the upper levels of the associated resource allocation 1125 hierarchy. The corresponding nominated trust anchor CA(s) should 1126 therefore map, in some fashion, to apex point(s) of the hierarchical 1127 resource distribution structure. 1129 The characteristics of a trust anchor framework for the RPKI includes 1130 the following considerations: 1132 * The entity or entities that issue proposed trust anchor 1133 material for the RPKI should be as close as possible to the 1134 apex of the associated resource distribution hierarchy. 1136 * Such trust anchor material SHOULD be long-lived. As it can be 1137 reasonably anticipated that default nominated trust anchor 1138 material would be distributed with relying party validation 1139 software, the implication is that the distributed default 1140 nominated trust anchor material SHOULD remain constant for 1141 extended time intervals. 1143 * It is a poor trust model when any entity that issues putative 1144 trust anchor material is forced to be authoritative over 1145 information or actions of which the entity has no direct 1146 knowledge, nor is in possession of a current definitive record 1147 of such actions. Entities who propose themselves in a role of 1148 a trust anchor issuer SHOULD be able to point to corroborative 1149 material supporting the assertion that they are legitimate 1150 authorities for the information where they are representing 1151 themselves as a potential trust anchor for relying parties. 1153 An entity offering itself as a putative RPKI trust anchor for a part 1154 of the RPKI is required to regularly publish a RPKI CA certificate at 1155 a stable URL, and to publish a packaged form of this URL as 1156 distributed trust anchor material, as follows: 1158 * The entity issues a RPKI self-signed "root" CA certificate that 1159 is used as the apex of a RPKI certificate issuance hierarchy. 1160 This certificate MUST have the keyCertSign sign bit set in the 1161 key usage extension, and the CA flag set in the basic 1162 constraints extension, no AIA value and no CRLDP value. This 1163 certificate MUST be reissued at regular intervals prior to 1164 expiration of the current RPKI self-signed certificate, and 1165 MUST be reissued upon any change in the resource set that has 1166 been allocated to the entity who is operating this CA. The 1167 validity interval of this certificate SHOULD reflect the 1168 anticipated period of the regular RPKI certificate re-issuance. 1170 * The entity maintains a "trust anchor material" key pair. 1172 * The entity issues a PKI self-signed CA certificate [RFC5280] 1173 using the trust anchor material key pair, where the subject 1174 public key in the certificate is the public key of the trust 1175 anchor material key pair and the certificate is signed by the 1176 corresponding private key of trust anchor material key pair. 1177 This certificate MUST have the keyCertSign sign bit set in the 1178 key usage extension, and the CA flag set in the basic 1179 constraints extension, no AIA value and no CRLDP value. The 1180 validity period of this certificate shold be very long-lived, 1181 with the period to be defined by the entity. The SIA of this 1182 certificate references a publication point where the CRL and 1183 the subordinate product of this certificate are published. 1185 * The PKI CA issues a subordinate PKI EE certificate with a 1186 validity period identical to the validity period of the RPKI 1187 self-signed "root" CA certificate. This PKI EE certificate 1188 MUST have the digitalSignature bit set, and this MUST be the 1189 only bit set to TRUE. The CA flag set MUST be cleared in the 1190 basic constraints extension. The validity period of this 1191 certificate SHOULD be aligned to the validity period of the 1192 RPKI self-signed "root" CA certificate. 1194 * The PKI CA regularly issues a CRL. The CRL issuance cycle 1195 SHOULD be shorter than the validity period for the RPKI self- 1196 signed "root" certificate. 1198 * Each time the RPKI self-signed "root" certificate is re-issued, 1199 or prior to the expiration of the PKI EE certificate, the PKI 1200 CA generates a Cryptographic Message Syntax (CMS) [RFC3852] 1201 signed-data object, where the payload is the RPKI self-signed 1202 "root" certificate. The object is CMS-signed with the private 1203 key of the PKI EE certificate. The PKI EE certificate is 1204 included as a CMS signed attribute in the CMS object. The PKI 1205 self-signed CA certificate and the asociated CRL are not to be 1206 included in the CMS object. The format of the CMS object is 1207 specified in Appendix C. The CMS object is published at the 1208 location referenced in the SIA of the PKI self-signed CA 1209 certificate. 1211 * The entity publically distributes the PKI self-signed CA 1212 certificate as its proposed trust anchor material. 1214 * The entity publishes the modulus and exponent of the "trust 1215 anchor material" public key using a trusted form of publication 1216 that allows the entity's identity to be validated and the 1217 retrieval of the published information to be secured. 1219 Relying Parties can assemble the default trust anchor collection by 1220 using the distributed PKI self-signed CA certificate for each 1221 nominated trust anchor: 1223 * The public key in the self-signed CA PKI certificate can be 1224 validated using the modulus and exponent values as retrieved 1225 from the entity's publication point using a secured retrieval 1226 operation. 1228 * The PKI CA's CRL and CMS objects can be retrieved from the 1229 publication point referenced by the SIA in the PKI CA 1230 certificate. 1232 * The CRL can be verified against the PKI CA certificate. 1234 * The CMS signature can be verified using the included PKI EE 1235 certificate together with the retrieved CRL and the self-signed 1236 PKI CA certificate. 1238 * The relying party can then load the enclosed RPKI self-signed 1239 CA certificate as a trust anchor for RPKI validation for those 1240 resources described in the resource extension of this RPKI 1241 certificate. 1243 Relying Parties SHOULD perform this retrieval and validation 1244 operation at intervals no less frequent than the nextUpdate time of 1245 the published CRL, and SHOULD perform the retrieval operation prior 1246 to the expiration of the PKI EE certificate, or upon revocation of 1247 the PKI EE certificate that was used to sign the CMS object that held 1248 the relying party's current RPKI self-signed CA certificate. 1250 If a trust anchor CA wishes to perform an issuance of the RPKI self- 1251 signed CA certificate outside the established update cycle time, it 1252 can notify relying parties of this by revising the nextUpdate time of 1253 the PKI CA's CRL to a shorter interval, issuing a new PKI CA 1254 certificate and a new CMS object with the new RPKI self-signed CA 1255 certificate, and revoking the old PKI 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 ofthe RPKI self-signed CA certificate at a time earlier than the 1259 normal 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 not permit the use of any other critical 1272 or non-critical extensions. The rationale for this restriction 1273 is 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 judgement of validity. This profile takes the 1281 position of minimialism over extensibility. The specific goal 1282 for the associated Resource Public Key Infrastructure to 1283 precisely match the IP number resource allocation structure 1284 through an aligned certificate structure that describes the 1285 allocation and its context within the number resource 1286 distribution hierarchy. The profile defines a resource 1287 certificate that is structured 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 certified 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 it 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 suitable 1307 distinguished name to use as the 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 products issued by this CA. Becuase the CA instance is 1313 bound to a single key pair this implies that the CA's key 1314 value, the key value that signs the CA's CRL and the key 1315 value that signed the revoked products of the CA are all 1316 the same key value. 1318 Repository Publication Point: 1319 The definition of a CA affects the design of the 1320 repository publication system. In order to minimise 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 minimise the extent of re-generation of certificate 1326 products to 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 regine 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 regularly issued signed manifest 1335 of all OLD CA published products, but should not sign any 1336 other products. The CURRENT CA should publish its CRL, 1337 and should publish all subordinate products, as well as 1338 issuing EE certificates as necessary to maintain a 1339 regularly issued signed manifest of all CURRENT CA 1340 published products. FUTURE CAs should publish no 1341 products at all in the repository publication point. It 1342 would be consistent with this repository object name 1343 framework for the CRL and manifest to be published using 1344 object names derived from the hash of the public key 1345 value of the CA instance. 1347 Key Rollover: 1348 As a CA instance is associated with a single key pair, then 1349 there are some considerations regarding the procedure that 1350 should be followed by an entity performing a key rollover 1351 function. The entity will need to create a new CA instance and 1352 then use this new CA instance to re-issue all subordinate 1353 products with the new CA instance. 1355 To perform a key rollover operation the entity will need to: 1357 1. Generate a NEW key pair. 1359 2. Generate a certificate request with the NEW key 1360 pair and pass the request to the entity's issuer. 1362 3. The entity's issuer to generate and publish a NEW 1363 CA certificate, with an issuer-selected subject 1364 name that is distinct from the subject name used in 1365 conjunction with the previous subject name value 1366 for this entity. 1368 4. Mark the CURRENT CA as OLD and the NEW CA as 1369 CURRENT. 1371 5. The CURRENT CA to generate subordinate certificates 1372 for all existing subordinate CA and EE products, 1373 and publish those products in the same repository 1374 publication point and with the same repository 1375 publication point name as the previous OLD 1376 subordinate CA and EE products. 1378 6. The new subordinate EE certificates will need to 1379 re-sign the objects signed by the OLD EE 1380 certificate, and publish these objects in the same 1381 repository publication point and the same 1382 repository publication point name as the previous 1383 OLD signed objects. 1385 7. Generate a certificate revocation request for the 1386 OLD CA certificate and pass it to the entity's 1387 issuer. 1389 8. Remove all published OLD CA products and destroy 1390 the OLD keypair. 1392 Name Uniqueness: 1393 This profile specifies that subject names must be unique per 1394 issuer, and does not specify that subject names must be 1395 globally unique. 1397 Given that the Resource Certificate PKI is a distributed PKI, 1398 there is no inherent ability for Cartification authorities to 1399 coordinate PKI-wide unique subject names. Hierarchically 1400 structured subject names probably should not incorporate the 1401 use superior CA issuer names due to the issue of forced 1402 reissuance of subordinate products in the event of a re-keying 1403 of a superior CA, as the practical implementation of a re-key 1404 operation is a change of CA. However, as the publication 1405 repository is distributed, and distinct entities use distinct 1406 repository publication points any potential ambiguity is 1407 resolved by the distinct publication point. 1409 8. Security Considerations 1411 The Security Considerations of [RFC5280] and [RFC3779]apply to 1412 Resource Certificates as defined by this profile, and their use. 1414 A Resource Certificate PKI cannot in and of itself resolve any forms 1415 of ambiguity relating to uniqueness of assertions of rights of use in 1416 the event that two or more valid certificates encompass the same 1417 resource. If the issuance of resource certificates is aligned to the 1418 status of resource allocations and assignments then the information 1419 conveyed in a certificate is no better than the information in the 1420 allocation and assignment databases. 1422 9. IANA Considerations 1424 [Note to IANA, to be removed prior to publication: there are no IANA 1425 considerations stated in this document.] 1427 10. Acknowledgements 1429 The authors would like to acknowledge the valued contributions from 1430 Stephen Kent, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo 1431 Patara and Rob Austein in the preparation and subsequent review of 1432 this document. The document also reflects review comments received 1433 from Sean Turner and David Cooper. 1435 11. References 1437 11.1. Normative References 1439 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 1440 September 1981. 1442 [RFC2050] Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D., and 1443 J. Postel, "INTERNET REGISTRY IP ALLOCATION GUIDELINES", 1444 BCP 12, RFC 2050, November 1996. 1446 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 1447 Addresses and AS Identifiers", RFC 3779, June 2004. 1449 [RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", 1450 RFC 3852, July 2004. 1452 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 1453 Algorithms and Identifiers for RSA Cryptography for use in 1454 the Internet X.509 Public Key Infrastructure Certificate 1455 and Certificate Revocation List (CRL) Profile", RFC 4055, 1456 June 2005. 1458 [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure 1459 Certificate Request Message Format (CRMF)", RFC 4211, 1460 September 2005. 1462 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1463 Architecture", RFC 4291, February 2006. 1465 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 1466 Housley, R., and W. Polk, "Internet X.509 Public Key 1467 Infrastructure Certificate and Certificate Revocation List 1468 (CRL) Profile", RFC 5280, May 2008. 1470 [X.509] ITU-T, "Recommendation X.509: The Directory - 1471 Authentication Framework", 2000. 1473 11.2. Informative References 1475 [ID.SIDR-MANIFESTS] 1476 Austein, R., Huston, G., Kent, S., and M. Lepinski, 1477 "Manifests for the Resource Public Key Infrastructure", 1478 Work in progress: Internet 1479 Drafts draft-ietf-sidr-rpki-manifests-00.txt, 1480 January 2008. 1482 [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object 1483 Classes and Attribute Types Version 2.0", RFC 2985, 1484 November 2000. 1486 [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification 1487 Request Syntax Specification Version 1.7", RFC 2986, 1488 November 2000. 1490 [RFC4158] Cooper, M., Dzambasow, Y., Hesse, P., Joseph, S., and R. 1491 Nicholas, "Internet X.509 Public Key Infrastructure: 1492 Certification Path Building", RFC 4158, September 2005. 1494 [rsync] Tridgell, A., "rsync", April 2006, 1495 . 1497 Appendix A. Example Resource Certificate 1499 The following is an example Resource Certificate. 1501 Certificate Name: hu9fdDBq60mrk7cPRuX2DYuXSRQ-3.cer 1503 Data: 1504 Version: 3 1505 Serial: 3 1506 Signature Algorithm: Hash: SHA256, Encryption: RSA 1507 Issuer: CN=Demo Production APNIC CA - Not for real use, 1508 E=ca@apnic.net 1509 Validity: 1510 Not Before: Thu Jul 27 06:34:04 2006 GMT 1511 Not After: Fri Jul 27 06:34:04 2007 GMT 1512 Subject: CN=APNIC own-use network resources 1513 Subject Key Identifier: 1514 86:ef:5f:74:30:6a:eb:49:ab:93:b7:0f:46:e5:f6:0d: 1516 8b:97:49:14 1517 Subject Key Identifier g(SKI): 1518 hu9fdDBq60mrk7cPRuX2DYuXSRQ 1519 Subject Public Key Info: 1520 Public Key Algorithm: rsaEncryption 1521 RSA Public Key: Modulus: 1522 c1:25:a1:b0:db:89:83:a0:fc:f1:c0:e4:7b:93:76:c1: 1523 59:b7:0d:ac:25:25:ed:88:ce:00:03:ea:99:1a:9a:2a: 1524 0e:10:2e:5f:c0:45:87:47:81:7b:1d:4d:44:aa:65:a3: 1525 f8:07:84:32:ea:04:70:27:05:2b:79:26:e6:e6:3a:cb: 1526 b2:9a:65:6c:c1:4e:d7:35:fb:f6:41:1e:8b:1c:b8:e4: 1527 5a:3a:d6:d0:7b:82:9a:23:03:f8:05:4c:68:42:67:fe: 1528 e7:45:d9:2c:a6:d1:b3:da:cf:ad:77:c5:80:d2:e3:1e: 1529 4d:e8:bf:a2:f2:44:10:b2:2f:61:bc:f4:89:31:54:7c: 1530 56:47:d5:b1:c3:48:26:95:93:c9:6f:70:14:4d:ac:a5: 1531 c2:8e:3d:1f:6d:f8:d4:93:9d:14:c7:15:c7:34:8e:ba: 1532 dd:70:b3:c2:2b:08:78:59:97:dd:e4:34:c7:d8:de:5c: 1533 f7:94:6f:95:59:ba:29:65:f5:98:15:8f:8e:57:59:5d: 1534 92:1f:64:2f:b5:3d:69:2e:69:83:c2:10:c6:aa:8e:03: 1535 d5:69:11:bd:0d:b5:d8:27:6c:74:2f:60:47:dd:2e:87: 1536 24:c2:36:68:2b:3c:fd:bd:22:57:a9:4d:e8:86:3c:27: 1537 03:ce:f0:03:2e:59:ce:05:a7:41:3f:2f:64:50:dd:e7 1538 RSA Public Key: Exponent: 65537 1539 Basic Constraints: CA: TRUE 1540 Subject Info Access: 1541 caRepository - rsync://repository.apnic.net/APNIC/ 1542 pvpjvwUeQix2e54X8fGbhmdYMo0/ 1543 q66IrWSGuBE7jqx8PAUHAlHCqRw/ 1544 hu9fdDBq60mrk7cPRuX2DYuXSRQ/ 1545 Key Usage: keyCertSign, cRLSign 1546 CRL Distribution Points: 1547 rsync://repository.apnic.net/APNIC/ 1548 pvpjvwUeQix2e54X8fGbhmdYMo0/ 1549 q66IrWSGuBE7jqx8PAUHAlHCqRw/ 1550 q66IrWSGuBE7jqx8PAUHAlHCqRw.crl 1551 Authority Info Access: caIssuers - 1552 rsync://repository.apnic.net/APNIC/ 1553 pvpjvwUeQix2e54X8fGbhmdYMo0/ 1554 q66IrWSGuBE7jqx8PAUHAlHCqRw.cer 1555 Authority Key Identifier: Key Identifier: 1556 ab:ae:88:ad:64:86:b8:11:3b:8e:ac:7c:3c:05:07:02: 1557 51:c2:a9:1c 1558 Authority Key Identifier: Key Identifier g(AKI): 1559 q66IrWSGuBE7jqx8PAUHAlHCqRw 1560 Certificate Policies: 1.3.6.1.5.5.7.14.2 1561 IPv4: 192.0.2.0/24, 1562 IPv6: 2001:DB8::/32 1563 ASNum: 4608, 4777, 9545, 18366-18370 1564 Signature: 1565 c5:e7:b2:f3:62:cb:e3:bc:50:1e:6b:90:13:19:f4:5b: 1566 4a:1c:1c:ab:b5:de:b1:a4:22:e0:28:f5:3b:d0:8c:59: 1567 0f:85:f2:06:a6:ae:22:e6:d0:99:fe:cb:eb:1d:6a:e2: 1568 a3:f1:a2:25:95:ec:a7:7d:96:35:dc:16:a7:2f:f5:b7: 1569 11:ba:97:05:57:5f:5d:07:5a:c8:19:c8:27:d3:f7:a3: 1570 92:66:cb:98:2d:e1:7f:a8:25:96:ab:af:ed:87:02:28: 1571 f5:ae:b6:e3:0c:f7:18:82:70:82:f4:76:54:06:b9:9f: 1572 e1:a5:f7:ae:72:dd:ee:f0:d4:d2:78:bb:61:73:cf:51: 1573 26:9f:ea:e8:20:49:06:ba:0c:ac:1d:f6:07:b8:63:a0: 1574 4d:3d:8e:12:84:3a:d0:ec:94:7e:02:db:d4:85:cf:12: 1575 5c:7b:12:1a:52:ab:3c:ba:00:f2:71:e7:f0:fd:b3:f4: 1576 81:e8:a7:cb:07:ca:3a:a4:24:fe:dc:bb:51:16:6a:28: 1577 33:40:a4:64:60:75:0e:c8:06:c8:5f:e5:98:be:16:a3: 1578 bc:19:e7:b3:4f:00:0a:8e:81:33:dd:4c:a0:fb:f5:1c: 1579 1f:1d:3f:b5:90:8b:ec:98:67:76:95:56:8a:94:45:54: 1580 52:3d:1c:69:4c:6f:8a:9f:09:ec:ef:b0:a9:bc:cf:9d 1582 Appendix B. Example Certificate Revocation List 1584 The following is an example Certificate Revocation List. 1586 CRL Name: q66IrWSGuBE7jqx8PAUHAlHCqRw.crl 1588 Data: 1589 Version: 2 1590 Signature Algorithm: 1591 Hash: SHA256, Encryption: RSA 1592 Issuer: CN=Demo Production APNIC CA - Not for real use, 1593 E=ca@apnic.net 1594 This Update: Thu Jul 27 06:30:34 2006 GMT 1595 Next Update: Fri Jul 28 06:30:34 2006 GMT 1596 Authority Key Identifier: Key Identifier: 1597 ab:ae:88:ad:64:86:b8:11:3b:8e:ac:7c:3c:05: 1598 07:02:51:c2:a9:1c 1599 Authority Key Identifier: Key Identifier g(AKI): 1600 q66IrWSGuBE7jqx8PAUHAlHCqRw 1601 CRLNumber: 4 1602 Revoked Certificates: 1 1603 Serial Number: 1 1604 Revocation Date: Mon Jul 17 05:10:19 2006 GMT 1605 Serial Number: 2 1606 Revocation Date: Mon Jul 17 05:12:25 2006 GMT 1607 Serial Number: 4 1608 Revocation Date: Mon Jul 17 05:40:39 2006 GMT 1609 Signature: 1610 b2:5a:e8:7c:bd:a8:00:0f:03:1a:17:fd:40:2c:46: 1611 0e:d5:64:87:e7:e7:bc:10:7d:b6:3e:39:21:a9:12: 1612 f4:5a:d8:b8:d4:bd:57:1a:7d:2f:7c:0d:c6:4f:27: 1613 17:c8:0e:ae:8c:89:ff:00:f7:81:97:c3:a1:6a:0a: 1614 f7:d2:46:06:9a:d1:d5:4d:78:e1:b7:b0:58:4d:09: 1615 d6:7c:1e:a0:40:af:86:5d:8c:c9:48:f6:e6:20:2e: 1616 b9:b6:81:03:0b:51:ac:23:db:9f:c1:8e:d6:94:54: 1617 66:a5:68:52:ee:dd:0f:10:5d:21:b8:b8:19:ff:29: 1618 6f:51:2e:c8:74:5c:2a:d2:c5:fa:99:eb:c5:c2:a2: 1619 d0:96:fc:54:b3:ba:80:4b:92:7f:85:54:76:c9:12: 1620 cb:32:ea:1d:12:7b:f8:f9:a2:5c:a1:b1:06:8e:d8: 1621 c5:42:61:00:8c:f6:33:11:29:df:6e:b2:cc:c3:7c: 1622 d3:f3:0c:8d:5c:49:a5:fb:49:fd:e7:c4:73:68:0a: 1623 09:0e:6d:68:a9:06:52:3a:36:4f:19:47:83:59:da: 1624 02:5b:2a:d0:8a:7a:33:0a:d5:ce:be:b5:a2:7d:8d: 1625 59:a1:9d:ee:60:ce:77:3d:e1:86:9a:84:93:90:9f: 1626 34:a7:02:40:59:3a:a5:d1:18:fb:6f:fc:af:d4:02: 1627 d9 1629 Appendix C. Cryptographic Message Syntax Profile for RPKI Trust Anchor 1630 Material 1632 Using the Cryptographic Message Syntax (CMS) [RFC3852], a RPKI Trust 1633 Anchor Object (RTA) is a type of signed-data object. The general 1634 format of a CMS object is: 1636 ContentInfo ::= SEQUENCE { 1637 contentType ContentType, 1638 content [0] EXPLICIT ANY DEFINED BY contentType } 1640 ContentType ::= OBJECT IDENTIFIER 1642 As a RTA is a signed-data object, it uses the corresponding OID, 1643 1.2.840.113549.1.7.2. [RFC3852]. 1645 C.1. Signed-Data ContentType 1647 According to the CMS specification, the signed-data content type 1648 shall have ASN.1 type SignedData: 1650 SignedData ::= SEQUENCE { 1651 version CMSVersion, 1652 digestAlgorithms DigestAlgorithmIdentifiers, 1653 encapContentInfo EncapsulatedContentInfo, 1654 certificates [0] IMPLICIT CertificateSet OPTIONAL, 1655 crls [1] IMPLICIT RevocationInfoChoices OPTIONAL, 1656 signerInfos SignerInfos } 1658 DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier 1660 SignerInfos ::= SET OF SignerInfo 1662 The elements of the signed-data content type are as follows: 1664 version 1665 The version is the syntax version number. It MUST be 3, 1666 corresponding to the signerInfo structure having version 1667 number 3. 1669 digestAlgorithms 1670 The digestAlgorithms set MUST include only SHA-256, the OID 1671 for which is 2.16.840.1.101.3.4.2.1. [RFC4055]. It MUST 1672 NOT contain any other algorithms. 1674 encapContentInfo 1675 This element is defined in Appendix C.1.1. 1677 certificates 1678 The certificates element MUST be included and MUST contain 1679 only the single PKI EE certificate needed to validate this 1680 CMS Object. The CertificateSet type is defined in section 1681 10 of [RFC3852] 1683 crls 1684 The crls element MUST be omitted. 1686 signerInfos 1687 This element is defined in Appendix C.1.2. 1689 C.1.1. encapContentInfo 1691 encapContentInfo is the signed content, consisting of a content type 1692 identifier and the content itself. 1694 EncapsulatedContentInfo ::= SEQUENCE { 1695 eContentType ContentType, 1696 eContent [0] EXPLICIT OCTET STRING OPTIONAL } 1698 ContentType ::= OBJECT IDENTIFIER 1700 The elements of this signed content type are as follows: 1702 eContentType 1703 The ContentType for an RTA is defined as id-ct- 1704 RPKITrustAnchor and has the numerical value of 1705 1.2.840.113549.1.9.16.1.33. 1707 id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2) 1708 us(840) rsadsi(113549) pkcs(1) pkcs9(9) 16 } 1710 id-ct OBJECT IDENTIFIER ::= { id-smime 1 } 1712 id-ct-RPKITrustAnchor OBJECT IDENTIFIER ::= { id-ct 33 } 1714 eContent 1715 The content of an RTA is an RPKI self-signed CA certificate. 1716 It is formally defined as: 1718 id-ct-RPKITrustAnchor ::= Certificate 1720 The definition of Certificate is taken from [X.509]. 1722 C.1.2. signerInfos 1724 SignerInfo is defined under CMS as: 1726 SignerInfo ::= SEQUENCE { 1727 version CMSVersion, 1728 sid SignerIdentifier, 1729 digestAlgorithm DigestAlgorithmIdentifier, 1730 signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL, 1731 signatureAlgorithm SignatureAlgorithmIdentifier, 1732 signature SignatureValue, 1733 unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL } 1735 The content of the SignerInfo element are as follows: 1737 version 1738 The version number MUST be 3, corresponding with the choice 1739 of SubjectKeyIdentifier for the sid. 1741 sid 1742 The sid is defined as: 1744 SignerIdentifier ::= CHOICE { 1745 issuerAndSerialNumber IssuerAndSerialNumber, 1746 subjectKeyIdentifier [0] SubjectKeyIdentifier } 1748 For a RTA, the sid MUST be a SubjectKeyIdentifier. 1750 digestAlgorithm 1751 The digestAlgorithm MUST be SHA-256, the OID for which is 1752 2.16.840.1.101.3.4.2.1. [RFC4055] 1754 signedAttrs 1755 The signedAttrs element is defined as: 1757 SignedAttributes ::= SET SIZE (1..MAX) OF Attribute 1759 Attribute ::= SEQUENCE { 1760 attrType OBJECT IDENTIFIER, 1761 attrValues SET OF AttributeValue } 1763 AttributeValue ::= ANY 1765 The signedAttr element MUST be present and MUST include the 1766 content-type and message-digest attributes. The signer MAY 1767 also include the signing-time signed attribute, the binary- 1768 signing-time signed attribute, or both signed attributes. 1769 Other signed attributes that are deemed appropriate MAY also 1770 be included. The intent is to allow additional signed 1771 attributes to be included if a future need is identified. 1772 This does not cause an interoperability concern because 1773 unrecognized signed attributes are ignored by the relying 1774 party. 1776 The signedAttr MUST include only a single instance of any 1777 particular attribute. Additionally, even though the syntax 1778 allows for a SET OF AttributeValue, in a RTA the attrValues 1779 must consist of only a single AttributeValue. 1781 ContentType Attribute 1782 The ContentType attribute MUST be present. The 1783 attrType OID for the ContentType attribute is 1784 1.2.840.113549.1.9.3. 1786 The attrValues for the ContentType attribute in 1787 a RTA MUST be 1.2.840.113549.1.9.16.1.24 1788 (matching the eContentType in the 1789 EncapsulatedContentInfo). 1791 MessageDigest Attribute 1792 The MessageDigest attribute MUST be present. 1793 The attrType OID for the MessageDigest Attribute 1794 is 1.2.840.113549.1.9.4. 1796 The attrValues for the MessageDigest attribute 1797 contains the output of the digest algorithm 1798 applied to the content being signed, as 1799 specified in Section 11.1 of [RFC3852]. 1801 SigningTime Attribute 1802 The SigningTime attribute MAY be present. If it 1803 is present it MUST be ignored by the relying 1804 party. The presence of absence of the 1805 SigningTime attribute in no way affects the 1806 validation of the RTA. The attrType OID for the 1807 SigningTime attribute is 1.2.840.113549.1.9.5. 1809 The attrValues for the SigningTime attribute is 1810 defined as: 1812 SigningTime ::= Time 1814 Time ::= CHOICE { 1815 utcTime UTCTime, 1816 generalizedTime GeneralizedTime } 1818 The Time element specifies the time, based on 1819 the local system clock, at which the digital 1820 signature was applied to the content. 1822 BinarySigningTime Attribute 1823 The The BinarySigningTime attribute MAY be 1824 present. If it is present it MUST be ignored by 1825 the relying party. The presence of absence of 1826 the BinarySigningTime attribute in no way 1827 affects the validation of the RTA. The attrType 1828 OID for the SigningTime attribute is 1829 1.2.840.113549.1.9.16.2.46. 1831 The attrValues for the SigningTime attribute is 1832 defined as: 1834 BinarySigningTime ::= BinaryTime 1836 BinaryTime ::= INTEGER (0..MAX) 1838 The BinaryTime element specifies the time, based 1839 on the local system clock, at which the digital 1840 signature was applied to the content. 1842 signatureAlgorithm 1843 The signatureAlgorithm MUST be RSA (rsaEncryption), the OID 1844 for which is 1.2.840.113549.1.1.1.q 1846 signature 1847 The signature value is defined as: 1849 SignatureValue ::= OCTET STRING 1851 The signature characteristics are defined by the digest and 1852 signature algorithms. 1854 unsignedAttrs 1855 unsignedAttrs MUST be omitted. 1857 C.2. RTA Validation 1859 Before a relying party can use an RTA, the relying party must first 1860 validate the RTA by performing the following steps. 1862 1. Verify that the RTA syntax complies with this specification. 1863 In particular, verify the following: 1865 a. The contentType of the CMS object is SignedData (OID 1866 1.2.840.113549.1.7.2). 1868 b. The version of the SignedData object is 3. 1870 c. The digestAlgorithm in the SignedData object is SHA-256 1871 (OID 2.16.840.1.101.3.4.2.1). 1873 d. The certificates field in the SignedData object is present 1874 and contains an EE certificate whose Subject Key 1875 Identifier (SKI) matches the sid field of the SignerInfo 1876 object. 1878 e. The crls field in the SignedData object is omitted. 1880 f. The eContentType in the EncapsulatedContentInfo is id-ct- 1881 RPKITrustAnchor (OID 1.2.840.113549.1.9.16.1.[TBD]) 1883 g. The version of the SignerInfo is 3. 1885 h. The digestAlgorithm in the SignerInfo object is SHA-256 1886 (OID 2.16.840.1.101.3.4.2.1). 1888 i. The signatureAlgorithm in the SignerInfo object is RSA 1889 (OID 1.2.840.113549.1.1.1). 1891 j. The signedAttrs field in the SignerInfo object is present 1892 and contains both the ContentType attribute (OID 1893 1.2.840.113549.1.9.3) and the MessageDigest attribute (OID 1894 1.2.840.113549.1.9.4). 1896 k. The unsignedAttrs field in the SignerInfo object is 1897 omitted. 1899 2. Use the public key in the EE certificate to verify the 1900 signature on the RTA. 1902 3. Verify that the EE certificate is a valid end-entity 1903 certificate in the Trust Anchor PKI by validating that the PKI 1904 CA certificate issued this EE certificate, and the PKI CA's 1905 CRL has not revoked the EE certificate, and that the PKI CA's 1906 CRL is valid. 1908 Authors' Addresses 1910 Geoff Huston 1911 Asia Pacific Network Information Centre 1913 Email: gih@apnic.net 1914 URI: http://www.apnic.net 1916 George Michaelson 1917 Asia Pacific Network Information Centre 1919 Email: ggm@apnic.net 1920 URI: http://www.apnic.net 1922 Robert Loomans 1923 Asia Pacific Network Information Centre 1925 Email: robertl@apnic.net 1926 URI: http://www.apnic.net 1928 Full Copyright Statement 1930 Copyright (C) The IETF Trust (2008). 1932 This document is subject to the rights, licenses and restrictions 1933 contained in BCP 78, and except as set forth therein, the authors 1934 retain all their rights. 1936 This document and the information contained herein are provided on an 1937 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 1938 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 1939 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 1940 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 1941 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 1942 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 1944 Intellectual Property 1946 The IETF takes no position regarding the validity or scope of any 1947 Intellectual Property Rights or other rights that might be claimed to 1948 pertain to the implementation or use of the technology described in 1949 this document or the extent to which any license under such rights 1950 might or might not be available; nor does it represent that it has 1951 made any independent effort to identify any such rights. Information 1952 on the procedures with respect to rights in RFC documents can be 1953 found in BCP 78 and BCP 79. 1955 Copies of IPR disclosures made to the IETF Secretariat and any 1956 assurances of licenses to be made available, or the result of an 1957 attempt made to obtain a general license or permission for the use of 1958 such proprietary rights by implementers or users of this 1959 specification can be obtained from the IETF on-line IPR repository at 1960 http://www.ietf.org/ipr. 1962 The IETF invites any interested party to bring to its attention any 1963 copyrights, patents or patent applications, or other proprietary 1964 rights that may cover technology that may be required to implement 1965 this standard. Please address the information to the IETF at 1966 ietf-ipr@ietf.org.