Secure Inter-Domain Routing (SIDR) G. Huston Internet-Draft G. Michaelson Intended status: Informational APNIC Expires:February 7,September 4, 2010 March 3, 2010August 6, 2009Validation of Route Originationin BGPusing the Resource Certificate PKI and ROAsdraft-ietf-sidr-roa-validation-03.txtdraft-ietf-sidr-roa-validation-04.txt Abstract This document defines the semantics of a Route Origin Authorization in terms of the context of an application of the Resource Public Key Infrastructure to validate the origination of routes advertised in the Border Gateway Protocol. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onFebruary 7,September 4, 2010. Copyright Notice Copyright (c)20092010 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of thisdocument (http://trustee.ietf.org/license-info).document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.Abstract ThisCode Components extracted from this documentdefines an application of the Resource Public Key Infrastructure to validate the origination of routes advertisedmust include Simplified BSD License text as described in Section 4.e of theBorder Gateway Protocol. The proposed application is intended to fit within the requirement for adding security to inter-domain routing, including the ability to support incremental and piecemeal deployment,Trust Legal Provisions anddoes not require any changes toare provided without warranty as described in thespecification of BGP.BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. ROA Validation Outcomesoffor aBGPRoute Object . . . . . . . . . . 3 3. Applying Validation Outcomes toBGPRoute Selection . . . . .4 4. Further Considerations . . . . . . . . . . . .. . .. . . . . 6 4.1. Partial Deployment Considerations . . . . . . . . . . . . 6 4.2.5 4. Disavowal of Routing Origination . . . . . . . . . . . . .7 4.3. BGP Considerations . . . . . . . . . . . . . .. .. . . . 86 5.Security Considerations . . . .Route Object Validation Lifetime . . . . . . . . . . . . . . .87 6.IANASecurity Considerations . . . . . . . . . . . . . . . . . . . .. 97 7.Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.1. Changes -02 to -03 . . . . . . . . . . . . . . . . . .IANA Considerations . .9 7.2. Changes -01 to -02. . . . . . . . . . . . . . . . . . . .108 8. References . . . . . . . . . . . . . . . . . . . . . . . . . .108 8.1. Normative References . . . . . . . . . . . . . . . . . . .108 8.2. Informative References . . . . . . . . . . . . . . . . . .118 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .118 1. Introduction This document defines the semantics of a Route Origin Authorization (ROA) in terms of the context of an application of the Resource Public Key Infrastructure (RPKI) [I-D.ietf-sidr-arch] to validate the origination of routes advertised in the Border Gateway Protocol (BGP) [RFC4271]. The RPKI is based on a hierarchy of Resource Certificates that are aligned to the Internet number resource allocation structure. Resource Certificates are X.509 certificates that conform to the PKIX profile [RFC5280], and to the extensions for IP addresses and AS identifiers [RFC3779]. A Resource Certificate describes an action by an issuer that binds a list of IP address blocks and Autonomous System (AS) numbers to the Subject of a certificate, identified by the unique association of the Subject's private key with the public key contained in the Resource Certificate. The RPKI is structured such that each current Resource Certificate matches a current resource allocation or assignment. This is further described in [I-D.ietf-sidr-arch].Route Origin Authorizations (ROAs)ROAs are digitally signed objects that bind an address to an AS number, signed by the address holder. A ROA provides a means of verifying that an IP address block holder has authorizedana particular AS to originate route objects in the inter-domain routing environment for that address block. ROAs are described in [I-D.ietf-sidr-roa-format]. ROAs are intended to fit within the requirements for adding security to inter-domain routing. This document describes the semantic interpretation of avalidROA, with particular reference to application inBGPinter-domain routing relating to the origination of routeobjects. This proposed application of validation of ROAs does not require any changes toobjects, and thespecification of BGP protocol elements. The outcomes of ROA validation may be used as partintended scope ofBGP's local route selection procedure [RFC4271].the authority that is conveyed in the ROA. 2. ROA Validation Outcomesoffor aBGPRoute Object ABGP"route object" is an address prefix and an associated set of routing attributes. In terms of validation of the route object in the context of BGP [RFC4271]the address prefix value and the "origin AS" are used in the ROA validation operation. The route object's origin AS is the final element of the route object's AS_PATH attribute. If the final AS_PATH element is an AS Set, indicating that the route object is an aggregate, then the origin AS is taken as the AS component of the AGGREGATOR attribute [RFC4271].A BGP route object does not refer to a specific ROAIt is assumed here thatshould be used bya Relying Party (RP) has access tovalidate the origination information contained ina local cache of the complete set of valid ROAs when performing validation of a route object. (Valid ROAs are defined as ROAs that are determined to be syntactically correct and are signed using a signature that can be verified using the RPKI, as described in [I-D.ietf-sidr-roa-format].) The RP needs to match a route object to one or more candidate valid ROAs in order to determine a validation outcome, which, in turn, can be used to determine the appropriate local actions to perform on the route object.Valid ROAs are defined as ROAs that are determinedThis approach tobe syntactically correct and are signed usingroute object origination validation uses asignaturemodel of "positive" attestations, where route objects thatcancannot beverified usingvalidated within theRPKI,RPKI framework would conventionally be treated by a RP asdescribed in [I-D.ietf-sidr-roa-format]. The outcome"invalid". However, the considerations of accommodating environments of partial adoption of the use of ROAs, where only a subset of validly advertised address prefixes have associated published ROAs within the structure of the RPKI, imply some modification to thisROAmodel of positive attestation. In the context of route object validationfunctionit is assumed thateither the RP has determinedonce an address prefix is described in a ROA, then this ROA speifically encompasses all address prefixes that are more specific than that described in the ROA. Thus, any route object for more specific address prefix than that described by any valid ROA that does not itself have a matching valid ROA is considered to be "invalid". However, routes objects for address prefixes that are not fully described by any single ROA, i.e., those route objects whose address prefixes may be an aggregate of address prefixes described in a valid ROA, or have address prefixes where there is no intersection with any ROA, and are not matched by any ROA and are not a more specific of any ROA cannot be reliably classified as "invalid" inthe contexta partial deployment scenario. Such route objects have a validation outcome ofthe RPKI, or the"unknown". The validation condition of a route object with a prefix and an origin AS when using single ROA for validation isinvalid,summarized inwhich casethe following table: Prefix matching non-matching AS AS +---------+-------------+ Covering | unknown | unknown | Aggregate | | | +---------+-------------+ match ROA | valid | invalid | prefix | | | +---------+-------------+ More | invalid | invalid | Specific | | | than ROA | | | +---------+-------------+ In an environment of a collection of ROAs, a route object isnotconsidered to beused by the RP."valid" if any ROA provides a "valid" outcome. It isassumed here thatconsidered to be "invalid" if one (or more) ROAsare managed and distributed independently of the operation of BGP itself,provide an "invalid" outcome andthatno ROAs provide alocal BGP speaker has access"valid" outcome. It is considered toa local cache of the complete set of valid ROAsbe "unknown" whenperformingno ROA produces either aroute object validation operation."valid" or an "invalid" outcome. Route object validation is defined by the following procedure: 1. Select all valid ROAs that include a ROAIPAddress value that either matches, or is a covering aggregate of, the address prefix in the route object. 2. If the set of candidate ROAs is empty then the validation procedure stops with an outcome of "unknown". 3. If anyROAof the selected ROAs has an asID value that matches the origin AS in the route object, and either the route object's address prefix precisely matches a ROAIPAddress in the ROA, or the route object's address prefix is a more specific prefix of aROAIPAddressROAIPAddress, and the route object's prefix length value is less than or equal to the ROAIPAddress' maxLength value, then the validation procedure stops with an outcome of "valid". 4. Otherwise, the validation procedure stops with an outcome of "invalid". 3. Applying Validation Outcomes toBGPRoute Selection Within the framework of the abstract model of the operation of inter- domain routing using BGPoperation,[RFC4271], a received prefix announcement from aBGP speakingrouting peer is compared to all announcements for this prefix received from otherBGProuting peers and a route selection procedure is used to select the "best" route object from this candidate set.This route object is then used locally by installing it in the loc-RIB [RFC4271], and is announced to peers as the local "best" route.The route object validation outcome, described in Section 2, of "unknown", "valid" or "invalid" may be used as part of the determination of the local degree ofpreference as definedpreference, insection 9.1.1 ofwhich case theBGP specification [RFC4271]. Thelocaldegreeorder of preference is as follows: "valid" is to be preferred over "unknown", which itself is to be preferred over "invalid".This preference ranking is performed prior to the steps described in section 9.1.1 of [RFC4271].It is a matter of localBGP selectionrouting policy as to the actions to be undertaken by aBGP instancerouting entity in processing route objects with "unknown" validation outcomes. Due to considerations of partial use of ROAs in heterogeneous environments, such as in the public Internet, it is advised that local policy settings should not result in "unknown" validation outcomes being considered as sufficient grounds to reject a route object outright from further consideration as a local "best" route. It is a matter of localBGP selectionrouting policy as to whether "invalid" route objects are considered to be ineligible for further consideration inthea route selection process.TheA possible consideration here is one of potential circularity of dependence. If the authoritative publication point of the repository of ROAs, or that of any certificate used in relation to an address prefix, is located at an address that lies within the address prefix described in a ROA, then the repository can only be accessed by the RP once a route for the prefix has been accepted by the RP's local routing domain. It is also noted that the propagation time of RPKI objects may be different to the propagation time of routeobjects in BGP,objects, and that route objects may be received before the RP's local repository cache picks up the associated ROAs and recognises them as valid within the RPKI.A local policy setting may be considered such that "invalid" validation outcomes would be sufficient grounds to reject the route object. However, due to these considerations of circular dependence and differing propagation times of ROAs and route objects, an alternate local policy setting may be considered that would involve the use of a local timer to accept the route object as feasible for an interim period of time, until there is an acceptable level of assurance that all reasonable efforts to obtain a valid ROA for the route object have been undertaken.4.Further Considerations 4.1. Partial Deployment Considerations This approach to route object origination validation uses a model of "positive security" attestations, where information that cannot be validated within the RPKI framework is intended to interpreted by a RP as invalid information. However, the considerations of accommodating environments of partial adoption, where only a subset of valid route objects have associated ROAs within the structure of the RPKI, imply some modification to this model of positive security. Here it is assumed that once an address prefix is described in a ROA, then this ROA encompasses all address prefixes that are more specific than that described in the ROA. Thus, any more specific address prefix and originating AS combination of a valid ROA, that does not have a matching valid ROA is considered to be "invalid". Routes objects that describe address prefixes that are not fully described by any single ROA, i.e., those address prefixes that may be an aggregate of a ROA, or have no intersection with any ROA, and are not matched by any ROA and are not a more specific of any ROA cannot be reliably classified as "invalid" in a partial deployment scenario, and are therefore described as "unknown". The match condition of a route object against a single ROA is summarized in the following table: Prefix matching non-matching AS AS +---------+-------------+ Covering | unknown | unknown | Aggregate | | | +---------+-------------+ match ROA | valid | invalid | prefix | | | +---------+-------------+ More | invalid | invalid | Specific | | | than ROA | | | +---------+-------------+ In an environment of a collection of ROAs, a route object is considered to be "valid" if any ROA provides a "valid" outcome, and "invalid" if one or more ROAs provide an "invalid" outcome and no ROAs provide a "valid" outcome. The "unknown" outcome occurs when no ROA produces either a "valid" or an "invalid" outcome. 4.2.Disavowal of Routing Origination A ROA is a positive attestation that a prefix holder has authorized an AS to originate a route for this prefix into the inter-domain routing system. It is possible for a prefix holder toattest thatconstruct an authorization where no valid AS has been granted any such authority to originate a route object for an address prefix. This is acheived by using a ROA where theROA'SROA's subject AS is one thatwill notmust never be used inaany routing context. Specifically, AS 0 is reserved by the IANA such that it "may be use [sic] to identify non-routed networks" [IANA.AS-Registry]. A ROA with a subject of AS 0 is an attestation by the holder of a prefix that the prefix described in the ROA, and any more specific prefix,should notSHOULD NOT be used in a routing context. The route object validation procedure, described in Section 2, will provide a "valid" outcome if any ROA matches the address prefix and origin AS, even if other valid ROAs would provide an "invalid" validation outcome if used in isolation. Consequently, anAS0AS 0 ROA has a lower preference than any other ROA that has a routeable AS as its subject. This allows a prefix holder to use anAS0AS 0 ROA to declare a default condition that any route object that is equal to, or more specific than the prefix to be considered to be invalid, while also allowing other concurrently issued ROAs to describe valid origination authorizations for more specific prefixes.For example, the holder of prefix 203.0.113.0/24 may wish to authorise the origination of a route object of 203.0.113.196/26 by 64496, and explicitly declare that all other use of prefixes from this block should be considered invalid. This could be achieved through the issuing of a ROA for Address=203.0.113.0/24, maxLength=32, AS = 0 and a second ROA for Address=203.0.113.196/26, maxLength=26, AS=64496.By convention, an AS 0 ROAshouldSHOULD have a maxLength value of 32 for IPv4 addresses and 128 for IPv6 addresses, although in terms of route object validation the same outcome would be achieved with any valid maxLength value, or even if the maxLength element were to be omitted from the ROA. Also by convention, an AS 0 ROAshouldSHOULD be the only ROA issued for a given address prefix, although again this is not a strict requirement. An AS 0 ROA can coexist with ROAs that have different subject AS values, although in such cases the presence of the AS 0 ROA does not alter the route object validation outcome in any way.4.3. BGP Considerations This document provides a description of how ROAs could be used by a BGP speaker. It is noted that the proposed procedure requires no changes to the operation of BGP. However, there are a number of considerations about this approach to origination validation that are relevant to the operation of a BGP speaker that are not specified here. These considerations include: * It is not specified when validation of an advertised prefix should be performed by a BGP speaker. It is considered to be a matter of local policy whether it is strictly required to perform validation at a point prior to loading the object into the Adj-RIB-In structure [RFC4271], or once the object has been loaded into Adj-RIB-In, or at a later time that is determined by a local configuration setting. It is also not specified whether origination validation should be performed each time a route object is updated by a peer even when the origin AS has not altered. *5. Route Object Validation Lifetime Thelifetime"lifetime" of a validation outcomeis not specified here. This specificallyrefers to the time period during which the original validation outcome can be stillapplied, atapplied. The implicit assumption here is that when theexpiration of whichvalidation lifetime expires the routing objectshouldSHOULD be re-tested for validity.It isThe validation lifetime for amatter of local policy setting asROA is controlled by the Valid times specified in the End Entity (EE) Certificate used towhether a validation outcome be regarded assign the ROA, and the validuntiltimes of those certificates in theroute object is withdrawn or further updated, or whethercertification path used to validate the EE Certificate. A ROA validation "expires" at the Validity To field ofa route object should occurthe signing EE certificate, or atmore frequent intervals. * It issuch amatter of local configuration as to whether ROA validationtime when there isperformed on a per-AS basis rather thanno certification path that can validate the ROA. A ROA issuer may prematurely invalidate aper-BGP speaker, andROA by revoking theappropriate mechanismsEE certificate that was used tosupport a de-coupled framework of validation of ROAs andsign theloading of outcomes into BGP speakers are not considered here. 5.ROA. 6. Security Considerations ROA issuers should be aware of the validation implication in issuing a ROA, in that a ROAwillimplicitlyinvalidateinvalidates all route objectsforthat have more specific prefixes with a prefix length greater than maxLength, and all originating AS's other than the AS listed in the collection ofROAs.ROAs for this prefix. A conservative operational practice would be to ensure the issuing of ROAs for all more specific prefixes with distinct origination AS's prior to the issuing of ROAs for larger encompassing address blocks, in order to avoid inadvertent invalidation of valid route objects during ROA generation. ROA issuers should also be aware that if they generate a ROA for one origin AS, then if the prefixis authorised byholder authorises multiple AS'sthen ROAs should be generated for all such authorized AS's. 6. IANA Considerations Dear IANA, The AS number registry [IANA.AS-Registry] contains the following annotation against AS 0: "may be use to identify non-routed networks." Could you please add a 'd' as appropriate to this text? Thank you, the authors. 7. Change Log Note: This section is NOT to be included in final version of this document. 7.1. Changes -02to-03 Further Considerations section now has a subsection describing the assumptions that ROA validation is making about the precise nature of partial deployment, noting that a ROA has an implicit scope of application for all prefixes that are equal to or more specific than the prefix listed in the ROA Moved the table of validation outcomes from the Security Considerations section to the section on Further Considerations. Added consideration about disavowal and the use of an AS 0 ROA and its interpretation in the context of validation oforiginate routeobjects, and proposed conventions of use of an AS 0 ROA. Noted hierarchical dependence of ROA issuance in the Security Considerations section. 7.2. Changes -01 to -02 Following WG review of the means of specification of denial in routing authorizations in the context of the RPKI at IETF 74 and IETF 75,objects itappears that thereisno general WG supportnecessary forthe use of an explicit denial object (termed a 'BOA'). The alternative approach, explored in previous iterations of this draft, used a more restricted interpretation ofa ROAthat yielded only "valid" or "unknown" outcomes (by using "unknown" where "invalid" is used in this revision of the document). To allow for "invalid" outcomes the draft used the BOA to undertake the role of a 'disavow' constraint, where a route object was considered to be "invalid" if it was the subject of a valid BOA and was not considered to be "valid" by any valid ROA. The reasons advanced to support the dropping of the BOA was the increased complexity of RP systems through the use of a second object in route validation, a potentially confusing mismatch in the interpretation scope between the ROA and the BOA, where the ROAs scope was limited to set of prefixes described in the ROA, while the BOA's scope included all possible more specifics of the prefixes listed in the BOA, and the ability to reconstruct the semantic equivalent of a BOA through the use of a ROA that used a restricted-use AS as its asID. Accordingly, this draft has been revised to remove all references to the use of an explicit denial object and uses the implicit semantics of denial in a ROA object. There appears tobe generated for every such authorized AS. 7. IANA Considerations [There are noWG interest in consideration of validation in a "linked" model, where a ROA is bound to the route object that it is intended to validate. Accordingly this section of the text has also been dropped from this version.IANA Considerations.] 8. References 8.1. Normative References [I-D.ietf-sidr-arch] Lepinski, M. and S. Kent, "An Infrastructure to Support Secure Internet Routing", draft-ietf-sidr-arch (work in progress),JulyOctober 2009. [I-D.ietf-sidr-roa-format] Lepinski, M., Kent, S., and D. Kong, "An Infrastructure to Support Secure Internet Routing", draft-ietf-sidr-roa-format (work in progress),JulyOctober 2009. [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP Addresses and AS Identifiers", RFC 3779, June 2004. [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, May 2008. 8.2. Informative References [IANA.AS-Registry] IANA, "IANA Autonomous System Number Registry",August 2009.March 2010. Authors' Addresses Geoff Huston Asia Pacific Network Information Centre Email: gih@apnic.net George Michaelson Asia Pacific Network Information Centre Email: ggm@apnic.net