SIDR G. Huston Internet-Draft G. Michaelson Intended status: Standards Track R. Loomans Expires:November 20, 2010April 17, 2011 APNICMay 19,October 14, 2010 A Profile for X.509 PKIX Resource Certificatesdraft-ietf-sidr-res-certs-18draft-ietf-sidr-res-certs-19 Abstract This document defines a standard profile for X.509 certificates for the purposes of supporting validation of assertions of "right-of-use" ofan Internet Number Resource (IP Addresses and Autonomous System Numbers). ThisResources (INRs). The certificates issued under this profileisare used to convey the Issuer's authorisation of the Subject to be regarded as the current holder of a"right-of- use""right-of-use" of theIP addresses and AS numbersINRs that are described in theissuedcertificate. This document contains the normative specification of Certificate and Certificate Revocation List (CRL) syntax in the Resource Public Key Infrastructure (RPKI). The document also specifies profiles for the format of certificate requests. The document also specifies the Relying Party RPKI certificate path validation procedure. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire onNovember 20, 2010.April 17, 2011. Copyright Notice Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 2. Describing Resources in Certificates . . . . . . . . . . . . . 5 3. End-Entity (EE) Certificates and Signing Functions in the RPKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 3.1. Single-Use EE Certificates . . . . . . . . . . . . . . . . 6 3.2. Multi-Use EE Certificates . . . . . . . . . . . . . . . .76 4. ResourceCertificate FieldsCertificates . . . . . . . . . . . . . . . . .7. . . 6 4.1. Version . . . . . . . . . . . . . . . . . . . . . . . . .76 4.2. Serial number . . . . . . . . . . . . . . . . . . . . . .76 4.3. Signature Algorithm . . . . . . . . . . . . . . . . . . . 7 4.4. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . .87 4.5. Subject . . . . . . . . . . . . . . . . . . . . . . . . .87 4.6. Valid From . . . . . . . . . . . . . . . . . . . . . . . .87 4.7. Valid To . . . . . . . . . . . . . . . . . . . . . . . . .98 4.8. Subject Public Key Info . . . . . . . . . . . . . . . . .98 4.9. Resource CertificateVersion 3 Extension FieldsExtensions . . . . .9. . . . . . . . 8 4.9.1. Basic Constraints . . . . . . . . . . . . . . . . . .98 4.9.2. Subject Key Identifier . . . . . . . . . . . . . . . .109 4.9.3. Authority Key Identifier . . . . . . . . . . . . . . .109 4.9.4. Key Usage . . . . . . . . . . . . . . . . . . . . . .109 4.9.5. Extended Key Usage . . . . . . . . . . . . . . . . . .119 4.9.6. CRL Distribution Points . . . . . . . . . . . . . . .119 4.9.7. Authority Information Access . . . . . . . . . . . . .1210 4.9.8. Subject Information Access . . . . . . . . . . . . . .1211 4.9.9. Certificate Policies . . . . . . . . . . . . . . . . .1412 4.9.10. IP Resources . . . . . . . . . . . . . . . . . . . . .1412 4.9.11. AS Resources . . . . . . . . . . . . . . . . . . . . .1513 5. Resource Certificate RevocationList Profile . . . . . . . . . 15 5.1. Version . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2. Issuer Name . . . . . . . . . . . . . . . . . . . . . . . 15 5.3. This Update . . . . . . . . . . . . . . . . . . . . . . . 16 5.4. Next Update . . . . . . . . . . . . . . . . . . . . . . . 16 5.5. Signature . . . . . . . . . . . .Lists . . . . . . . . . . . .16 5.6. Revoked13 6. Resource CertificateList . . . . . . . . . . . . . . . . . 16 5.6.1. Serial Number . . . . . . . . . . . . . . . . . . . . 16 5.6.2. Revocation Date . . . . . . . . . . . . . . . . . . . 16 5.7. CRL Extensions . . . . . . . . . . . . . . . . . . . . . . 16 5.7.1. Authority Key Identifier . . . . . . . . . . . . . . . 17 5.7.2. CRL Number . . . . . . . . . . . . . .Requests . . . . . . . .17 6. Resource Certificate Request Profile. . . . . . . .. . . . . 1714 6.1. PCKS#10 Profile . . . . . . . . . . . . . . . . . . . . .1714 6.1.1. PKCS#10 Resource Certificate Request Template Fields . . . . . . . . . . . . . . . . . . . . . . . .1714 6.2. CRMF Profile . . . . . . . . . . . . . . . . . . . . . . .1815 6.2.1. CRMF Resource Certificate Request Template Fields . .1915 6.2.2. Resource Certificate Request Control Fields . . . . .2016 6.3. Certificate Extension Attributes in Certificate Requests . . . . . . . . . . . . . . . . . . . . . . . . .2016 7. Resource Certificate Validation . . . . . . . . . . . . . . .2317 7.1. Resource Extension Validation . . . . . . . . . . . . . .2317 7.2. Resource Certification Path Validation . . . . . . . . . .2418 8. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . .2520 9. Security Considerations . . . . . . . . . . . . . . . . . . .2922 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .2923 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .2923 12. References . . . . . . . . . . . . . . . . . . . . . . . . . .3023 12.1. Normative References . . . . . . . . . . . . . . . . . . .3023 12.2. Informative References . . . . . . . . . . . . . . . . . .3024 Appendix A. Example Resource Certificate . . . . . . . . . . . .3125 Appendix B. Example Certificate Revocation List . . . . . . . . .3327 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .3528 1. Introduction This document defines a standard profile for X.509 certificates [X.509] for use in the context of certification of Internet Number Resources (INRs), i.e., IP Addresses andASAutonomous System (AS) Numbers. Such certificates are termedhere"Resource Certificates". A ResourceCertificates are X.509 certificatesCertificate is a certificate thatconformconforms to the PKIX profile [RFC5280], andalso conformthat conforms to the constraints specified in this profile. A ResourceCertificates attestCertificate attests that the Issuer has granted the Subject a "right-of-use" for a listed set of IP addressesandand/or Autonomous System numbers.A Resource Certificate describes an actionThis document is referenced bya certificate Issuer that binds a listSection 7 ofIP Address blocks and AS Numbers totheSubject ofCertificate Policy (CP) for theissued certificate. The bindingResource Public Key Infrastructure (RPKI) [ID.sidr-cp]. It isidentified by the associationan integral part of that policy and theSubject's private key with the Subject's public key containednormative specification for certificate and Certificate Revocation List (CRL) syntax used in theResource Certificate, as signed by the private key of the certificate's Issuer. InRPKI. The document also specifies profiles for thecontextformat ofthe public Internet,certificate requests, and theuse of public number resources within this context, it is intended thatRelying Party (RP) RPKI certificate path validation procedure. Resource Certificates are to be used in a manner that isexplicitlyconsistent with the RPKI Certificate Policy [ID.sidr-cp]. They are issued by entities that assign and/or allocate public INRs, and thus the RPKI is alignedtowith the publicnumber resourceINR distribution function.Specifically, when a number resourceWhen an INR is allocated or assigned by a number registry to an entity, this allocationiscan be described by an associated Resource Certificate. This certificate is issued by the number registry, and it binds theSubject Public Key that is certified by the Issuer corresponds to the public part of a key pair for which the privatecertificate subject's keyis associated with the entity who isto therecipient ofINRs enumerated in thenumber assignmentcertificate. One orallocation. Atwo criticalextension to the certificate enumeratesextensions, the IPResourcesAddress Delegation or AS Identifier Delegation Extensions [RFC3779], enumerate the INRs that were allocated or assigned by the Issuer to theentity. In the contextSubject. RP validation ofthe public number distribution function, this corresponds toahierarchical PKI structure, whereResourceCertificates are issued in only one 'direction' and thereCertificate isa unique path of certificates from a certification authority operating atperformed in theapex of a resource distribution hierarchy to a valid certificate.manner specified in Section 7.1. ThisPKI structure is termed here a "Resource PKI" (RPKI). Validation of a Resource Certificatevalidation procedure differs from that described in section 6 of [RFC5280], sucha hierarchical PKI can be undertaken by establishing a valid Issuer-Subject certificate chain from a certificate issued by a trust anchor certification authority to the certificate [RFC4158], with thethat: o additionalconstraint of ensuring that each Subject's listed resources are fully encompassedvalidation processing imposed bythose oftheIssuer at each step in the Issuer-Subject certificate chain. Validation therefore logically corresponds to validation of an associated set of assignment or allocation actionsINR extensions is required, o a conformation ofIP number resources. Resource Certificates may be used ina public key match between thecontext ofCRL issuer and theoperation of secure inter-domain routing protocols to convey a right-of-use of an IP number resource thatResource Certificate issuer isbeing passed withinrequired, and o therouting protocol, allowing relying partiesResource Certificate is required toverify legitimacy and correctness of routing information. Related use contexts include validation of Internet Routing Registry objects, validation of routing requests, and detection of unauthorised use of IP addresses.conform to this profile. This profile defines those fields that are used in a Resource Certificate that MUST be present for the certificate to be valid.Relying Parties SHOULD checkAny extensions not explicitly mentioned MUST be absent. The same applies to the CRLs used in the RPKI, thata Resource Certificate conformsare also profiled in this document. A CA conforming to the RPKI CP MUST issue certificates and CRLs consistent with thisprofile as a requisite for validation of a Resource Certificate.profile. 1.1. Terminology It is assumed that the reader is familiar with the terms and concepts described in "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile" [RFC5280], and "X.509 Extensions for IP Addresses and AS Identifiers"[RFC3779], "Internet Protocol" [RFC0791], "Internet Protocol Version 6 (IPv6) Addressing Architecture" [RFC4291], "Internet Registry IP Allocation Guidelines" [RFC2050], and related regional Internet registry address management policy documents.[RFC3779]. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. 2. Describing Resources in Certificates The framework for describing an association between the Subject of a certificate and theresourcesINRs currently under the Subject's control is described in [RFC3779].There are three aspects of this resource extension that are noted in this profile: 1. RFC 3779 notes that a resource extension SHOULD be a CRITICAL extension to the X.509 Certificate.ThisResource Certificateprofile furtherspecifies that the use of this certificate extension MUST be used in allrequires that: o Every ResourceCertificates andCertificate MUST contain either the IP Address Delegation or the Autonomous System Identifier Delegation extension, or both. o These extensions MUST be marked as CRITICAL.2. RFC 3779 defines ao The sorted canonicalform offormat describinga resource set,INRs, with maximal spanning ranges and maximal spanning prefixmasksmasks, asappropriate. All valid certificatesdefined inthis profile[RFC3779], MUSTuse this sorted canonical form of resource description in the resource extension field. 3. A test ofbe used for the resource extensionin the context of certificate validity includesfield, except where thecondition"inherit" construct is used instead. When validating a Resource Certificate, a RP MUST verify that theresourcesINRs described in theimmediate parent CA certificate in the PKI (the certificate where this certificate's Issuer is the Subject) has a resource set (called here the "Issuer's resource set") that MUSTIssuer's Resource Certificate encompass theresource setINRs of theissued certificate.Resource Certificate being validated. In this context "encompass" allows for the Issuer'sresource setINRs to be the same as, or a strict supersetof, any Subject's resource set. Certificate validation entails the construction of a sequence of valid certificates in an Issuer-Subject chain (where the Subject fieldofone certificate appears as the Issuer inthenext certificate in the sequence) from a trust anchor to the certificate being validated. Moreover, the resource extensions in this certificate sequence from the first CA under the trust anchor to the certificate being validated form a sequence of encompassing relationships in terms of the resources described in the resource extension.Subject's INRs. 3. End-Entity (EE) Certificates and Signing Functions in the RPKI As noted in [ID.sidr-arch], the primary function of End-Entity (EE) certificates in the RPKI is the verification of signed objects that relate to the usage of theresourcesINRs described in the certificate, e.g.,ROAsRoute Origin Authorizations (ROAs) and manifests. There aretypetwo types of EE certificates defined within the RPKIframework, described in the following sections.framework: single- use and multi-use. 3.1. Single-Use EE CertificatesA signing party can exercise control over the validity of the signed object through control of the validity of theThe private key associated with a "single-use" EE certificateas long as thereis used to sign a1:1 relationship between thesingle RPKI signedobject and the EE certificate, or, in other words, assuming the private key of the key pair whose public key is the Subject Public Key ofobject, i.e., the single-use EE certificate is used tosign exactly one object, and each such object is signed withvalidate only oneprivate key. This property allows for the RPKI itself to be used to controlobject. The certificate is embedded in thevalidityobject as part ofthese signed objects, rather than creatinganovel object-specific validation control mechanism. Upon revocationCryptographic Message Syntax (CMS) signed data structure [ID.sidr-signed-object].Because of thecorresponding EE certificate,one-to-one relationship between thesignature on that object will be considered invalid,single-use EE certificate andany attestations made in the context ofthe signedobject can no longer be considered valid, assuming that a RP's assessment of validityobject, revocation ofa signed object is based upon a verifiable signature. EE certificates that are used to controlthevalidity of a singlecertificate effectively revokes the corresponding signedobject in this manner are termed "single-use" EE certificates in this specification.object. 3.2. Multi-Use EE CertificatesIt is not a requirement that all EE certificates in the RPKI be used in the context of "single-use" as described inIf theprevious section. Theprivate keyof a key pair whose public key is the Subject Public Key ofassociated with an EE certificatemayis intended to be used tosign multiple objects, either simultaneously or serially. In such a context the validity of thevalidate more than one RPKI signedobject may need to be specified by an alternate mechanism, unless it is the explicit intent of the signer that the validity ofobject, then thecollection of all objects signed with a particular private keycertificate iscontrolled by the validity of the associatedtermed a "multi-use" EE certificate.When keys are used in a mannerAll objects thatallows for the signing of multiple objects, the associatedcan be verified under a multi-use EEcertificatescertificate aretermed "muti- use" EE certificates in this specification.revoked when the certificate is revoked. 4. ResourceCertificate FieldsCertificates A Resource Certificate is a valid X.509v3public key certificate, consistent with the PKIX profile [RFC5280], containing the fields listed in this section. Only the differences from [RFC5280] are noted below. Unless specifically noted as being OPTIONAL, all the fields listed here MUST be present, and any other field MUST NOT appear in a conforming Resource Certificate. Where a field value is specifiedherehere, this value MUST be used in conforming Resource Certificates. 4.1. Version As Resource Certificates are X.509 Version 3certificates. This field MUST be present, andcertificates, theVersionversion MUST be 3 (i.e. the value of this field is 2). RPs need not process version 1 or version 2 certificates (in contrast to [RFC5280]). 4.2. Serial number The serial number value is a positive integer that is unique for each certificate issued by a given CA. 4.3. Signature AlgorithmThis field describes the algorithm used to compute the signature on this certificate.The algorithm used in this profile is specified in [ID.sidr-rpki-algs]. 4.4. IssuerThis field identifies the entity that has signed and issued the certificate.The value of this field is a valid X.501 distinguished name.If the certificate is a subordinate certificate issued by virtueAn Issuer name MUST contain one instance of the"cA" bit set in the immediate superior certificate, thenCommon Name attribute and MAY contain one instance of theIssuer nameSerial Number attribute. If both attributes are present, it is RECOMMENDED that they appear as a set. The Common Name attribute MUSTcorrespondbe encoded as a printable string. Issuer names are not intended to be descriptive of theSubject name as containedidentity of Issuer. The RPKI does not rely on Issuer names being globally unique, for reasons of security. However, it is RECOMMENDED that Issuer names be generated in a fashion that minimizes theimmediate superior certificate.likelihood of collisions. See Section 8 for (non-normative) suggested name generation mechanisms that fulfil this recommendation. 4.5. SubjectThis field identifies the entity to whom the resource has been allocated / assigned.The value of this field is a valid X.501 distinguished name, and is subject to the same constraints as the Issuer name. Inthis profilethe RPKI the Subject name is determined by the Issuer,and eachnot proposed by the subject [ID.sidr-repos-struct]. Each distinct subordinate CA and EE certified by the Issuer MUST be identified using a Subject name that is unique per Issuer. In this context "distinct" is defined as an entity and a given public key. An Issuer SHOULD use a different Subject name if theSubject entity or the Subject entity'sSubject's key pair haschanged. As noted in [ID.sidr-arch], RPKI certificates do not attest tochanged (i.e., when theidentityCA issues a certificate as part of rekeying theSubject, inferring that theSubject.) Subject namesused in certificatesare not intended to be descriptive of the identity of Subject. 4.6. Valid From Thestarting time at which point the certificate is valid. In this profile the"Valid From" time SHOULD be no earlier than the time of certificate generation.As per Section 4.1.2.5 of [RFC5280], Certification Authorities (CAs) conforming to this profile MUST always encode the certificate's "Valid From" date through the year 2049 as UTCTime, and dates in 2050 or later MUST be encoded as GeneralizedTime. These two time formats are defined in [RFC5280].Inthis profile,the RPKI it is valid for a certificate to have a value for this field that pre-dates the same field value in any superior certificate. Relying Partiesshould notSHOULD NOT attempt to infer from this time information that a certificate was valid at a time in the past, or will be valid at a time in the future, as the scope of a relying party's test of validity of a certificate refers specifically to validity at the current time. 4.7. Valid To The Valid To timeis the date and time at which point in time the certificate's validity ends. Itrepresents the anticipated lifetime of the current resource allocation/or assignment arrangement between the Issuer and the Subject.As per Section 4.1.2.5 of [RFC5280], CAs conforming to this profile MUST always encode the certificate's "Valid To" date through the year 2049 as UTCTime, and dates in 2050 or later MUST be encoded as GeneralizedTime. These two time formats are defined in [RFC5280]. As noted above, itIt is valid for a certificate to have a value for this field that post-dates the same field value in any superior certificate. The same caveats apply toRelying Party'sRP's assumptions relating to the certificate's validity at any time other than the current time. While a CA is typically advised against issuing a certificate with a validity interval that exceeds the validity interval of the CA's certificate that will be used to validate the issued certificate, in the context of this profile,it is anticipated thata CAmayMAY have valid grounds to issue a certificate with a validity interval that exceeds the validity interval of its certificate. 4.8. Subject Public Key InfoThis field specifies the Subject's public key and the algorithm with which the key is used.The algorithm used in this profile is specified in [ID.sidr-rpki-algs]. 4.9. Resource CertificateVersion 3 Extension Fields As notedExtensions The following X.509 V3 extensions MUST be present inSection 4.2 of [RFC5280], eacha conforming Resource Certificate, except where explicitly noted otherwise. Each extension in a resource certificate is designated as either critical or non-critical. Acertificate- usingcertificate-using system MUST reject the certificate if it encounters a critical extension it does not recognise; however, a non-critical extension MAY be ignored if it is not recognised [RFC5280].The following X.509 V3 extensions MUST be present in a conforming Resource Certificate, except where explicitly noted otherwise.4.9.1. Basic Constraints The Basic Constraints extensionidentifies whether the Subject of the certificate is a CA and the maximum depth of valid certification paths that include this certificate. The Issuer determines whether the "cA" boolean is set. If this bit is set, then it indicates that the Subject is allowed to issue resources certificates within this overall framework (i.e. the Subject is a CA). The Path Length Constraint is not specified in this profile and MUST NOT be present. The Basic Constraints extensionfield is a critical extension in the Resource Certificate profile, and MUST be present when the Subject is a CA, and MUST NOT be present otherwise.4.9.2. Subject Key IdentifierThe Issuer determines whether the "cA" boolean is set. The Path Length Constraint is not specified for RPKI certificates, and MUST NOT be present. 4.9.2. Subject Key Identifierextension provides a means of identifying certificates that contain a particular public key. To facilitate certification path construction, thisThis extension MUST appear in all Resource Certificates. This extension is non-critical. Thevalue of the Subject Key Identifier MUST be the value placed in the key identifier field of the Authority Key Identifier extension of all certificates issued by this Subject. TheKey Identifier usedherefor resource certificates is the 160-bit SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the Subject Public Key, as described in Section 4.2.1.2 of [RFC5280]. 4.9.3. Authority Key IdentifierThe authority key identifier extension provides a means of identifying certificates that are signed by the Issuer's private key, by providing a hash value of the Issuer's public key. To facilitate path construction, thisThis extension MUST appear in all ResourceCertificates. The keyIdentifier MUST be present in all ResourceCertificates, with the exception of a CA who issues a "self-signed" certificate. The authorityCertIssuer and authorityCertSerialNumber fields MUST NOT be present. This extension is non-critical. The Key Identifier usedherefor resource certificates is the 160-bit SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the Issuer's public key, as described in Section 4.2.1.1 of [RFC5280]. 4.9.4. Key Usage Thisdescribes the purpose of the certificate. Thisextension is a criticalextension,extension anditMUST be present. In certificates issued to Certification Authorities only the keyCertSign and CRLSign bits are set toTRUETRUE, and these MUST be the only bits set to TRUE. In EE certificates the digitalSignature bit MUST be set to TRUE and MUST be the only bit set to TRUE. 4.9.5. Extended Key Usage The Extended Key UsageExtension indicates one or more purposes for which the public key in a certificate may be used. The uses are specified via a SEQUENCE of one or more object identifiers (OIDs). The EKU(EKU) extension MUST NOT appear in anyCertification AuthorityCA certificate in the RPKI. This extension also MUST NOT appear in EE certificates used to verify RPKI objectssuch as(e.g., ROAs or manifests. The extension MUST NOT be marked critical. The EKU extension MAY appear in EE certificates issued to routers or other devices.The extension MUST NOT be marked critical.Permitted values for the EKU OIDs will be specified in Standards Track RFCs issued by other IETF working groups that adopt the RPKI profile and that identify application-specific requirements that motivate the use of such EKUs. 4.9.6. CRL Distribution Points Thisfieldextension MUST be present, except in "self-signed" certificates, and it is non-critical. In a self-signed certificate this extension MUST be omitted. In this profile, the scope of the CRL is specified to be all certificates issued by this CA Issuer. The CRL Distribution Points (CRLDP) extension identifies the location(s) of the CRL(s) associated with certificates issued by this Issuer.This profileThe RPKI uses the URI form of object identification. The preferred URI access mechanism is a single RSYNC URI ("rsync://") [RFC5781] that references a single inclusive CRL for each Issuer. In this profile the certificate Issuer is also the CRL Issuer, implying that the CRLIssuer field MUST be omitted, and the distributionPoint field MUST be present. The Reasons field MUST be omitted. The distributionPoint MUST containGeneralNames,the fullName field, and MUST NOT contain a nameRelativeToCRLIssuer. The form of the generalName MUST be of type URI.In this profile, the scope of the CRL is specified to be all certificates issued by this CA Issuer.The sequence of distributionPoint values MUST contain only a singleDistributionPointName set.DistributionPoint. TheDistributionPointName setDistributionPoint MAY contain more than one URI value. An RSYNC URI[RFC5781]MUST[RFC5781] MUST be present in theDistributionPointName set,DistributionPoint, and reference the most recent instance of this Issuer'scertificate revocation list.CRL. Other access form URIs MAY be used in addition to the RSYNCURI. This extension MUST be present and it is non-critical. There is one exception, namely where a CA distributes its public key in the form of a "self-signed" certificate, the CRLDP MUST be omitted.URI, representing alternate access mechanisms for this CRL. 4.9.7. Authority Information AccessThisIn the context of the RPKI, this extension(AIA)identifies thepoint ofpublication point of the certificatethat is issued byof theIssuer's immediate superior CA, where this certificate's Issuer isissuer of theSubject.certificate in which the extension appears. In this profile a single referenceobjectto the publicationlocationpoint of the immediate superior certificate MUST be present, exceptin the case where a CA distributes its public key in the form offor a "self-signed" certificate, in which case theAIA field SHOULDextension MUST be omitted. This extension is non-critical. This profile uses a URI form of object identification. The preferred URI access mechanisms is "rsync", and an RSYNC URI [RFC5781] MUST be specified with an accessMethod value of id-ad-caIssuers. The URI MUST reference the point of publication of the certificate where this Issuer is the Subject (the Issuer's immediate superior certificate). Other accessMethod URIs referencing the same object MAY also be included in the value sequence of this extension.When an Issuer re-issues a CA certificate, the subordinate certificates need to reference this new certificate via the AIA field. In order to avoid the situation where a certificate re- issuance necessarily implies a requirement to re-issue all subordinate certificates,A CACertificate Issuers SHOULDMUST use a persistent URL name scheme forissued certificates.CA certificates that it issues [ID.sidr-repos-struct]. This implies that a re-issuedcertificates overwritecertificate overwrites a previously issuedcertificates tocertificate (to the sameSubjectSubject) in the publicationrepository, and use the same publication name as previously issued certificates.repository. In this waysubordinatecertificates subordinate to the re-issued (CA) certificate can maintain a constantAIA field valueAuthority Information Access (AIA) extension pointer and thus need not be re-issueddue solely to a re-issue of the superior certificate. The Issuers' policy with respect to the persistence of name objects of issued certificates MUST be specified inwhen theIssuer's Certification Practice Statement. This extensionparent certificate isnon-critical.re-issued. 4.9.8. Subject Information AccessThisIn the context of the RPKI, this extension (SIA) identifies thelocationpublication point ofinformation and services relating toproducts signed by the Subject of thecertificate in which thecertificate. 4.9.8.1. SIA for CAs This extensionappears. Where the SubjectMUST be present, and is non-critical. This extension MUST have an instance of an accessMethod of id-ad- caRepository, with an accessLocation form of aCA in this profile,URI that MUST specify an RSYNC URI [RFC5781]. This URI points to the directory containing all material issued by thisinformation and service collection will includeCA. i.e., allcurrentvalid CA certificates, multi-use EE certificates, the current CRL, manifest and signed objects signed by single-use EE certificates that have been issued by thisSubject that are signed with the Subject's corresponding private key. This profile uses a URI form of location identification. The preferred URI access mechanism is "rsync", and an RSYNC URI [RFC5781] MUST be specified,CA [ID.sidr-repos-struct]. Other accessDescription elements with an accessMethodvalueof id-ad-caRepositorywhen the Subject ofMAY be present. In such cases, thecertificate is a CA. The RSYNCaccessLocation values describe alternate supported URIMUST reference an object collection rather than an individual object and MUST use a trailing '/' in the URI. Other accessMethod URIs that referenceaccess mechanisms for the samelocation MAY also be included in the value sequence of this extension.directory. The ordering of URIs in this accessDescription sequence reflect theSubject'sCA's relative preferences for access methods to be used byparties for retrieval of objects from the associated repository publication point,relying parties, withthehe firstmethod inelement of theaccessMethodsequence being the mostpreferred.preferred by the CA. This extension MUSTbe present when the Subject is a CA, and is non- critical. For EE certificates, where the Subject is not a CA, this extension MAY be present, and is non-critical. If present, it either references the location where objects signed by the private key associated with the EE certificate can be accessed, or, in the case of single-use EE certificates it references the locationhave an instance ofthe single object that has been signed by the corresponding private key. When the Subject isanEnd-Entity, and it publishes objects signedAccessDescription withthe matching private key in a repository publication point, the URI of the directory where these signed objects are published is used as the valuean accessMethod ofthe id-ad-signedObjectRepository element.id-ad-rpkiManifest, id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }id-ad-signedObjectRepositoryid-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad910 }When the Subject is an End-Entity, and it publishes a single object signedwiththe matching private key, thean RSYNC URI [RFC5781] form of accessLocation. The URI points to thelocation where this signed object isCA's manifest of publishedis usedobjects [ID.sidr-rpki-manifests] as an object URL. Other accessDescription elements MAY exist for the id-ad-rpkiManifest accessMethod, where the accessLocation valueofindicates alternate access mechanisms for the same manifest object. 4.9.8.2. SIA for Multi-use EEs This extension MUST be present, and is non-critical. This extension MUST have an instance of an accessMethod of id-ad-signedObject element. id-ad-signedObjectsignedObjectRepository, id-ad-signedObjectRepository OBJECT IDENTIFIER ::= { id-ad119 }This profile requires the use of repository publication manifests [ID.sidr-manifests] to list all signed objects that are deposited in the repository publication point associatedwitha CA oranEE. The publication point of the manifest for a CA or EE is placed in the SIA extension of the CA or EE certificate. This profile uses a URIaccessLocation form ofmanifest identification for the accessLocation. The preferreda URIaccess mechanisms is "rsync", andthat MUST specify an RSYNC URI[RFC5781] MUST be specified.[RFC5781]. This URI points to the directory containing all signed objects that are verified using this EE certificate [ID.sidr-repos-struct]. Other accessDescriptionfields mayelements MAY exist for theid-ad- rpkiManifestid-ad-signedObjectRepository accessMethod, where the accessLocation value indicates alternateURIsupported access mechanisms for the samemanifest object. id-ad-rpkiManifest OBJECT IDENTIFIER ::= { id-ad 10 } CA certificates MUST includedirectory, ordered inthe SIA an accessMethod OIDterms ofid-ad- rpkiManifest, wheretheassociated accessLocation refers to the Subject's published manifest object as an object URL. When an EE certificate is intendedEE's relative preference foruse in verifying multiple objects, EE certificatesupported access mechanisms. This extension MUSTinclude in the SIAhave an instance of an AccessDescription with an accessMethodOIDof id-ad-rpkiManifest,where the associated accessLocation refers towith theEE's published manifest objectsame specification asan object URL. When an EE certificate is used to verify a single published object, the EE certificate MUST include inthe CA's manifest. 4.9.8.3. SIA for Single-use EEs This extension MUST be present, and is non-critical. This extension MUST have an instance of an accessMethodOIDofid- ad-signedObject, where the associatedid-ad- signedObject, id-ad-signedObject OBJECT IDENTIFIER ::= { id-ad 11 } with an accessLocationrefers to the publication pointform of a URI that MUST include a RSYNC URI [RFC5781]. This URI points to thesinglesigned object that is verified using this EEcertificate. In this case,certificate [ID.sidr-repos-struct]. Other accessDescription elements may exist for theSIA MUST NOT includeid-ad-signedObject accessMethod, where theaccessMethod OIDaccessLocation value indicates alternate URI access mechanisms for the same object, ordered in terms ofid-ad-rpkiManifest.the EE's relative preference for supported access mechanisms. Other AccessMethods MUST NOT be used for a single-use EE's SIA. 4.9.9. Certificate Policies This extension MUSTreference the Resource Certificate Policy, using the OID Policy Identifier value of "1.3.6.1.5.5.7.14.2". This field MUSTbepresent and MUST contain only this value for Resource Certificates. No PolicyQualifiers are defined for use with this policy,present, and MUSTNOTbeincludedmarked critical. It MUST include exactly one policy, as specified inthis extension. This extensionthe RPKI CP [ID.sidr-cp] 4.9.10. IP Resources Either the IP Resources extension, or the AS Resources extension, or both, MUST be present in all RPKI certificates, andit isif present, MUST be marked critical.4.9.10. IP ResourcesThis extension contains the list of IP address resources as per [RFC3779]. The value may specify the "inherit" element for a particular AFI value. In the context of resource certificates describing public number resources for use in the public Internet, the SAFI value MUST NOT be used.All Resource CertificatesThis extension MUSTinclude aneither specify a non-empty set IPResources extension, anaddress records, or use the "inherit" setting to indicate that the IP address resource set of this certificate is inherited from that of the certificate's issuer. 4.9.11. AS Resourcesextension, or both extensions. This extension, if present, MUST be marked critical.Either theIPAS Resources extension, or theASIP Resources extension, or both, MUST be present in all RPKIcertificates. 4.9.11. AS Resourcescertificates, and if present, MUST be marked critical. This extension contains the list of AS number resources as per [RFC3779], or may specify the "inherit" element. RDI values are NOT supported in this profile and MUST NOT be used.All Resource CertificatesThis extension MUSTinclude an IP Resources extension, aneither specify a non-empty set ASResources extension,number records, orboth extensions. This extension, if present, MUST be marked critical. Eitheruse theIP Resources extension, or"inherit" setting to indicate that the ASResources extension, or both, MUST be present in all RPKI certificates.number resource set of this certificate is inherited from that of the certificate's issuer. 5. Resource Certificate RevocationList ProfileLists Each CA MUST issue a version 2 Certificate Revocation List (CRL), consistent with [RFC5280]. RPs are NOT required to process version 1 CRLs (in contrast to [RFC5280]). The CRL Issuer is theCA, and no indirectCA. CRLsare supported inconforming to thisprofile. An entryprofile MUST NOTbe removed from the CRL until it appears on one regularly scheduled CRL issued beyond the revoked certificate's validity period, as required in [RFC5280]. This profile does not allow issuance ofinclude Indirect or Delta CRLs. The scope oftheeach CRL MUST be"allall certificates issued by thisCA". The contents of the CRL are a list of all non-expired certificates that have been revoked by theCA.No CRL fields other than those listed here are permitted in CRLs issued under this profile. Unless otherwise indicated, these fields MUST be presentThe Issuer name is as inthe CRL.Section 4.4 above. Where two or more CRLs issued bya single CA withthe samescope,CA, the CRL with the highest value of the "CRL Number" field supersedes all other CRLs issued by this CA.5.1. Version Resource Certificate Revocation Lists are Version 2 certificates (the integer value of this field is 1). 5.2. Issuer NameThevalue ofalgorithm used in CRLs issued under thisfieldprofile isthe X.501 namespecified in [ID.sidr-rpki-algs]. The contents of theissuing CA who is also the signerCRL are a list ofthe CRL, and is identical to the Issuer name in the Resource Certificatesall non-expired certificates thatare issuedhave been revoked bythis Issuer. 5.3. This Update This field containsthedate and time that this CRL was issued. The value of this fieldCA. An RPKI CA MUSTbe encoded as UTCTime for dates throughinclude theyear 2049,two extensions Authority Key Identifier andMUST be encoded as GeneralizedTime for datesCRL Number inthe year 2050 or later. 5.4. Next Update This is the date and time by which the nextevery CRLSHOULD be issued. The value of this field MUST be encoded as UTCTime for dates through the year 2049, andthat it issues. RPs MUST beencoded as GeneralizedTime for dates in the year 2050 or later. 5.5. Signature This field contains the algorithm usedprepared tosign this CRL. The algorithm used in this profile is specified in [ID.sidr-rpki-algs]. 5.6. Revoked Certificate List When thereprocess CRLs with these extensions. No other CRL extensions areno revoked certificates, then the revoked certificate list MUST be absent.allowed. For each revoked resource certificate only thefollowingtwo fieldsMUST be present. No CRL entry extensions are supported in this profile, and CRL entry extensions MUST NOT be present in a CRL. 5.6.1.Serial NumberThe serial number of the revoked certificate. 5.6.2.and Revocation DateThe time the certificate was revoked. This timeMUSTNOTbea future date (i.e., a date later than ThisUpdate). The value of this field MUST be encoded as UTCTime for dates through the year 2049,present, and all other fields MUST NOT beencoded as GeneralizedTime for dates in the year 2050 or later. 5.7. CRL Extensions The X.509 v2present. No CRLformat allows extensions to be placed in a CRL. The followingentry extensions are supported in this profile, and CRL entry extensions MUST NOT be present in a CRL.5.7.1. Authority Key Identifier The authority key identifier extension provides a means of identifying the public key corresponding to the private key used to sign a CRL. Conforming CRL Issuers MUST use the key identifier method. The syntax for this CRL extension is defined in section 4.2.1.1 of [RFC5280]. This extension is non-critical. 5.7.2. CRL Number The CRL Number extension conveys a monotonically increasing sequence number of positive integers for a given CA and scope. This extension allows users to easily determine when a particular CRL supersedes another CRL. The highest CRL Number value supersedes all other CRLs issued by the CA with the same scope. This extension is non-critical.6. Resource CertificateRequest ProfileRequests A resource certificate request MAY use either of PKCS#10 or Certificate Request Message Format (CRMF). A CAIssuerMUST support certificate issuance in PKCS#10 and a CAIssuer MAY, with mutual consent of the Subject,MAY supportCRMF.CRMF requests. Note that there is no certificate response defined in this profile. For CA certificate and multi-use EE certificate requests, the CA places the Resource Certificate in the repository, as per [ID.sidr-cp]. No response is defined for single-use EE Certificate requests. 6.1. PCKS#10 Profile This profile refines the specification in [RFC2986], as it relates to Resource Certificates. A Certificate Request Message object, formatted according to PKCS#10, is passed to a CA as the initial step in issuing a certificate.This request may be conveyed to the CA via a Registration Authority (RA), acting under the direction of a Subject.With the exception of thepublic key related fields,SubjectPublicKeyinfo and the SIA extension request, the CA is permitted to alter anyrequestedfield in the request when issuing acorrespondingcertificate. 6.1.1. PKCS#10 Resource Certificate Request Template Fields This profile applies the following additionalconstraintsrequirements to fields thatmayMAY appear in a CertificationRequestInfo: Version This field is mandatory and MUST have the value 0. Subject This fieldis optional.MAY be omitted. If present, the value of this field SHOULD beempty,empty (i.e., NULL), in which case theIssuerCA MUST generate a Subject name that is unique in the context of certificates issued by thisIssuer. If the value of this field is non- empty, then the CA MAY consider the value of thisCA. This fieldas the Subject's suggested Subject name, but the CAisNOT boundallowed tohonour this suggestion, as the Subject name MUSTbeunique per subordinate CAnon-empty only for a rekey/reissuance request, andEEonly if the CA has adopted a policy (in its Certificate Practice Statement (CPS)) that permits name reuse incertificates issued by this Issuer.these circumstances. SubjectPublicKeyInfo This field specifies the Subject's public key and the algorithm with which the key is used. The algorithm used in this profile is specified in [ID.sidr-rpki-algs]. Attributes [RFC2986] defines the attributes field as key-value pairs where the key is an OID and the value's structure depends on the key. The only attribute used in this profile is the ExtensionRequest attribute as defined in [RFC2985]. This attribute containsX509v3 Certificatecertificate Extensions. The profile for extensions in certificate requests is specified in Section 6.3. This profile applies the following additional constraints to fields that MAY appear in a CertificationRequest Object: signatureAlgorithm Thealgorithm used in this profilesignatureAlgorithm value is specified in [ID.sidr-rpki-algs]. 6.2. CRMF Profile This profile refines the Certificate Request Message Format (CRMF) specification in [RFC4211], as it relates to Resource Certificates. A Certificate Request Message object, formatted according to the CRMF, is passed to a CA as the initial step inissuing a certificate. This request MAY be conveyed to the CA via a Registration Authority (RA), acting under the direction of a Subject.certificate issuance. With the exception of thepublic key related fields,SubjectPublicKeyinfo and the SIA extension request, the CA is permitted to alter any requested field when issuinga correspondingthe certificate. 6.2.1. CRMF Resource Certificate Request Template Fields This profile applies the following additionalconstraintsrequirements to fields that may appear in a Certificate Request Template:Versionversion This fieldMAYSHOULD beabsent, or MAYomitted. If present, it MUST specifythea requestoffor a Version 3 Certificate. ItSHOULD be omitted. SerialNumber As per [RFC4211], thisserialNumber This fieldis assigned by the CA andMUST beomitted in this profile. SigningAlgorithm As per [RFC4211], thisomitted. signingAlgorithm This fieldis assigned by the CA andMUST beomitted in this profile. Issueromitted. issuer Thisfield is assigned by the CA andMUST be omitted in this profile. Validity This field MAY be omitted. If omitted, the CA will issue a Certificate with Validity dates as determined by the CA. If specified, then the CA MAY override the requested values with dates as determined by the CA. Subject This fieldis optional.MAY be omitted. If present, the value of this field SHOULD beempty,empty (i.e., NULL), in which case theIssuerCA MUST generate a Subject name that is unique in the context of certificates issued by thisIssuer. If the value of this field is non- empty, then the CA MAY consider the value of thisCA. This fieldas the subject's suggested subject name, but the CAisNOT boundallowed tohonour this suggestion, asbe non-empty only for a rekey/reissuance request, and only if thesubjectCA has adopted a policy (in its CPS) that permits nameMUST be unique per Issuerreuse incertificates issued by this Issuer.these circumstances. PublicKey This field MUST be present. extensionsThis attribute contains X509v3 Certificate Extensions.The profile for extensions in certificate requests is specified in Section 6.3. 6.2.2. Resource Certificate Request Control Fields The following control fields are supported in this profile: Authenticator ControlIt is noted that the'The intended model of authentication of the Subject is a "long term" model, and theadvice asguidance offered in [RFC4211] is that the Authenticator Control field be used. 6.3. Certificate Extension Attributes in Certificate Requests The following extensions MAY appear in a PKCS#10 or CRMF Certificate Request. Any other extensions MUST NOT appear in a Certificate Request. This profile places the following additional constraints on these extensions: BasicConstraints If this is omitted then the CA will issue an EE certificatewith the(hence no BasicConstraints extensionnot present in the issued certificate.will be included). ThePath Length ConstraintpathLengthConstraint is not supported in thisResource Certificate Profile,profile, and this field MUST beomitted in this profile.omitted. The CA MAY honour theSubjectType CA bitcA boolean if set toon.true (CA certificate request). If this bit is set, then it indicates that the Subject isallowed to issue resource certificates within this overall framework.requesting a CA certificate. The CA MUST honour theSubjectType CAcA bit if set toofffalse (EE certificate request), in which case the correspondingend entityEE certificate will not contain aBasicConstraintsBasic Constraints extension.SubjectKeyIdentifier This field is assigned by the CA and MUST be omitted in this profile. AuthorityKeyIdentifier This field is assigned by the CA and MUST be omitted in this profile.KeyUsage The CA MAY honour KeyUsage extensions of keyCertSign and cRLSign if present, as long as this is consistent with the BasicConstraints SubjectType sub field, when specified. ExtendedKeyUsage The CA MAY honour ExtendedKeyUsage extensions of keyCertSign and cRLSign if present, as long as this is consistent with the BasicConstraints SubjectType sub field, when specified. SubjectInformationAccess This field MUST bepresent when the Subject is a CA,present, and the field value SHOULD be honoured by theCA. If the CA is not able to honour the requested field value, then theCAMUST reject the Certificate Request. This field (SIA) identifies the location of information and services relatingif it conforms to theSubject of the certificate in which the SIA extension appears. Where the Subject is a CA in this profile, this information and service collection will include all current valid certificates that have been issued by this Subject that are signed with the Subject's corresponding private key. This profile uses a URI form of location identification. An RSYNC URI [RFC5781] MUST be specified, with an accessMethod value of id-ad-caRepository when the Subject of the certificate is a CA. The RSYNC URI MUST reference an object collection rather than an individual object and MUST use a trailing '/' in the URI. Other accessMethod URIs that reference the same location MAY also be included in the value sequence of this extension. The ordering of URIs in this sequence reflect the Subject's relative preferences for access methods, with the first method in the sequence being the most preferred by the Subject. A request for a CA certificate MUST include in the SIA of the request the id-ad-caRepository accessMethod, and also MUST includerequirements set forth inthe SIA of the request the accessMethod OID of id- ad-rpkiManifest, where the associated accessLocation refers to the Subject's published manifest object as an object URL. This field MAY be present when the Subject is a EE. If it is present the field value SHOULD be honoured by the CA.Section 4.9.8. If the CA isnot ableunable to honour the requestedfield value, then the CA MUST reject the Certificate Request. If it is not present the CA SHOULD honourvalue for thisrequest and omit the SIA from the issued certificate. If the CA is not able to honour the request to omit the SIA,field, then the CA MUST reject the Certificate Request.When an EE certificate is intended for use in verifying multiple objects, the certificate request for the EE certificate MUST include in the SIA of the request an accessMethod OID of id-ad-signedObjectRepository, and also MUST include in the SIA of the request an accessMethod OID of id-ad- rpkiManifest, where the associated access location refers to the publication point of the manifest object describing all objects that are verified using this EE certificate. When an EE certificate is used to sign a single published object, the certificate request for the EE certificate MUST include in the SIA of the request an accessMethod OID of id-ad- signedObject, where the associated accessLocation refers to the publication point of the single object that is verified using this EE certificate, and MUST NOT include an id-ad-rpkiManifest accessMethod OID in the SIA of the request. In the case when the EE certificate is to be used exclusively to sign one or more unpublished objects, such that the all signed objects will not be published in any RPKI repository, then the SIA SHOULD be omitted from the request. CRLDistributionPoints This field is assigned by the CA and MUST be omitted in this profile. AuthorityInformationAccess This field is assigned by the CA and MUST be omitted in this profile. CertificatePolicies This field is assigned by the CA and MUST be omitted in this profile. With the exceptions of the publicKey field and the SubjectInformationAccess field, the CA is permitted to alter any requested field.7. Resource Certificate Validation This section describes the Resource Certificate validation procedure. This refines the generic procedure described in section 6 of [RFC5280].To meet this goal, the path validation process verifies, among other things, that a prospective certification path (a sequence of n certificates) satisfies the following conditions: 1. for all 'x' in {1, ..., n-1}, the Subject of certificate 'x' is the Issuer of certificate ('x' + 1); 2. certificate '1' is issued by a trust anchor; 3. certificate 'n' is the certificate to be validated; and 4. for all 'x' in {1, ..., n}, certificate 'x' is valid.7.1. Resource Extension Validation The IP Resources and AS Resources extensions definitions [RFC3779]definesdefine critical extensions forInternet number resources.INRs. These are ASN.1 encoded representations of the IPv4 and IPv6 address range(either as a prefix/length, or start-end pair)and an AS number set. Valid Resource Certificates MUST have a valid IP address and/or AS number resource extension. In order to validate a Resource Certificate the resource extension MUST also be validated. This validation process relies on definitions of comparison of resource sets: more specific Given two IP address or AS number contiguous ranges, A and B, A is "more specific" than B if range B includes all IP addresses or AS numbers described by range A, and if range B is larger than range A. equal Given two IP address or AS number contiguous ranges, A and B, A is "equal" to B if range A describes precisely the same collection of IP addresses or AS numbers as described by range B. The definition of "inheritance" in [RFC3779] is equivalent to this "equality" comparison. encompass Given two IP address and AS number sets X and Y, X "encompasses" Y if, for every contiguous range of IP addresses or AS numbers elements in set Y, the range element is eithermore specific"more specific" than orequal"equal" to a contiguous range element within the set X. Validation of a certificate's resource extension in the context ofan ordered certificate sequence numbered {1,2, ... , n} where certificate '1' is issued byatrust anchor and certificate 'n' is the target certificate, and where the SubjectCertification Path (see Section 7.2 entails that for every adjacent pair ofcertificate 'x' iscertificates in theIssuer of certificate ('xcertification path (certificates 'x' and 'x + 1'),includes verification that thatthe number resources described in certificate 'x' "encompass" the number resources described in certificate('x'x +1'),1', and the resources described in the trust anchor information "encompass" the resources described in the first certificate'1'.in the certification path. 7.2. Resource Certification Path Validation Validation of signed resource data using a target resource certificate consists ofassembling an ordered sequence (or 'Certification Path')verifying that the digital signature ofcertificates ({1,2,...n} where '1'the signed resource data isavalid, using the public key of the target resource certificate, and also validating the resource certificate in the context of the RPKI, using the path validation process. This path validation process verifies, among other things, thathas beena prospective certification path (a sequence of n certificates) satisfies the following conditions: 1. for all 'x' in {1, ..., n-1}, the Subject of certificate 'x' is the Issuer of certificate ('x' + 1); 2. certificate '1' is issued by a trustanchor, andanchor; 3. certificate 'n' is thetarget certificate)certificate to be validated; and 4. for all 'x' in {1, ..., n}, certificate 'x' is valid. Certificate validation entails verifying that all of the following conditionshold:hold, in addition to the Certification Path Validation criteria specified in Section 6 of [RFC5280]: 1. The certificate can be verified using the Issuer's public key and the signature algorithm 2. The current time lies within the certificate's Validity From and To values. 3. The certificate contains all fields that MUST bepresentpresent, as defined by this specification, and containsfieldvaluesas specified in this profileforall field valuesselected fields thatMUST be present.are defined as allowable values by this specification. 4. No field, or fieldvaluevalue, that this specification defines as MUST NOT be presentin this profileispresentused in the certificate. 5. The Issuer has not revoked the certificate. A revoked certificate is identified byplacingthe certificate's serial number being listed on the Issuer's currentCertificate Revocation List, andCRL, as identified by theCertificate Revocation ListCRLDP of the certificate, the CRL is itselfvalid.valid, and the public key used to verify the signature on the CRL is the same public key used to verify the certificate itself. 6. That the resource extension data is "encompassed" by the resource extension data contained in a valid certificate where this Issuer is the Subject (the previous certificate in the context of the orderedsequence)sequence defined by the Certification Path). 7. The Certification Path originates with a certificate issued by a trust anchor, and there exists a signing chain across the Certification Path where the Subject of Certificate 'x' in the Certification Path matches the Issuer in Certificate('x''x +1)1' in the CertificationPath.Path, and the public key in Certificate 'x' can verify the signature value in Certificate 'x+1'. A certificate validation algorithmmayMAY perform these tests in any chosen order. Certificates and CRLs used in this processmayMAY be found in a locally maintained cache, maintained by a regular synchronisation across the distributed publication repositorystructure.structure [ID.sidr-repos-struct]. There exists the possibility of encountering certificate paths that are arbitrarily long, or attempting to generate paths with loops as means of creating a potential DOS attack on arelying party. SomeRP. A RP executing this procedure MAY apply further heuristicsmay be requiredtohaltguide halting the certification path validation process in order to avoid some of the issues associated with attempts to validate such malformed certification path structures.It is suggested that implementationsImplementations of Resource Certificate validation MAY halt with a validation failure if the certification path length exceeds a locally defined configuration parameter. 8. Design Notes The following notes provide some additional commentary on the considerations that lie behind some of the design choices that were made in the design of this certificate profile. These notesdoare non- normative, i.e. this section of the document does not constitute a formal part of the profile specification, and the interpretation of key words as defined in RFC2119 are not applicable in this section of the document. Certificate Extensions: This profile does not permit the use of any other critical or non-critical extensions. The rationale for this restriction is that the resource certificate profile is intended for a specificuse, and indefine use. In this context it is not seen as being appropriate to be in the position of having certificates with additional non-critical extensions thatrelying partiesRPs may see as valid certificates without understanding the extensions, but were therelying partyRP in a position to understand the extensions, would contradict or qualify in some way this original judgment of validity. This profile takes the position of minimalism over extensibility. The specific goal for the associatedResource Public Key InfrastructureRPKI is to precisely match theIP number resourceINR allocation structure through an aligned certificate structure that describes the allocation and its context within thenumber resourceINR distribution hierarchy. The profile defines a resource certificate that is structured to meet these requirements. Certification Authorities and Key Values: This profile uses a definition of an instance of a CA as a combination of a named entity and a key pair. Within this definition a CA instance cannot rollover a key pair. However, the entity can generate a new instance of a CA with a new key pair and roll over all the signed subordinate products to the newCA.CA [ID.sidr-keyroll]. This has a number of implications in terms of Subject name management, CRL Scope and repository publication point management.Subject name: For Subject names the Issuer should ensure that when an entity requests a certificate with a new key pair, the CA issues a certificate with a new Subject name. One way to achieve this is to use a commonName field value that is unique per subordinate entity, using an algorithm of the CA's devising to ensure this uniqueness, and for the CA to include the serialNumber field value of the X.501 distinguished name structure, with a serial number value that is derived from the hash of the subject public key value. Using an informal description of an ASN.1 data structure, a Subject name can be constructed in this manner as a Subject consisting of a SET whose elements are a SEQUENCE of a single serialNumber and a SEQUENCE of a single commonName. It should also be noted that conventions are imposed on Subject names used in resource certificates, as described in [ID.sidr-arch], and that any name scheme should comply with these conventions.CRLScope:Scope and Key Values: For CRL Scope this profile specifies that a CA issues a single CRLsequence,at a time, and the scope of the CRL is all certificates issued by this CA. Because the CA instance is bound to a single key pair this implies that the CA's public key, the key used to validate the CA's CRL, and the key used to validate the certificates revoked by that CRL are all thesame.same key value. Repository Publication Point: The definition of a CA affects the design of the repository publication system. In order to minimize the amount of forced re-certification on key rollover events, a repository publication regime that uses the same repository publication point for all CA instances that refers to the same entity, but with different key values will minimize the extent ofre-generationre- generation of certificates to only immediate subordinate certificates.In order for two or more CA instances to share a single repository publication point there needs to be a regime of key management into OLD, CURRENT and FUTURE keys and a similar regime of OLD, CURRENT and FUTURE CAs. An OLD CA should regularly publish its CRL for as long as the OLD CA instance is still valid, and issue EE certificates as necessary to maintain a current manifest of all OLD CA published products, but it should not sign any other products. The CURRENT CA should publish its CRL, and should publish all subordinate products, as well as issuing EE certificates as necessary to maintain a current manifest of all CURRENT CA published products. FUTURE CAs should publish no products at all in the repository publication point. It would be consistent with this repository object name framework for the CRL and manifest to be published using object names derived from the hash of the public key value of the CA instance. Key Rollover: As a CA instance is associated with a single key pair, there are some considerations regarding the procedure that should be followed by an entity performing a key rollover function. The entity will need to create a new CA instance and then use this new CA instance to re-issue all subordinate products with the new CA instance. To perform a key rollover operation the entity will need to: 1. Generate a NEW key pair. 2. Generate a certificate request with the NEW key pair and pass the request to the entity's immediate superior CA as the certificate Issuer. 3. Request the entity's Issuer to generate and publish a NEW CA certificate, with an issuer-selected Subject name thatThis isdistinct from the Subject name useddescribed inconjunction with the previous[ID.sidr-keyroll]. Subjectname value for this entity. 4. Mark the CURRENT CA as OLD and the NEW CA as CURRENT. 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. 6. Where the signing structure uses a packaging format that includes the EE certificate within the signed data, signed objects that included OLD EE certificates in their signed data will need to be re-signed using an EE certificate issued by the CURRENT CA. In the case where the OLD EE certificate is a "single use" EE certificate and the associate private key has been destroyed this will entail the generate of a new key pair, the issuing of an EE certificate by the CURRENT CA. In the case of a "multi-use" EE certificate, the EE certificate should be issued using the CURRENT CA. The object, together with the issued EE certificate, should be signed with the associated private key, and published in the same repository publication point, using the same repository publication point name, as the previously signed object that it replaces (i.e. overwrite the old signed object). 7. Generate a certificate revocation request for the OLD CA certificate and pass it to the entity's Issuer. 8. Remove all published OLD CA products and destroy the OLD private key. Name Uniqueness:Name: This profile specifies that Subject names must be unique per Issuer, and does not specify that Subject names must be globallyunique. Given thatunique (in terms of assured uniqueness). This is due to the nature of the RPKIisas a distributed PKI, implying that there is noinherentready ability for Certification authorities to coordinatePKI-widea simple RPKI-wide uniqueSubject names. CA's shouldname space without resorting to additional critical external dependencies. CAs are advised to usemulti-attribute, structuredSubjectnames in their RPKI certificates. This advicename generation procedures that minimize the potential for name clashes. One way to achieve this ismotivated byfor adesireCA toinclude within this specificationuse aCA'sSubjectnamingname practice that usesa distinguished namethe CommonName componentthat isof the Distinguished Name as a constant value for any given entity that is the Subject of CA-issuedcertificates (the CommonNamecertificates, and set the serialNumber component of the DistinguishedName), yet still ensureName to a value that is derived from thestructures Subject name changes whenever Subjecthash of the subject public keyrollover occurs (the serial numbervalue. If the CA elects not to use the serialNumber component of theDistinguished Name). Also,DistinguishedName, then it is considered beneficial that a CA generates CommonNames that have themselves a random component that includes significantly more than 40 bits of entropy in the name. Some non-normative recommendations to achieve this include: 1) Hash of the subject public key (encoded as ASCII HEX). example: cn="999d99d564de366a29cd8468c45ede1848e2cc14" 2) A Universally Unique IDentifier (UUID) [RFC4122] example: cn="6437d442-6fb5-49ba-bbdb-19c260652098" 3) A randomly generated ASCII HEX encoded string of length 20 or greater: example: cn="0f8fcc28e3be4869bc5f8fa114db05e1"> (A string of 20 ASCII HEX digits would have 80-bits of entropy) 4) An internal database key or subscriber ID combined with one of thepublication repository is distributed,above example: cn="<DBkey1> (6437d442-6fb5-49ba-bbdb- 19c2606520980)" (The issuing CA may wish to be able to extract the database key or subscriber ID from the commonName. Since only the issuing CA would need to be able to parse the commonName, the database key anddistinct entities use distinct repository publication pointsthe source of entropy (e.g., a UUID) could be separated in anypotential ambiguity is resolved byway that thedistinct publication point.CA wanted, as long as it conformed to the rules for PrintableString. The separator could be a space character, parenthesis, hyphen, slash, question mark, etc. 9. Security Considerations The Security Considerations of [RFC5280] and [RFC3779] apply to ResourceCertificates as defined by this profile,Certificates. The Security Considerations of [RFC2986] andtheir use.[RFC4211] apply to Resource Certificate certification requests. A Resource Certificate PKI cannot in and of itself resolve any forms of ambiguity relating to uniqueness of assertions of rights of use in the event that two or more valid certificates encompass the same resource. If the issuance of resource certificates is aligned to the status of resource allocations and assignments then the information conveyed in a certificate is no better than the information in the allocation and assignment databases. This profile requires that the key used to sign an issued certificate is the same key used to sign the CRL that can revoke the certificate, implying that the certificate path used to validate a signature on a certificates is the same as that used to validate a signatures the CRL that revokes the certificate. It is noted that this is a higher constraint than required in X.509 PKIs, and there may be a risk in using a path validation implementation that is capable of using separate validation paths for a certificate and the corresponding CRL. If there are subject name collisions in the RPKI as a result of CAs not following the guidelines provided here relating to ensuring sufficient entropy in constructing subject names, and this is combined with the situation that an RP uses an implementation of validation path construction that is not in conformance with this RPKI profile, then it is possible that the subject name collisions can cause an RP to conclude that an otherwise valid certificate has been revoked. 10. IANA Considerations [Note to IANA, to be removed prior to publication: there are no IANA considerations stated in this document.] 11. Acknowledgements The authors would like to particularly acknowledge the valued contribution from Stephen Kent in reviewing this document and proposing numerous sections of text that have beenincorporated<incorporated into the text. The authors also acknowledge the contributions of Sandy Murphy, Robert Kisteleki, Randy Bush, Russ Housley, Ricardo Patara and Rob Austein in the preparation and subsequent review of this document. The document also reflects review comments received from Roque Gagliano, Sean Turner and David Cooper. 12. References 12.1. Normative References [ID.sidr-cp] Kent, S., Kong, D., Seo, K., and R. Watro, "Certificate Policy (CP) for the Resource PKI (RPKI)", Work in progress: Internet Drafts draft-ietf-sidr-c-13.txt, September 2010. [ID.sidr-rpki-algs] Huston, G., "A Profile for Algorithms and Key Sizes for use in the Resource Public Key Infrastructure", Work in progress: Internet Drafts draft-ietf-sidr-rpki-algs-00.txt, August 2009.[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981. [RFC2050] Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D.,[RFC2986] Nystrom, M. andJ. Postel, "INTERNET REGISTRY IP ALLOCATION GUIDELINES", BCP 12,B. Kaliski, "PKCS #10: Certification Request Syntax Specification Version 1.7", RFC2050,2986, November1996.2000. [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP Addresses and AS Identifiers", RFC 3779, June 2004. [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)", RFC 4211, September 2005.[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006.[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, May 2008. [X.509] ITU-T, "Recommendation X.509: The Directory - Authentication Framework", 2000. 12.2. Informative References [ID.sidr-arch] Lepinski, M. and S. Kent, "An Infrastructure to Support Secure Internet Routing", Work in progress: Internet Drafts draft-ietf-sidr-arch-04.txt, November 2008.[ID.sidr-manifests][ID.sidr-keyroll] Huston, G., Michaelson, G., and S. Kent, "CA Key Rollover in the RPKI", draft-ietf-sidr-keyroll-02.txt (work in progress), October 2010. [ID.sidr-repos-struct] Huston, G., Loomans, R., and G. Michaleson, "A Profile for Resource Certificate Repository Structure", draft-ietf-sidr-repos-struct-04.txt (work in progress), May 2010. [ID.sidr-rpki-manifests] Austein, R., Huston, G., Kent, S., and M. Lepinski, "Manifests for the Resource Public Key Infrastructure", Work in progress: Internet Drafts draft-ietf-sidr-rpki-manifests-04.txt, October 2008. [ID.sidr-signed-object] Lepinski, M., Chi, A., and S. Kent, "Signed Object Template for the Resource Public Key Infrastructure", draft-ietf-sidr-signed-object-01.txt (work in progress), October 2010. [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object Classes and Attribute Types Version 2.0", RFC 2985, November 2000.[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification Request Syntax Specification Version 1.7", RFC 2986, November 2000. [RFC4158] Cooper, M., Dzambasow, Y., Hesse,[RFC4122] Leach, P.,Joseph, S.,Mealling, M., and R.Nicholas, "Internet X.509 Public Key Infrastructure: Certification Path Building",Salz, "A Universally Unique IDentifier (UUID) URN Namespace", RFC4158, September4122, July 2005. [RFC5781] Weiler, S., Ward, D., and R. Housley, "The rsync URI Scheme", RFC 5781, February 2010. Appendix A. Example Resource Certificate The following is an example Resource Certificate. Certificate Name: 9JfgAEcq7Q-47IwMC5CJIJr6EJs.cer Data: Version: 3(0x2((0x2) Serial: 1500 (0x5dc) Signature Algorithm: SHA256WithRSAEncryption Issuer: CN=APNIC Production-CVPQSgUkLy7pOXdNeVWGvnFX_0s Validity Not Before: Oct 25 12:50:00 2008 GMT Not After : Jan 31 00:00:00 2010 GMT Subject: CN=A91872ED Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:bb:fb:4a:af:a4:b9:dc:d0:fa:6f:67:cc:27:39: 34:d1:80:40:37:de:88:d1:64:a2:f1:b3:fa:c6:7f: bb:51:df:e1:c7:13:92:c3:c8:a2:aa:8c:d1:11:b3: aa:99:c0:ac:54:d3:65:83:c6:13:bf:0d:9f:33:2d: 39:9f:ab:5f:cd:a3:e9:a1:fb:80:7d:1d:d0:2b:48: a5:55:e6:24:1f:06:41:35:1d:00:da:1f:99:85:13: 26:39:24:c5:9a:81:15:98:fb:5f:f9:84:38:e5:d6: 70:ce:5a:02:ca:dd:61:85:b3:43:2d:0b:35:d5:91: 98:9d:da:1e:0f:c2:f6:97:b7:97:3e:e6:fc:c1:c4: 3f:30:c4:81:03:25:99:09:4c:e2:4a:85:e7:46:4b: 60:63:02:43:46:51:4d:ed:fd:a1:06:84:f1:4e:98: 32:da:27:ee:80:82:d4:6b:cf:31:ea:21:af:6f:bd: 70:34:e9:3f:d7:e4:24:cd:b8:e0:0f:8e:80:eb:11: 1f:bc:c5:7e:05:8e:5c:7b:96:26:f8:2c:17:30:7d: 08:9e:a4:72:66:f5:ca:23:2b:f2:ce:54:ec:4d:d9: d9:81:72:80:19:95:57:da:91:00:d9:b1:e8:8c:33: 4a:9d:3c:4a:94:bf:74:4c:30:72:9b:1e:f5:8b:00: 4d:e3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: F4:97:E0:00:47:2A:ED:0F:B8:EC:8C:0C:0B:90:89: 20:9A:FA:10:9B X509v3 Authority Key Identifier: keyid:09:53:D0:4A:05:24:2F:2E:E9:39:77:4D:79: 55:86:BE:71:57:FF:4B X509v3 Key Usage: critical Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 CRL Distribution Points: URI:rsync://rpki.apnic.net/repository/A3C38A24 D60311DCAB08F31979BDBE39/CVPQSgUkLy7pOXdNe VWGvnFX_0s.crl Authority Information Access: CA Issuers - URI:rsync://rpki.apnic.net/repos itory/8BDFC7DED5FD11DCB14CF4B1A703F9B7/CVP QSgUkLy7pOXdNeVWGvnFX_0s.cer X509v3 Certificate Policies: critical Policy: 1.3.6.1.5.5.7.14.2 Subject Information Access: CA Repository - URI:rsync://rpki.apnic.net/mem ber_repository/A91872ED/06A83982887911DD81 3F432B2086D636/ Manifest - URI:rsync://rpki.apnic.net/member_r epository/A91872ED/06A83982887911DD813F432 B2086D636/9JfgAEcq7Q-47IwMC5CJIJr6EJs.mft sbgp-autonomousSysNum: critical Autonomous System Numbers: 24021 38610 131072 131074 sbgp-ipAddrBlock: critical IPv4: 203.133.248.0/22 203.147.108.0/23 Signature Algorithm: sha256WithRSAEncryption 51:4c:77:e4:21:64:80:e9:35:30:20:9f:d8:4b:88:60:b8:1f: 73:24:9d:b5:17:60:65:6a:28:cc:43:4b:68:97:ca:76:07:eb: dc:bd:a2:08:3c:8c:56:38:c6:0a:1e:a8:af:f5:b9:42:02:6b: 77:e0:b1:1c:4a:88:e6:6f:b6:17:d3:59:41:d7:a0:62:86:59: 29:79:26:76:34:d1:16:2d:75:05:cb:b2:99:bf:ca:c6:68:1b: b6:a9:b0:f4:43:2e:df:e3:7f:3c:b3:72:1a:99:fa:5d:94:a1: eb:57:9c:9a:2c:87:d6:40:32:c9:ff:a6:54:b8:91:87:fd:90: 55:ef:12:3e:1e:2e:cf:c5:ea:c3:4c:09:62:4f:88:00:a0:7f: cd:67:83:bc:27:e1:74:2c:18:4e:3f:12:1d:ef:29:0f:e3:27: 00:ce:14:eb:f0:01:f0:36:25:a2:33:a8:c6:2f:31:18:22:30: cf:ca:97:43:ed:84:75:53:ab:b7:6c:75:f7:2f:55:5c:2e:82: 0a:be:91:59:bf:c9:06:ef:bb:b4:a2:71:9e:03:b1:25:8e:29: 7a:30:88:66:b4:f2:16:6e:df:ad:78:ff:d3:b2:9c:29:48:e3: be:87:5c:fc:20:2b:df:da:ca:30:58:c3:04:c9:63:72:48:8c: 0a:5f:97:71 Appendix B. Example Certificate Revocation List The following is an example Certificate Revocation List. CRL Name: q66IrWSGuBE7jqx8PAUHAlHCqRw.crl Data: Version: 2 Signature Algorithm: Hash: SHA256, Encryption: RSA Issuer: CN=Demo Production APNIC CA - Not for real use, E=ca@apnic.net This Update: Thu Jul 27 06:30:34 2006 GMT Next Update: Fri Jul 28 06:30:34 2006 GMT Authority Key Identifier: Key Identifier: ab:ae:88:ad:64:86:b8:11:3b:8e:ac:7c:3c:05: 07:02:51:c2:a9:1c Authority Key Identifier: Key Identifier g(AKI): q66IrWSGuBE7jqx8PAUHAlHCqRw CRLNumber: 4 Revoked Certificates: 1 Serial Number: 1 Revocation Date: Mon Jul 17 05:10:19 2006 GMT Serial Number: 2 Revocation Date: Mon Jul 17 05:12:25 2006 GMT Serial Number: 4 Revocation Date: Mon Jul 17 05:40:39 2006 GMT Signature: b2:5a:e8:7c:bd:a8:00:0f:03:1a:17:fd:40:2c:46: 0e:d5:64:87:e7:e7:bc:10:7d:b6:3e:39:21:a9:12: f4:5a:d8:b8:d4:bd:57:1a:7d:2f:7c:0d:c6:4f:27: 17:c8:0e:ae:8c:89:ff:00:f7:81:97:c3:a1:6a:0a: f7:d2:46:06:9a:d1:d5:4d:78:e1:b7:b0:58:4d:09: d6:7c:1e:a0:40:af:86:5d:8c:c9:48:f6:e6:20:2e: b9:b6:81:03:0b:51:ac:23:db:9f:c1:8e:d6:94:54: 66:a5:68:52:ee:dd:0f:10:5d:21:b8:b8:19:ff:29: 6f:51:2e:c8:74:5c:2a:d2:c5:fa:99:eb:c5:c2:a2: d0:96:fc:54:b3:ba:80:4b:92:7f:85:54:76:c9:12: cb:32:ea:1d:12:7b:f8:f9:a2:5c:a1:b1:06:8e:d8: c5:42:61:00:8c:f6:33:11:29:df:6e:b2:cc:c3:7c: d3:f3:0c:8d:5c:49:a5:fb:49:fd:e7:c4:73:68:0a: 09:0e:6d:68:a9:06:52:3a:36:4f:19:47:83:59:da: 02:5b:2a:d0:8a:7a:33:0a:d5:ce:be:b5:a2:7d:8d: 59:a1:9d:ee:60:ce:77:3d:e1:86:9a:84:93:90:9f: 34:a7:02:40:59:3a:a5:d1:18:fb:6f:fc:af:d4:02: d9 Authors' Addresses Geoff HustonAsia Pacific Network Information CentreAPNIC Email: gih@apnic.net URI: http://www.apnic.net George MichaelsonAsia Pacific Network Information CentreAPNIC Email: ggm@apnic.net URI: http://www.apnic.net Robert LoomansAsia Pacific Network Information CentreAPNIC Email: robertl@apnic.net URI: http://www.apnic.net