idnits 2.17.1 draft-ietf-sidr-bgpsec-pki-profiles-11.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC6487, but the abstract doesn't seem to directly say this. It does mention RFC6487 though, so this could be OK. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC6487, updated by this document, for RFC5378 checks: 2006-06-09) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 6, 2015) is 3185 days in the past. Is this intentional? Checking references for intended status: Best Current Practice ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Obsolete informational reference (is this intentional?): RFC 6486 (Obsoleted by RFC 9286) Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Secure Inter-Domain Routing Working Group M. Reynolds 3 Internet-Draft IPSw 4 Updates: 6487 (if approved) S. Turner 5 Intended status: BCP IECA 6 Expires: February 7, 2016 S. Kent 7 BBN 8 August 6, 2015 10 A Profile for BGPsec Router Certificates, 11 Certificate Revocation Lists, and Certification Requests 12 draft-ietf-sidr-bgpsec-pki-profiles-11 14 Abstract 16 This document defines a standard profile for X.509 certificates for 17 the purposes of supporting validation of Autonomous System (AS) paths 18 in the Border Gateway Protocol (BGP), as part of an extension to that 19 protocol known as BGPsec. BGP is a critical component for the proper 20 operation of the Internet as a whole. The BGPsec protocol is under 21 development as a component to address the requirement to provide 22 security for the BGP protocol. The goal of BGPsec is to design a 23 protocol for full AS path validation based on the use of strong 24 cryptographic primitives. The end-entity (EE) certificates specified 25 by this profile are issued under Resource Public Key Infrastructure 26 (RPKI) Certification Authority (CA) certificates, containing the AS 27 Identifier Delegation extension, to routers within the Autonomous 28 System (AS) or ASes. The certificate asserts that the router(s) 29 holding the private key are authorized to send out secure route 30 advertisements on behalf of the specified AS(es). This document also 31 profiles the Certificate Revocation List (CRL), profiles the format 32 of certification requests, and specifies Relying Party certificate 33 path validation procedures. The document extends the RPKI; 34 therefore, this documents updates the RPKI Resource Certificates 35 Profile (RFC 6487). 37 Status of this Memo 39 This Internet-Draft is submitted in full conformance with the 40 provisions of BCP 78 and BCP 79. 42 Internet-Drafts are working documents of the Internet Engineering 43 Task Force (IETF). Note that other groups may also distribute 44 working documents as Internet-Drafts. The list of current Internet- 45 Drafts is at http://datatracker.ietf.org/drafts/current/. 47 Internet-Drafts are draft documents valid for a maximum of six months 48 and may be updated, replaced, or obsoleted by other documents at any 49 time. It is inappropriate to use Internet-Drafts as reference 50 material or to cite them other than as "work in progress." 52 Copyright Notice 54 Copyright (c) 2015 IETF Trust and the persons identified as the 55 document authors. All rights reserved. 57 This document is subject to BCP 78 and the IETF Trust's Legal 58 Provisions Relating to IETF Documents 59 (http://trustee.ietf.org/license-info) in effect on the date of 60 publication of this document. Please review these documents 61 carefully, as they describe your rights and restrictions with respect 62 to this document. Code Components extracted from this document must 63 include Simplified BSD License text as described in Section 4.e of 64 the Trust Legal Provisions and are provided without warranty as 65 described in the Simplified BSD License. 67 1. Introduction 69 This document defines a profile for X.509 end-entity (EE) 70 certificates [RFC5280] for use in the context of certification of 71 Autonomous System (AS) paths in the Border Gateway Protocol Security 72 (BGPsec) protocol. Such certificates are termed "BGPsec Router 73 Certificates". The holder of the private key associated with a 74 BGPsec Router Certificate is authorized to send secure route 75 advertisements (BGPsec UPDATEs) on behalf of the AS(es) named in the 76 certificate. That is, a router holding the private key may send to 77 its BGP peers, route advertisements that contain one or more of the 78 specified AS number as the last item in the AS PATH attribute. A key 79 property that BGPsec will provide is that every AS along the AS PATH 80 can verify that the other ASes along the path have authorized the 81 advertisement of the given route (to the next AS along the AS PATH). 83 This document is a profile of [RFC6487], which is a profile of 84 [RFC5280], and it updates [RFC6487]. It establishes requirements 85 imposed on a Resource Certificate that is used as a BGPsec Router 86 Certificate, i.e., it defines constraints for certificate fields and 87 extensions for the certificate to be valid in this context. This 88 document also profiles the Certificate Revocation List (CRL) and 89 certification requests. Finally, this document specifies the Relying 90 Party (RP) certificate path validation procedures. 92 1.1. Terminology 94 It is assumed that the reader is familiar with the terms and concepts 95 described in "A Profile for X.509 PKIX Resource Certificates" 96 [RFC6487], "BGPsec Protocol Specification" [ID.sidr-bgpsec-protocol], 97 "A Border Gateway Protocol 4 (BGP-4)" [RFC4271], "BGP Security 98 Vulnerabilities Analysis" [RFC4272], "Considerations in Validating 99 the Path in BGP" [RFC5123], and "Capability Advertisement with BGP-4" 100 [RFC5492]. 102 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 103 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 104 "OPTIONAL" in this document are to be interpreted as described in 105 [RFC2119]. 107 2. Describing Resources in Certificates 109 Figure 1 depicts some of the entities in the RPKI and some of the 110 products generated by RPKI entities. IANA issues a Certification 111 Authority (CA) to a Regional Internet Registries (RIR). The RIR, in 112 turn, issues a CA certificate to an Internet Service Providers (ISP). 113 The ISP in turn issues End-Entity (EE) Certificates to itself as well 114 as CRLs. These certificates are referred to as "Resource 115 Certificates", and are profiled in [RFC6487]. The [RFC6480] 116 envisioned using Resource Certificates to generate Manifests 117 [RFC6486] and Route Origin Authorizations (ROAs) [RFC6482]. ROAs and 118 Manifests also include the Resource Certificates used to sign them. 120 +---------+ +------+ 121 | CA Cert |---| IANA | 122 +---------+ +------+ 123 \ 124 +---------+ +-----+ 125 | CA Cert |---| RIR | 126 +---------+ +-----+ 127 \ 128 +---------+ +-----+ 129 | CA Cert |---| ISP | 130 +---------+ +-----+ 131 / | | | 132 +-----+ / | | | +-----+ 133 | CRL |--+ | | +---| ROA | 134 +-----+ | | +-----+ 135 | | +----------+ 136 +----+ | +---| Manifest | 137 +-| EE |---+ +----------+ 138 | +----+ 139 +-----+ 140 Figure 1 142 This document defines another type of Resource Certificate, which is 143 referred to as a "BGPsec Router Certificate". The purpose of this 144 certificate is explained in Section 1 and falls within the scope of 145 appropriate uses defined within [RFC6484]. The issuance of BGPsec 146 Router Certificates has minimal impact on RPKI CAs because the RPKI 147 CA certificate and CRL profile remain unchanged (i.e., they are as 148 specified in [RFC6487]). Further, the algorithms used to generate 149 RPKI CA certificates that issue the BGPsec Router Certificates and 150 the CRLs necessary to check the validity of the BGPsec Router 151 Certificates remain unchanged (i.e., they are as specified in 152 [ID.sidr-rfc6485bis]). The only impact is that the RPKI CAs will 153 need to be able to process a profiled certificate request (see 154 Section 5) signed with algorithms found in [ID.sidr-bgpsec-algs]. 155 The use of BGPsec Router Certificates in no way affects RPKI RPs that 156 process Manifests and ROAs because the public key found in the BGPsec 157 Router Certificate is only ever used to verify the signature on the 158 BGPsec certificate request (only CAs process these) and the signature 159 on a BGPsec Update Message [ID.sidr-bgpsec-protocol] (only BGPsec 160 routers process these). 162 Only the differences between this profile and the profile in 163 [RFC6487] are listed. Note that BGPsec Router Certificates are EE 164 certificates and as such there is no impact on process described in 165 [RFC6916]. 167 3. Updates to [RFC6487] 169 3.1 BGPsec Router Certificate Fields 171 A BGPsec Router Certificate is a valid X.509 public key certificate, 172 consistent with the PKIX profile [RFC5280], containing the fields 173 listed in this section. This profile is also based on [RFC6487] and 174 only the differences between this profile and the profile in 175 [RFC6487] are listed. 177 3.1.1.1. Subject 179 This field identifies the router to which the certificate has been 180 issued. Consistent with [RFC6487], only two attributes are allowed 181 in the Subject field: common name and serial number. Moreover, the 182 only common name encoding options that are supported are 183 printableString and UTF8String. For BGPsec Router Certificates, it 184 is RECOMMENDED that the common name attribute contain the literal 185 string "ROUTER-" followed by the 32-bit AS Number [RFC3779] encoded 186 as eight hexadecimal digits and that the serial number attribute 187 contain the 32-bit BGP Identifier [RFC4271] (i.e., the router ID) 188 encoded as eight hexadecimal digits. If there is more than one AS 189 number, the choice of which to include in the common name is at the 190 discretion of the Issuer. If the same certificate is issued to more 191 than one router (hence the private key is shared among these 192 routers), the choice of the router ID used in this name is at the 193 discretion of the Issuer. Note that router IDs are not guaranteed to 194 be unique across the Internet, and thus the Subject name in a BGPsec 195 Router Certificate issued using this convention also is not 196 guaranteed to be unique across different issuers. However, each 197 certificate issued by an individual CA MUST contain a Subject name 198 that is unique within that context. 200 3.1.2. Subject Public Key Info 202 Refer to section 3.1 of [ID.sidr-bgpsec-algs]. 204 3.1.3. BGPsec Router Certificate Version 3 Extension Fields 206 3.1.3.1. Basic Constraints 208 BGPsec speakers are EEs; therefore, the Basic Constraints extension 209 must not be present, as per [RFC6487]. 211 3.1.3.2. Extended Key Usage 213 BGPsec Router Certificates MUST include the Extended Key Usage (EKU) 214 extension. As specified in [RFC6487] this extension MUST be marked 215 as non-critical. This document defines one EKU for BGPsec Router 216 Certificates: 218 id-kp OBJECT IDENTIFIER ::= 219 { iso(1) identified-organization(3) dod(6) internet(1) 220 security(5) mechanisms(5) pkix(7) kp(3) } 222 id-kp-bgpsec-router OBJECT IDENTIFIER ::= { id-kp 30 } 224 Relying Parties MUST require the extended key usage extension to be 225 present in a BGPsec Router Certificate. If multiple KeyPurposeId 226 values are included, the relying parties need not recognize all of 227 them, as long as the required KeyPurposeId value is present. BGPsec 228 RPs MUST reject certificates that do not contain the BGPsec Router 229 EKU even if they include the anyExtendedKeyUsage OID defined in 230 [RFC5280]. 232 3.1.3.3. Subject Information Access 234 This extension is not used in BGPsec Router Certificates. It MUST be 235 omitted. 237 3.1.3.4. IP Resources 239 This extension is not used in BGPsec Router Certificates. It MUST be 240 omitted. 242 3.1.3.5. AS Resources 244 Each BGPsec Router Certificate MUST include the AS Resource 245 Identifier Delegation extension, as specified in section 4.8.11 of 246 [RFC6487]. The AS Resource Identifier Delegation extension MUST 247 include one or more AS numbers, and the "inherit" element MUST NOT be 248 specified. 250 3.2. BGPsec Router Certificate Request Profile 252 Refer to section 6 of [RFC6487]. The only differences between this 253 profile and the profile in [RFC6487] are: 255 o The ExtendedKeyUsage extension request MUST be included and the CA 256 MUST honor the request; 258 o The SubjectPublicKeyInfo and PublicKey fields are specified in 259 [ID.sidr-bgpsec-algs]; and, 261 o The request is signed with the algorithms specified in [ID.sidr- 262 bgpsec-algs]. 264 3.3. BGPsec Router Certificate Validation 266 The validation procedure used for BGPsec Router Certificates is 267 identical to the validation procedure described in Section 7 of 268 [RFC6487]. The exception is that the constraints applied come from 269 this specification (e.g., in step 3: the certificate contains all the 270 field that must be present - refers to the fields that are required 271 by this specification). 273 The differences are as follows: 275 o BGPsec Router Certificates MUST include the BGPsec EKU defined in 276 Section 3.1.3.1. 278 o BGPsec Router Certificates MUST NOT include the SIA extension. 280 o BGPsec Router Certificates MUST NOT include the IP Resource 281 extension. 283 o BGPsec Router Certificates MUST include the AS Resource Identifier 284 Delegation extension. 286 o BGPsec Router Certificate MUST include the "Subject Public Key 287 Info" described in [ID.sidr-bgpsec-algs] as it updates [ID.sidr- 288 rfc6485bis]. 290 NOTE: The cryptographic algorithms used by BGPsec routers are found 291 in [ID.sidr-bgpsec-algs]. Currently, the algorithms specified in 292 [ID.sidr-bgpsec-algs] and [ID.sidr-rfc6485bis] are different. BGPsec 293 RPs will need to support algorithms that are needed to validate 294 BGPsec signatures as well as the algorithms that are needed to 295 validate signatures on BGPsec certificates, RPKI CA certificates, and 296 RPKI CRLs. 298 4. Design Notes 300 The BGPsec Router Certificate profile is based on the Resource 301 Certificate profile as specified in [ID.sidr-rfc6485bis]. As a 302 result, many of the design choices herein are a reflection of the 303 design choices that were taken in that prior work. The reader is 304 referred to [RFC6484] for a fuller discussion of those choices. 306 5. Security Considerations 308 The Security Considerations of [RFC6487] apply. 310 A BGPsec certificate will fail RPKI validation, as defined in 311 [RFC6487], because the algorithm suite is different. Consequently, a 312 RP needs to identify the EKU before applying the correspondent 313 validation. 315 A BGPsec Router Certificate is an extension of the RPKI [RFC6480] to 316 encompass routers. It is a building block of the larger BGPsec 317 security protocol used to validate signatures on BGPsec Signature- 318 Segment origination of Signed-Path segments [ID.sidr-bgpsec- 319 protocol]. Thus its essential security function is the secure 320 binding of one or more AS numbers to a public key, consistent with 321 the RPKI allocation/assignment hierarchy. 323 6. IANA Considerations 325 This document makes use of two object identifiers in the SMI Registry 326 for PKIX. One is for the ASN.1 module in Appendix A and it comes 327 from the SMI Security for PKIX Module Identifier IANA registry (id- 328 mod-bgpsec-eku). The other is for the BGPsec router EKU defined in 329 Section 3.1.3.2 and Appendix A and it comes from the SMI Security for 330 PKIX Extended Key Purpose IANA registry. No other actions are 331 requested of IANA. 333 7. Acknowledgements 335 We would like to thank Geoff Huston, George Michaelson, and Robert 336 Loomans for their work on [RFC6487], which this work is based on. In 337 addition, the efforts of Steve Kent and Matt Lepinski were 338 instrumental in preparing this work. Additionally, we'd like to 339 thank Roque Gagliano, Sandra Murphy, Geoff Huston, Richard Hansen, 340 and David Mandelberg for their reviews and comments. 342 8. References 344 8.1. Normative References 346 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 347 Requirement Levels", BCP 14, RFC 2119, March 1997. 349 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 350 Addresses and AS Identifiers", RFC 3779, June 2004. 352 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border 353 Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. 355 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 356 Housley, R., and W. Polk, "Internet X.509 Public Key 357 Infrastructure Certificate and Certificate Revocation List 358 (CRL) Profile", RFC 5280, May 2008. 360 [RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for 361 X.509 PKIX Resource Certificates", RFC 6487, February 2012. 363 [ID.sidr-rfc6485bis] Huston, G., and G. Michaelson, "BThe Profile for 364 Algorithms and Key Sizes for use in the Resource Public Key 365 Infrastructure", draft-ietf-sidr-rfc6485bis, work-in- 366 progress. 368 [ID.sidr-bgpsec-algs] Reynolds, M. and S. Turner, "BGP Algorithms, 369 Key Formats, & Signature Formats", draft-ietf-sidr-bgpsec- 370 algs, work-in-progress. 372 8.2. Informative References 374 [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", 375 RFC 4272, January 2006. 377 [RFC5123] White, R. and B. Akyol, "Considerations in Validating the 378 Path in BGP", RFC 5123, February 2008. 380 [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement 381 with BGP-4", RFC 5492, February 2009. 383 [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support 384 Secure Internet Routing", RFC 6480, February 2012. 386 [RFC6482] Lepinski, M., Kent, S., and D. Kong, "A Profile for Route 387 Origin Authorizations (ROAs)", RFC 6482, February 2012. 389 [RFC6484] Kent, S., Kong, D., Seo, K., and R. Watro, "Certificate 390 Policy (CP) for the Resource Public Key Infrastructure 391 (RPKI)", BCP 173, RFC 6484, February 2012. 393 [RFC6486] Austein, R., Huston, G., Kent, S., and M. Lepinski, 394 "Manifests for the Resource Public Key Infrastructure 395 (RPKI)", RFC 6486, February 2012. 397 [RFC6916] Gagliano, R., Kent, S., and S. Turner, "Algorithm Agility 398 Procedure for the Resource Public Key Infrastructure 399 (RPKI)", BCP 182, RFC 6916, April 2013. 401 [ID.sidr-bgpsec-protocol] Lepinksi, M., "BGPsec Protocol 402 Specification", draft-ietf-sidr-bgpsec-protocol, work-in- 403 progress. 405 Appendix A. ASN.1 Module 407 BGPSECEKU { iso(1) identified-organization(3) dod(6) internet(1) 408 security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-bgpsec-eku(84) } 410 DEFINITIONS EXPLICIT TAGS ::= 412 BEGIN 414 -- EXPORTS ALL -- 416 -- IMPORTS NOTHING -- 418 -- OID Arc -- 420 id-kp OBJECT IDENTIFIER ::= { 421 iso(1) identified-organization(3) dod(6) internet(1) 422 security(5) mechanisms(5) kp(3) } 424 -- BGPsec Router Extended Key Usage -- 426 id-kp-bgpsec-router OBJECT IDENTIFIER ::= { id-kp 30 } 428 END 430 Appendix B. Change Log 431 Please delete this section prior to publication. 433 B.1 Changes from sidr-bgpsec-pki-profiles-10 to sidr-bgpsec-pki- 434 profiles-11 436 Removed text in s3.1.3. Consistently used BGPsec to refer to BGP 437 Security. Fixed typos. Refer to RFC6485bis instead of RFC6485. 438 Included OIDs. 440 B.2. Changes from sidr-bgpsec-pki-profiles-09 to sidr-bgpsec-pki- 441 profiles-10 443 Updated dates. 445 B.3. Changes from sidr-bgpsec-pki-profiles-08 to sidr-bgpsec-pki- 446 profiles-09 448 Editorial fixes for the sake of brevity. 450 B.4. Changes from sidr-bgpsec-pki-profiles-07 to sidr-bgpsec-pki- 451 profiles-08 453 Fixed section numbering. 455 B.5. Changes from sidr-bgpsec-pki-profiles-06 to sidr-bgpsec-pki- 456 profiles-07 458 Added text to multiple AS numbers in a single certificate. Updated 459 reference to RFC 6916. 461 B.6. Changes from sidr-bgpsec-pki-profiles-05 to sidr-bgpsec-pki- 462 profiles-06 464 Keep alive version. 466 B.7. Changes from sidr-bgpsec-pki-profiles-04 to sidr-bgpsec-pki- 467 profiles-05 469 Keep alive version. 471 B.8. Changes from sidr-bgpsec-pki-profiles-03 to sidr-bgpsec-pki- 472 profiles-04 474 In s2.1, removed the phrase "another BGPSEC Router Certificate (only 475 BGPSEC routers process these)" because the BGPSEC certificates are 476 only ever EE certificates and they're never used to verify another 477 certificate only the PDUs that are signed. 479 Added new s3.1.3.1 to explicitly state that EE certificates are only 480 ever EE certs. 482 B.9. Changes from sidr-bgpsec-pki-profiles-02 to sidr-bgpsec-pki- 483 profiles-03 485 Updated s3.3 to clarify restrictions on path validation procedures 486 are in this specification (1st para was reworded). 488 Updated s3.3 to point to s3.1.3.1 for BGPSEC EKU (thanks Tom). 490 B.10. Changes from sidr-bgpsec-pki-profiles-01 to sidr-bgpsec-pki- 491 profiles-02 493 Updated references. 495 B.11. Changes from sidr-bgpsec-pki-profiles-00 to sidr-bgpsec-pki- 496 profiles-01 498 Added an ASN.1 Module and corrected the id-kp OID in s3.1.3.1. 500 B.12. Changes from turner-bgpsec-pki-profiles-02 to sidr-bgpsec-pki- 501 profiles-00 503 Added this change log. 505 Amplified that a BGPSEC RP will need to support both the algorithms 506 in [ID.sidr-bgpsec-algs] for BGPSEC and the algorithms in [ID.sidr- 507 rpki-algs] for certificates and CRLs. 509 Changed the name of AS Resource extension to AS Resource Identifier 510 Delegation to match what's in RFC 3779. 512 B.13. Changes from turner-bgpsec-pki-profiles -01 to -02 514 Added text in Section 2 to indicate that there's no impact on the 515 procedures defined in [RFC6916]. 517 Added a security consideration to let implementers know the BGPSEC 518 certificates will not pass RPKI validation [RFC6487] and that keying 519 off the EKU will help tremendously. 521 B.14. Changes from turner-bgpsec-pki-profiles -00 to -01 523 Corrected Section 2 to indicate that CA certificates are also RPKI 524 certificates. 526 Removed sections and text that was already in [RFC6487]. This will 527 make it easier for reviewers to figure out what is different. 529 Modified Section 6 to use 2119-language. 531 Removed requirement from Section 6 to check that the AS # in the 532 certificate is the last number in the AS path information of each BGP 533 UPDATE message. Moved to [ID.sidr-bgpsec-protocol]. 535 Authors' Addresses 537 Mark Reynolds 538 Island Peak Software 539 328 Virginia Road 540 Concord, MA 01742 542 Email: mcr@islandpeaksoftware.com 544 Sean Turner 545 IECA, Inc. 546 3057 Nutley Street, Suite 106 547 Fairfax, VA 22031 548 USA 550 EMail: turners@ieca.com 552 Steve Kent 553 Raytheon BBN Technologies 554 10 Moulton St. 555 Cambridge, MA 02138 557 Email: kent@bbn.com