| < draft-ietf-sidr-bgpsec-pki-profiles-18.txt | draft-ietf-sidr-bgpsec-pki-profiles-19.txt > | |||
|---|---|---|---|---|
| Secure Inter-Domain Routing Working Group M. Reynolds | Secure Inter-Domain Routing Working Group M. Reynolds | |||
| Internet-Draft IPSw | Internet-Draft IPSw | |||
| Updates: 6487 (if approved) S. Turner | Updates: 6487 (if approved) S. Turner | |||
| Intended status: Standard Track sn3rd | Intended status: Standard Track sn3rd | |||
| Expires: January 22, 2017 S. Kent | Expires: July 3, 2017 S. Kent | |||
| BBN | BBN | |||
| July 21, 2016 | December 30, 2016 | |||
| A Profile for BGPsec Router Certificates, | A Profile for BGPsec Router Certificates, | |||
| Certificate Revocation Lists, and Certification Requests | Certificate Revocation Lists, and Certification Requests | |||
| draft-ietf-sidr-bgpsec-pki-profiles-18 | draft-ietf-sidr-bgpsec-pki-profiles-19 | |||
| Abstract | Abstract | |||
| This document defines a standard profile for X.509 certificates used | This document defines a standard profile for X.509 certificates used | |||
| to enable validation of Autonomous System (AS) paths in the Border | to enable validation of Autonomous System (AS) paths in the Border | |||
| Gateway Protocol (BGP), as part of an extension to that protocol | Gateway Protocol (BGP), as part of an extension to that protocol | |||
| known as BGPsec. BGP is the standard for inter-domain routing in the | known as BGPsec. BGP is the standard for inter-domain routing in the | |||
| Internet; it is the "glue" that holds the Internet together. BGPsec | Internet; it is the "glue" that holds the Internet together. BGPsec | |||
| is being developed as one component of a solution that addresses the | is being developed as one component of a solution that addresses the | |||
| requirement to provide security for BGP. The goal of BGPsec is to | requirement to provide security for BGP. The goal of BGPsec is to | |||
| skipping to change at page 2, line 30 ¶ | skipping to change at page 2, line 30 ¶ | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Describing Resources in Certificates . . . . . . . . . . . . . 3 | 2. Describing Resources in Certificates . . . . . . . . . . . . . 3 | |||
| 3. Updates to [RFC6487] . . . . . . . . . . . . . . . . . . . . . 5 | 3. Updates to [RFC6487] . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1 BGPsec Router Certificate Fields . . . . . . . . . . . . . 5 | 3.1 BGPsec Router Certificate Fields . . . . . . . . . . . . . 5 | |||
| 3.1.1.1. Subject . . . . . . . . . . . . . . . . . . . . . 5 | 3.1.1. Subject . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1.2. Subject Public Key Info . . . . . . . . . . . . . . . 5 | 3.1.2. Subject Public Key Info . . . . . . . . . . . . . . . 5 | |||
| 3.1.3. BGPsec Router Certificate Version 3 Extension Fields . 6 | 3.1.3. BGPsec Router Certificate Version 3 Extension Fields . 6 | |||
| 3.1.3.1. Basic Constraints . . . . . . . . . . . . . . . . 6 | 3.1.3.1. Basic Constraints . . . . . . . . . . . . . . . . 6 | |||
| 3.1.3.2. Extended Key Usage . . . . . . . . . . . . . . . . 6 | 3.1.3.2. Extended Key Usage . . . . . . . . . . . . . . . . 6 | |||
| 3.1.3.3. Subject Information Access . . . . . . . . . . . . 6 | 3.1.3.3. Subject Information Access . . . . . . . . . . . . 6 | |||
| 3.1.3.4. IP Resources . . . . . . . . . . . . . . . . . . . 6 | 3.1.3.4. IP Resources . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.1.3.5. AS Resources . . . . . . . . . . . . . . . . . . . 6 | 3.1.3.5. AS Resources . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2. BGPsec Router Certificate Request Profile . . . . . . . . 6 | 3.2. BGPsec Router Certificate Request Profile . . . . . . . . 7 | |||
| 3.3. BGPsec Router Certificate Validation . . . . . . . . . . . 7 | 3.3. BGPsec Router Certificate Validation . . . . . . . . . . . 7 | |||
| 3.4. Router Certificates and Signing Functions in the RPKI . . 8 | 3.4. Router Certificates and Signing Functions in the RPKI . . 8 | |||
| 4. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Implementation Considerations . . . . . . . . . . . . . . . . . 9 | 5. Implementation Considerations . . . . . . . . . . . . . . . . . 9 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . . 10 | 9.1. Normative References . . . . . . . . . . . . . . . . . . . 10 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . . 11 | 9.2. Informative References . . . . . . . . . . . . . . . . . . 11 | |||
| Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 12 | Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 12 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a profile for X.509 end-entity (EE) | This document defines a profile for X.509 end-entity (EE) | |||
| certificates [RFC5280] for use in the context of certification of | certificates [RFC5280] for use in the context of certification of | |||
| Autonomous System (AS) paths in the Border Gateway Protocol Security | Autonomous System (AS) paths in the BGPsec. Such certificates are | |||
| protocol (BGPsec). Such certificates are termed "BGPsec Router | termed "BGPsec Router Certificates". The holder of the private key | |||
| Certificates". The holder of the private key associated with a | associated with a BGPsec Router Certificate is authorized to send | |||
| BGPsec Router Certificate is authorized to send secure route | secure route advertisements (BGPsec UPDATEs) on behalf of the AS(es) | |||
| advertisements (BGPsec UPDATEs) on behalf of the AS(es) named in the | named in the certificate. A router holding the private key is | |||
| certificate. A router holding the private key is authorized to send | authorized to send route advertisements (to its peers) identifying | |||
| route advertisements (to its peers) that contain one or more of the | the router's ASN as the source of the advertisements. A key property | |||
| specified AS number as the last item in the AS PATH attribute. A key | provided by BGPsec is that every AS along the AS PATH can verify that | |||
| property provided by BGPsec is that every AS along the AS PATH can | the other ASes along the path have authorized the advertisement of | |||
| verify that the other ASes along the path have authorized the | the given route (to the next AS along the AS PATH). | |||
| advertisement of the given route (to the next AS along the AS PATH). | ||||
| This document is a profile of [RFC6487], which is a profile of | This document is a profile of [RFC6487], which is a profile of | |||
| [RFC5280]; thus this document updates [RFC6487]. It establishes | [RFC5280]; thus this document updates [RFC6487]. It establishes | |||
| requirements imposed on a Resource Certificate that is used as a | requirements imposed on a Resource Certificate that is used as a | |||
| BGPsec Router Certificate, i.e., it defines constraints for | BGPsec Router Certificate, i.e., it defines constraints for | |||
| certificate fields and extensions for the certificate to be valid in | certificate fields and extensions for the certificate to be valid in | |||
| this context. This document also profiles the certification requests | this context. This document also profiles the certification requests | |||
| used to acquire BGPsec Router Certificates. Finally, this document | used to acquire BGPsec Router Certificates. Finally, this document | |||
| specifies the Relying Party (RP) certificate path validation | specifies the Relying Party (RP) certificate path validation | |||
| procedures for these certificates. | procedures for these certificates. | |||
| skipping to change at page 3, line 52 ¶ | skipping to change at page 3, line 51 ¶ | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| [RFC2119]. | [RFC2119]. | |||
| 2. Describing Resources in Certificates | 2. Describing Resources in Certificates | |||
| Figure 1 depicts some of the entities in the RPKI and some of the | Figure 1 depicts some of the entities in the RPKI and some of the | |||
| products generated by RPKI entities. IANA issues a Certification | products generated by RPKI entities. IANA issues a Certification | |||
| Authority (CA) certificate to each Regional Internet Registry (RIR). | Authority (CA) certificate to each Regional Internet Registry (RIR). | |||
| The RIR, in turn, issues a CA certificate to an Internet Service | The RIR, in turn, issues a CA certificate to an Internet Service | |||
| Providers (ISP). The ISP in turn issues EE Certificates to itself to | Provider (ISP). The ISP in turn issues EE Certificates to itself to | |||
| enable verification of signatures on RPKI signed objects. The CA also | enable verification of signatures on RPKI signed objects. The CA | |||
| generate. The CA also generates Certificate Revocation Lists (CRLs). | also generates Certificate Revocation Lists (CRLs). These CA and EE | |||
| These CA and EE certificates are referred to as "Resource | certificates are referred to as "Resource Certificates", and are | |||
| Certificates", and are profiled in [RFC6487]. The [RFC6480] | profiled in [RFC6487]. [RFC6480] envisioned using Resource | |||
| envisioned using Resource Certificates to enable verification of | Certificates to enable verification of Manifests [RFC6486] and Route | |||
| Manifests [RFC6486] and Route Origin Authorizations (ROAs) [RFC6482]. | Origin Authorizations (ROAs) [RFC6482]. ROAs and Manifests include | |||
| ROAs and Manifests include the Resource Certificates used to verify | the Resource Certificates used to verify them. | |||
| them. | ||||
| +---------+ +------+ | +---------+ +------+ | |||
| | CA Cert |---| IANA | | | CA Cert |---| IANA | | |||
| +---------+ +------+ | +---------+ +------+ | |||
| \ | \ | |||
| +---------+ +-----+ | +---------+ +-----+ | |||
| | CA Cert |---| RIR | | | CA Cert |---| RIR | | |||
| +---------+ +-----+ | +---------+ +-----+ | |||
| \ | \ | |||
| +---------+ +-----+ | +---------+ +-----+ | |||
| skipping to change at page 4, line 45 ¶ | skipping to change at page 4, line 43 ¶ | |||
| This document defines another type of Resource Certificate, which is | This document defines another type of Resource Certificate, which is | |||
| referred to as a "BGPsec Router Certificate". The purpose of this | referred to as a "BGPsec Router Certificate". The purpose of this | |||
| certificate is explained in Section 1 and falls within the scope of | certificate is explained in Section 1 and falls within the scope of | |||
| appropriate uses defined within [RFC6484]. The issuance of BGPsec | appropriate uses defined within [RFC6484]. The issuance of BGPsec | |||
| Router Certificates has minimal impact on RPKI CAs because the RPKI | Router Certificates has minimal impact on RPKI CAs because the RPKI | |||
| CA certificate and CRL profile remain unchanged (i.e., they are as | CA certificate and CRL profile remain unchanged (i.e., they are as | |||
| specified in [RFC6487]). Further, the algorithms used to generate | specified in [RFC6487]). Further, the algorithms used to generate | |||
| RPKI CA certificates that issue the BGPsec Router Certificates and | RPKI CA certificates that issue the BGPsec Router Certificates and | |||
| the CRLs necessary to check the validity of the BGPsec Router | the CRLs necessary to check the validity of the BGPsec Router | |||
| Certificates remain unchanged (i.e., they are as specified in | Certificates remain unchanged (i.e., they are as specified in | |||
| [ID.sidr-rfc6485bis]). The only impact is that RPKI CAs will need to | [RFC7935]). The only impact is that RPKI CAs will need to be able to | |||
| be able to process a profiled certificate request (see Section 5) | process a profiled certificate request (see Section 5) signed with | |||
| signed with algorithms found in [ID.sidr-bgpsec-algs]. The use of | algorithms found in [ID.sidr-bgpsec-algs]. The use of BGPsec Router | |||
| BGPsec Router Certificates in no way affects RPKI RPs that process | Certificates in no way affects RPKI RPs that process Manifests and | |||
| Manifests and ROAs because the public key found in the BGPsec Router | ROAs because the public key found in the BGPsec Router Certificate is | |||
| Certificate is used only to verify the signature on the BGPsec | used only to verify the signature on the BGPsec certificate request | |||
| certificate request (only CAs process these) and the signature on a | (only CAs process these) and the signature on a BGPsec Update Message | |||
| BGPsec Update Message [ID.sidr-bgpsec-protocol] (only BGPsec routers | [ID.sidr-bgpsec-protocol] (only BGPsec routers process these). | |||
| process these). | ||||
| This document enumerates only the differences between this profile | This document enumerates only the differences between this profile | |||
| and the profile in [RFC6487]. Note that BGPsec Router Certificates | and the profile in [RFC6487]. Note that BGPsec Router Certificates | |||
| are EE certificates and as such there is no impact on process | are EE certificates and as such there is no impact on process | |||
| described in [RFC6916]. | described in [RFC6916]. | |||
| 3. Updates to [RFC6487] | 3. Updates to [RFC6487] | |||
| 3.1 BGPsec Router Certificate Fields | 3.1 BGPsec Router Certificate Fields | |||
| A BGPsec Router Certificate is a valid X.509 public key certificate, | A BGPsec Router Certificate is consistent with the profile in | |||
| consistent with the PKIX profile [RFC5280], containing the fields | [RFC6487] as modified by the specifications in this section. As | |||
| listed in this section. This profile is also based on [RFC6487] and | such, it is a valid X.509 public key certificate and consistent with | |||
| only the differences between this profile and the profile in | the PKIX profile [RFC5280]. The differences between this profile and | |||
| [RFC6487] are specified below. | the profile in [RFC6487] are specified in this section. | |||
| 3.1.1.1. Subject | 3.1.1. Subject | |||
| This field identifies the router to which the certificate has been | This field identifies the router to which the certificate has been | |||
| issued. Consistent with [RFC6487], only two attributes are allowed | issued. Consistent with [RFC6487], only two attributes are allowed | |||
| in the Subject field: common name and serial number. Moreover, the | in the Subject field: common name and serial number. Moreover, the | |||
| only common name encoding options that are supported are | only common name encoding options that are supported are | |||
| printableString and UTF8String. For BGPsec Router Certificates, it | printableString and UTF8String. For BGPsec Router Certificates, it | |||
| is RECOMMENDED that the common name attribute contain the literal | is RECOMMENDED that the common name attribute contain the literal | |||
| string "ROUTER-" followed by the 32-bit AS Number [RFC3779] encoded | string "ROUTER-" followed by the 32-bit AS Number [RFC3779] encoded | |||
| as eight hexadecimal digits and that the serial number attribute | as eight hexadecimal digits and that the serial number attribute | |||
| contain the 32-bit BGP Identifier [RFC4271] (i.e., the router ID) | contain the 32-bit BGP Identifier [RFC4271] (i.e., the router ID) | |||
| encoded as eight hexadecimal digits. If there is more than one AS | encoded as eight hexadecimal digits. If there is more than one AS | |||
| number, the choice of which to include in the common name is at the | number, the choice of which to include in the common name is at the | |||
| discretion of the Issuer. If the same certificate is issued to more | discretion of the Issuer. If the same certificate is issued to more | |||
| than one router (hence the private key is shared among these | than one router (hence the private key is shared among these | |||
| routers), the choice of the router ID used in this name is at the | routers), the choice of the router ID used in this name is at the | |||
| discretion of the Issuer. Note that router IDs are not guaranteed to | discretion of the Issuer. Note that router IDs are not guaranteed to | |||
| be unique across the Internet, and thus the Subject name in a BGPsec | be unique across the Internet, and thus the Subject name in a BGPsec | |||
| Router Certificate issued using this convention also is not | Router Certificate issued using this convention also is not | |||
| guaranteed to be unique across different issuers. However, each | guaranteed to be unique across different issuers. However, each | |||
| certificate issued by an individual CA MUST contain a Subject name | certificate issued by an individual CA MUST contain a Subject name | |||
| that is unique within that context. | that is unique to that CA context. | |||
| 3.1.2. Subject Public Key Info | 3.1.2. Subject Public Key Info | |||
| Refer to section 3.1 of [ID.sidr-bgpsec-algs]. | Refer to section 3.1 of [ID.sidr-bgpsec-algs]. | |||
| 3.1.3. BGPsec Router Certificate Version 3 Extension Fields | 3.1.3. BGPsec Router Certificate Version 3 Extension Fields | |||
| 3.1.3.1. Basic Constraints | 3.1.3.1. Basic Constraints | |||
| BGPsec speakers are EEs; therefore, the Basic Constraints extension | BGPsec speakers are EEs; therefore, the Basic Constraints extension | |||
| must not be present, as per [RFC6487]. | must not be present, as per [RFC6487]. | |||
| 3.1.3.2. Extended Key Usage | 3.1.3.2. Extended Key Usage | |||
| BGPsec Router Certificates MUST include the Extended Key Usage (EKU) | BGPsec Router Certificates MUST include the Extended Key Usage (EKU) | |||
| extension. As specified in [RFC6487] this extension MUST be marked | extension. As specified in [RFC6487] this extension must be marked | |||
| as non-critical. This document defines one EKU for BGPsec Router | as non-critical. This document defines one EKU for BGPsec Router | |||
| Certificates: | Certificates: | |||
| id-kp OBJECT IDENTIFIER ::= | id-kp OBJECT IDENTIFIER ::= | |||
| { iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) kp(3) } | security(5) mechanisms(5) pkix(7) kp(3) } | |||
| id-kp-bgpsec-router OBJECT IDENTIFIER ::= { id-kp 30 } | id-kp-bgpsec-router OBJECT IDENTIFIER ::= { id-kp 30 } | |||
| A BGPsec router MUST require the extended key usage extension to be | A BGPsec router MUST require the extended key usage extension to be | |||
| skipping to change at page 7, line 4 ¶ | skipping to change at page 7, line 6 ¶ | |||
| 3.1.3.5. AS Resources | 3.1.3.5. AS Resources | |||
| Each BGPsec Router Certificate MUST include the AS Resource | Each BGPsec Router Certificate MUST include the AS Resource | |||
| Identifier Delegation extension, as specified in section 4.8.11 of | Identifier Delegation extension, as specified in section 4.8.11 of | |||
| [RFC6487]. The AS Resource Identifier Delegation extension MUST | [RFC6487]. The AS Resource Identifier Delegation extension MUST | |||
| include one or more AS numbers, and the "inherit" element MUST NOT be | include one or more AS numbers, and the "inherit" element MUST NOT be | |||
| specified. | specified. | |||
| 3.2. BGPsec Router Certificate Request Profile | 3.2. BGPsec Router Certificate Request Profile | |||
| Refer to section 6 of [RFC6487]. The only differences between this | Refer to section 6 of [RFC6487]. The only differences between this | |||
| profile and the profile in [RFC6487] are: | profile and the profile in [RFC6487] are: | |||
| o The Basic Constraints extension: | o The Basic Constraints extension: | |||
| If included, the CA MUST NOT honor the cA boolean if set to TRUE. | If included, the CA MUST NOT honor the cA boolean if set to TRUE. | |||
| o The Extended Key Usage extension: | o The Extended Key Usage extension: | |||
| If included, id-kp-bgpsec-router MUST be present (see Section | If included, id-kp-bgpsec-router MUST be present (see Section | |||
| 3.1). If included, the CA MUST honor the request for id-kp- | 3.1). If included, the CA MUST honor the request for id-kp- | |||
| bgpsec-router. | bgpsec-router. | |||
| o The Subject Information Access extension: | o The Subject Information Access extension: | |||
| If included, the CA MUST NOT honor the request to include the | If included, the CA MUST NOT honor the request to include the | |||
| extension. | extension. | |||
| o The SubjectPublicKeyInfo and PublicKey fields are specified in | o The SubjectPublicKeyInfo field is specified in [ID.sidr-bgpsec- | |||
| [ID.sidr-bgpsec-algs]. | algs]. | |||
| o The request is signed with the algorithms specified in [ID.sidr- | o The request is signed with the algorithms specified in [ID.sidr- | |||
| bgpsec-algs]. | bgpsec-algs]. | |||
| 3.3. BGPsec Router Certificate Validation | 3.3. BGPsec Router Certificate Validation | |||
| The validation procedure used for BGPsec Router Certificates is | The validation procedure used for BGPsec Router Certificates is | |||
| identical to the validation procedure described in Section 7 of | identical to the validation procedure described in Section 7 of | |||
| [RFC6487] (and any RFC that updates this procedure), but using the | [RFC6487] (and any RFC that updates this procedure), as modified | |||
| constraints applied come from this specification. For example, in | below. For example, in step 3: "The certificate contains all field | |||
| step 3: "the certificate contains all the field that must be present" | that must be present" - refers to the fields that are required by | |||
| - refers to the fields that are required by this specification. | this specification. | |||
| The differences are as follows: | The differences are as follows: | |||
| o BGPsec Router Certificates MUST include the BGPsec Router EKU | o BGPsec Router Certificates MUST include the BGPsec Router EKU | |||
| defined in Section 3.1.3.2. | defined in Section 3.1.3.2. | |||
| o BGPsec Router Certificates MUST NOT include the SIA extension. | o BGPsec Router Certificates MUST NOT include the SIA extension. | |||
| o BGPsec Router Certificates MUST NOT include the IP Resource | o BGPsec Router Certificates MUST NOT include the IP Resource | |||
| extension. | extension. | |||
| o BGPsec Router Certificates MUST include the AS Resource Identifier | o BGPsec Router Certificates MUST include the AS Resource Identifier | |||
| Delegation extension. | Delegation extension. | |||
| o BGPsec Router Certificate MUST include the "Subject Public Key | o BGPsec Router Certificate MUST include the subjectPublicKeyInfo | |||
| Info" described in [ID.sidr-bgpsec-algs] as it updates [ID.sidr- | described in [ID.sidr-bgpsec-algs]. | |||
| rfc6485bis]. | ||||
| NOTE: The cryptographic algorithms used by BGPsec routers are found | NOTE: BGPsec RPs will need to support the algorithms in [ID.sidr- | |||
| in [ID.sidr-bgpsec-algs]. Currently, the algorithms specified in | bgpsec-algs], which are used to validate BGPsec signatures, as well | |||
| [ID.sidr-bgpsec-algs] and [ID.sidr-rfc6485bis] are different. BGPsec | as the algorithms in [ID.sidr-rfc6485bis], which are needed to | |||
| RPs will need to support algorithms that are used to validate BGPsec | validate signatures on BGPsec certificates, RPKI CA certificates, and | |||
| signatures as well as the algorithms that are needed to validate | RPKI CRLs. | |||
| signatures on BGPsec certificates, RPKI CA certificates, and RPKI | ||||
| CRLs. | ||||
| 3.4. Router Certificates and Signing Functions in the RPKI | 3.4. Router Certificates and Signing Functions in the RPKI | |||
| As described in Section 1, the primary function of BGPsec route | As described in Section 1, the primary function of BGPsec route | |||
| certificates in the RPKI is for use in the context of certification | certificates in the RPKI is for use in the context of certification | |||
| of Autonomous System (AS) paths in the Border Gateway Protocol | of Autonomous System (AS) paths in the BGPsec protocol. | |||
| Security protocol (BGPsec). | ||||
| The private key associated with a router EE certificate may be used | The private key associated with a router EE certificate may be used | |||
| multiple times in generating signatures in multiple instances of the | multiple times in generating signatures in multiple instances of the | |||
| BGPsec_Path Attribute Signature Segments [ID.sidr-bgpsec-protocol]. | BGPsec_Path Attribute Signature Segments [ID.sidr-bgpsec-protocol]. | |||
| I.e., the BGPsec router certificate is used to validate multiple | I.e., the BGPsec router certificate is used to validate multiple | |||
| signatures. | signatures. | |||
| BGPsec router certificates are stored in the issuing CA's repository, | BGPsec router certificates are stored in the issuing CA's repository, | |||
| where a repository following RFC6481 MUST use a .cer filename | where a repository following RFC6481 MUST use a .cer filename | |||
| extension for the certificate file. | extension for the certificate file. | |||
| 4. Design Notes | 4. Design Notes | |||
| The BGPsec Router Certificate profile is based on the Resource | The BGPsec Router Certificate profile is based on the Resource | |||
| Certificate profile as specified in [ID.sidr-rfc6485bis]. As a | Certificate profile as specified in [RFC7935]. As a result, many of | |||
| result, many of the design choices herein are a reflection of the | the design choices herein are a reflection of the design choices that | |||
| design choices that were taken in that prior work. The reader is | were taken in that prior work. The reader is referred to [RFC6484] | |||
| referred to [RFC6484] for a fuller discussion of those choices. | for a fuller discussion of those choices. | |||
| CAs are required by the Certificate Policy (CP) [RFC6484] to issue | CAs are required by the Certificate Policy (CP) [RFC6484] to issue | |||
| properly formed BGPsec Router Certificates regardless of what is | properly formed BGPsec Router Certificates regardless of what is | |||
| present in the certification request so there is some flexibility | present in the certification request so there is some flexibility | |||
| permitted in the certificate requests: | permitted in the certificate requests: | |||
| o BGPsec Router Certificates are always EE certificates; therefore, | o BGPsec Router Certificates are always EE certificates; therefore, | |||
| requests to issue a CA certificate result in EE certificates; | requests to issue a CA certificate result in EE certificates; | |||
| o BGPsec Router Certificates are always EE certificates; therefore, | o BGPsec Router Certificates are always EE certificates; therefore, | |||
| skipping to change at page 9, line 11 ¶ | skipping to change at page 9, line 9 ¶ | |||
| result in certificates with neither of these values; | result in certificates with neither of these values; | |||
| o BGPsec Router Certificates always include the BGPsec Rouer EKU | o BGPsec Router Certificates always include the BGPsec Rouer EKU | |||
| value; therefore, request without the value result in certificates | value; therefore, request without the value result in certificates | |||
| with the value; and, | with the value; and, | |||
| o BGPsec Router Certificates never include the Subject Information | o BGPsec Router Certificates never include the Subject Information | |||
| Access extension; therefore, request with this extension result in | Access extension; therefore, request with this extension result in | |||
| certificates without the extension. | certificates without the extension. | |||
| Note that this behavior is similar to the CA including the AS | Note that this behavior is similar to the CA including the AS | |||
| Resource Identifier Delegation extension in issued BGPsec Router | Resource Identifier Delegation extension in issued BGPsec Router | |||
| Certificates despite the fact it is not present in the request. | Certificates despite the fact it is not present in the request. | |||
| 5. Implementation Considerations | 5. Implementation Considerations | |||
| This document permits the operator to include a list of ASNs in a | This document permits the operator to include a list of ASNs in a | |||
| BGPsec Router Certificate. In that case, the router certificate would | BGPsec Router Certificate. In that case, the router certificate would | |||
| become invalid if any one of the ASNs is removed from any superior CA | become invalid if any one of the ASNs is removed from any superior CA | |||
| certificate along the path to a trust anchor. Operators could choose | certificate along the path to a trust anchor. Operators could choose | |||
| to avoid this possibility by issuing a separate BGPsec Router | to avoid this possibility by issuing a separate BGPsec Router | |||
| Certificate for each distinct ASN, so that the router certificates | Certificate for each distinct ASN, so that the router certificates | |||
| for ASNs that are retained in the superior CA certificate would | for ASNs that are retained in the superior CA certificate would | |||
| remain valid. | remain valid. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The Security Considerations of [RFC6487] apply. | The Security Considerations of [RFC6487] apply. | |||
| A BGPsec Router Certificate will fail RPKI validation, as defined in | A BGPsec Router Certificate will fail RPKI validation, as defined in | |||
| [RFC6487], because the algorithm suite is different. Consequently, a | [RFC6487], because the cryptographic algorithms used are different. | |||
| RP needs to identify the EKU to determine the appropriate Validation | Consequently, a RP needs to identify the EKU to determine the | |||
| constraint. | appropriate Validation constraint. | |||
| A BGPsec Router Certificate is an extension of the RPKI [RFC6480] to | A BGPsec Router Certificate is an extension of the RPKI [RFC6480] to | |||
| encompass routers. It is a building block BGPsec and is used to | encompass routers. It is a building block BGPsec and is used to | |||
| validate signatures on BGPsec Signature-Segment origination of | validate signatures on BGPsec Signature-Segment origination of | |||
| Signed-Path segments [ID.sidr-bgpsec-protocol]. Thus its essential | Signed-Path segments [ID.sidr-bgpsec-protocol]. Thus its essential | |||
| security function is the secure binding of one or more AS numbers to | security function is the secure binding of one or more AS numbers to | |||
| a public key, consistent with the RPKI allocation/assignment | a public key, consistent with the RPKI allocation/assignment | |||
| hierarchy. | hierarchy. | |||
| Hash functions [ID.sidr-bgpsec-algs] are used when generating the two | Hash functions [ID.sidr-bgpsec-algs] are used when generating the two | |||
| key identifiers extension included in BGPsec certificates. However | key identifier extensions included in BGPsec certificates. However | |||
| as noted in [RFC6818], collision resistance is not a required | as noted in [RFC6818], collision resistance is not a required | |||
| property of one-way hash functions when used to generate key | property of one-way hash functions when used to generate key | |||
| identifiers. Regardless, hash collisions are possible and if | identifiers. Regardless, hash collisions are unlikely, but they are | |||
| detected an operator should be alerted. | possible and if detected an operator should be alerted. A subject | |||
| key identifier collision might cause the incorrect certificate to be | ||||
| selected from the cache, resulting in a failed signature validation. | ||||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document makes use of two object identifiers in the SMI Registry | This document makes use of two object identifiers in the SMI Registry | |||
| for PKIX. One is for the ASN.1 module in Appendix A and it comes | for PKIX. One is for the ASN.1 module in Appendix A and it comes | |||
| from the SMI Security for PKIX Module Identifier IANA registry (id- | from the SMI Security for PKIX Module Identifier IANA registry (id- | |||
| mod-bgpsec-eku). The other is for the BGPsec router EKU defined in | mod-bgpsec-eku). The other is for the BGPsec router EKU defined in | |||
| Section 3.1.3.2 and Appendix A and it comes from the SMI Security for | Section 3.1.3.2 and Appendix A and it comes from the SMI Security for | |||
| PKIX Extended Key Purpose IANA registry. These OIDs were assigned | PKIX Extended Key Purpose IANA registry. These OIDs were assigned | |||
| before management of the PKIX Arc was handed to IANA. No IANA | before management of the PKIX Arc was handed to IANA. No IANA | |||
| allocations are request of IANA, but please update the references in | allocations are request of IANA, but please update the references in | |||
| those registries when this document is published by the RFC editor. | those registries when this document is published by the RFC editor. | |||
| 8. Acknowledgements | 8. Acknowledgements | |||
| We would like to thank Geoff Huston, George Michaelson, and Robert | We would like to thank Geoff Huston, George Michaelson, and Robert | |||
| Loomans for their work on [RFC6487], which this work is based on. In | Loomans for their work on [RFC6487], which this work is based on. In | |||
| addition, the efforts of Steve Kent and Matt Lepinski were | addition, the efforts of Matt Lepinski were instrumental in preparing | |||
| instrumental in preparing this work. Additionally, we'd like to | this work. Additionally, we'd like to thank Rob Austein, Roque | |||
| thank Rob Austein, Roque Gagliano, Richard Hansen, Geoff Huston, | Gagliano, Richard Hansen, Geoff Huston, David Mandelberg, Sandra | |||
| David Mandelberg, Sandra Murphy, and Sam Weiller for their reviews | Murphy, and Sam Weiller for their reviews and comments. | |||
| and comments. | ||||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, DOI | Requirement Levels", BCP 14, RFC 2119, DOI | |||
| 10.17487/RFC2119, March 1997, <http://www.rfc- | 10.17487/RFC2119, March 1997, <http://www.rfc- | |||
| editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| skipping to change at page 10, line 49 ¶ | skipping to change at page 10, line 47 ¶ | |||
| Gateway Protocol 4 (BGP-4)", RFC 4271, DOI | Gateway Protocol 4 (BGP-4)", RFC 4271, DOI | |||
| 10.17487/RFC4271, January 2006, <http://www.rfc- | 10.17487/RFC4271, January 2006, <http://www.rfc- | |||
| editor.org/info/rfc4271>. | editor.org/info/rfc4271>. | |||
| [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
| Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
| (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | |||
| <http://www.rfc-editor.org/info/rfc5280>. | <http://www.rfc-editor.org/info/rfc5280>. | |||
| [RFC6486] Austein, R., Huston, G., Kent, S., and M. Lepinski, | ||||
| "Manifests for the Resource Public Key Infrastructure | ||||
| (RPKI)", RFC 6486, DOI 10.17487/RFC6486, February 2012, | ||||
| <http://www.rfc-editor.org/info/rfc6486>. | ||||
| [RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for | [RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for | |||
| X.509 PKIX Resource Certificates", RFC 6487, DOI | X.509 PKIX Resource Certificates", RFC 6487, DOI | |||
| 10.17487/RFC6487, February 2012, <http://www.rfc- | 10.17487/RFC6487, February 2012, <http://www.rfc- | |||
| editor.org/info/rfc6487>. | editor.org/info/rfc6487>. | |||
| [RFC6818] Yee, P., "Updates to the Internet X.509 Public Key | [RFC7935] Huston, G. and G. Michaelson, Ed., "The Profile for | |||
| Infrastructure Certificate and Certificate Revocation List | Algorithms and Key Sizes for Use in the Resource Public Key | |||
| (CRL) Profile", RFC 6818, DOI 10.17487/RFC6818, January | Infrastructure", RFC 7935, DOI 10.17487/RFC7935, August | |||
| 2013, <http://www.rfc-editor.org/info/rfc6818>. | 2016, <http://www.rfc-editor.org/info/rfc7935>. | |||
| [ID.sidr-rfc6485bis] G. Huston and G. Michaelson, "The Profile for | [ID.sidr-bgpsec-protocol] Lepinski, M. and K. Sriram, "BGPsec | |||
| Algorithms and Key Sizes for use in the Resource Public Key | Protocol Specification", draft-ietf-sidr-bgpsec-protocol, | |||
| Infrastructure", draft-ietf-sidr-rfc6485bis, work-in- | work-in-progress. | |||
| progress. | ||||
| [ID.sidr-bgpsec-algs] S. Turner, "BGP Algorithms, Key Formats, & | [ID.sidr-bgpsec-algs] Turner, S., "BGP Algorithms, Key Formats, & | |||
| Signature Formats", draft-ietf-sidr-bgpsec-algs, work-in- | Signature Formats", draft-ietf-sidr-bgpsec-algs, work-in- | |||
| progress. | progress. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | |||
| RFC 4272, DOI 10.17487/RFC4272, January 2006, | RFC 4272, DOI 10.17487/RFC4272, January 2006, | |||
| <http://www.rfc-editor.org/info/rfc4272>. | <http://www.rfc-editor.org/info/rfc4272>. | |||
| [RFC5123] White, R. and B. Akyol, "Considerations in Validating the | [RFC5123] White, R. and B. Akyol, "Considerations in Validating the | |||
| skipping to change at page 12, line 10 ¶ | skipping to change at page 12, line 12 ¶ | |||
| [RFC6486] Austein, R., Huston, G., Kent, S., and M. Lepinski, | [RFC6486] Austein, R., Huston, G., Kent, S., and M. Lepinski, | |||
| "Manifests for the Resource Public Key Infrastructure | "Manifests for the Resource Public Key Infrastructure | |||
| (RPKI)", RFC 6486, DOI 10.17487/RFC6486, February 2012, | (RPKI)", RFC 6486, DOI 10.17487/RFC6486, February 2012, | |||
| <http://www.rfc-editor.org/info/rfc6486>. | <http://www.rfc-editor.org/info/rfc6486>. | |||
| [RFC6916] Gagliano, R., Kent, S., and S. Turner, "Algorithm Agility | [RFC6916] Gagliano, R., Kent, S., and S. Turner, "Algorithm Agility | |||
| Procedure for the Resource Public Key Infrastructure | Procedure for the Resource Public Key Infrastructure | |||
| (RPKI)", BCP 182, RFC 6916, DOI 10.17487/RFC6916, April | (RPKI)", BCP 182, RFC 6916, DOI 10.17487/RFC6916, April | |||
| 2013, <http://www.rfc-editor.org/info/rfc6916>. | 2013, <http://www.rfc-editor.org/info/rfc6916>. | |||
| [ID.sidr-bgpsec-protocol] Lepinksi, M., "BGPsec Protocol | ||||
| Specification", draft-ietf-sidr-bgpsec-protocol, work-in- | ||||
| progress. | ||||
| Appendix A. ASN.1 Module | Appendix A. ASN.1 Module | |||
| BGPSECEKU { iso(1) identified-organization(3) dod(6) internet(1) | BGPSECEKU { iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-bgpsec-eku(84) } | security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-bgpsec-eku(84) } | |||
| DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
| BEGIN | BEGIN | |||
| -- EXPORTS ALL -- | -- EXPORTS ALL -- | |||
| -- IMPORTS NOTHING -- | -- IMPORTS NOTHING -- | |||
| -- OID Arc -- | -- OID Arc -- | |||
| id-kp OBJECT IDENTIFIER ::= { | id-kp OBJECT IDENTIFIER ::= { | |||
| iso(1) identified-organization(3) dod(6) internet(1) | iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) kp(3) } | security(5) mechanisms(5) pkix(7) kp(3) } | |||
| -- BGPsec Router Extended Key Usage -- | -- BGPsec Router Extended Key Usage -- | |||
| id-kp-bgpsec-router OBJECT IDENTIFIER ::= { id-kp 30 } | id-kp-bgpsec-router OBJECT IDENTIFIER ::= { id-kp 30 } | |||
| END | END | |||
| Authors' Addresses | Authors' Addresses | |||
| Mark Reynolds | Mark Reynolds | |||
| End of changes. 32 change blocks. | ||||
| 93 lines changed or deleted | 89 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||