draft-ietf-sidr-roa-validation-04.txt   draft-ietf-sidr-roa-validation-05.txt 
Secure Inter-Domain Routing (SIDR) G. Huston Secure Inter-Domain Routing (SIDR) G. Huston
Internet-Draft G. Michaelson Internet-Draft G. Michaelson
Intended status: Informational APNIC Intended status: Informational APNIC
Expires: September 4, 2010 March 3, 2010 Expires: September 4, 2010 March 3, 2010
Validation of Route Origination using the Resource Certificate PKI and Validation of Route Origination using the Resource Certificate PKI and
ROAs ROAs
draft-ietf-sidr-roa-validation-04.txt draft-ietf-sidr-roa-validation-05.txt
Abstract Abstract
This document defines the semantics of a Route Origin Authorization This document defines the semantics of a Route Origin Authorization
in terms of the context of an application of the Resource Public Key in terms of the context of an application of the Resource Public Key
Infrastructure to validate the origination of routes advertised in Infrastructure to validate the origination of routes advertised in
the Border Gateway Protocol. the Border Gateway Protocol.
Status of this Memo Status of this Memo
skipping to change at page 2, line 14 skipping to change at page 2, line 14
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the BSD License. described in the BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. ROA Validation Outcomes for a Route Object . . . . . . . . . . 3 2. ROA Validation Outcomes for a Route . . . . . . . . . . . . . . 3
3. Applying Validation Outcomes to Route Selection . . . . . . . . 5 3. Applying Validation Outcomes to Route Selection . . . . . . . . 6
4. Disavowal of Routing Origination . . . . . . . . . . . . . . . 6 4. Disavowal of Routing Origination . . . . . . . . . . . . . . . 6
5. Route Object Validation Lifetime . . . . . . . . . . . . . . . 7 5. Route Validation Lifetime . . . . . . . . . . . . . . . . . . . 7
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 8
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8
8.1. Normative References . . . . . . . . . . . . . . . . . . . 8 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8.2. Informative References . . . . . . . . . . . . . . . . . . 8 9.1. Normative References . . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 9.2. Informative References . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction 1. Introduction
This document defines the semantics of a Route Origin Authorization This document defines the semantics of a Route Origin Authorization
(ROA) in terms of the context of an application of the Resource (ROA) in terms of the context of an application of the Resource
Public Key Infrastructure (RPKI) [I-D.ietf-sidr-arch] to validate the Public Key Infrastructure (RPKI) [I-D.ietf-sidr-arch] to validate the
origination of routes advertised in the Border Gateway Protocol (BGP) origination of routes advertised in the Border Gateway Protocol (BGP)
[RFC4271]. [RFC4271].
The RPKI is based on a hierarchy of Resource Certificates that are The RPKI is based on a hierarchy of Resource Certificates that are
skipping to change at page 3, line 29 skipping to change at page 3, line 29
System (AS) numbers to the Subject of a certificate, identified by System (AS) numbers to the Subject of a certificate, identified by
the unique association of the Subject's private key with the public the unique association of the Subject's private key with the public
key contained in the Resource Certificate. The RPKI is structured key contained in the Resource Certificate. The RPKI is structured
such that each current Resource Certificate matches a current such that each current Resource Certificate matches a current
resource allocation or assignment. This is further described in resource allocation or assignment. This is further described in
[I-D.ietf-sidr-arch]. [I-D.ietf-sidr-arch].
ROAs are digitally signed objects that bind an address to an AS ROAs are digitally signed objects that bind an address to an AS
number, signed by the address holder. A ROA provides a means of number, signed by the address holder. A ROA provides a means of
verifying that an IP address block holder has authorized a particular verifying that an IP address block holder has authorized a particular
AS to originate route objects in the inter-domain routing environment AS to originate routes in the inter-domain routing environment for
for that address block. ROAs are described in that address block. ROAs are described in
[I-D.ietf-sidr-roa-format]. ROAs are intended to fit within the [I-D.ietf-sidr-roa-format]. ROAs are intended to fit within the
requirements for adding security to inter-domain routing. requirements for adding security to inter-domain routing.
This document describes the semantic interpretation of a ROA, with This document describes the semantic interpretation of a ROA, with
particular reference to application in inter-domain routing relating particular reference to application in inter-domain routing relating
to the origination of route objects, and the intended scope of the to the origination of routes, and the intended scope of the authority
authority that is conveyed in the ROA. that is conveyed in the ROA.
2. ROA Validation Outcomes for a Route Object 2. ROA Validation Outcomes for a Route
A "route object" is an address prefix and an associated set of A "route" is unit of information that associates a set of
routing attributes. In terms of validation of the route object in destinations described by an IP address prefix with a set of
the context of BGP [RFC4271]the address prefix value and the "origin attributes of a path to those destinations, as defined in section 1.1
AS" are used in the ROA validation operation. The route object's of [RFC4271].
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 A route's "origin AS" is the final element of the route object's
that the route object is an aggregate, then the origin AS is taken as AS_PATH attribute. If the final AS_PATH element is an AS Set,
the AS component of the AGGREGATOR attribute [RFC4271]. indicating that the route is an aggregate, then the origin AS is
taken as the AS component of the AGGREGATOR attribute [RFC4271]. In
the case where there is an AS Set as the final AS_PATH element and no
AGGREGATOR attribute is present then the origin AS is the AS
immediately preceding the AS Set in the AS_PATH, and if there is no
such AS then the route's origin AS cannot be determined.
In terms of validation of a route in the context of a routing
environment, the address prefix value and the origin AS are used in
the ROA validation operation.
It is assumed here that a Relying Party (RP) has access to a local It is assumed here that a Relying Party (RP) has access to a local
cache of the complete set of valid ROAs when performing validation of cache of the complete set of valid ROAs when performing validation of
a route object. (Valid ROAs are defined as ROAs that are determined a route. (Valid ROAs are defined as ROAs that are determined to be
to be syntactically correct and are signed using a signature that can syntactically correct and are signed using a signature that can be
be verified using the RPKI, as described in verified using the RPKI, as described in [I-D.ietf-sidr-roa-format].)
[I-D.ietf-sidr-roa-format].) The RP needs to match a route object to The RP needs to match a route to one or more candidate valid ROAs in
one or more candidate valid ROAs in order to determine a validation order to determine a validation outcome, which, in turn, can be used
outcome, which, in turn, can be used to determine the appropriate to determine the appropriate local actions to perform on the route.
local actions to perform on the route object.
This approach to route object origination validation uses a model of This approach to route origination validation uses a model of
"positive" attestations, where route objects that cannot be validated "positive" attestations, with an associated inference that route that
within the RPKI framework would conventionally be treated by a RP as cannot be validated within the RPKI framework would conventionally be
"invalid". However, the considerations of accommodating environments interpreted by a RP as "invalid". However, the considerations of
of partial adoption of the use of ROAs, where only a subset of accommodating environments of partial adoption of the use of ROAs,
validly advertised address prefixes have associated published ROAs where only a subset of validly advertised address prefixes have
within the structure of the RPKI, imply some modification to this associated published ROAs within the structure of the RPKI, imply
model of positive attestation. In the context of route object some modification to this model of positive attestation. In the
validation it is assumed that once an address prefix is described in context of route validation it is assumed that once an address prefix
a ROA, then this ROA speifically encompasses all address prefixes is described in a ROA, then this ROA specifically encompasses all
that are more specific than that described in the ROA. Thus, any address prefixes that are more specific than that described in the
route object for more specific address prefix than that described by ROA. Thus, any route for more specific address prefix than that
any valid ROA that does not itself have a matching valid ROA is described by any valid ROA that does not itself have a matching valid
considered to be "invalid". However, routes objects for address ROA is considered to be "invalid". However, routes objects for
prefixes that are not fully described by any single ROA, i.e., those address prefixes that are not fully described by any single ROA,
route objects whose address prefixes may be an aggregate of address i.e., those route objects whose address prefixes may be an aggregate
prefixes described in a valid ROA, or have address prefixes where of address prefixes described in a valid ROA, or have address
there is no intersection with any ROA, and are not matched by any ROA prefixes where there is no intersection with any ROA, and are not
and are not a more specific of any ROA cannot be reliably classified matched by any ROA and are not a more specific of any ROA, cannot be
as "invalid" in a partial deployment scenario. Such route objects reliably classified as "invalid" in a partial deployment scenario.
have a validation outcome of "unknown". Such routes have a validation outcome of "unknown".
The validation condition of a route object with a prefix and an The validation condition of a route with a prefix and an origin AS
origin AS when using single ROA for validation is summarized in the when using single ROA for validation is summarized in the following
following table: table:
Prefix matching non-matching Prefix matching non-matching
AS AS AS AS
+---------+-------------+ +---------+-------------+
Covering | unknown | unknown | Covering | unknown | unknown |
Aggregate | | | Aggregate | | |
+---------+-------------+ +---------+-------------+
match ROA | valid | invalid | match ROA | valid | invalid |
prefix | | | prefix | | |
+---------+-------------+ +---------+-------------+
More | invalid | invalid | More | invalid | invalid |
Specific | | | Specific | | |
than ROA | | | than ROA | | |
+---------+-------------+ +---------+-------------+
In an environment of a collection of ROAs, a route object is In an environment of a collection of ROAs, a route is considered to
considered to be "valid" if any ROA provides a "valid" outcome. It be "valid" if any ROA provides a "valid" outcome. It is considered
is considered to be "invalid" if one (or more) ROAs provide an to be "invalid" if one (or more) ROAs provide an "invalid" outcome
"invalid" outcome and no ROAs provide a "valid" outcome. It is and no ROAs provide a "valid" outcome. It is considered to be
considered to be "unknown" when no ROA produces either a "valid" or "unknown" when no ROA produces either a "valid" or an "invalid"
an "invalid" outcome. outcome.
Route object validation is defined by the following procedure: Route validation is defined by the following procedure:
1. Select all valid ROAs that include a ROAIPAddress value that 1. Select all valid ROAs that include a ROAIPAddress value that
either matches, or is a covering aggregate of, the address either matches, or is a covering aggregate of, the address
prefix in the route object. prefix in the route.
2. If the set of candidate ROAs is empty then the validation 2. If the set of candidate ROAs is empty then the validation
procedure stops with an outcome of "unknown". procedure stops with an outcome of "unknown".
3. If any of the selected ROAs has an asID value that matches the 3. If any of the selected ROAs has an asID value that matches the
origin AS in the route object, and either the route object's origin AS in the route, and the route object's address prefix
address prefix precisely matches a ROAIPAddress in the ROA, or matches a ROAIPAddress in the ROA (where "match" is defined as
the route object's address prefix is a more specific prefix of where the route object's address precisely matches the
a ROAIPAddress, and the route object's prefix length value is ROAIPAddress, or where the ROAIPAddress includes a maxLength
less than or equal to the ROAIPAddress' maxLength value, then element, and the route's address prefix is a more specific
the validation procedure stops with an outcome of "valid". prefix of the ROAIPAddress, and the route's address 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 4. Otherwise, the validation procedure stops with an outcome of
"invalid". "invalid".
3. Applying Validation Outcomes to Route Selection 3. Applying Validation Outcomes to Route Selection
Within the framework of the abstract model of the operation of inter- Within the framework of the abstract model of the operation of inter-
domain routing using BGP [RFC4271], a received prefix announcement domain routing using BGP [RFC4271], a received prefix announcement
from a routing peer is compared to all announcements for this prefix from a routing peer is compared to all announcements for this prefix
received from other routing peers and a route selection procedure is received from other routing peers and a route selection procedure is
used to select the "best" route object from this candidate set. used to select the "best" route from this candidate set.
The route object validation outcome, described in Section 2, of The route validation outcome, described in Section 2, of "unknown",
"unknown", "valid" or "invalid" may be used as part of the "valid" or "invalid" may be used as part of the determination of the
determination of the local degree of preference, in which case the local degree of preference, in which case the local order of
local order of preference is as follows: preference is as follows:
"valid" is to be preferred over "valid" is to be preferred over
"unknown", which itself is to be preferred over "unknown", which itself is to be preferred over
"invalid". "invalid".
It is a matter of local routing policy as to the actions to be It is a matter of local routing policy as to the actions to be
undertaken by a routing entity in processing route objects with undertaken by a routing entity in processing routes with "unknown"
"unknown" validation outcomes. Due to considerations of partial use validation outcomes. Due to considerations of partial use of ROAs in
of ROAs in heterogeneous environments, such as in the public heterogeneous environments, such as in the public Internet, it is
Internet, it is advised that local policy settings should not result advised that local policy settings should not result in "unknown"
in "unknown" validation outcomes being considered as sufficient validation outcomes being considered as sufficient grounds to reject
grounds to reject a route object outright from further consideration a route outright from further consideration as a local "best" route.
as a local "best" route.
It is a matter of local routing policy as to whether "invalid" route It is a matter of local routing policy as to whether "invalid" routes
objects are considered to be ineligible for further consideration in are considered to be ineligible for further consideration in a route
a route selection process. A possible consideration here is one of selection process. A possible consideration here is one of potential
potential circularity of dependence. If the authoritative circularity of dependence. If the authoritative publication point of
publication point of the repository of ROAs, or that of any the repository of ROAs, or that of any certificate used in relation
certificate used in relation to an address prefix, is located at an to an address prefix, is located at an address that lies within the
address that lies within the address prefix described in a ROA, then address prefix described in a ROA, then the repository can only be
the repository can only be accessed by the RP once a route for the accessed by the RP once a route for the prefix has been accepted by
prefix has been accepted by the RP's local routing domain. It is the RP's local routing domain. It is also noted that the propagation
also noted that the propagation time of RPKI objects may be different time of RPKI objects may be different to the propagation time of
to the propagation time of route objects, and that route objects may routes, and that routes may be learned by an RP's routing system
be received before the RP's local repository cache picks up the before the RP's local RPKI repository cache picks up the associated
associated ROAs and recognises them as valid within the RPKI. ROAs and recognises them as valid within the RPKI.
4. Disavowal of Routing Origination 4. Disavowal of Routing Origination
A ROA is a positive attestation that a prefix holder has authorized 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 an AS to originate a route for this prefix into the inter-domain
routing system. It is possible for a prefix holder to construct an routing system. It is possible for a prefix holder to construct an
authorization where no valid AS has been granted any such authority authorization where no valid AS has been granted any such authority
to originate a route object for an address prefix. This is acheived to originate a route for an address prefix. This is achieved by
by using a ROA where the ROA's subject AS is one that must never be using a ROA where the ROA's subject AS is one that must never be used
used in any routing context. Specifically, AS 0 is reserved by the in any routing context. Specifically, AS 0 is reserved by the IANA
IANA such that it "may be use [sic] to identify non-routed networks" such that it "may be use [sic] to identify non-routed networks"
[IANA.AS-Registry]. [IANA.AS-Registry].
A ROA with a subject of AS 0 is an attestation by the holder of a 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 that the prefix described in the ROA, and any more specific
prefix, SHOULD NOT be used in a routing context. prefix, SHOULD NOT be used in a routing context.
The route object validation procedure, described in Section 2, will The route validation procedure, described in Section 2, will provide
provide a "valid" outcome if any ROA matches the address prefix and a "valid" outcome if any ROA matches the address prefix and origin
origin AS, even if other valid ROAs would provide an "invalid" AS, even if other valid ROAs would provide an "invalid" validation
validation outcome if used in isolation. Consequently, an AS 0 ROA outcome if used in isolation. Consequently, an AS 0 ROA has a lower
has a lower preference than any other ROA that has a routeable AS as preference than any other ROA that has a routeable AS as its subject.
its subject. This allows a prefix holder to use an AS 0 ROA to This allows a prefix holder to use an AS 0 ROA to declare a default
declare a default condition that any route object that is equal to, condition that any route that is equal to, or more specific than the
or more specific than the prefix to be considered to be invalid, prefix to be considered to be invalid, while also allowing other
while also allowing other concurrently issued ROAs to describe valid concurrently issued ROAs to describe valid origination authorizations
origination authorizations for more specific prefixes. for more specific prefixes.
By convention, an AS 0 ROA SHOULD have a maxLength value of 32 for By convention, an AS 0 ROA SHOULD have a maxLength value of 32 for
IPv4 addresses and 128 for IPv6 addresses, although in terms of route IPv4 addresses and 128 for IPv6 addresses, although in terms of route
object validation the same outcome would be achieved with any valid validation the same outcome would be achieved with any valid
maxLength value, or even if the maxLength element were to be omitted maxLength value, or even if the maxLength element were to be omitted
from the ROA. from the ROA.
Also by convention, an AS 0 ROA SHOULD be the only ROA issued for a Also by convention, an AS 0 ROA SHOULD be the only ROA issued for a
given address prefix, although again this is not a strict given address prefix, although again this is not a strict
requirement. An AS 0 ROA can coexist with ROAs that have different 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 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. ROA does not alter the route validation outcome in any way.
5. Route Object Validation Lifetime 5. Route Validation Lifetime
The "lifetime" of a validation outcome refers to the time period The "lifetime" of a validation outcome refers to the time period
during which the original validation outcome can be still applied. during which the original validation outcome can be still applied.
The implicit assumption here is that when the validation lifetime The implicit assumption here is that when the validation lifetime
expires the routing object SHOULD be re-tested for validity. expires the routing object SHOULD be re-tested for validity.
The validation lifetime for a ROA is controlled by the Valid times The validation lifetime for a ROA is controlled by the Valid times
specified in the End Entity (EE) Certificate used to sign the ROA, specified in the End Entity (EE) Certificate used to sign the ROA,
and the valid times of those certificates in the certification path and the valid times of those certificates in the certification path
used to validate the EE Certificate. A ROA validation "expires" at used to validate the EE Certificate. A ROA validation "expires" at
skipping to change at page 7, line 44 skipping to change at page 8, line 16
ROA issuers should be aware of the validation implication in issuing ROA issuers should be aware of the validation implication in issuing
a ROA, in that a ROA implicitly invalidates all route objects that a ROA, in that a ROA implicitly invalidates all route objects that
have more specific prefixes with a prefix length greater than have more specific prefixes with a prefix length greater than
maxLength, and all originating AS's other than the AS listed in the maxLength, and all originating AS's other than the AS listed in the
collection of ROAs for this prefix. collection of ROAs for this prefix.
A conservative operational practice would be to ensure the issuing of A conservative operational practice would be to ensure the issuing of
ROAs for all more specific prefixes with distinct origination AS's ROAs for all more specific prefixes with distinct origination AS's
prior to the issuing of ROAs for larger encompassing address blocks, prior to the issuing of ROAs for larger encompassing address blocks,
in order to avoid inadvertent invalidation of valid route objects in order to avoid inadvertent invalidation of valid routes during ROA
during ROA generation. generation.
ROA issuers should also be aware that if they generate a ROA for one ROA issuers should also be aware that if they generate a ROA for one
origin AS, then if the prefix holder authorises multiple AS's to origin AS, then if the address prefix holder authorises multiple AS's
originate route objects it is necessary for a ROA be generated for to originate routes for a given address prefix, then is necessary for
every such authorized AS. a ROA be generated for every such authorized AS.
7. IANA Considerations 7. IANA Considerations
[There are no IANA Considerations.] [There are no IANA Considerations.]
8. References 8. Acknowledgements
8.1. Normative References The authors would like to acknowledge the helpful contributions of
John Scudder and Stephen Kent in preparing this document, and also
the contributions of many members of the SIDR Working Group in
response to presentations of this material in SIDR WG sessions. The
authors also acknowledge prior work undertaken by Tony Bates, Randy
Bush, Tony Li, and Yakov Rekhter as the validation outcomes described
here reflect the authentication outcomes and semantics of origin AS
verification described in [exI-D.bates].
9. References
9.1. Normative References
[I-D.ietf-sidr-arch] [I-D.ietf-sidr-arch]
Lepinski, M. and S. Kent, "An Infrastructure to Support Lepinski, M. and S. Kent, "An Infrastructure to Support
Secure Internet Routing", draft-ietf-sidr-arch (work in Secure Internet Routing", draft-ietf-sidr-arch (work in
progress), October 2009. progress), October 2009.
[I-D.ietf-sidr-roa-format] [I-D.ietf-sidr-roa-format]
Lepinski, M., Kent, S., and D. Kong, "An Infrastructure to Lepinski, M., Kent, S., and D. Kong, "An Infrastructure to
Support Secure Internet Routing", Support Secure Internet Routing",
draft-ietf-sidr-roa-format (work in progress), draft-ietf-sidr-roa-format (work in progress),
skipping to change at page 8, line 35 skipping to change at page 9, line 19
Addresses and AS Identifiers", RFC 3779, June 2004. Addresses and AS Identifiers", RFC 3779, June 2004.
[RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway
Protocol 4 (BGP-4)", RFC 4271, January 2006. Protocol 4 (BGP-4)", RFC 4271, January 2006.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, May 2008. (CRL) Profile", RFC 5280, May 2008.
8.2. Informative References 9.2. Informative References
[IANA.AS-Registry] [IANA.AS-Registry]
IANA, "IANA Autonomous System Number Registry", IANA, "IANA Autonomous System Number Registry",
March 2010. March 2010.
[exI-D.bates]
Bates, T., Bush, R., Li, T., and Y. Rekhter, "DNS-based
NLRI origin AS verification in BGP",
draft-bates-bgp4-nlri-orig-verif-00.txt (work in
progress), January 1998.
Authors' Addresses Authors' Addresses
Geoff Huston Geoff Huston
Asia Pacific Network Information Centre Asia Pacific Network Information Centre
Email: gih@apnic.net Email: gih@apnic.net
George Michaelson George Michaelson
Asia Pacific Network Information Centre Asia Pacific Network Information Centre
Email: ggm@apnic.net Email: ggm@apnic.net
 End of changes. 31 change blocks. 
117 lines changed or deleted 146 lines changed or added

This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/