idnits 2.17.1 draft-sriram-bgpsec-design-choices-12.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 document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 852: '... UPDATE messages MUST conform to BGP's...' RFC 2119 keyword, line 854: '... then the guidelines in Section 9.2 of RFC 4271 [RFC4271] MUST be...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (July 3, 2017) is 2490 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC3779' is defined on line 1794, but no explicit reference was found in the text == Unused Reference: 'RFC5652' is defined on line 1808, but no explicit reference was found in the text == Unused Reference: 'RFC4055' is defined on line 1882, but no explicit reference was found in the text == Unused Reference: 'RFC5280' is defined on line 1894, but no explicit reference was found in the text == Unused Reference: 'RFC6480' is defined on line 1915, but no explicit reference was found in the text == Unused Reference: 'RFC6482' is defined on line 1919, but no explicit reference was found in the text == Unused Reference: 'RFC6483' is defined on line 1924, but no explicit reference was found in the text == Unused Reference: 'RFC6811' is defined on line 1935, but no explicit reference was found in the text ** Obsolete normative reference: RFC 4893 (Obsoleted by RFC 6793) == Outdated reference: A later version (-36) exists of draft-ietf-idr-bgp-extended-messages-21 Summary: 2 errors (**), 0 flaws (~~), 10 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group K. Sriram, Ed. 3 Internet-Draft USA NIST 4 Intended status: Informational July 3, 2017 5 Expires: January 4, 2018 7 BGPSEC Design Choices and Summary of Supporting Discussions 8 draft-sriram-bgpsec-design-choices-12 10 Abstract 12 This document has been written to capture the design rationale for 13 the individual draft-00 version of BGPSEC protocol specification (I- 14 D.lepinski-bgpsec-protocol-00). It lists the decisions that were 15 made in favor of or against each design choice, and presents brief 16 summaries of the arguments that aided the decision process. A 17 similar document can be published in the future as the BGPSEC design 18 discussions make further progress and additional design 19 considerations are discussed and finalized. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on January 4, 2018. 38 Copyright Notice 40 Copyright (c) 2017 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 56 2. Creating Signatures and the Structure of BGPSEC Update 57 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 4 58 2.1. Origin Validation Using ROA . . . . . . . . . . . . . . . 4 59 2.2. Attributes Signed by an Originating AS . . . . . . . . . 4 60 2.3. Attributes Signed by an Upstream AS . . . . . . . . . . . 6 61 2.4. What Attributes Are Not Signed . . . . . . . . . . . . . 6 62 2.5. Receiving Router Actions . . . . . . . . . . . . . . . . 7 63 2.6. Prepending of ASes in AS Path . . . . . . . . . . . . . . 8 64 2.7. What RPKI Data Need be Included in Updates . . . . . . . 8 65 3. Withdrawal Protection . . . . . . . . . . . . . . . . . . . . 9 66 3.1. Withdrawals Not Signed . . . . . . . . . . . . . . . . . 9 67 3.2. Signature Expire Time for Withdrawal Protection (a.k.a. 68 Mitigation of Replay Attacks) . . . . . . . . . . . . . . 9 69 3.3. Should Route Expire Time be Communicated in a Separate 70 Message . . . . . . . . . . . . . . . . . . . . . . . . . 11 71 3.4. Effect of Expire-Time Updates in BGPSEC on RFD . . . . . 11 72 4. Signature Algorithms and Router Keys . . . . . . . . . . . . 13 73 4.1. Signature Algorithms . . . . . . . . . . . . . . . . . . 13 74 4.2. Agility of Signature Algorithms . . . . . . . . . . . . . 13 75 4.3. Sequential Aggregate Signatures . . . . . . . . . . . . . 14 76 4.4. Protocol Extensibility . . . . . . . . . . . . . . . . . 15 77 4.5. Key Per Router (Rouge Router Problem) . . . . . . . . . . 16 78 4.6. Router ID . . . . . . . . . . . . . . . . . . . . . . . . 17 79 5. Optimizations and Resource Sizing . . . . . . . . . . . . . . 17 80 5.1. Update Packing and Repacking . . . . . . . . . . . . . . 17 81 5.2. Signature Per Prefix vs. Signature Per Update . . . . . . 18 82 5.3. Maximum BGPSEC UPDATE PDU Size . . . . . . . . . . . . . 19 83 5.4. Temporary Suspension of Attestations and Validations . . 19 84 6. Incremental Deployment and Negotiation of BGPSEC . . . . . . 20 85 6.1. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . 20 86 6.2. Inclusion of Address Family in Capability Advertisement . 20 87 6.3. Incremental Deployment: Capability Negotiation . . . . . 20 88 6.4. Partial Path Signing . . . . . . . . . . . . . . . . . . 21 89 6.5. Consideration of Stub ASes with Resource Constraints: 90 Encouraging Early Adoption . . . . . . . . . . . . . . . 21 91 6.6. Proxy Signing . . . . . . . . . . . . . . . . . . . . . . 23 92 6.7. Multiple Peering Sessions Between ASes . . . . . . . . . 24 93 7. Interaction of BGPSEC with Common BGP Features . . . . . . . 24 94 7.1. Peer Groups . . . . . . . . . . . . . . . . . . . . . . . 24 95 7.2. Communities . . . . . . . . . . . . . . . . . . . . . . . 25 96 7.3. Consideration of iBGP Speakers and Confederations . . . . 25 97 7.4. Consideration of Route Servers in IXPs . . . . . . . . . 26 98 7.5. Proxy Aggregation (a.k.a. AS_SETs) . . . . . . . . . . . 27 99 7.6. 4-Byte AS Numbers . . . . . . . . . . . . . . . . . . . . 27 100 8. BGPSEC Validation . . . . . . . . . . . . . . . . . . . . . . 28 101 8.1. Sequence of BGPSEC Validation Processing in a Receiver . 28 102 8.2. Signing and Forwarding Updates when Signatures Failed 103 Validation . . . . . . . . . . . . . . . . . . . . . . . 29 104 8.3. Enumeration of Error Conditions . . . . . . . . . . . . . 29 105 8.4. Procedure for Processing Unsigned Updates . . . . . . . . 31 106 8.5. Response to Syntactic Errors in Signatures and 107 Recommendation for Reaction . . . . . . . . . . . . . . . 31 108 8.6. Enumeration of Validation States . . . . . . . . . . . . 32 109 8.7. Mechanism for Transporting Validation State through iBGP 33 110 9. Operational Considerations . . . . . . . . . . . . . . . . . 35 111 9.1. Interworking with BGP Graceful Restart . . . . . . . . . 35 112 9.2. BCP Recommendations for Minimizing Churn: Certificate 113 Expiry/Revocation and Signature Expire Time . . . . . . . 36 114 9.3. Outsourcing Update Validation . . . . . . . . . . . . . . 36 115 9.4. New Hardware Capability . . . . . . . . . . . . . . . . . 37 116 9.5. Signed Peering Registrations . . . . . . . . . . . . . . 37 117 10. Co-authors . . . . . . . . . . . . . . . . . . . . . . . . . 37 118 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 38 119 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 120 13. Security Considerations . . . . . . . . . . . . . . . . . . . 38 121 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 39 122 14.1. Normative References . . . . . . . . . . . . . . . . . . 39 123 14.2. Informative References . . . . . . . . . . . . . . . . . 39 124 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 42 126 1. Introduction 128 The goal of BGPSEC effort is to enhance the security of BGP by 129 enabling full AS path validation based on cryptographic principles. 130 Work on prefix-origin validation based on a Resource certificate PKI 131 (RPKI) is already nearing completion in the IETF SIDR WG. The BGPSEC 132 effort is aimed at taking advantage of the same RPKI infrastructure 133 developed in the SIDR WG to add cryptographic signatures to BGP 134 updates, so that routers can perform full AS path validation 135 [RFC7132] [RFC7353] [I-D.ietf-sidr-bgpsec-overview] 136 [I-D.ietf-sidr-bgpsec-protocol]. The key high-level design goals of 137 BGPSEC protocol are as follow [RFC7353]: 139 o Rigorous path validation for all announced prefixes; not merely 140 showing that a path is not impossible. 142 o Incremental deployment capability; no flag-day requirement for 143 global deployment. 145 o Protection of AS paths only in inter-domain routing (eBGP); not 146 applicable to iBGP (or to IGPs). 148 o Aim for no increase in provider's data exposure (e.g., require no 149 disclosure of peering relations, etc). 151 This document is a companion to the earliest version of the BGPSEC 152 protocol specification submitted as individual draft-00 153 [I-D.lepinski-bgpsec-protocol], and is intended to provide design 154 justifications for this initial BGPSEC specification. This document 155 lists the decisions that were made in favor of or against various 156 design choices, and presents brief summaries of the discussions that 157 weighed in the pros and cons and aided the decision process. A 158 similar document can be published in the future as the BGPSEC design 159 discussions make further progress and additional design 160 considerations are discussed and finalized. 162 The design choices and discussions are presented under the following 163 eight broad categories (with many subtopics within each category): 164 (1) Creating Signatures and the Structure of BGPSEC Update Messages, 165 (2) Withdrawal Protection, (3) Signature Algorithms and Router Keys, 166 (4) Optimizations and Resource Sizing, (5) Incremental Deployment and 167 Negotiation of BGPSEC, (6) Interaction of BGPSEC with Common BGP 168 Features, (7) BGPSEC Validation, and (8) Operational Considerations. 170 2. Creating Signatures and the Structure of BGPSEC Update Messages 172 2.1. Origin Validation Using ROA 174 2.1.1. Decision 176 Prefix-Origin validation using Route Origin Authorization (ROA) is 177 necessary and complements AS path attestation based on signed 178 updates. Thus the BGPSEC design makes use of the origin AS 179 validation capability provided by the RPKI. 181 2.1.2. Discussion 183 Prefix-Origin validation using RPKI constructs as developed in the 184 IETF SIDR WG is a necessary component of BGPSEC, i.e., it provides 185 cryptographic validation that the first hop AS is authorized to 186 originate a route for the prefix in question. 188 2.2. Attributes Signed by an Originating AS 189 2.2.1. Decision 191 An originating AS will sign over the NLRI length, NLRI prefix, its 192 own ASN, the next ASN, the signature algorithm suite ID, and a 193 signature Expire Time (see Section 3.2) for the update. The update 194 signatures will be carried in a new optional, non-transitive BGP 195 attribute. 197 2.2.2. Discussion 199 The next hop ASN is included in the data covered by the signature. 200 Without that the AS path cannot be secured; for example, it can be 201 shortened (by a MITM) without being detected. 203 It was decided that only the originating AS needs to insert a 204 signature Expire Time in the update, as it is the originator of the 205 route. The origin AS also will re-originate, i.e., beacon, the 206 update prior to the Expire Time of said advertisement (see 207 Section 3.2). (For an explanation of why upstream ASes do not insert 208 their respective signature Expire Times, please see Section 3.2.2.) 210 It was decided that each signed update would include only one NLRI 211 prefix. If more than one NLRI prefix were included, and an upstream 212 AS elected to propagate the advertisement for a subset of the 213 prefixes, then the signature(s) on the update would break (see 214 Section 5.1 and Section 5.2). If a mechanism were employed to 215 preserve prefixes that were dropped, this would reveal info to later 216 ASes that is not revealed in normal BGP operation. Thus a tradeoff 217 was made to preserve the level of route info exposure that is 218 intrinsic to BGP over the performance hit implied by limiting each 219 update to carry only one prefix. 221 The signature data is carried in an optional, non-transitive BGP 222 attribute. The attribute is optional because this is the standard 223 mechanism available in BGP to propagate new types of data. It was 224 decided that the attribute should be non-transitive because of 225 concern that the impact of sending the (potentially large) signatures 226 to routers that don't understand them. Also, if a router that 227 doesn't understand BGPSEC somehow gets a message with the signatures 228 attribute then it would be undesirable for that router to forward the 229 signatures to all of its neighbors, especially those who do not 230 understand BGPSEC, and who may choke badly if they receive a very 231 large optional BGP attribute. 233 2.3. Attributes Signed by an Upstream AS 235 In the context of BGPSEC and throughout this document, an "upstream 236 AS" simply refers to an AS that is further along in an AS path 237 (origin AS being the nearest to a prefix). In principle, an AS that 238 is upstream from an originating AS would sign the combined 239 information including the NLRI length, NLRI prefix, AS path, next 240 ASN, signature algorithm suite ID, and Expire Time. There are 241 multiple choices for what is actually signed by an upstream AS: (1) 242 Sign over the combination of NLRI length, NLRI prefix, AS path, next 243 ASN, signature algorithm suite ID, and Expire Time; or (2) Sign over 244 just the combination of previous signature (i.e., signature of the 245 neighbor AS who forwarded the update) and next ASN; or (3) Sign over 246 everything that was received from preceding AS plus next ASN; thus, 247 ASi signs over NLRI length, NLRI prefix, signature algorithm suite 248 ID, Expire Time, {ASi, AS(i-1), AS(i-2), ..., AS2, AS1}, 249 AS(i+1)(i.e., next ASN), and {Sig(i-1), Sig(i-2), ..., Sig2, Sig1}. 251 2.3.1. Decision 253 It was decided that that Method 2 will be used. Please see 254 [I-D.lepinski-bgpsec-protocol] for additional protocol details and 255 syntax. 257 2.3.2. Discussion 259 The rationale for this choice (Method 2) was as follows. Signatures 260 are performed over hash blocks. When the number of bytes to be 261 signed exceeds one hash block, then the remaining bytes will overflow 262 into a second hash block, which results in performance penalty. So 263 it is advantageous to minimize the number of bytes being hashed. 264 Also, an analysis of the three options noted above did not indentify 265 any vulnerabilities associated with this approach. 267 2.4. What Attributes Are Not Signed 269 2.4.1. Decision 271 Any attributes other than those identified in Section 2.2 and 272 Section 2.3 are not signed. Examples of such attributes are 273 Community Attribute, NO-EXPORT Attribute, Local_Pref, etc. 275 2.4.2. Discussion 277 The above stated attributes that are not signed are viewed as local 278 (e.g., do not need to propagate beyond next hop) or lack clear 279 security needs. NO-EXPORT is sent over a secured next-hop and does 280 not need signing. BGPSEC design should work with any transport layer 281 protections. It is well understood that the transport layer must be 282 protected hop by hop (if only to prevent malicious session 283 termination). 285 2.5. Receiving Router Actions 287 2.5.1. Decision 289 The expected router actions on receipt of a signed update are 290 described by the following example. Consider an update that was 291 originated by AS1 with NLRI prefix p and has traversed the AS path 292 [AS(i-1) AS(i-2) .... AS2 AS1] before arriving at ASi. Let the 293 Expire Time (inserted by AS1) for the signature in this update be 294 denoted as Te. Let AlgID represent the ID of the signature algorithm 295 suite that is in use. The update is to be processed at ASi and 296 possibly forwarded to AS(i+1). Let the attestations (signatures) 297 inserted by each router in the AS path be denoted by Sig1, Sig2, ..., 298 Sig(i-2), and Sig(i-1) corresponding to AS1, AS2, ... , AS(i-2), and 299 AS(i-1), respectively. 301 The method (#2 in Section 2.3) selected for signing requires a 302 receiving router in ASi to perform the following actions: 304 o Validate the prefix-origin pair (p, AS1) by performing a ROA 305 match. 307 o Verify that Te is greater than the clock time at the router 308 performing these checks. 310 o Check Sig1 with inputs {NLRI length, p, AlgID, Te, AS1, AS2}. 312 o Check Sig2 with inputs {Sig1, AS3}. 314 o Check Sig3 with inputs {Sig2, AS4}. 316 o ... 318 o ... 320 o Check Sig(i-2) with inputs {Sig(i-3), AS(i-1)}. 322 o Check Sig(i-1) with inputs {Sig(i-2), ASi}. 324 o If the route that has been verified is selected as the best path 325 (for prefix p), then generate Sig(i) with inputs {Sig(i-1), 326 AS(i+1)}, and generate an update including Sig(i) to AS(i+1). 328 2.5.2. Discussion 330 See Section 8.1 for suggestions regarding efficient sequencing of 331 BGPSEC validation processing in a receiving router. Some or all of 332 the validation actions may be performed by an off-board server (see 333 Section 9.3). 335 2.6. Prepending of ASes in AS Path 337 2.6.1. Decision 339 Prepending will be allowed. Prepending is defined as including more 340 than one instance of the AS number of the router that is signing the 341 update. 343 2.6.2. Discussion 345 The draft-00 version of the protocol specification calls for a 346 signature to be associated with each prepended AS. The optimization 347 of having just one signature for multiple prepended ASes will be 348 pursued later (i.e., beyond draft-00 specification). If such 349 optimization is used, a replication count would be included (in the 350 signed update) to specify how many times an AS was prepended. 352 2.7. What RPKI Data Need be Included in Updates 354 2.7.1. Decision 356 Concerning inclusion of RPKI data in an update, it was decided that 357 only the Subject Key Identifier (SKI) of the router cert must be 358 included in a signed update. This info identifies the router 359 certificate, based on the SKI generation criteria defined in 360 [RFC6487]. 362 2.7.2. Discussion 364 It was discussed if each router public key certificate should be 365 included in a signed update. Inclusion of this information might be 366 helpful for routers that do not have access to RPKI servers or 367 temporarily lose connectivity to them. It is safe to assume that in 368 majority of network environments, intermittent connectivity would not 369 be a problem. So it is best to avoid this complexity because 370 majority of the use environments do not have connectivity 371 constraints. Because the SKI of a router certificate is a hash of 372 the public key of that certificate, it suffices to select the public 373 key from that certificate. This design assumes that each BGPSEC 374 router has access to a cache containing the relevant data from 375 (validated) router certificates. 377 3. Withdrawal Protection 379 3.1. Withdrawals Not Signed 381 3.1.1. Decision 383 Withdrawals are not signed. 385 3.1.2. Discussion 387 In the current BGP protocol, any AS can withdraw, at any time, any 388 prefix it previously announced. The rationale for not signing 389 withdrawals is that BGPSEC assumes use of transport security between 390 neighboring BGPSEC routers. Thus no external entity can inject an 391 update that withdraws a route, or replay a previously transmitted 392 update containing a withdrawal. Because the rationale for 393 withdrawing a route is not visible to a neighboring BGPSEC router, 394 there are residual vulnerabilities associated with withdrawals. For 395 example, a router that advertised a (valid) route may fail to 396 withdraw that route when it is no longer viable. A router also might 397 re-advertise a route that it previously withdrew, before the route is 398 again viable. This latter vulnerability is mitigated by the Expire 399 Time value in an AS path signature (see Section 3.2). 401 Repeated withdrawals and announcements for a prefix can run up the 402 BGP RFD penalty and may result in unreachability for that prefix at 403 upstream routers. But what can the attacker gain from doing so? 404 This phenomenon is intrinsic to the design and operation of RFD. 406 3.2. Signature Expire Time for Withdrawal Protection (a.k.a. 407 Mitigation of Replay Attacks) 409 3.2.1. Decision 411 Only the originating AS inserts a signature Expire Time in the 412 update; all other ASes along an AS path do not insert Expire Times 413 associated with their respective signatures. Further, the 414 originating AS will re-originate a route sufficiently in advance of 415 the Expire Time of its signature so that other ASes along an AS path 416 will typically receive the re-originated route well ahead of the 417 current Expire Time for that route. 419 The duration of the signature Expire Time is recommended to be on the 420 order of days (preferably) but it may be on the order of hours (about 421 4 to 8 hours) in some cases, where extra replay protection is 422 percieved to be critical. 424 Each AS should stagger the Expire Time values in the routes it 425 originates. Re-origination will be done, say, at time Tb after 426 origination or the last re-origination, where Tb will equal a certain 427 percentage of the Expire Time, Te (for example, Tb = 0.75 x Te). The 428 percentage will be configurable and additional guidance can be 429 provided via an operational considerations document later. Further, 430 the actual re-origination time ought to be jittered with a uniform 431 random distribution over a short interval {Tb1, Tb2} centered at Tb. 433 It is also recommended that a receiving BGPSEC router should detect 434 if the only attribute change in an announcement (relative to the 435 current best path) is the expire time (besides, of course, the 436 signatures). In that case, assuming that the update is found valid, 437 the route processor should not re-announce the route to BGP-4 only 438 (i.e., non-BGPSEC) peers. (It still has to sign and re-announce the 439 route to BGPSEC speakers.) This procedure will reduce BGP chattiness 440 for the non-BGPSEC border routers. 442 3.2.2. Discussion 444 Mitigation of (update) replay attacks can be thought of as protection 445 against malicious re-advertisement of withdrawn routes. If each AS 446 along a path were to insert its own signature Expire Time, then there 447 would be much additional BGP chattiness and increase in BGP 448 processing load due to the need to detect and react to multiple 449 (possibly redundant) signature Expire Times. Furthermore, there 450 would be no extra benefit from the point of view of mitigation of 451 replay attacks as compared to having a single Expire Time 452 corresponding to the signature of the originating AS. 454 The recommended Expire Time value is on the order of days but 4 to 8 455 hours may used in some cases on the basis of percieved need for extra 456 protection from replay attacks. Thus, different ASes may choose 457 different values based on the perceived need to protect against route 458 replays. (A shorter Expire Time reduces the window during which an 459 AS can replay the route, even if the route has been withdrawn by a 460 downstream AS. However, shorter Expire Time values cause routes to 461 be refreshed more often, and thus causes more BGP chatter.) Even a 4 462 hours duration seems adequate to keep the re-origination workload 463 manageable. For example, if 500K routes are re-originated every 4 464 hours, it amounts to an increase in BGP update load of at least 35 465 updates per second; this can be considered reasonable. However, 466 further analysis is needed to confirm these recommendations. 468 It was stated above that originating AS will re-originate a route 469 sufficiently in advance of its Expire Time. What is considered 470 sufficiently in advance? For this, modeling should be performed to 471 determine the 95th-percentile convergence time of update propagation 472 in BGPSEC enabled Internet. 474 Each BGPSEC router should stagger the Expire Time values in the 475 updates it originates, especially during table dumps to a neighbor or 476 during its own recovery from a BGP session failure. By doing this, 477 the re-origination (i.e., beaconing) workload at the router will be 478 dispersed. 480 3.3. Should Route Expire Time be Communicated in a Separate Message 482 3.3.1. Decision 484 The idea of sending a new signature expire time in a special message 485 (rather than re-transmitting the entire update with signatures) was 486 considered. However, it was decided not to do this. Re-origination 487 to communicate a new signature Expire Time will be done by 488 propagation of a normal update message; no special type of message 489 will be required. 491 3.3.2. Discussion 493 It was suggested that if re-beaconing of signature Expire Time is 494 carried in a separate special message, then update processing load 495 may be reduced. But it was recognized that such re-beaconing message 496 necessarily entails AS path and prefix information, and hence cannot 497 be separated from the update. 499 It was observed that at the edge of the Internet, there are frequent 500 updates that may result from simple situations like BGP session being 501 switched from one interface to another (e.g., from primary to backup) 502 between two peering ASes (e.g., customer and provider). With BGP-4, 503 these updates do not propagate beyond the two ASes involved. But 504 with BGPSEC, the customer AS will put in a new signature Expire Time 505 each time such an event happens, and hence the update will need to 506 propagate throughout the Internet (limited only by best path 507 selection process). It was accepted that this cost of added churn 508 will be unavoidable. 510 3.4. Effect of Expire-Time Updates in BGPSEC on RFD 512 3.4.1. Decision 514 With regard to the Route Flap Damping (RFD) protocol 515 [RFC2439][JunOS][CiscoIOS], no differential treatment is required for 516 Expire-Time triggered (re-beaconed) BGPSEC updates. 518 However, it was noted that it would be preferable if these updates 519 did not cause route churn (and perhaps not even require any RFD 520 related processing), since they are identical except for the change 521 in the Expire Time value. The way this can be accomplished is by not 522 assigning RFD penalty to Expire-Time triggered updates. If the 523 community agrees, this could be accommodated, but a change to the 524 BGP-RFD protocol specification will be required. 526 3.4.2. Discussion 528 Summary: 530 The decision is supported by the following observations: (1) Expire 531 Time-triggered updates are generally not preceded by withdrawals, and 532 hence the path hunting and associated RFD exacerbation 533 [Mao02][RIPE580] problems are not anticipated; (2) Such updates would 534 not normally change the best path (unless another concurrent event 535 impacts the best path); (3) Expire Time-triggered updates would have 536 negligible impact on RFD penalty accumulation because the re- 537 advertisement interval is much longer relative to the half-time of 538 decay of RFD penalty. Elaborating further on reason #4 above, it may 539 be noted that the re-advertisements (i.e., beacons) of a route for a 540 given address prefix from a given peer will be received at intervals 541 of a few or several hours (see Section 3.2). During that time 542 period, any incremental contribution to RFD penalty due to a Expire 543 Time-triggered update would decay sufficiently to have negligible (if 544 any) impact on damping of said address prefix. Additional details of 545 this analysis and justification can be found below. 547 Further Details of the Analysis and Justification: 549 The frequency with which RFD penalty increments may be triggered for 550 a given prefix from a given peer is the same as the re-beaconing 551 frequency for that prefix from its origin AS. The re-beaconing 552 frequency is on the order of once every few or several hours (see 553 Section 3.2). The incremental RFD penalty assigned to a prefix due 554 to a re-beaconed update varies depending on the implementation. For 555 example, it appears that JunOS implementation [JunOS] would assign a 556 penalty of 1000 or 500 depending on whether the re-beaconed update is 557 regarded as a re-advertisement or an attribute change, respectively. 558 Normally, a re-beaconed update would be treated as a case of 559 attribute change. The Cisco implementation [CiscoIOS] on the other 560 hand assigns an RFD penalty only in the case of an actual flap (i.e., 561 a route is available, then unavailable, or vice versa). So it 562 appears that Cisco implementation of RFD would not assign any penalty 563 for a re-beaconed update (i.e., a route was already advertised 564 previously; not withdrawn; and the re-beaconed update is merely 565 updating the expire time attribute). Even if one assumes that an RFD 566 penalty of 500 is assigned (corresponding to attribute change in 567 JunOS RFD implementation), it can be illustrated that the incremental 568 affect it would have on damping the prefix in consideration would be 569 negligible. The reason for this is as follows. The half-time of RFD 570 penalty decay is normally set to 15 minutes, whereas the re-beaconing 571 frequency is on the order of once every few or several hours. An 572 incremental penalty of 500 would decay to 31.25 in one hour; 0.12 in 573 two hours; 3x10^(-5) in three hours. It may also be noted that the 574 threshold for route suppression is 3000 in JunOS and 2000 in Cisco 575 IOS. Based on the foregoing analysis, it may be concluded that 576 routine re-beaconing by itself would not result in RFD suppression of 577 routes in the BGPSEC protocol. 579 4. Signature Algorithms and Router Keys 581 4.1. Signature Algorithms 583 4.1.1. Decision 585 Initially, 256-bit ECDSA with SHA-256 will be used. One other 586 algorithm, e.g., 256-bit DSA also will be used during prototyping and 587 testing. The use of a second algorithm is needed to verify the 588 ability of the BGPSEC implementations to change from a current 589 algorithm to the next algorithm. 591 4.1.2. Discussion 593 Initially, choice of 2048-bit RSA algorithm for BGPSEC update 594 signatures was considered because it is being used ubiquitously in 595 the RPKI system. However, use of ECDSA-256 algorithm was decided 596 because it yields a smaller signature size, so that the RIB sizes 597 needed for BGPSEC would be much smaller [RIB_size]. 599 Testing with two different signature algorithms (256-bit ECDSA and 600 256-bit RSA) for transition from one to the other will increase 601 confidence in the prototyped protocol. 603 For Elliptic Curve Cryptography (ECC) algorithms, according to 604 [RFC6090], optimizations and specialized algorithms (e.g., for speed- 605 ups) have active IPR, but the basic (un-optimized) algorithms do not 606 have IPR encumbrances. 608 4.2. Agility of Signature Algorithms 609 4.2.1. Decision 611 During the transition period from one algorithm, i.e., current 612 algorithm, to the next (new) algorithm, the updates will carry two 613 sets of signatures (i.e., two Signature-List Blocks), one 614 corresponding to each algorithm. Each Signature-List Block will be 615 preceded by its type-length field and an algorithm-suite identifier. 616 A BGPSEC speaker that has been upgraded to handle the new algorithm 617 should validate both Signature-List Blocks, and then add its 618 corresponding signature to each Signature-List Block for forwarding 619 the update to the next AS. A BGPSEC speaker that has not been 620 upgraded to handle the new algorithm will strip off the Signature- 621 List Block of the new algorithm, and forward the update after adding 622 its own sig to the Signature-List Block of the current algorithm. 624 It was decided that there will be at most two Signature-List Blocks 625 per update. 627 4.2.2. Discussion 629 A length field in the Signature-List Block allows for delineation of 630 the two signature blocks. Hence, a BGPSEC router that doesn't know 631 about a particular algorithm suite (and hence doesn't know how long 632 signatures were for that algorithm suite) could still skip over the 633 corresponding Signature-List Block when parsing the message. 635 The overlap period between the two algorithms is expected to last two 636 to four years. The RIB memory and cryptographic processing capacity 637 will have to be sized to cope with such overlap periods when updates 638 would contain two sets of sigs [RIB_size]. 640 The lifetime of a signature algorithm is anticipated to be much 641 longer than the duration of a transition period from current to new 642 algorithm. It is fully expected that all ASes will have converted to 643 the required new algorithm within a certain amount of time that is 644 much shorter than the interval in which a subsequent newer algorithm 645 may be investigated and standardized for BGPSEC. Hence, the need for 646 more than two Signature-List Blocks per update is not envisioned. 648 4.3. Sequential Aggregate Signatures 650 4.3.1. Decision 652 There is currently weak or no support for the Sequential Aggregate 653 Signature (SAS) approach. Please see in the discussion section below 654 for a brief description of what SAS is and what its pros and cons 655 are. 657 4.3.2. Discussion 659 In Sequential Aggregate Signature (SAS) method, there would be only 660 one (aggregated) signature per signature block, irrespective of the 661 number of AS hops. For example, ASn (nth AS) takes as input the 662 signatures of all previous ASes [AS1, ..., AS(n-1)] and produces a 663 single composite signature. This composite signature has the 664 property that a recipient who has the public keys for AS1, ..., ASn 665 can verify (using only the single composite signature) that all of 666 the ASes actually signed the message. SAS could potentially result 667 in savings in bandwidth, PDU size, and maybe in RIB size but the 668 signature generation and validation costs will be higher as compared 669 to one signature per AS hop. 671 SAS schemes exist in the literature, typically based on RSA or 672 equivalent. In order to do SAS with RSA, and based on the algorithm 673 choices already adopted for the RPKI, a 2048-bit signature size would 674 be required. Without SAS, a DSA with 320- bit signature (1024-bit 675 key) or ECDSA with 512-bit signature (256-bit key) would suffice, for 676 equivalent cryptographic strength. The larger signature size of RSA 677 used with SAS undermines the advantages of SAS, because the average 678 hop count, i.e., number of ASes, for a route is about 3.8. In the 679 end, it may turn out that SAS has more complexity and does not 680 provide sufficient savings in PDU size or RIB size to merit its use. 681 Further exploration of this is needed to better understand SAS 682 properties and applicability for BGPSEC. There is also a concern 683 that SAS is not a time-tested cryptographic technique and thus its 684 adoption is potentially risky. 686 4.4. Protocol Extensibility 688 There is a clearly a need to specify a transition path from a current 689 protocol specification to a new version. When changes to the 690 processing of the BGPSEC_Path_Signatures are required, that will 691 require for a new version of BGPSEC. Examples of this include 692 changes to the data that is protected by the BGPSEC signatures or 693 adoption of a signature algorithm in which the number of signatures 694 in the Signature-List Block may not correspond to one signature per 695 AS in the AS-PATH (e.g., aggregate signatures). 697 4.4.1. Decision 699 The protocol-version transition mechanism here is analogous to the 700 algorithm transition discussed in Section 4.2. During the transition 701 period from one protocol version (i.e., current version) to the next 702 (new) version, updates will carry two sets of signatures (i.e., two 703 Signature-List Blocks), one corresponding to each version. A 704 protocol-version identifier is included with each Signature-List 705 Block. Hence, each Signature-List Block will be preceded by its 706 type-length field and a protocol-version identifier. A BGPSEC 707 speaker that has been upgraded to handle the new version should 708 validate both Signature-List Blocks, and then add its corresponding 709 signature to each Signature-List Block for forwarding the update to 710 the next AS. A BGPSEC speaker that has not been upgraded to handle 711 the new protocol version will strip off the Signature-List Block of 712 the new version, and forward the update with an attachment of its own 713 signature to the Signature-List Block of the current version. 715 4.4.2. Discussion 717 In the case that change to BGPSEC is deemed desirable, it is expected 718 that a subsequent version of BGPSEC would be created and that this 719 version of BGPSEC would specify a new BGP Path Attribute, let's call 720 it BGPSEC_PATH_SIG_TWO, which is designed to accommodate the desired 721 changes to BGPSEC. At this point a transition would begin which is 722 analogous to the algorithm transition discussed in Section 4.2. 723 During the transition period all BGPSEC speakers will simultaneously 724 include both the BGPSEC_PATH_SIGNATURES (curent) attribute and the 725 new BGPSEC_PATH_SIG_TWO attribute. Once the transition is complete, 726 the use of BGPSEC_PATH_SIGNATURES could then be deprecated, at which 727 point BGPSEC speakers will include only the new BGPSEC_PATH_SIG_TWO 728 attribute. Such a process could facilitate a transition to a new 729 BGPSEC semantics in a backwards compatible fashion. 731 4.5. Key Per Router (Rouge Router Problem) 733 4.5.1. Decision 735 Within each AS, each individual BGPSEC router can have a unique pair 736 of private and public keys. 738 4.5.2. Discussion 740 If a router is compromised, its key pair can be revoked 741 independently, without disrupting the other routers in the AS. Each 742 per-router key-pair will be represented in an end-entity certificate 743 issued under the CA cert of the AS. The Subject Key Identifier (SKI) 744 in the signature points to the router certificate (and thus the 745 unique public key) of the router that affixed its signature, so that 746 a validating router can reliably identify the public key to use for 747 signature verification. 749 4.6. Router ID 751 4.6.1. Decision 753 The router certificate Subject name will be the string "router" 754 followed by a decimal representation of a 4-byte AS number followed 755 by the router ID. See the current RFCs for preferred standard 756 textual representations for 4-byte ASNs [RFC5396] and router IDs 757 [RFC6891]. 759 4.6.2. Discussion 761 Every X.509 certificate requires a Subject name. The stylized 762 Subject name adopted here is intended to facilitate debugging, by 763 including the ASN and router ID. 765 5. Optimizations and Resource Sizing 767 5.1. Update Packing and Repacking 769 In the current BGP protocol (BGP-4) operation [RFC4271], an 770 originating BGP router normally packs multiple prefix (NLRI) 771 announcements into one update if the prefixes all share the same BGP 772 attributes. When an upstream BGP router forwards eBGP updates to its 773 peers, it can also pack multiple prefixes (based on shared AS path 774 and attributes) into one update. The update propagated by the 775 upstream BGP router may include only a subset of the prefixes that 776 were packed in a received update. 778 5.1.1. Decision 780 The initial draft-00 BGPSEC specification 781 [I-D.lepinski-bgpsec-protocol] does not accommodate update packing. 782 Each update contains exactly one prefix. This avoids the complexity 783 that would be otherwise inevitable if the origin had packed and 784 signed multiple prefixes in an update and an upstream AS decided to 785 propagate an update containing only a subset of the prefixes in that 786 update. BGPSEC recommendation regarding packing and repacking will 787 be revisited when optimizations are considered in the future. 789 5.1.2. Discussion 791 Currently, with BGP-4, there are, on average, approximately 4 792 prefixes announced per update [RIB_size]. So the number of BGP 793 updates (carrying announcements) is about 4 times fewer, on average, 794 as compared to the number of prefixes announced. 796 The current decision is to include only one prefix per secured update 797 (see Section 2.2 and Section 2.3). When optimizations are considered 798 in the future, the possibility of packing multiple prefixes into an 799 update can be considered. (Please see Section 5.2 for a discussion 800 of signature per prefix vs. signature per update.) Repacking could 801 be performed if signatures were generated on a per prefix basis. 802 However, one problem regarding this approach, i.e., multiple prefixes 803 in a BGP update but with a separate signature for each prefix, is 804 that the resuting BGP update violates the basic definition of a BGP 805 update. That is becuase the different prefixes will have different 806 signature and expire-time attibutes, while a BGP update (by 807 definition) must have the same set of shared attributes for all 808 prefixes it carries. 810 5.2. Signature Per Prefix vs. Signature Per Update 812 5.2.1. Decision 814 The initial design calls for including exactly one prefix per update, 815 hence there is only one signature in each secured update (modulo 816 algorithm transition conditions). Optimizations will be examined 817 later. 819 5.2.2. Discussion 821 Some notes to assist in future optimization discussions: In the 822 general case of one signature per update, multiple prefixes may be 823 signed with one signature together with their shared AS path, next 824 ASN, and Expire Time. If signature per update is used, then there 825 are potentially savings in update PDU size as well as RIB memory 826 size. But if there are any changes made to the announced prefix set 827 along the AS path, then the AS where the change occurs would need to 828 insert an Explicit Path Attribute (EPA)[I-D.draft-clynn-s-bgp]. The 829 EPA conveys information regarding what the prefix set contained prior 830 to the change. There would be one EPA for each AS that made such a 831 modification, and there would be a way to associate each EPA with its 832 corresponding AS. This enables an upstream AS to be able to know and 833 to verify what was announced and signed by prior ASs in the AS path 834 (in spite of changes made to the announced prefix set along the way). 835 The EPA adds complexity to processing (signature generation and 836 validation), further increases the size of updates and, thus of the 837 RIB, and exposes data to downstream ASes that would not otherwise be 838 exposed. Not all the pros and cons of packing and repacking in the 839 context of signature per prefix vs. signature per update (with 840 packing) have been evaluated. But the current recommendation is for 841 having only one prefix per update (no packing); so there is no need 842 for the EPA attribute. 844 5.3. Maximum BGPSEC UPDATE PDU Size 846 The current BGP message PDU size is limited to 4096 bytes [RFC4271]. 847 The question was raised if BGPSEC would require a larger UPDATE PDU 848 size. 850 5.3.1. Decision 852 All BGPsec UPDATE messages MUST conform to BGP's maximum message 853 size. If the resulting message exceeds the maximum message size, 854 then the guidelines in Section 9.2 of RFC 4271 [RFC4271] MUST be 855 followed. 857 5.3.2. Discussion 859 Estimates for the average and maximum sizes anticipated for BGPSEC 860 UPDATE messages are provided in [MsgSize]. Given the ECDSA P-256 861 signature size of 64 octets, it is not anticipated that BGPSEC UPDATE 862 messages will exceed the current BGP message size limit of 4096 863 octets [MsgSize]. However, it may be noted that there is currently 864 work in progress in the IETF on extended messages for BGP 865 [I-D.ietf-idr-bgp-extended-messages]. 867 5.4. Temporary Suspension of Attestations and Validations 869 5.4.1. Decision 871 A BGPSEC-capable router can temporarily suspend signing and/or 872 validation of updates during periods of route processor overload. 873 The router should later send signed updates corresponding to the 874 updates for which validation and signing were skipped. The router 875 also may choose to skip only validation but still sign and forward 876 updates during periods of congestion. 878 5.4.2. Discussion 880 In some situations, a BGPSEC router may be unable to keep up with the 881 workload of performing signing and/or validation. This can happen, 882 for example, during BGP session recovery when a router has to send 883 the entire routing table to a recovering router in a neighboring AS 884 (see [CPUworkload]). So it is not mandatory that a BGPSEC router 885 perform validation or signing of updates at all times. When the work 886 load eases, the BGPSEC router should play catch up, sending signed 887 updates corresponding to the updates for which validation and signing 888 were skipped. During periods of overload, the router may simply send 889 unsigned updates (with signatures dropped), or may sign and forward 890 the updates with signatures (even though the router itself has not 891 yet verified the signatures it received). 893 6. Incremental Deployment and Negotiation of BGPSEC 895 6.1. Downgrade Attacks 897 6.1.1. Decision 899 No attempt will be made in BGPSEC design to prevent downgrade 900 attacks, i.e., a BGPSEC-capable router sending unsigned updates when 901 it is capable of sending signed updates. 903 6.1.2. Discussion 905 BGPSEC allows routers to temporarily suspend signing updates (see 906 Section 5.4). Therefore, it would be contradictory if we were to try 907 to incorporate in the BGPSEC protocol a way to detect and reject 908 downgrade attacks. One proposed way for detecting downgrade attacks 909 was considered, based on signed peering registrations (see 910 Section 9.5). 912 6.2. Inclusion of Address Family in Capability Advertisement 914 6.2.1. Decision 916 It was decided that during capability negotiation, the address family 917 for which the BGPSEC speaker is advertising support for BGPSEC will 918 be shared using the Address Family Identifier (AFI). Initially, two 919 address families would be included, namely, IPv4 and IPv6. BGPSEC 920 for use with other address families may be specified in the future. 921 Simultaneous use of the two (i.e., IPv4 and IPv6) address families 922 for the same BGPSEC session will require that the BGPSEC speaker must 923 include two instances of this capability (one for each address 924 family) in the BGPSEC OPEN message. 926 6.2.2. Discussion 928 If new address families are supported in the future, they will be 929 added in future versions of the specification. A comment was made 930 that too many version numbers are bad for interoperability; Re- 931 negotiation on the fly to add a new address family (i.e., without 932 changeover to new version number) is desirable. 934 6.3. Incremental Deployment: Capability Negotiation 936 6.3.1. Decision 938 BGPSEC will be incrementally deployable. BGPSEC routers will use 939 capability negotiation to agree to run BGPSEC between them. If a 940 BGPSEC router's peer does not agree to run BGPSEC, then the BGPSEC 941 router will run only BGP-4 with that peer, i.e., it will not send 942 BGPSEC (i.e., signed) updates to the peer. 944 6.3.2. Discussion 946 During partial deployment, there will be BGPSEC islands as a result 947 of this approach to incremental deployment. Updates that originate 948 within a BGPSEC island will generally propagate with signed AS paths 949 to the edges of that island. As BGPsec adoption grows, the BGPsec 950 islands will expand outward (subsuming non-BGPsec portions of the 951 Internet) and/or pairs of islands may join together to form larger 952 BGPsec islands. 954 6.4. Partial Path Signing 956 Partial path signing means that a BGPSEC AS can be permitted to sign 957 an update that was received unsigned from a downstream neighbor. 958 That is, the AS would add its ASN to the AS path and sign the 959 (previously unsigned) update to other neighboring (upstream) BGPSEC 960 ASes. It was decided that this should not be permitted. 962 6.4.1. Decision 964 It was decided that partial path signing in BGPSEC will not be 965 allowed. A BGPSEC update must be fully signed, i.e., each AS in the 966 AS-PATH must sign the update. So in a signed update there must be a 967 signature corresponding each AS in the AS path. 969 6.4.2. Discussion 971 Partial path signing (as described above) implies that the AS path is 972 not rigorously protected. Rigorous AS path protection is a key 973 requirement of BGPSEC [RFC7353]. Partial path signing clearly re- 974 introduces the following attack vulnerability: If a BGPSEC speaker 975 can sign an unsigned update, and if signed (i.e., partially or fully 976 signed) updates would be preferred to unsigned updates, then a 977 faulty, misconfigured or subverted BGPSEC speaker can manufacture any 978 unsigned update it wants (with insertion of a valid origin AS) and 979 add a signature to it to increase the chance that its update will be 980 preferred. 982 6.5. Consideration of Stub ASes with Resource Constraints: Encouraging 983 Early Adoption 985 6.5.1. Decision 987 The protocol permits each pair of BGPSEC-capable ASes to negotiate 988 BGPSEC use asymmetrically. Thus a stub AS (or downstream customer 989 AS) can agree to perform BGPSEC only in the transmit direction and 990 speak BGP-4 in the receive direction. In this arrangement, the ISP's 991 (upstream) AS will not send signed updates to this stub or customer 992 AS. Thus the stub AS can avoid the need to upgrade its route 993 processor and RIB memory to support BGPSEC update validation. 995 6.5.2. Discussion 997 Various other options were also considered for accommodating a 998 resource-constrained stub AS as discussed below: 1000 1. An arrangement that can be effected outside of BGPSEC 1001 specification is as follows. Through a private arrangement 1002 (invisible to other ASes), an ISP's AS (upstream AS) can truncate 1003 the stub AS (or downstream AS) from the path and sign the update 1004 as if the prefix is originating from ISP's AS (even though the 1005 update originated unsigned from the customer AS). This way the 1006 path will appear fully signed to the rest of the network. This 1007 alternative will require the owner of the prefix at the stub AS 1008 to issue a ROA for the upstream AS, so that the upstream AS is 1009 authorized to originate routes for said prefix. 1011 2. Another type of arrangement that can also be effected outside of 1012 the BGPSEC specification is as follows. Stub AS does not sign 1013 updates but obtains an RPKI (CA) certificate, issues a router 1014 certificate under that CA certificate. It passes on the private 1015 key for the router certificate to its upstream provider. That 1016 ISP (i.e., the second hop AS) would insert a signature on behalf 1017 the stub AS using said private key obtained from the stub AS. 1019 3. An extended ROA is created that includes the stub AS as the 1020 originator of the prefix and the upstream provider as the second 1021 hop AS, and partial signatures would be allowed (i.e., stub AS 1022 need not sign the updates). It is recognized that this approach 1023 is also authoritative and not trust based. It was observed that 1024 the extended ROA is not much different from what is done with ROA 1025 (in its current form) when a PI address is originated from a 1026 provider's AS. This approach was rejected due to possible 1027 complications with creation and use of a new RPKI object, namely, 1028 the extended ROA. Also, the validating BGPSEC router has to 1029 perform a level of indirection with approach, i.e., it has to 1030 detect if an update is not fully signed and then look for the 1031 extended ROA to validate. 1033 4. Another method based on a different form of indirection would be 1034 as follows: Customer (stub) AS registers something like a Proxy 1035 Signer Authorization, which authorizes the second hop (i.e., 1036 provider) AS to sign on behalf of the customer AS using the 1037 provider's own key [Dynamics]. This method allows for fully 1038 signed updates (unlike the Extended ROA based approach). But 1039 this approach also requires the creation of a new RPKI object, 1040 namely, the Proxy Signer Authorization. In this approach the 1041 second hop AS has to perform a level of indirection. This 1042 approach was also rejected. 1044 The various inputs regarding ISP preferences were taken into 1045 consideration, and eventually the decision in favor of asymmetric 1046 BGPSEC was reached (Section 6.5.1). A stub AS that does asymmetric 1047 BGPSEC has the advantage that it needs to minimally upgrade to BGPSEC 1048 so it can sign updates to its upstream while it receives only 1049 unsigned updates. Thus it can avoid the cost of increased processing 1050 and memory needed to perform update validations and to store signed 1051 updates in the RIBs, respectively. 1053 6.6. Proxy Signing 1055 6.6.1. Decision 1057 An ISP's AS (or upstream AS) can proxy sign BGP announcements for a 1058 customer (downstream) AS provided that the customer AS obtains an 1059 RPKI (CA) certificate, issues a router certificate under that CA 1060 certificate, and it passes on the private key for that certificate to 1061 its upstream provider. That ISP (i.e., the second hop AS) would 1062 insert a signature on behalf the customer AS using the private key 1063 provided by the customer AS. This is a private arrangement between 1064 said parties and is invisible to other ASes. Thus, this arrangement 1065 is not part of the BGPSEC protocol specification 1067 BGPSEC will not make any special provisions for an ISP to use its own 1068 private key to proxy sign updates for a customer's AS. This type of 1069 proxy signing is considered a bad idea. 1071 6.6.2. Discussion 1073 Consider a scenario when a customer's AS (say, AS8) is multi-homed to 1074 two ISPs, i.e., AS8 peers with AS1 and AS2 of ISP-1 and ISP-2, 1075 respectively. In this case AS8 would have an RPKI (CA) certificate; 1076 it issues two separate router certificates (corresponding to AS1 and 1077 AS2) under that CA certificate; and it passes on the respective 1078 private keys for those two certificates to its upstream providers AS1 1079 and AS2. Thus AS8 has proxy signing service from both its upstream 1080 ASes. In the future, if the customer AS8 disconnects from ISP-2, 1081 then it would revoke the router certificate corresponding to AS2. 1083 6.7. Multiple Peering Sessions Between ASes 1085 6.7.1. Decision 1087 No problems are anticipated when BGPSEC capable ASes have multiple 1088 peering sessions between them (between distinct routers). 1090 6.7.2. Discussion 1092 As with BGP-4 ASes, BGPSEC capable ASes can also have multiple 1093 peering sessions between them. Because routers in an AS (can) have 1094 distinct private keys, the same update when propagated over these 1095 multiple peering sessions will result in multiple updates that will 1096 differ in their signatures. The peer (upstream) AS will apply its 1097 normal procedures for selecting a best path from those multiple 1098 updates (and updates from other peers). 1100 Multiple peering sessions, between different pairs of routers 1101 (between two neighboring ASes), may be simultaneously used for load 1102 sharing. This decision regarding load balancing (vs. using one 1103 peering as primary for carrying data and another as backup) is 1104 entirely local and is up to the two neighboring ASes. 1106 7. Interaction of BGPSEC with Common BGP Features 1108 7.1. Peer Groups 1110 In the current BGP-4, the idea of peer groups is used in BGP routers 1111 to save on processing when generating and sending updates. Multiple 1112 peers for whom the same policies apply can be organized into peer 1113 groups. A peer group can typically have tens (maybe as high as 300) 1114 of ASes in it. 1116 7.1.1. Decision 1118 It was decided that BGPSEC updates are generated to target unique AS 1119 peers, so there is no support for peer groups in BGPSEC. 1121 7.1.2. Discussion 1123 BGPSEC routers can use peer groups. Some of the update processing 1124 prior to forwarding to members of a peer group can be done only once 1125 per update as is done in BGP-4. Prior to forwarding the update, a 1126 BGPSEC speaker adds the peer's ASN to the data that needs to be 1127 signed and signs the update for each peer AS in the group 1128 individually. 1130 If updates were to be signed per peer group, that would require 1131 divulging information about the forward AS-set that constitutes a 1132 peer group (since the ASN of each peer would have to be included in 1133 the update). Some ISPs do not like to share this kind of information 1134 globally. 1136 7.2. Communities 1138 The need to provide protection in BGPSEC for the community attribute 1139 was discussed. 1141 7.2.1. Decision 1143 Community attribute(s) will not be included in what is signed in 1144 BGPSEC. 1146 7.2.2. Discussion 1148 The community attribute - in its current definition - may be 1149 inherently defective, from a security standpoint. A substantial 1150 amount of work is needed on semantics of the community attribute, and 1151 additional work on its security aspects also needs to be done. The 1152 community attribute is not necessarily transitive; it is often used 1153 only between neighbors. In those contexts, transport security 1154 mechanisms suffice to provide integrity and authentication. (There 1155 is no need to sign data when it is passed only between peers.) It 1156 was suggested that one could include only the transitive community 1157 attributes in what is signed and propagated (across the AS path). It 1158 was noted that there is a flag available (i.e., unused) in the 1159 community attribute, and it might be used by BGPSEC (in some 1160 fashion). However, little information is available at this point 1161 about the use and function of this flag. It was speculated that 1162 potentially this flag could be used to indicate to BGPSEC if the 1163 community attribute needs protection. For now, community attributes 1164 will not be secured by BGPSEC path signatures. 1166 7.3. Consideration of iBGP Speakers and Confederations 1168 7.3.1. Decision 1170 An iBGP speaker that is also an eBGP speaker, and that executes 1171 BGPSEC, will necessarily carry BGPSEC data and perform eBGPSEC 1172 functions. Confederations are eBGP clouds for administrative 1173 purposes and contain multiple sub-ASs. A sub-AS is not required to 1174 sign updates sent to the main AS; only the main AS will sign and 1175 propagate BGPSEC updates to eBGPSEC peer ASes. 1177 If updates are not signed (i.e., BGPSEC is not used) within a 1178 confederation boundary, then everything will work fine at a BGPSEC 1179 speaker in the confederation that is executing BGPSEC with external 1180 peers. If updates are signed (i.e., BGPSEC is used) within a 1181 confederation boundary, then the BGPSEC speaker will be required to 1182 remove any signatures applied within the confederation, and replace 1183 them with a single signature representing the (main) AS, which will 1184 be appropriate for external BGPSEC peers. The BGPSEC specification 1185 will not specify how to perform this process. 1187 7.3.2. Discussion 1189 This topic may need to be revisited to flesh out the details 1190 carefully. 1192 7.4. Consideration of Route Servers in IXPs 1194 7.4.1. Decision 1196 BGPSEC (draft-00 specification) makes no special provisions to 1197 accommodate route servers in Internet Exchange Points (IXPs) . 1199 7.4.2. Discussion 1201 There are basically three methods that an IXP may use to propagate 1202 routes: (A) Direct bilateral peering through the IXP, (B) BGP peering 1203 between clients via a peering with a route server at the IXP (without 1204 IXP inserting its ASN in the path), and (C) BGP peering with an IXP 1205 route server, where the IXP inserts its ASN in the path. (Note: 1206 IXP's route server does not change the NEXT_HOP attribute even if it 1207 inserts its ASN in the path.) It is very rare for an IXP to use 1208 Method C because it is less attractive for the clients if their AS 1209 path length increases by one due to the IXP. A measure of the extent 1210 of use of Method A vs. Method B is given in terms of the 1211 corresponding IP traffic load percentages. As an example, at a major 1212 European IXP, these percentages are about 80% and 20% for Methods A 1213 and B, respectively. However, as the IXP grows (in terms of number 1214 of clients), it tends to migrate more towards Method B, because of 1215 the difficulties of managing up to n x (n-1)/2 direct inter- 1216 connections between n peers in Method A. 1218 To the extent an IXP is providing direct bilateral peering between 1219 clients (Method A), that model works naturally with BGPSEC. Also, if 1220 the route server in the IXP plays the role of a regular BGPSEC 1221 speaker (minus the routing part for payload) and inserts its own ASN 1222 in the path (Method C), then that model would also work well in the 1223 BGPSEC Internet and this case is trivially supported in BGPSEC. 1224 However, the draft-00 version of BGPSEC specification does not 1225 accommodate the "transparent" route server model of Method B. 1227 7.5. Proxy Aggregation (a.k.a. AS_SETs) 1229 7.5.1. Decision 1231 Proxy aggregation (i.e., use of AS_SETs in the AS path) will not be 1232 supported in BGPSEC. That is to say that there is no provision in 1233 BGPSEC to sign an update when an AS_SET is part of an AS path. If a 1234 BGPSEC capable router receives an update that contains an AS_SET and 1235 also finds that the update is signed, then the router will strip the 1236 signatures and interpret the update as unsigned. If the update (with 1237 AS_SET) is selected as best path, it will be forwarded unsigned. 1239 7.5.2. Discussion 1241 Proxy aggregation does occur in the Internet today, but is it very 1242 rare. Only a very small fraction (about 0.1%) of observed updates 1243 contain AS_SETs in the AS path [ASset]. Since BGP-4 currently allows 1244 for proxy aggregation with inclusion of AS_SETs in the AS path, it is 1245 necessary that BGPSEC specify what action a receiving router must 1246 take in case such an update is received with attestation. A recently 1247 published BCP [RFC6472] recommends against the use of AS_SETs in 1248 updates, so it is anticipated that the use of AS_SETs will diminish 1249 over time. 1251 7.6. 4-Byte AS Numbers 1253 Not all (currently deployed) BGP speakers are capable of dealing with 1254 4-byte ASNs [RFC4893]. The standard mechanism used to accommodate 1255 such speakers requires a peer AS to translate each 4-byte ASN in a 1256 path into a reserved 2-byte ASN (AS 23456) before forwarding the 1257 update. This mechanism is incompatible with use of BGPSEC, since the 1258 ASN translation is equivalent to a route modification attack and will 1259 cause signatures corresponding to the translated 4-byte ASNs to fail 1260 validation. 1262 7.6.1. Decision 1264 BGP speakers that are BGPSEC-capable are required to process 4-byte 1265 ASNs. 1267 7.6.2. Discussion 1269 It is reasonable to assume that upgrades for 4-byte ASN support will 1270 be in place prior to deployment of BGPSEC. 1272 8. BGPSEC Validation 1274 8.1. Sequence of BGPSEC Validation Processing in a Receiver 1276 It is natural to ask in what sequence a receiver must perform BGPSEC 1277 update validation so that if a failure were to occur (i.e., update 1278 was determined to be invalid) the processor would have spent the 1279 least amount of processing or other resources. 1281 8.1.1. Decision 1283 There was agreement that the following sequence of receiver 1284 operations is quite meaningful, and are included in the initial 1285 draft-00 BGPSEC specification [I-D.lepinski-bgpsec-protocol]. 1286 However, the ordering of validation processing steps is not a 1287 normative part of the BGPSEC specification. 1289 1. Verify that the signed update is syntactically correct. For 1290 example, check if the number of sigs match with the number of 1291 ASes in the AS path (after duly accounting for AS prepending). 1293 2. Verify that the origin AS is authorized to advertise the prefix 1294 in question. This verification is based on data from ROAs, and 1295 does not require any crypto operations. 1297 3. Verify that the advertisement has not yet expired. 1299 4. Verify that the target ASN in the signature data matches the ASN 1300 of the router that is processing the advertisement. Note that 1301 the target ASN check is also a non-crypto operation and is fast. 1302 It is suggested that signature data be checked from the most 1303 recent AS to the origin. 1305 5. Locate the public key for the router from which the advertisement 1306 was received, using the SKI from the signature data. 1308 6. Hash the data covered by the signature algorithm. Invoke the 1309 signature validation algorithm on the following three inputs: the 1310 locally computed hash, the received signature, and the public 1311 key. There will be one output: valid or invalid. 1313 7. Repeat steps 5 and 6 for each preceding signature in the 1314 Signature-List Block, until the signature data for the origin AS 1315 is encountered and processed, or until either of these steps 1316 fails. 1318 8.1.2. Discussion 1320 The suggested sequence of receiver operations described above were 1321 discussed and are viewed as appropriate, if the goal is to minimize 1322 computational costs associated with cryptographic operations. One 1323 additional interesting suggestion was that when there are two 1324 Signature-List Blocks in an update, the validating router can first 1325 verify whichever of the two algorithms is cheaper to save on 1326 processing. If that Signature-List Block verifies, then the router 1327 can skip validating the other Signature- List Block. Of course, at 1328 the end of an algorithm transition period, many routers would support 1329 only the new algorithm because their old credentials would have 1330 expired. 1332 8.2. Signing and Forwarding Updates when Signatures Failed Validation 1334 8.2.1. Decision 1336 A BGPSEC router should sign and forward a signed update to upstream 1337 peers if it selected the update as the best path, regardless of 1338 whether the update passed or failed validation (at this router). 1339 (Note: The BGPSEC protocol specification or a companion BCP may later 1340 specify some conditions of failed update validation (TBD) under which 1341 a BGPSEC router must not select the AS path in the update.) 1343 8.2.2. Discussion 1345 The availability of RPKI data at different routers (in the same or 1346 different ASes) may differ, depending on the sources used to acquire 1347 RPKI data. Hence an update may fail validation in one AS and the 1348 same update may pass validation in another AS. Thus an update may 1349 fail validation at one router in an AS and the same update may pass 1350 validation at another router in the same AS. A BCP may be published 1351 later in which some conditions of update failure are identified which 1352 may be unambiguous cases for rejecting the update, in which case the 1353 router must not select the AS path in the update. These cases are 1354 TBD. 1356 8.3. Enumeration of Error Conditions 1358 Enumeration of error conditions and the recommendations for reactions 1359 to them are still under discussion. 1361 8.3.1. Decision 1363 TBD. Also, please see Section 8.5 for the decision and discussion 1364 specifically related to syntactic errors in signatures. 1366 8.3.2. Discussion 1368 The list here is a first cut at some possible error conditions and 1369 recommended receiver reactions in response to detection of those 1370 errors. Refinements will follow after further discussions. 1372 E1 Abnormalities that a peer (i.e., preceding AS) should definitely 1373 not have propagated to a receiving eBGPSEC router. Examples: (A) 1374 The number of signatures does not match the number of ASes in the 1375 AS path (after accounting for AS prepending); (B) There is an 1376 AS_SET in the received update and the update has signatures; (C) 1377 Other syntactic errors with sigs. 1379 Reaction: See Section 8.5. 1381 E2 Situations where a receiving eBGPSEC router can't find the cert 1382 for an AS in the AS_PATH. 1384 Reaction: Mark the update as "Invalid". It is acceptable to 1385 consider the update in best path selection. If it is chosen, then 1386 the router should sign and propagate the update. 1388 E3 Situations where a receiving eBGPSEC router can't find a ROA for 1389 the {prefix, origin} pair. 1391 Reaction: Same as in (E2) above. 1393 E4 The receiving eBGPSEC router verifies signatures and finds that 1394 the update is Invalid even though its peer might not have known 1395 (e.g., due to RPKI skew). 1397 Reaction: Same as in (E2) above. 1399 Note: Best route choice may involve choosing an unsigned update 1400 over one with "Invalid" signature(s). Hence, the signatures must 1401 not be stripped even if the update is "Invalid". No evil bit is 1402 set in the update (when it is Invalid) because an upstream peer 1403 may not get that same answer when it tries to validate. 1405 8.4. Procedure for Processing Unsigned Updates 1407 An update may come in unsigned from an eBGP peer or internally (e.g., 1408 as an iBGP update). In the latter case, the route is possibly being 1409 originated from within the AS in consideration, or from within an AS 1410 confederation. 1412 8.4.1. Decision 1414 If an unsigned route is received from an eBGP peer, and if it is 1415 selected, then the route will be forwarded unsigned to other eBGP 1416 peers, even BGPSEC-capable peers. If the route originated in this AS 1417 (IGP or iBGP) and is unsigned, then it should be signed and announced 1418 to external BGPSEC-capable peers. If the route originated in IGP (or 1419 iBGP) and is signed, then it was likely signed by ASes within a 1420 confederation. In this case, signatures from within the 1421 confederation would be processed and they would be deleted, and an 1422 origin AS signature will be added prior to announcement to eBGP 1423 (BGPSEC capable) peers (also see Section 7.3). 1425 8.4.2. Discussion 1427 There is also a possibility that an update received in IGP (or iBGP) 1428 may have private ASNs in the AS path. These private ASNs would 1429 normally appear in the right most portion of the AS path. It was 1430 noted that in this case, the private ASNs to the right would be 1431 removed (as done in BGP-4 currently?), and then the update will be 1432 signed by the originating AS and announced to eBGP (BGPSEC capable) 1433 peers. 1435 8.5. Response to Syntactic Errors in Signatures and Recommendation for 1436 Reaction 1438 Different types of error conditions were discussed in Section 8.3. 1439 Here the focus is only on syntactic error conditions in signatures. 1441 8.5.1. Decision 1443 If there are syntactic error conditions such as (a) AS_SET and 1444 Signature-List Block both appear in an update, or (b) the number of 1445 signatures does not match the number of ASes (after accounting for 1446 any AS prepending), or (c) a parsing issue occurs with the 1447 BGPSEC_Path_Signatures attribute, then the update (with the 1448 signatures stripped) will still be considered in the best path 1449 selection algorithm. If the update is selected as the best path, 1450 then the update will be propagated unsigned. The error condition 1451 will be logged locally. 1453 A BGPSEC router will follow whatever the current IETF (IDR WG) 1454 recommendations are for notifying a peer that it is sending malformed 1455 messages. 1457 In the case when there are two Signature-List Blocks in an update, 1458 and one or more syntactic errors are found to occur within one of the 1459 Signature-List Blocks but the other Signature-List Block is free of 1460 any syntactic errors, then the update will still be considered in the 1461 best path selection algorithm after the syntactically bad Signature- 1462 List Block has been removed. If the update is selected as the best 1463 path, then the update will be propagated with only one (i.e., the 1464 error-free) Signature-List Block. The error condition will be logged 1465 locally. 1467 8.5.2. Discussion 1469 As stated above, a BGPSEC router will follow whatever the current 1470 IETF (IDR WG) recommendations are for notifying a peer that it is 1471 sending malformed messages. Question: If the error is persistent, 1472 and there is a full BGP table dump occurring, then would there be 1473 500K such errors resulting in 500K notify messages sent to the erring 1474 peer? The answer was that rate limiting would be applied to the 1475 notify messages which should prevent any overload due to these 1476 messages. 1478 8.6. Enumeration of Validation States 1480 Various validation conditions (i.e., situations) are possible which 1481 can be mapped to validation states for possible input to BGPSEC 1482 decision process. These conditions can be related to whether or not 1483 an update is signed, Expire Time checked, AS origin validation 1484 checked against a ROA, signatures verification passed, etc. 1486 8.6.1. Decision 1488 It was decided that BGPSEC validation outcomes will be mapped to one 1489 of only two validation states: (1) Valid - passed all validation 1490 checks (i.e., Expire Time check, prefix-origin and Signature-List 1491 Block validation), and (2) Invalid - all other possibilities. 1493 It was decided subsequently that the terms "Valid" and "Invalid" will 1494 be generally not used in the context of update validation in BGPSEC. 1495 Instead the terms "Verified" and "Unverified" will be used. The term 1496 "Verified" would connote the same as "Valid" described above. The 1497 term "Unverified" would include all other situations such as (1) 1498 unverified due to lack of or insufficient RPKI data, (2) signature 1499 Expire-Time check failed, (3) prefix-origin validation failed, (4) 1500 signature checks were performed and one or more of them failed, (5) 1501 insufficient resources to process the signature blocks at this time, 1502 etc. 1504 The text in this document will be modified at a future date to 1505 consistently reflect this decision regarding the terminology change. 1506 For now we would continue to use the terms "Valid" and "Invalid" in 1507 the document. 1509 8.6.2. Discussion 1511 It may be noted that the result of update validation is just an 1512 additional input for the BGP decision process. The router 1513 configuration ultimately has control over what action (regarding BGP 1514 path selection) is taken. 1516 Initially, four validation states were considered: (1) Update is not 1517 signed; (2) Update is signed but router does not have corresponding 1518 RPKI data to perform validation check; (3) Invalid (validation check 1519 performed and failed); (4) Valid (validation check performed and 1520 passed). Later, it was decided that BGPSEC validation outcomes will 1521 be mapped to one of only two validation states as stated above. It 1522 was observed that an update can be invalid for many different 1523 reasons. To begin to differentiate these numerous reasons and to try 1524 to enumerate different flavors of the Invalid state is not likely to 1525 be constructive in route selection decision, and may even introduce 1526 to new vulnerability in the system. However, some questions remain 1527 such as the following. 1529 Question: Is there a need to define a separate validation state for 1530 the case when update is not signed but {prefix, origin} pair matched 1531 with ROA information? This question was discussed, and a tentative 1532 conclusion was that this is in principle similar to validation based 1533 on partial signatures and that was ruled out earlier. So there is no 1534 need to add another validation state for this case; treat it as 1535 "Unverified" (i.e., "Invalid"). Questions still remain, e.g., would 1536 the relying party want to give said update a higher preference over 1537 another unsigned update that failed ROA validation or over a signed 1538 update that failed both signature and ROA validation? 1540 8.7. Mechanism for Transporting Validation State through iBGP 1542 8.7.1. Decision 1544 BGPSEC validation need be performed only at eBGP edges. The 1545 validation status of a BGP signed/unsigned update may be conveyed via 1546 iBGP from an ingress edge router to an egress edge router. Local 1547 policy in the AS will determine the means by which the validation 1548 status is conveyed internally, using various pre-existing mechanisms, 1549 e.g., setting a BGP community, or modifying a metric value such as 1550 Local_Pref or MED. A signed update that cannot be validated (except 1551 those with syntax errors) should be forwarded with signatures from 1552 the ingress to the egress router, where it is signed when propagated 1553 towards other eBGPSEC speakers in neighboring ASs. Based entirely on 1554 local policy settings, an egress router may trust the validation 1555 status conveyed by an ingress router or it may perform its own 1556 validation. The latter approach may be used at an operator's 1557 discretion, under circumstances when RPKI skew is known to happen at 1558 different routers within an AS. 1560 8.7.2. Discussion 1562 The attribute used to represent the validation state can be carried 1563 between ASes if desired. ISPs may like to carry it over their eBGP 1564 links between their own ASes (e.g., AS701, AS702). A peer (or 1565 customer) may receive it over an eBGP link from a provider, and may 1566 want to use it to shortcut their own validation check. However, the 1567 peer (or customer) should be aware that this validation-state 1568 attribute is just a preview of a neighbor's validation and must 1569 perform their own validation check in order to be sure of the actual 1570 state of update's validation. Question: Should validation state 1571 propagation be protected by attestation in case it has utility for 1572 diagnostics purposes? It was decided not to protect the validation 1573 state information using signatures. 1575 The following are meant to be only as suggestions for the AS 1576 operator; none of what follows is part of the BGPSEC specification as 1577 such. 1579 The following Validation states may be needed for propagation via 1580 iBGP between edge routers in an AS: 1582 o Validation states communicated in iBGP for an unsigned update 1583 (Origin validation result): (1) Valid, (2) Invalid, (3) Unknown, 1584 (4) Validation Deferred. 1586 * An update could be unsigned for two reasons but they need not 1587 be distinguished: (a) Because it had no signatures (came in 1588 unsigned from an eBGP peer), or (b) Signatures were present but 1589 stripped due to syntax errors. 1591 o Validation states communicated in iBGP for a Signed update: (1) 1592 Valid, (2) Invalid, (3) Validation Deferred. 1594 The reason for conveying the additional "Validation Deferred" state 1595 may be stated as follows. An ingress edge Router A receiving an 1596 update from an eBGPSEC peer may not attempt to validate signatures 1597 (e.g., in a processor overload situation), and in that case Router A 1598 should convey "Validation Deferred" state for that signed update (if 1599 selected for best path) in iBGP to other edge routers. Then an 1600 egress edge Router B upon receiving the update from ingress Router A 1601 would be able to perform its own validation (origin validation for 1602 unsigned or signature validation for signed update). As stated 1603 before, the egress Router B always may choose to perform its own 1604 validation when it receives an update from iBGP (independent of the 1605 validation status conveyed in iBGP) to account for the possibility of 1606 RPKI data skew at different routers. These various choices are local 1607 and entirely up to operator discretion. 1609 9. Operational Considerations 1611 9.1. Interworking with BGP Graceful Restart 1613 BGP Graceful Restart (BGP-GR) [RFC4724] is a mechanism currently used 1614 to facilitate non-stop packet forwarding when the control plane is 1615 recovering from a fault (i.e., BGP session is restarted), but the 1616 data plane is functioning. A question was asked regarding if there 1617 are any special concerns about how BGP-GR works while BGPSEC is 1618 operational? Also, what happens if the BGP router operation 1619 transitions from BGP-4 to BGP-GR to BGPSEC, in that order? 1621 9.1.1. Decision 1623 No decision was made relative to this issue. 1625 9.1.2. Discussion 1627 BGP-GR can be implemented with BGPSEC just as it is currently 1628 implemented with BGP-4. The Restart State bit, Forwarding State bit, 1629 End-of-RIB marker, Staleness marker (in RIB-in), and 1630 Selection_Deferral_Timer are key parameters associated with BGP-GR 1631 [RFC4724]. These parameters would need to be incorporated into the 1632 BGPSEC session negotiation and/or operation just as the routers do 1633 now with the current BGP-4. 1635 Regarding what happens if the BGP router transitions from BGP-4 to 1636 BGP-GR to BGPSEC, the answer would simply be as follows. If there is 1637 software upgrade from BGP-4 to BGPSEC during BGP-GR (assuming upgrade 1638 is being done on a live BGP speaker), then the BGP-GR session would 1639 (should) be terminated before a BGPSEC session is initiated. Once 1640 the eBGPSEC peering session is established, then the receiving 1641 eBGPSEC speaker will see signed updates from the sending (newly 1642 upgraded) eBGPSEC speaker. There is no apparent harm (it may, in 1643 fact, be desirable) if the receiving speaker continues to use 1644 previously-learned BGP-4 routes from the sending speaker until they 1645 are replaced by new BGPSEC routes. However, if the Forwarding State 1646 bit is set to zero by the sending speaker (i.e., the newly upgraded 1647 speaker) during BGPSEC session negotiation, then the receiving 1648 speaker would mark all previously-learned BGP-4 routes from that 1649 sending speaker as "Stale" in its RIB-in. Then, as fresh BGPSEC 1650 updates (possibly mixed with some unsigned BGP-4 updates) come in, 1651 the "Stale" routes will be replaced or refreshed. 1653 9.2. BCP Recommendations for Minimizing Churn: Certificate Expiry/ 1654 Revocation and Signature Expire Time 1656 9.2.1. Decision 1658 This is still work in progress. 1660 9.2.2. Discussion 1662 BCP recommendations for minimizing churn in BGPSEC have been 1663 discussed. There are potentially various strategies on how routers 1664 should react in the events of certificate expiry/revocation and 1665 signature Expire Time exhaustion [Dynamics]. The details will be 1666 documented in the near future after additional work is completed. 1668 9.3. Outsourcing Update Validation 1670 9.3.1. Decision 1672 Update signature validation and signing can be outsourced to an off- 1673 board server or processor. 1675 9.3.2. Discussion 1677 Possibly an off-router box (one or more per AS) can be used that 1678 performs path validation. For example, these capabilities might be 1679 incorporated into a route reflector. At ingress, one needs the RIB- 1680 in entries validated; not the RIB-out entries. So the off-router box 1681 is probably unlike the traditional route reflector; it sits at net 1682 edge and validates all incoming BGPSEC updates. Thus it appears that 1683 each router passes each BGPSEC update it receives to the off-router 1684 box and receives a validation result before it stores the route in 1685 the RIB-in. Question: What about failure modes here? They would be 1686 dependent on (1) How much of the control plane is outsourced; (2) 1687 Reliability of the off-router box (or, equivalently communication to 1688 it); and (3) How centralized vs. distributed is this arrangement? 1689 When any kind of outsourcing is done, the user needs to be watchful 1690 and ensure that the outsourcing does not cross trust/security 1691 boundaries. 1693 9.4. New Hardware Capability 1695 9.4.1. Decision 1697 It is assumed that BGPSEC routers (PE routers and route reflectors) 1698 will have significantly upgraded hardware - much more memory for RIBs 1699 and hardware crypto assistance. However, stub ASes would not need to 1700 make such upgrades because they can negotiate asymmetric BGPSEC 1701 capability with their upstream ASes, i.e., they sign updates to the 1702 upstream AS but receive only BGP-4 (unsigned) updates (see 1703 Section 6.5). 1705 9.4.2. Discussion 1707 It is accepted that it might take several years to go beyond test 1708 deployment, because of the need for additional memory and processing 1709 capability. However, because BGPSEC deployment will be incremental, 1710 and because signed updates are not sent outside of a set of 1711 contiguous BGPSEC-enabled ASes, it is not clear how much additional 1712 (RIB) memory will be required during initial deployment. See (see 1713 [RIB_size]) for preliminary results on modeling and estimation of 1714 BGPSEC RIB size and its projected growth. Hardware cryptographic 1715 support reduces the computation burden on the route processor, and 1716 offers good security for router private keys. However, given the 1717 incremental deployment model, it also is not clear how substantial a 1718 cryptographic processing load will be incurred, initially. 1720 9.5. Signed Peering Registrations 1722 9.5.1. Decision 1724 The idea of signed BGP peering registrations (for the purpose of path 1725 validation) was rejected. 1727 9.5.2. Discussion 1729 The idea of using a secure map of AS relationships to "validate" 1730 updates was discussed and rejected. The reason for not pursuing such 1731 solutions was that they can't provide strong guarantees about the 1732 validity of updates. Using these techniques, one can say only that 1733 an update is 'plausible', but cannot say it is 'definitely' valid 1734 (based on signed peering relations alone). 1736 10. Co-authors 1738 Rob Austein sra@hactrn.net 1739 Internet Systems Consortium 1740 Steven Bellovin smb@cs.columbia.edu 1741 Columbia University 1743 Randy Bush randy@psg.com 1744 Internet Initiative Japan, Inc. 1746 Russ Housley housley@vigilsec.com 1747 Vigil Security 1749 Stephen Kent kent@bbn.com 1750 BBN Technologies 1752 Warren Kumari warren@kumari.net 1753 Google 1755 Matt Lepinski mlepinski@ncf.edu 1756 New College of Florida 1758 Doug Montgomery dougm@nist.gov 1759 USA NIST 1761 Kotikalapudi Sriram ksriram@nist.gov 1762 USA NIST 1764 Samuel Weiler weiler@watson.org 1765 Cobham 1767 11. Acknowledgements 1769 The authors would like to thank John Scudder, Ed Kern, Pradosh 1770 Mohapatra, Keyur Patel, David Ward, Rudiger Volk, Heather Schiller, 1771 Jason Schiller, Chris Morrow, Sandy Murphy, Russ Mundy, Mark 1772 Reynolds, Sean Turner, Sharon Goldberg, Chris Hall, Shane Amante, 1773 Luke Berndt, and Doug Maughan for their valuable input and review. 1775 12. IANA Considerations 1777 This memo includes no request to IANA. 1779 13. Security Considerations 1781 This memo requires no security considerations. See 1782 [I-D.ietf-sidr-bgpsec-protocol] for security considerations for the 1783 BGPSEC protocol. 1785 14. References 1787 14.1. Normative References 1789 [I-D.lepinski-bgpsec-protocol] 1790 Lepinski, M., "BGPSEC Protocol Specification", draft- 1791 lepinski-bgpsec-protocol-00 (work in progress), March 1792 2011. 1794 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 1795 Addresses and AS Identifiers", RFC 3779, 1796 DOI 10.17487/RFC3779, June 2004, 1797 . 1799 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 1800 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 1801 DOI 10.17487/RFC4271, January 2006, 1802 . 1804 [RFC4893] Vohra, Q. and E. Chen, "BGP Support for Four-octet AS 1805 Number Space", RFC 4893, DOI 10.17487/RFC4893, May 2007, 1806 . 1808 [RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, 1809 RFC 5652, DOI 10.17487/RFC5652, September 2009, 1810 . 1812 [RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms 1813 for DNS (EDNS(0))", STD 75, RFC 6891, 1814 DOI 10.17487/RFC6891, April 2013, 1815 . 1817 14.2. Informative References 1819 [ASset] Sriram, K. and D. Montgomery, "Measurement Data on AS_SET 1820 and AGGREGATOR: Implications for {Prefix, Origin} 1821 Validation Algorithms", IETF SIDR WG presentation, IETF 1822 78, July 2010, . 1825 [CiscoIOS] 1826 "Cisco IOS RFD implementation", 1827 . 1830 [CPUworkload] 1831 Sriram, K. and R. Bush, "Estimating CPU Cost of BGPSEC on 1832 a Router", Presented at RIPE-63; also at IETF-83 SIDR WG 1833 Meeting, March 2012, 1834 . 1837 [Dynamics] 1838 Sriram, K. and et al., "Potential Impact of BGPSEC 1839 Mechanisms on Global BGP Dynamics", December 2009, . 1842 [I-D.draft-clynn-s-bgp] 1843 Lynn, C., Mukkelson, J., and K. Seo, "Secure BGP (S-BGP)", 1844 June 2003, . 1847 [I-D.ietf-idr-bgp-extended-messages] 1848 Bush, R., Patel, K., and D. Ward, "Extended Message 1849 support for BGP", draft-ietf-idr-bgp-extended-messages-21 1850 (work in progress), March 2017. 1852 [I-D.ietf-sidr-bgpsec-overview] 1853 Lepinski, M. and S. Turner, "An Overview of BGPsec", 1854 draft-ietf-sidr-bgpsec-overview-08 (work in progress), 1855 June 2016. 1857 [I-D.ietf-sidr-bgpsec-protocol] 1858 Lepinski, M. and K. Sriram, "BGPsec Protocol 1859 Specification", draft-ietf-sidr-bgpsec-protocol-23 (work 1860 in progress), April 2017. 1862 [JunOS] "Juniper JunOS RFD implementation", 1863 . 1867 [Mao02] Mao, Z. and et al., "Route-flap Damping Exacerbates 1868 Internet Routing Convergence", August 2002, 1869 . 1871 [MsgSize] Sriram, K., "Decoupling BGPsec Documents and Extended 1872 Messages draft", Presented in the IETF SIDROPS WG 1873 Meeting, IETF-98, March 2017, 1874 . 1878 [RFC2439] Villamizar, C., Chandra, R., and R. Govindan, "BGP Route 1879 Flap Damping", RFC 2439, DOI 10.17487/RFC2439, November 1880 1998, . 1882 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 1883 Algorithms and Identifiers for RSA Cryptography for use in 1884 the Internet X.509 Public Key Infrastructure Certificate 1885 and Certificate Revocation List (CRL) Profile", RFC 4055, 1886 DOI 10.17487/RFC4055, June 2005, 1887 . 1889 [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. 1890 Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, 1891 DOI 10.17487/RFC4724, January 2007, 1892 . 1894 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 1895 Housley, R., and W. Polk, "Internet X.509 Public Key 1896 Infrastructure Certificate and Certificate Revocation List 1897 (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, 1898 . 1900 [RFC5396] Huston, G. and G. Michaelson, "Textual Representation of 1901 Autonomous System (AS) Numbers", RFC 5396, 1902 DOI 10.17487/RFC5396, December 2008, 1903 . 1905 [RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental Elliptic 1906 Curve Cryptography Algorithms", RFC 6090, 1907 DOI 10.17487/RFC6090, February 2011, 1908 . 1910 [RFC6472] Kumari, W. and K. Sriram, "Recommendation for Not Using 1911 AS_SET and AS_CONFED_SET in BGP", BCP 172, RFC 6472, 1912 DOI 10.17487/RFC6472, December 2011, 1913 . 1915 [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support 1916 Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, 1917 February 2012, . 1919 [RFC6482] Lepinski, M., Kent, S., and D. Kong, "A Profile for Route 1920 Origin Authorizations (ROAs)", RFC 6482, 1921 DOI 10.17487/RFC6482, February 2012, 1922 . 1924 [RFC6483] Huston, G. and G. Michaelson, "Validation of Route 1925 Origination Using the Resource Certificate Public Key 1926 Infrastructure (PKI) and Route Origin Authorizations 1927 (ROAs)", RFC 6483, DOI 10.17487/RFC6483, February 2012, 1928 . 1930 [RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for 1931 X.509 PKIX Resource Certificates", RFC 6487, 1932 DOI 10.17487/RFC6487, February 2012, 1933 . 1935 [RFC6811] Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R. 1936 Austein, "BGP Prefix Origin Validation", RFC 6811, 1937 DOI 10.17487/RFC6811, January 2013, 1938 . 1940 [RFC7132] Kent, S. and A. Chi, "Threat Model for BGP Path Security", 1941 RFC 7132, DOI 10.17487/RFC7132, February 2014, 1942 . 1944 [RFC7353] Bellovin, S., Bush, R., and D. Ward, "Security 1945 Requirements for BGP Path Validation", RFC 7353, 1946 DOI 10.17487/RFC7353, August 2014, 1947 . 1949 [RIB_size] 1950 Sriram, K. and et al., "RIB Size Estimation for BGPSEC", 1951 June 2011, . 1954 [RIPE580] Bush, R. and et al., "RIPE-580: RIPE Routing Working Group 1955 Recommendations on Route-flap Damping", January 2013, 1956 . 1958 Author's Address 1960 Kotikalapudi Sriram (editor) 1961 USA NIST 1962 100 Bureau Drive 1963 Gaithersburg, MD 20899 1964 USA 1966 Email: ksriram@nist.gov