idnits 2.17.1 draft-ietf-sidr-roa-validation-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? (You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Feb 2009 rather than one of the newer Notices. See https://trustee.ietf.org/license-info/.) 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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 244 has weird spacing: '...atching non-...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 6, 2009) is 5370 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Secure Inter-Domain Routing (SIDR) G. Huston 3 Internet-Draft G. Michaelson 4 Intended status: Informational APNIC 5 Expires: February 7, 2010 August 6, 2009 7 Validation of Route Origination in BGP using the Resource Certificate 8 PKI and ROAs 9 draft-ietf-sidr-roa-validation-03.txt 11 Status of this Memo 13 This Internet-Draft is submitted to IETF in full conformance with the 14 provisions of BCP 78 and BCP 79. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt. 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 This Internet-Draft will expire on February 7, 2010. 34 Copyright Notice 36 Copyright (c) 2009 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents in effect on the date of 41 publication of this document (http://trustee.ietf.org/license-info). 42 Please review these documents carefully, as they describe your rights 43 and restrictions with respect to this document. 45 Abstract 47 This document defines an application of the Resource Public Key 48 Infrastructure to validate the origination of routes advertised in 49 the Border Gateway Protocol. The proposed application is intended to 50 fit within the requirement for adding security to inter-domain 51 routing, including the ability to support incremental and piecemeal 52 deployment, and does not require any changes to the specification of 53 BGP. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2. Validation Outcomes of a BGP Route Object . . . . . . . . . . 3 59 3. Applying Validation Outcomes to BGP Route Selection . . . . . 4 60 4. Further Considerations . . . . . . . . . . . . . . . . . . . . 6 61 4.1. Partial Deployment Considerations . . . . . . . . . . . . 6 62 4.2. Disavowal of Routing Origination . . . . . . . . . . . . . 7 63 4.3. BGP Considerations . . . . . . . . . . . . . . . . . . . . 8 64 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 65 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 66 7. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 9 67 7.1. Changes -02 to -03 . . . . . . . . . . . . . . . . . . . . 9 68 7.2. Changes -01 to -02 . . . . . . . . . . . . . . . . . . . . 10 69 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 70 8.1. Normative References . . . . . . . . . . . . . . . . . . . 10 71 8.2. Informative References . . . . . . . . . . . . . . . . . . 11 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 74 1. Introduction 76 This document defines an application of the Resource Public Key 77 Infrastructure (RPKI) [I-D.ietf-sidr-arch] to validate the 78 origination of routes advertised in the Border Gateway Protocol (BGP) 79 [RFC4271]. 81 The RPKI is based on a hierarchy of Resource Certificates that are 82 aligned to the Internet number resource allocation structure. 83 Resource Certificates are X.509 certificates that conform to the PKIX 84 profile [RFC5280], and to the extensions for IP addresses and AS 85 identifiers [RFC3779]. A Resource Certificate describes an action by 86 an issuer that binds a list of IP address blocks and Autonomous 87 System (AS) numbers to the Subject of a certificate, identified by 88 the unique association of the Subject's private key with the public 89 key contained in the Resource Certificate. The RPKI is structured 90 such that each current Resource Certificate matches a current 91 resource allocation or assignment. This is further described in 92 [I-D.ietf-sidr-arch]. 94 Route Origin Authorizations (ROAs) are digitally signed objects that 95 bind an address to an AS number, signed by the address holder. A ROA 96 provides a means of verifying that an IP address block holder has 97 authorized an AS to originate route objects in the inter-domain 98 routing environment for that address block. ROAs are described in 99 [I-D.ietf-sidr-roa-format]. ROAs are intended to fit within the 100 requirements for adding security to inter-domain routing. 102 This document describes the semantic interpretation of a valid ROA, 103 with particular reference to application in BGP relating to the 104 origination of route objects. 106 This proposed application of validation of ROAs does not require any 107 changes to the specification of BGP protocol elements. The outcomes 108 of ROA validation may be used as part of BGP's local route selection 109 procedure [RFC4271]. 111 2. Validation Outcomes of a BGP Route Object 113 A BGP "route object" is an address prefix and an associated set of 114 attributes. In terms of validation of the route object the address 115 prefix value and the "origin AS" are used in the ROA validation 116 operation. The route object's origin AS is the final element of the 117 route object's AS_PATH attribute. If the final AS_PATH element is an 118 AS Set, indicating that the route object is an aggregate, then the 119 origin AS is taken as the AS component of the AGGREGATOR attribute 120 [RFC4271]. 122 A BGP route object does not refer to a specific ROA that should be 123 used by a Relying Party (RP) to validate the origination information 124 contained in the route object. The RP needs to match a route object 125 to one or more candidate valid ROAs in order to determine a 126 validation outcome, which, in turn, can be used to determine the 127 appropriate local actions to perform on the route object. Valid ROAs 128 are defined as ROAs that are determined to be syntactically correct 129 and are signed using a signature that can be verified using the RPKI, 130 as described in [I-D.ietf-sidr-roa-format]. The outcome of this ROA 131 validation function is that either the RP has determined that the ROA 132 is valid in the context of the RPKI, or the ROA is invalid, in which 133 case the ROA is not to be used by the RP. 135 It is assumed here that ROAs are managed and distributed 136 independently of the operation of BGP itself, and that a local BGP 137 speaker has access to a local cache of the complete set of valid ROAs 138 when performing a route object validation operation. 140 Route object validation is defined by the following procedure: 142 1. Select all valid ROAs that include a ROAIPAddress value that 143 either matches, or is a covering aggregate of, the address 144 prefix in the route object. 146 2. If the set of candidate ROAs is empty then the validation 147 procedure stops with an outcome of "unknown". 149 3. If any ROA has an asID value that matches the origin AS in the 150 route object, and either the route object's address prefix 151 precisely matches a ROAIPAddress in the ROA, or the route 152 object's address prefix is a more specific prefix of a 153 ROAIPAddress and the route object's prefix length value is 154 less than or equal to the ROAIPAddress' maxLength value, then 155 the validation procedure stops with an outcome of "valid". 157 4. Otherwise, the validation procedure stops with an outcome of 158 "invalid". 160 3. Applying Validation Outcomes to BGP Route Selection 162 Within the framework of the abstract model of BGP operation, a 163 received prefix announcement from a BGP speaking peer is compared to 164 all announcements for this prefix received from other BGP peers and a 165 route selection procedure is used to select the "best" route object 166 from this candidate set. This route object is then used locally by 167 installing it in the loc-RIB [RFC4271], and is announced to peers as 168 the local "best" route. 170 The route object validation outcome, described in Section 2, of 171 "unknown", "valid" or "invalid" may be used as part of the 172 determination of the local degree of preference as defined in section 173 9.1.1 of the BGP specification [RFC4271]. The local degree of 174 preference is as follows: 175 "valid" is to be preferred over 176 "unknown", which itself is to be preferred over 177 "invalid". 179 This preference ranking is performed prior to the steps described in 180 section 9.1.1 of [RFC4271]. 182 It is a matter of local BGP selection policy as to the actions to be 183 undertaken by a BGP instance in processing route objects with 184 "unknown" validation outcomes. Due to considerations of partial use 185 of ROAs in heterogeneous environments, such as in the public 186 Internet, it is advised that local policy settings should not result 187 in "unknown" validation outcomes being considered as sufficient 188 grounds to reject a route object outright from further consideration 189 as a local "best" route. 191 It is a matter of local BGP selection policy as to whether "invalid" 192 route objects are considered to be ineligible for further 193 consideration in the route selection process. The consideration here 194 is one of potential circularity of dependence. If the authoritative 195 publication point of the repository of ROAs, or that of any 196 certificate used in relation to an address prefix, is located at an 197 address that lies within the address prefix described in a ROA, then 198 the repository can only be accessed once a route for the prefix has 199 been accepted by the RP's local routing domain. It is also noted 200 that the propagation time of RPKI objects may be different to the 201 propagation time of route objects in BGP, and that route objects may 202 be received before the RP's local repository cache picks up the 203 associated ROAs and recognises them as valid within the RPKI. 205 A local policy setting may be considered such that "invalid" 206 validation outcomes would be sufficient grounds to reject the route 207 object. However, due to these considerations of circular dependence 208 and differing propagation times of ROAs and route objects, an 209 alternate local policy setting may be considered that would involve 210 the use of a local timer to accept the route object as feasible for 211 an interim period of time, until there is an acceptable level of 212 assurance that all reasonable efforts to obtain a valid ROA for the 213 route object have been undertaken. 215 4. Further Considerations 217 4.1. Partial Deployment Considerations 219 This approach to route object origination validation uses a model of 220 "positive security" attestations, where information that cannot be 221 validated within the RPKI framework is intended to interpreted by a 222 RP as invalid information. 224 However, the considerations of accommodating environments of partial 225 adoption, where only a subset of valid route objects have associated 226 ROAs within the structure of the RPKI, imply some modification to 227 this model of positive security. Here it is assumed that once an 228 address prefix is described in a ROA, then this ROA encompasses all 229 address prefixes that are more specific than that described in the 230 ROA. Thus, any more specific address prefix and originating AS 231 combination of a valid ROA, that does not have a matching valid ROA 232 is considered to be "invalid". 234 Routes objects that describe address prefixes that are not fully 235 described by any single ROA, i.e., those address prefixes that may be 236 an aggregate of a ROA, or have no intersection with any ROA, and are 237 not matched by any ROA and are not a more specific of any ROA cannot 238 be reliably classified as "invalid" in a partial deployment scenario, 239 and are therefore described as "unknown". 241 The match condition of a route object against a single ROA is 242 summarized in the following table: 244 Prefix matching non-matching 245 AS AS 246 +---------+-------------+ 247 Covering | unknown | unknown | 248 Aggregate | | | 249 +---------+-------------+ 250 match ROA | valid | invalid | 251 prefix | | | 252 +---------+-------------+ 253 More | invalid | invalid | 254 Specific | | | 255 than ROA | | | 256 +---------+-------------+ 258 In an environment of a collection of ROAs, a route object is 259 considered to be "valid" if any ROA provides a "valid" outcome, and 260 "invalid" if one or more ROAs provide an "invalid" outcome and no 261 ROAs provide a "valid" outcome. The "unknown" outcome occurs when no 262 ROA produces either a "valid" or an "invalid" outcome. 264 4.2. Disavowal of Routing Origination 266 A ROA is a positive attestation that a prefix holder has authorized 267 an AS to originate a route for this prefix into the inter-domain 268 routing system. It is possible for a prefix holder to attest that no 269 AS has been granted any such authority by using a ROA where the ROA'S 270 subject AS is one that will not be used in a routing context. 271 Specifically, AS 0 is reserved by the IANA such that it "may be use 272 [sic] to identify non-routed networks" [IANA.AS-Registry]. 274 A ROA with a subject of AS 0 is an attestation by the holder of a 275 prefix that the prefix described in the ROA, and any more specific 276 prefix, should not be used in a routing context. 278 The route object validation procedure, described in Section 2, will 279 provide a "valid" outcome if any ROA matches the address prefix and 280 origin AS, even if other valid ROAs would provide an "invalid" 281 validation outcome if used in isolation. Consequently, an AS0 ROA 282 has a lower preference than any other ROA that has a routeable AS as 283 its subject. This allows a prefix holder to use an AS0 ROA to 284 declare a default condition that any route object that is equal to, 285 or more specific than the prefix to be considered to be invalid, 286 while also allowing other concurrently issued ROAs to describe valid 287 origination authorizations for more specific prefixes. 289 For example, the holder of prefix 203.0.113.0/24 may wish to 290 authorise the origination of a route object of 203.0.113.196/26 by 291 64496, and explicitly declare that all other use of prefixes from 292 this block should be considered invalid. This could be achieved 293 through the issuing of a ROA for Address=203.0.113.0/24, 294 maxLength=32, AS = 0 and a second ROA for Address=203.0.113.196/26, 295 maxLength=26, AS=64496. 297 By convention, an AS 0 ROA should have a maxLength value of 32 for 298 IPv4 addresses and 128 for IPv6 addresses, although in terms of route 299 object validation the same outcome would be achieved with any valid 300 maxLength value, or even if the maxLength element were to be omitted 301 from the ROA. Also by convention, an AS 0 ROA should be the only ROA 302 issued for a given address prefix, although again this is not a 303 strict requirement. An AS 0 ROA can coexist with ROAs that have 304 different subject AS values, although in such cases the presence of 305 the AS 0 ROA does not alter the route object validation outcome in 306 any way. 308 4.3. BGP Considerations 310 This document provides a description of how ROAs could be used by a 311 BGP speaker. 313 It is noted that the proposed procedure requires no changes to the 314 operation of BGP. However, there are a number of considerations 315 about this approach to origination validation that are relevant to 316 the operation of a BGP speaker that are not specified here. 318 These considerations include: 320 * It is not specified when validation of an advertised prefix 321 should be performed by a BGP speaker. It is considered to be a 322 matter of local policy whether it is strictly required to 323 perform validation at a point prior to loading the object into 324 the Adj-RIB-In structure [RFC4271], or once the object has been 325 loaded into Adj-RIB-In, or at a later time that is determined 326 by a local configuration setting. It is also not specified 327 whether origination validation should be performed each time a 328 route object is updated by a peer even when the origin AS has 329 not altered. 331 * The lifetime of a validation outcome is not specified here. 332 This specifically refers to the time period during which the 333 original validation outcome can be still applied, at the 334 expiration of which the routing object should be re-tested for 335 validity. It is a matter of local policy setting as to whether 336 a validation outcome be regarded as valid until the route 337 object is withdrawn or further updated, or whether validation 338 of a route object should occur at more frequent intervals. 340 * It is a matter of local configuration as to whether ROA 341 validation is performed on a per-AS basis rather than a per-BGP 342 speaker, and the appropriate mechanisms to support a de-coupled 343 framework of validation of ROAs and the loading of outcomes 344 into BGP speakers are not considered here. 346 5. Security Considerations 348 ROA issuers should be aware of the validation implication in issuing 349 a ROA, in that a ROA will implicitly invalidate all route objects for 350 more specific prefixes with a prefix length greater than maxLength, 351 and all originating AS's other than the AS listed in the collection 352 of ROAs. 354 A conservative operational practice would be to ensure the issuing of 355 ROAs for all more specific prefixes with distinct origination AS's 356 prior to the issuing of ROAs for larger encompassing address blocks, 357 in order to avoid inadvertent invalidation of valid route objects 358 during ROA generation. 360 ROA issuers should also be aware that if they generate a ROA for one 361 origin AS, then if the prefix is authorised by multiple AS's then 362 ROAs should be generated for all such authorized AS's. 364 6. IANA Considerations 366 Dear IANA, 368 The AS number registry [IANA.AS-Registry] contains the following 369 annotation against AS 0: "may be use to identify non-routed 370 networks." Could you please add a 'd' as appropriate to this text? 372 Thank you, 374 the authors. 376 7. Change Log 378 Note: This section is NOT to be included in final version of this 379 document. 381 7.1. Changes -02 to -03 383 Further Considerations section now has a subsection describing the 384 assumptions that ROA validation is making about the precise nature of 385 partial deployment, noting that a ROA has an implicit scope of 386 application for all prefixes that are equal to or more specific than 387 the prefix listed in the ROA 389 Moved the table of validation outcomes from the Security 390 Considerations section to the section on Further Considerations. 392 Added consideration about disavowal and the use of an AS 0 ROA and 393 its interpretation in the context of validation of route objects, and 394 proposed conventions of use of an AS 0 ROA. 396 Noted hierarchical dependence of ROA issuance in the Security 397 Considerations section. 399 7.2. Changes -01 to -02 401 Following WG review of the means of specification of denial in 402 routing authorizations in the context of the RPKI at IETF 74 and IETF 403 75, it appears that there is no general WG support for the use of an 404 explicit denial object (termed a 'BOA'). The alternative approach, 405 explored in previous iterations of this draft, used a more restricted 406 interpretation of a ROA that yielded only "valid" or "unknown" 407 outcomes (by using "unknown" where "invalid" is used in this revision 408 of the document). To allow for "invalid" outcomes the draft used the 409 BOA to undertake the role of a 'disavow' constraint, where a route 410 object was considered to be "invalid" if it was the subject of a 411 valid BOA and was not considered to be "valid" by any valid ROA. The 412 reasons advanced to support the dropping of the BOA was the increased 413 complexity of RP systems through the use of a second object in route 414 validation, a potentially confusing mismatch in the interpretation 415 scope between the ROA and the BOA, where the ROAs scope was limited 416 to set of prefixes described in the ROA, while the BOA's scope 417 included all possible more specifics of the prefixes listed in the 418 BOA, and the ability to reconstruct the semantic equivalent of a BOA 419 through the use of a ROA that used a restricted-use AS as its asID. 420 Accordingly, this draft has been revised to remove all references to 421 the use of an explicit denial object and uses the implicit semantics 422 of denial in a ROA object. 424 There appears to be no WG interest in consideration of validation in 425 a "linked" model, where a ROA is bound to the route object that it is 426 intended to validate. Accordingly this section of the text has also 427 been dropped from this version. 429 8. References 431 8.1. Normative References 433 [I-D.ietf-sidr-arch] 434 Lepinski, M. and S. Kent, "An Infrastructure to Support 435 Secure Internet Routing", draft-ietf-sidr-arch (work in 436 progress), July 2009. 438 [I-D.ietf-sidr-roa-format] 439 Lepinski, M., Kent, S., and D. Kong, "An Infrastructure to 440 Support Secure Internet Routing", 441 draft-ietf-sidr-roa-format (work in progress), July 2009. 443 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 444 Addresses and AS Identifiers", RFC 3779, June 2004. 446 [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway 447 Protocol 4 (BGP-4)", RFC 4271, January 2006. 449 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 450 Housley, R., and W. Polk, "Internet X.509 Public Key 451 Infrastructure Certificate and Certificate Revocation List 452 (CRL) Profile", RFC 5280, May 2008. 454 8.2. Informative References 456 [IANA.AS-Registry] 457 IANA, "IANA Autonomous System Number Registry", 458 August 2009. 460 Authors' Addresses 462 Geoff Huston 463 Asia Pacific Network Information Centre 465 Email: gih@apnic.net 467 George Michaelson 468 Asia Pacific Network Information Centre 470 Email: ggm@apnic.net