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 of this ROA validation function is that either"invalid". However, theRP has determined thatconsiderations of accommodating environments of partial adoption of theROA is valid inuse of ROAs, where only a subset of validly advertised address prefixes have associated published ROAs within thecontextstructure of the RPKI,or the ROA is invalid, in which case the ROA is notimply some modification tobe used by the RP. It is assumed here that ROAs are managed and distributed independentlythis model of positive attestation. In theoperationcontext ofBGP itself, androute object validation it is assumed that once an address prefix is described in alocal BGP speaker has access to a local cache ofROA, then this ROA speifically encompasses all address prefixes that are more specific than that described in thecomplete set of valid ROAs when performing aROA. Thus, any route objectvalidation operation. Route object validation is definedfor more specific address prefix than that described bythe following procedure: 1. Select allany validROAsROA thatincludedoes not itself have aROAIPAddress value that either matches, ormatching valid ROA isa covering aggregate of, theconsidered to be "invalid". However, routes objects for addressprefix in theprefixes that are not fully described by any single ROA, i.e., those routeobject. 2. If the set of candidate ROAs is empty then the validation procedure stops withobjects whose address prefixes may be anoutcomeaggregate of"unknown". 3. If any ROA has an asID value that matches the origin AS in the route object, and either the route object'saddressprefix precisely matches a ROAIPAddressprefixes described inthea valid ROA, orthe route object'shave addressprefixprefixes where there is no intersection with any ROA, and are not matched by any ROA and are not a more specificprefixof any ROA cannot be reliably classified as "invalid" in aROAIPAddress and thepartial deployment scenario. Such routeobject's prefix length value is less than or equal to the ROAIPAddress' maxLength value, then theobjects have a validationprocedure stops with anoutcome of"valid". 4. Otherwise, the"unknown". The validationprocedure stops with an outcome of "invalid". 3. Applying Validation Outcomes to BGP Route Selection Within the framework of the abstract modelcondition ofBGP operation,areceived prefix announcement fromroute object with aBGP speaking peer is compared to all announcements for this prefix received from other BGP 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 of preference as defined in section 9.1.1 of the BGP specification [RFC4271]. The local degree 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 local BGP selection policy as to the actions to be undertaken by a BGP instance 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 local BGP selection policy as to whether "invalid" route objects are considered to be ineligible for further consideration in the route selection process. The 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 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 route objects in BGP, 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 to attest that no AS has been granted any such authority byprefix and an origin AS when usingasingle ROAwhere the ROA'S subject ASfor validation isone that will not be usedsummarized ina routing context. Specifically, AS 0 is reserved bytheIANA such that it "may be use [sic] to identify non-routed networks" [IANA.AS-Registry]. A ROA with a subject offollowing table: Prefix matching non-matching AS0 is an attestation by the holder of a prefix that the prefix described in the ROA, and any more specific prefix, should not be used in a routing context. The route object validation procedure, described in Section 2, will provide a "valid" outcome if anyAS +---------+-------------+ Covering | unknown | unknown | Aggregate | | | +---------+-------------+ match ROAmatches the address prefix and origin AS, even if other| validROAs would provide an "invalid" validation outcome if used in isolation. Consequently, an AS0 ROA has a lower preference| invalid | prefix | | | +---------+-------------+ More | invalid | invalid | Specific | | | thanany otherROAthat has a routeable AS as its subject. This allows a prefix holder to use| | | +---------+-------------+ In anAS0 ROA to declareenvironment of a collection of ROAs, adefault condition that anyroute objectthatisequal to, or more specific than the prefix to beconsidered to beinvalid, 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"valid" if any ROA provides aroute object of 203.0.113.196/26 by 64496, and explicitly declare that all other use of prefixes from this block should be"valid" outcome. It is consideredinvalid. This couldto beachieved through the issuing of a ROA for Address=203.0.113.0/24, maxLength=32, AS = 0"invalid" if one (or more) ROAs provide an "invalid" outcome and no ROAs provide asecond ROA for Address=203.0.113.196/26, maxLength=26, AS=64496. By convention, an AS 0"valid" outcome. It is considered to be "unknown" when no ROAshould haveproduces either amaxLength value of 32 for IPv4 addresses and 128 for IPv6 addresses, although in terms of route"valid" or an "invalid" outcome. Route object validation is defined by thesame outcome would be achieved with anyfollowing procedure: 1. Select all validmaxLength value,ROAs that include a ROAIPAddress value that either matches, oreven ifis a covering aggregate of, themaxLength element were to be omitted fromaddress prefix in theROA. Also by convention, an AS 0 ROA should beroute object. 2. If theonly ROA issued for a given address prefix, although again thisset of candidate ROAs isnot a strict requirement. An AS 0 ROA can coexistempty then the validation procedure stops with an outcome of "unknown". 3. If any of the selected ROAs has an asID value thathave different subjectmatches the origin ASvalues, althoughinsuch cases the presence oftheAS 0 ROA does not alterroute object, and either the routeobject validation outcomeobject's address prefix precisely matches a ROAIPAddress inany way. 4.3. BGP Considerations This document providesthe ROA, or the route object's address prefix is adescriptionmore specific prefix ofhow ROAs could be used byaBGP speaker. ItROAIPAddress, and the route object's prefix length value isnoted thatless than or equal to the ROAIPAddress' maxLength value, then the validation procedure stops with an outcome of "valid". 4. Otherwise, theproposedvalidation procedurerequires no changesstops with an outcome of "invalid". 3. Applying Validation Outcomes to Route Selection Within theoperationframework ofBGP. However, there are a numberthe abstract model ofconsiderations about this approach to origination validation that are relevant tothe operation ofainter- domain routing using BGPspeaker that are not specified here. These considerations include: * It is not specified when validation of an advertised[RFC4271], a received prefixshould be performed byannouncement from aBGP speaker. Itrouting peer isconsideredcompared tobeall announcements for this prefix received from other routing peers and amatter of local policy whether itroute selection procedure isstrictly required to perform validation at a point priorused toloadingselect the "best" route objectinto the Adj-RIB-In structure [RFC4271], or once thefrom this candidate set. The route objecthas 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 originationvalidationshouldoutcome, described in Section 2, of "unknown", "valid" or "invalid" may beperformed each time a route object is updated by a peer even whenused as part of theorigin AS has not altered. * The lifetimedetermination ofa validation outcome is not specified here. This specifically refers tothetime period duringlocal degree of preference, in which case theoriginal validation outcome can be still applied, at the expirationlocal order of preference is as follows: "valid" is to be preferred over "unknown", whichthe routing object shoulditself is to bere-tested for validity.preferred over "invalid". It is a matter of local routing policy as to the actions to be undertaken by a routing 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 policysettingsettings should not result in "unknown" validation outcomes being considered as sufficient grounds towhetherreject avalidation outcome be regarded as valid until theroute objectis withdrawn oroutright from furtherupdated, or whether validation ofconsideration as aroute object should occur at more frequent intervals. *local "best" route. It is a matter of localconfigurationrouting policy as to whetherROA validation is performed on a per-AS basis rather than a per-BGP speaker, and the appropriate mechanisms"invalid" route objects are considered tosupportbe ineligible for further consideration in ade-coupled frameworkroute selection process. A possible consideration here is one ofvalidationpotential circularity ofROAs anddependence. If theloadingauthoritative publication point ofoutcomes into BGP speakers are not considered here. 5. Security Considerations ROA issuers should be awarethe repository of ROAs, or that of any certificate used in relation to an address prefix, is located at an address that lies within thevalidation implicationaddress prefix described inissuinga ROA,in thatthen the repository can only be accessed by the RP once aROA will implicitly invalidate allrouteobjectsformore specific prefixes with athe prefixlength greater than maxLength, and all originating AS's other thanhas been accepted by theAS listed inRP's local routing domain. It is also noted that thecollectionpropagation time ofROAs. A conservative operational practice wouldRPKI objects may be different toensuretheissuingpropagation time of route objects, and that route objects may be received before the RP's local repository cache picks up the associated ROAsfor all more specific prefixes with distinct origination AS's priorand recognises them as valid within the RPKI. 4. 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 theissuing of ROAsinter-domain routing system. It is possible forlarger encompassing address blocks, in ordera prefix holder toavoid inadvertent invalidation ofconstruct an authorization where no valid AS has been granted any such authority to originate a routeobjects during ROA generation. ROA issuers should also be aware that if they generateobject for an address prefix. This is acheived by using a ROAfor one origin AS, then ifwhere theprefixROA's subject AS isauthorised by multiple AS's then ROAs shouldone that must never begenerated for all such authorized AS's. 6. IANA Considerations Dear IANA, Theused in any routing context. Specifically, ASnumber registry [IANA.AS-Registry] contains0 is reserved by thefollowing annotation against AS 0:IANA such that it "may be use [sic] to identify non-routednetworks." Could you please addnetworks" [IANA.AS-Registry]. A ROA with a'd' as appropriate to this text? Thank you, the authors. 7. Change Log Note: This sectionsubject 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 NOTtobeincludedused infinal version of this document. 7.1. Changes -02 to -03 Further Considerations section now hasasubsection describing the assumptions that ROArouting context. The route object validationis making aboutprocedure, described in Section 2, will provide a "valid" outcome if any ROA matches theprecise nature of partial deployment, noting thataddress prefix and origin AS, even if other valid ROAs would provide an "invalid" validation outcome if used in isolation. Consequently, an AS 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 animplicit scope of application for all prefixesAS 0 ROA to declare a default condition thatareany 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 toordescribe valid origination authorizations for more specificthan 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 ofprefixes. By convention, an AS 0 ROA SHOULD have a maxLength value of 32 for IPv4 addresses andits interpretation128 for IPv6 addresses, although inthe context of validationterms of routeobjects, and proposed conventions of use ofobject 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 0ROA. Noted hierarchical dependence ofROAissuance 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 ofSHOULD be theRPKI at IETF 74 and IETF 75, it appears that there is no general WG supportonly ROA issued forthe use of an explicit denial object (termeda'BOA'). The alternative approach, explored in previous iterations ofgiven address prefix, although again thisdraft, used a more restricted interpretation ofis not a strict requirement. An AS 0 ROA can coexist with ROAs thatyielded only "valid" or "unknown" outcomes (by using "unknown" where "invalid" is usedhave different subject AS values, although inthis revision of the document). To allow for "invalid" outcomessuch cases thedraft usedpresence of theBOA to undertakeAS 0 ROA does not alter therole of a 'disavow' constraint, where aroute objectwas considered to be "invalid" if it was the subject of a valid BOA and was not considered to be "valid" byvalidation outcome in anyvalid ROA.way. 5. Route Object Validation Lifetime Thereasons advanced to support the dropping"lifetime" of a validation outcome refers to theBOA wastime period during which theincreased complexity of RP systems throughoriginal validation outcome can be still applied. The implicit assumption here is that when theuse of a secondvalidation lifetime expires the routing objectin route validation,SHOULD be re-tested for validity. The validation lifetime for apotentially confusing mismatchROA is controlled by the Valid times specified in theinterpretation scope betweenEnd Entity (EE) Certificate used to sign theROAROA, and theBOA, where the ROAs scope was limited to setvalid times ofprefixes describedthose certificates in theROA, whilecertification path used to validate theBOA's scope included all possible more specificsEE Certificate. A ROA validation "expires" at the Validity To field of theprefixes listed insigning EE certificate, or at such a time when there is no certification path that can validate theBOA, andROA. A ROA issuer may prematurely invalidate a ROA by revoking theabilityEE certificate that was used toreconstructsign thesemantic equivalentROA. 6. Security Considerations ROA issuers should be aware ofa BOA throughtheuse ofvalidation implication in issuing a ROA, in that a ROA implicitly invalidates all route objects thatusedhave more specific prefixes with arestricted-useprefix length greater than maxLength, and all originating AS's other than the ASas its asID. Accordingly,listed in the collection of ROAs for thisdraft has been revised to remove all referencesprefix. A conservative operational practice would be to ensure theuseissuing ofan explicit denial object and usesROAs for all more specific prefixes with distinct origination AS's prior to theimplicit semanticsissuing ofdenialROAs for larger encompassing address blocks, ina ROA object. There appearsorder tobe no WG interest in considerationavoid inadvertent invalidation ofvalidation in a "linked" model, wherevalid route objects during ROA generation. ROA issuers should also be aware that if they generate a ROAis bound tofor one origin AS, then if the prefix holder authorises multiple AS's to originate routeobject thatobjects it isintended to validate. Accordingly this section of the text has also been dropped from this version.necessary for a ROA be generated for every such authorized AS. 7. IANA Considerations [There are no 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