idnits 2.17.1 draft-ietf-sidr-roa-validation-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Sep 2009 rather than the newer Notice from 28 Dec 2009. (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 : ---------------------------------------------------------------------------- ** 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 245: '... prefix, SHOULD NOT be used in a rou...' RFC 2119 keyword, line 258: '...ion, an AS 0 ROA SHOULD have a maxLeng...' RFC 2119 keyword, line 264: '...ion, an AS 0 ROA SHOULD be the only RO...' RFC 2119 keyword, line 275: '...e routing object SHOULD be re-tested f...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 151 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 (March 3, 2010) is 5140 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 2 errors (**), 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: September 4, 2010 March 3, 2010 7 Validation of Route Origination using the Resource Certificate PKI and 8 ROAs 9 draft-ietf-sidr-roa-validation-04.txt 11 Abstract 13 This document defines the semantics of a Route Origin Authorization 14 in terms of the context of an application of the Resource Public Key 15 Infrastructure to validate the origination of routes advertised in 16 the Border Gateway Protocol. 18 Status of this Memo 20 This Internet-Draft is submitted to IETF in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF), its areas, and its working groups. Note that 25 other groups may also distribute working documents as Internet- 26 Drafts. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 The list of current Internet-Drafts can be accessed at 34 http://www.ietf.org/ietf/1id-abstracts.txt. 36 The list of Internet-Draft Shadow Directories can be accessed at 37 http://www.ietf.org/shadow.html. 39 This Internet-Draft will expire on September 4, 2010. 41 Copyright Notice 43 Copyright (c) 2010 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (http://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 2. ROA Validation Outcomes for a Route Object . . . . . . . . . . 3 60 3. Applying Validation Outcomes to Route Selection . . . . . . . . 5 61 4. Disavowal of Routing Origination . . . . . . . . . . . . . . . 6 62 5. Route Object Validation Lifetime . . . . . . . . . . . . . . . 7 63 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 64 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8 65 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 66 8.1. Normative References . . . . . . . . . . . . . . . . . . . 8 67 8.2. Informative References . . . . . . . . . . . . . . . . . . 8 68 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 70 1. Introduction 72 This document defines the semantics of a Route Origin Authorization 73 (ROA) in terms of the context of an application of the Resource 74 Public Key Infrastructure (RPKI) [I-D.ietf-sidr-arch] to validate the 75 origination of routes advertised in the Border Gateway Protocol (BGP) 76 [RFC4271]. 78 The RPKI is based on a hierarchy of Resource Certificates that are 79 aligned to the Internet number resource allocation structure. 80 Resource Certificates are X.509 certificates that conform to the PKIX 81 profile [RFC5280], and to the extensions for IP addresses and AS 82 identifiers [RFC3779]. A Resource Certificate describes an action by 83 an issuer that binds a list of IP address blocks and Autonomous 84 System (AS) numbers to the Subject of a certificate, identified by 85 the unique association of the Subject's private key with the public 86 key contained in the Resource Certificate. The RPKI is structured 87 such that each current Resource Certificate matches a current 88 resource allocation or assignment. This is further described in 89 [I-D.ietf-sidr-arch]. 91 ROAs are digitally signed objects that bind an address to an AS 92 number, signed by the address holder. A ROA provides a means of 93 verifying that an IP address block holder has authorized a particular 94 AS to originate route objects in the inter-domain routing environment 95 for that address block. ROAs are described in 96 [I-D.ietf-sidr-roa-format]. ROAs are intended to fit within the 97 requirements for adding security to inter-domain routing. 99 This document describes the semantic interpretation of a ROA, with 100 particular reference to application in inter-domain routing relating 101 to the origination of route objects, and the intended scope of the 102 authority that is conveyed in the ROA. 104 2. ROA Validation Outcomes for a Route Object 106 A "route object" is an address prefix and an associated set of 107 routing attributes. In terms of validation of the route object in 108 the context of BGP [RFC4271]the address prefix value and the "origin 109 AS" are used in the ROA validation operation. The route object's 110 origin AS is the final element of the route object's AS_PATH 111 attribute. If the final AS_PATH element is an AS Set, indicating 112 that the route object is an aggregate, then the origin AS is taken as 113 the AS component of the AGGREGATOR attribute [RFC4271]. 115 It is assumed here that a Relying Party (RP) has access to a local 116 cache of the complete set of valid ROAs when performing validation of 117 a route object. (Valid ROAs are defined as ROAs that are determined 118 to be syntactically correct and are signed using a signature that can 119 be verified using the RPKI, as described in 120 [I-D.ietf-sidr-roa-format].) The RP needs to match a route object to 121 one or more candidate valid ROAs in order to determine a validation 122 outcome, which, in turn, can be used to determine the appropriate 123 local actions to perform on the route object. 125 This approach to route object origination validation uses a model of 126 "positive" attestations, where route objects that cannot be validated 127 within the RPKI framework would conventionally be treated by a RP as 128 "invalid". However, the considerations of accommodating environments 129 of partial adoption of the use of ROAs, where only a subset of 130 validly advertised address prefixes have associated published ROAs 131 within the structure of the RPKI, imply some modification to this 132 model of positive attestation. In the context of route object 133 validation it is assumed that once an address prefix is described in 134 a ROA, then this ROA speifically encompasses all address prefixes 135 that are more specific than that described in the ROA. Thus, any 136 route object for more specific address prefix than that described by 137 any valid ROA that does not itself have a matching valid ROA is 138 considered to be "invalid". However, routes objects for address 139 prefixes that are not fully described by any single ROA, i.e., those 140 route objects whose address prefixes may be an aggregate of address 141 prefixes described in a valid ROA, or have address prefixes where 142 there is no intersection with any ROA, and are not matched by any ROA 143 and are not a more specific of any ROA cannot be reliably classified 144 as "invalid" in a partial deployment scenario. Such route objects 145 have a validation outcome of "unknown". 147 The validation condition of a route object with a prefix and an 148 origin AS when using single ROA for validation is summarized in the 149 following table: 151 Prefix matching non-matching 152 AS AS 153 +---------+-------------+ 154 Covering | unknown | unknown | 155 Aggregate | | | 156 +---------+-------------+ 157 match ROA | valid | invalid | 158 prefix | | | 159 +---------+-------------+ 160 More | invalid | invalid | 161 Specific | | | 162 than ROA | | | 163 +---------+-------------+ 165 In an environment of a collection of ROAs, a route object is 166 considered to be "valid" if any ROA provides a "valid" outcome. It 167 is considered to be "invalid" if one (or more) ROAs provide an 168 "invalid" outcome and no ROAs provide a "valid" outcome. It is 169 considered to be "unknown" when no ROA produces either a "valid" or 170 an "invalid" outcome. 172 Route object validation is defined by the following procedure: 174 1. Select all valid ROAs that include a ROAIPAddress value that 175 either matches, or is a covering aggregate of, the address 176 prefix in the route object. 178 2. If the set of candidate ROAs is empty then the validation 179 procedure stops with an outcome of "unknown". 181 3. If any of the selected ROAs has an asID value that matches the 182 origin AS in the route object, and either the route object's 183 address prefix precisely matches a ROAIPAddress in the ROA, or 184 the route object's address prefix is a more specific prefix of 185 a ROAIPAddress, and the route object's prefix length value is 186 less than or equal to the ROAIPAddress' maxLength value, then 187 the validation procedure stops with an outcome of "valid". 189 4. Otherwise, the validation procedure stops with an outcome of 190 "invalid". 192 3. Applying Validation Outcomes to Route Selection 194 Within the framework of the abstract model of the operation of inter- 195 domain routing using BGP [RFC4271], a received prefix announcement 196 from a routing peer is compared to all announcements for this prefix 197 received from other routing peers and a route selection procedure is 198 used to select the "best" route object from this candidate set. 200 The route object validation outcome, described in Section 2, of 201 "unknown", "valid" or "invalid" may be used as part of the 202 determination of the local degree of preference, in which case the 203 local order of preference is as follows: 204 "valid" is to be preferred over 205 "unknown", which itself is to be preferred over 206 "invalid". 208 It is a matter of local routing policy as to the actions to be 209 undertaken by a routing entity in processing route objects with 210 "unknown" validation outcomes. Due to considerations of partial use 211 of ROAs in heterogeneous environments, such as in the public 212 Internet, it is advised that local policy settings should not result 213 in "unknown" validation outcomes being considered as sufficient 214 grounds to reject a route object outright from further consideration 215 as a local "best" route. 217 It is a matter of local routing policy as to whether "invalid" route 218 objects are considered to be ineligible for further consideration in 219 a route selection process. A possible consideration here is one of 220 potential circularity of dependence. If the authoritative 221 publication point of the repository of ROAs, or that of any 222 certificate used in relation to an address prefix, is located at an 223 address that lies within the address prefix described in a ROA, then 224 the repository can only be accessed by the RP once a route for the 225 prefix has been accepted by the RP's local routing domain. It is 226 also noted that the propagation time of RPKI objects may be different 227 to the propagation time of route objects, and that route objects may 228 be received before the RP's local repository cache picks up the 229 associated ROAs and recognises them as valid within the RPKI. 231 4. Disavowal of Routing Origination 233 A ROA is a positive attestation that a prefix holder has authorized 234 an AS to originate a route for this prefix into the inter-domain 235 routing system. It is possible for a prefix holder to construct an 236 authorization where no valid AS has been granted any such authority 237 to originate a route object for an address prefix. This is acheived 238 by using a ROA where the ROA's subject AS is one that must never be 239 used in any routing context. Specifically, AS 0 is reserved by the 240 IANA such that it "may be use [sic] to identify non-routed networks" 241 [IANA.AS-Registry]. 243 A ROA with a subject of AS 0 is an attestation by the holder of a 244 prefix that the prefix described in the ROA, and any more specific 245 prefix, SHOULD NOT be used in a routing context. 247 The route object validation procedure, described in Section 2, will 248 provide a "valid" outcome if any ROA matches the address prefix and 249 origin AS, even if other valid ROAs would provide an "invalid" 250 validation outcome if used in isolation. Consequently, an AS 0 ROA 251 has a lower preference than any other ROA that has a routeable AS as 252 its subject. This allows a prefix holder to use an AS 0 ROA to 253 declare a default condition that any route object that is equal to, 254 or more specific than the prefix to be considered to be invalid, 255 while also allowing other concurrently issued ROAs to describe valid 256 origination authorizations for more specific prefixes. 258 By convention, an AS 0 ROA SHOULD have a maxLength value of 32 for 259 IPv4 addresses and 128 for IPv6 addresses, although in terms of route 260 object validation the same outcome would be achieved with any valid 261 maxLength value, or even if the maxLength element were to be omitted 262 from the ROA. 264 Also by convention, an AS 0 ROA SHOULD be the only ROA issued for a 265 given address prefix, although again this is not a strict 266 requirement. An AS 0 ROA can coexist with ROAs that have different 267 subject AS values, although in such cases the presence of the AS 0 268 ROA does not alter the route object validation outcome in any way. 270 5. Route Object Validation Lifetime 272 The "lifetime" of a validation outcome refers to the time period 273 during which the original validation outcome can be still applied. 274 The implicit assumption here is that when the validation lifetime 275 expires the routing object SHOULD be re-tested for validity. 277 The validation lifetime for a ROA is controlled by the Valid times 278 specified in the End Entity (EE) Certificate used to sign the ROA, 279 and the valid times of those certificates in the certification path 280 used to validate the EE Certificate. A ROA validation "expires" at 281 the Validity To field of the signing EE certificate, or at such a 282 time when there is no certification path that can validate the ROA. 283 A ROA issuer may prematurely invalidate a ROA by revoking the EE 284 certificate that was used to sign the ROA. 286 6. Security Considerations 288 ROA issuers should be aware of the validation implication in issuing 289 a ROA, in that a ROA implicitly invalidates all route objects that 290 have more specific prefixes with a prefix length greater than 291 maxLength, and all originating AS's other than the AS listed in the 292 collection of ROAs for this prefix. 294 A conservative operational practice would be to ensure the issuing of 295 ROAs for all more specific prefixes with distinct origination AS's 296 prior to the issuing of ROAs for larger encompassing address blocks, 297 in order to avoid inadvertent invalidation of valid route objects 298 during ROA generation. 300 ROA issuers should also be aware that if they generate a ROA for one 301 origin AS, then if the prefix holder authorises multiple AS's to 302 originate route objects it is necessary for a ROA be generated for 303 every such authorized AS. 305 7. IANA Considerations 307 [There are no IANA Considerations.] 309 8. References 311 8.1. Normative References 313 [I-D.ietf-sidr-arch] 314 Lepinski, M. and S. Kent, "An Infrastructure to Support 315 Secure Internet Routing", draft-ietf-sidr-arch (work in 316 progress), October 2009. 318 [I-D.ietf-sidr-roa-format] 319 Lepinski, M., Kent, S., and D. Kong, "An Infrastructure to 320 Support Secure Internet Routing", 321 draft-ietf-sidr-roa-format (work in progress), 322 October 2009. 324 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 325 Addresses and AS Identifiers", RFC 3779, June 2004. 327 [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway 328 Protocol 4 (BGP-4)", RFC 4271, January 2006. 330 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 331 Housley, R., and W. Polk, "Internet X.509 Public Key 332 Infrastructure Certificate and Certificate Revocation List 333 (CRL) Profile", RFC 5280, May 2008. 335 8.2. Informative References 337 [IANA.AS-Registry] 338 IANA, "IANA Autonomous System Number Registry", 339 March 2010. 341 Authors' Addresses 343 Geoff Huston 344 Asia Pacific Network Information Centre 346 Email: gih@apnic.net 347 George Michaelson 348 Asia Pacific Network Information Centre 350 Email: ggm@apnic.net