One document matched: draft-ietf-sidr-roa-validation-00.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<rfc category="info" docName="draft-ietf-sidr-roa-validation-00.txt"
ipr="full3978">
<front>
<title abbrev="Route Validation">Validation of Route Origination in BGP
using the Resource Certificate PKI</title>
<author fullname="Geoff Huston" initials="G." surname="Huston">
<organization abbrev="APNIC">Asia Pacific Network Information
Centre</organization>
<address>
<email>gih@apnic.net</email>
<uri>http://www.apnic.net</uri>
</address>
</author>
<author fullname="George Michaelson" initials="G." surname="Michaelson">
<organization abbrev="APNIC">Asia Pacific Network Information
Centre</organization>
<address>
<email>ggm@apnic.net</email>
<uri>http://www.apnic.net</uri>
</address>
</author>
<date year="2008" />
<area>Individual Submission</area>
<workgroup>Individual Submission</workgroup>
<abstract>
<t>This document defines an application of the Resource Public Key
Infrastructure to validate the origination of routes advertised in the
Border Gateway Protocol. The proposed application is intended to fit
within the requirements for adding security to inter-domain routing,
including the ability to support incremental and piecemeal deployment,
and does not require any changes to the specification of BGP.</t>
</abstract>
</front>
<middle>
<section anchor="intro" title="Introduction">
<t>This document defines an application of the Resource Public Key
Infrastructure (RPKI) to validate the origination of routes advertised
in the Border Gateway Protocol (BGP) <xref target="RFC4271"></xref>.</t>
<t>The RPKI is based on Resource Certificates. Resource Certificates are
X.509 certificates that conform to the PKIX profile <xref
target="RFC5280"></xref>, and to the extensions for IP addresses and AS
identifiers <xref target="RFC3779"></xref>. 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 PKI is
structured such that each current Resource Certificate matches a current
resource allocation or assignment. This is described in <xref
target="I-D.ietf-sidr-arch"></xref>.</t>
<t>Route Origin Authorizations (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
authorized an AS to originate route objects in the inter-domain routing
environment for that address block. ROAs are described in <xref
target="I-D.ietf-sidr-roa-format"></xref>.</t>
<t>Bogon Origin Attestations (BOAs) are digitally signed objects that
describe a collection of address prefixes and AS numbers that are not
authorised by the right-of-use holder to be advertised in the
inter-domain routing system <xref
target="I-D.ietf-sidr-boa"></xref>.</t>
<t>This document describes how ROA and BOA validation outcomes can be
used in the BGP route selection process, and how the proposed
application of ROAs and BOAs are intended to fit within the requirements
for adding security to inter-domain routing <xref
target="ID.ietf-rpsec-bgpsecrec"></xref>, including the ability to
support incremental and piecemeal deployment. This proposed application
does not require any changes to the specification of BGP protocol
elements. The application may be used as part of BGP's local route
selection algorithm <xref target="RFC4271"></xref>.</t>
</section>
<section anchor="Outcomes"
title="Validation Outcomes of a BGP Route Object">
<t>A BGP Route Object is an address prefix and a set of attributes. In
terms of ROA and BOA validation the prefix value and the origin AS are
used in the validation operation.</t>
<t>If the route object is an aggregate and the AS Path contains an AS
Set, then the origin AS is considered to be the AS described as the
AGGREGATOR <xref target="RFC4271"></xref> of the route object.</t>
<t>ROA validation is described in <xref
target="I-D.ietf-sidr-roa-format"></xref>, and the outcome of the
validation operation is that the ROA is valid in the context of the
RPKI, or validation has failed.</t>
<t>BOA validation is described in <xref
target="I-D.ietf-sidr-boa"></xref>, and the outcome of the validation
operation is that the BOA is valid in the context of the RPKI, or
validation has failed.</t>
<t>There appears to be two means of matching a route object to a ROA:
decoupled and linked.</t>
<section title="Decoupled Validation">
<t>The decoupled approach is where the ROAs are managed and
distributed independently of the operation of the routing protocol and
a local BGP speaker has access to a local cache of the complete set of
ROAs and the RPKI data set when performing a validation operation.</t>
<t>In this case the BGP route object does not refer to a specific ROA.
The relying party to match a route object to one or more candidate
valid ROAs and BOAs in order to determine the appropriate local
actions to perform on the route object.</t>
<t>The relying party selects the set of ROAs where the address prefix
in the route object either exactly matches an ROAIPAddress (matching
both the address prefix value and the prefix length), or where the
route object spans a block of addresses that is included in the span
described by the ROA's address prefix value and length and where the
route object's prefix length is less than the ROA's prefix length and
greater then or equal to the ROA's corresponding maxLength
attribute.</t>
<t>The following outcomes are possible using the defined ROA
validation procedure for each ROA in this set:</t>
<t><list style="symbols">
<t>An "exact match" is a valid ROA where the address prefix in the
route object exactly matches a prefix listed in the ROA and the
origin AS in the route object matches the origin AS listed in the
ROA.<vspace blankLines="1" /></t>
<t>A "covering match" is a valid ROA where the address prefix in
the ROA is a covering aggregate of the prefix in the route object,
and the prefix length of the route object is greater than or equal
to the ROA's maxLength attribute, and the origin AS in the route
object matches the AS listed in the ROA.<vspace
blankLines="1" /></t>
<t>An "exact mismatch" is a ROA where the address prefix in the
route object exactly matches a prefix listed in the ROA and the
origin AS of the route object does not match the AS listed in the
ROA.<vspace blankLines="1" /></t>
<t>A "covering mismatch" is a ROA where the address prefix in the
ROA is a covering aggregate of the prefix in the route object, the
prefix length of the route object is greater than or equal to the
ROA's maxLength attribute, and the origin AS of the route object
does not match the AS listed in the ROA.<vspace
blankLines="1" /></t>
<t>"ROA missing" is where there are no exact or covering matches,
no exact or covering mismatches and no exact of covering failures
in the RPKI repository.</t>
</list></t>
<t>In this case the ROA that would be used for the validation function
is selected from the set such that the most specific valid ROA that
matches or covers the route object address prefix and where the route
object origin AS matches the ROA AS. If there is no such ROA in the
set, then the most specific valid ROA is selected. If there is no such
ROA in the set then the most specific ROA is selected.</t>
<t>The set of BOAs that are used in validation are composed of the set
of valid BOAs where the origin AS matches an AS described in a BOA, or
where the BOA's address prefix is an exact match or a covering
aggregate of the route object. In the case that the validation outcome
using ROAs is one of ("exact mismatch", "covering mismatch" or "ROA
missing"), then the validation outcome of the BOA changes the overall
validation result to "bogon match".</t>
</section>
<section title="Linked Validation">
<t>The linked approach requires the route object to reference a ROA
either by inclusion of the ROA as an attribute of the route object, or
inclusion of a identity field in an attribute of the route object as a
means of identifying a particular ROA. The relying party will still
need check for BOAs that refer to this route object in the case that
an exact match or a covering match is not present. The set of possible
outcomes of linked validation is as follows:</t>
<t><list style="symbols">
<t>"exact match"<vspace blankLines="1" /></t>
<t>"covering match"<vspace blankLines="1" /></t>
<t>"exact mismatch"<vspace blankLines="1" /></t>
<t>"covering mismatch"<vspace blankLines="1" /></t>
<t>"bogon match"<vspace blankLines="1" /></t>
<t>"ROA missing"</t>
</list></t>
</section>
</section>
<section anchor="Selection"
title="Applying Validation Outcomes to BGP Route Selection">
<t>Within the framework of the abstract model of BGP operation, a
received prefix announcement from a peer is compared to all
announcements for this prefix received from other peers and a route
selection procedure is used to select the "best" route object from this
candidate set which is then used locally by placing it in the loc-RIB,
and is announced to peers as the local "best" route.</t>
<t>It is proposed that the validation outcome be used as part of the
determination of the local degree of preference as defined in section
9.1.1 of the BGP specification <xref target="RFC4271"></xref>.</t>
<t>In the case of partial deployment of ROAs there are a very limited
set of circumstances where the outcome of ROA validation can be used as
grounds to reject all consideration of the route object as an invalid
advertisement. While the presence of a valid ROA that matches the
advertisement is a strong indication that an advertisement matches the
authority provided by the prefix holder to advertise the prefix into the
routing system, the absence of a ROA or the invalidity of a covering ROA
does not provide a conclusive indication that the advertisement has been
undertaken without the address holder's permission, unless the object is
described in a BOA.</t>
<t>In the case of a partial deployment scenario or RPKI route
attestation objects, when some prefixes are described in ROAs or BOAs
and others are not, then the relative ranking of validation outcomes
from the highest (most preferred) to the lowest (least preferred) degree
of preference are proposed as follows:</t>
<t><list style="numbers">
<t>"exact match"<vspace blankLines="1" />An exact match indicates
that the prefix has been allocated and is routeable, and that the
prefix right-of-use holder has authorized the originating AS to
originate precisely this announcement.<vspace blankLines="1" /></t>
<t>"covering match"<vspace blankLines="1" />A covering match is
slightly less preferred because it is possible that the address
holder of the aggregate has allocated the prefix in question to a
different party, and both the aggregate address holder and the
prefix holder have signed ROAs and are advertising the
prefix.<vspace blankLines="1" /></t>
<t>"ROA missing"<vspace blankLines="1" />In the case of partial
deployment of ROAs the absence of validation credentials is neutral,
in that there is no grounds to increase or decrease the relative
degree of preference for the prefix.<vspace blankLines="1" /></t>
<t>"covering mismatch"<vspace blankLines="1" />A covering mismatch
is considered to be less preferable than a neutral position in that
the address holder of a covering aggregate has indicated an
originating AS that is not the originating AS of this announcement.
On the other hand it may be the case that this prefix has been
validly allocated to another party who has not generated a ROA for
this prefix even through the announcement is valid.<vspace
blankLines="1" /></t>
<t>An "exact mismatch"<vspace blankLines="1" />Here the exact match
prefix holder has validly provided an authority for origination by
an AS that is not the AS that is originating this announcement. This
would appear to be a bogus announcement by inference.<vspace
blankLines="1" /></t>
<t>"bogon match"<vspace blankLines="1" />Here the right-of-use
holder of the AS or address prefix has explicitly tagged the address
prefix or the AS as a "bogon". This implies that the announcement
has been made without the appropriate authority, and the prefix
should be ranked at a level commensurate with rejecting the route
object.</t>
</list></t>
<t>In the case of comprehensive deployment of ROAs the absence of a
specific origination authority for the route object should render it as
an unusable for routing. In this case the relative degree of preference
the relative local degree of preference can be adjusted such that cases
3 through 5 of the above list have an equal level of lesser
preference.</t>
<section anchor="Rejection"
title="Using Validation Outcomes to reject BGP advertisements">
<t>The use of a validation outcome of a missing ROA, or a covering or
exact mismatch as sufficient grounds to reject a route object should
be undertaken with care. The consideration here is one of potential
circularity of dependence. If the authoritative publication point of
the repository of ROAs or any certificates used to related to an
address prefix is stored at a location 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. 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 relying party's local repository cache picks up
the associated ROAs and recognises them as valid within the RPKI.</t>
<t>For these reasons it is proposed that even in the case of
comprehensive deployment of ROAs a missing ROA or a mismatch should
not be considered as sufficient grounds to reject a route
advertisement.</t>
</section>
</section>
<section anchor="Issues" title="Open Issues">
<t>This document provides a description of how ROAs and BOAs could be
used by a BGP speaker.</t>
<t>It is noted that the proposed procedure requires no changes to the
operation of BGP.</t>
<t>It is also noted that the decoupled and linked approach are not
mutually exclusive, and the same procedure can be applied to route
objects that contain an explicit pointer to the associated ROA and route
objects where the local BGP speaker has to create a set of candidate
ROAs that could be applied to a route object. However, there are a
number of questions about this approach that are not resolved here.</t>
<t>Some open issues at this point are:<vspace blankLines="1" /> <list
style="symbols">
<t>When should validation of an advertised prefix be performed by a
BGP speaker? Is it strictly necessary to perform validation at a
point prior to loading the object into the Adj-RIB-In structure, or
once the object has been loaded into Adj-RIB-In, or at a later time
that is determined by a local configuration setting? Should
validation be performed each time a route object is updated by a
peer even when the origin AS has not altered? <vspace
blankLines="1" /></t>
<t>What is the lifetime of a validation outcome? When should the
routing object be revalidated? Should the validation outcome be
regarded as valid until the route object is withdrawn or further
updated, or should validation occur at more frequent intervals?
<vspace blankLines="1" /></t>
<t>Are there circumstances that would allow a route object to be
removed from further consideration in route selection upon a
validation failure, similar to the actions of Route Flap
Damping?<vspace blankLines="1" /></t>
<t>Can ROA validation be performed on a per-AS basis rather than a
per-BGP speaker? What BGP mechanisms would be appropriate to support
such a mode of operation?<vspace blankLines="1" /></t>
<t>If a relying party had access to RPKI signed objects with
comparable semantics to a Route Registry's Route Object (RRRO),
namely the acknowledgement by an AS holder that it intends to
originate an advertisement for a specified address prefix, how would
this validation procedure be altered. Presumably these signed RRROs
would need to describe the complete set of address prefixes that may
be announced by this originating AS in order to be of use in this
context. Failure to match a valid RPKI RRRO would then be
commensurate with a "bogon match", namely rejection of the route
object, in a manner similar to the operation of a filter list
constructed from a Route Registry.</t>
</list></t>
</section>
<section title="Security Considerations">
<t>[To be Completed - the intent of this validation approach is to
improve the level of confidence in route objects in the IDR domain. It
is noted that this approach does not allow for 'comprehensive'
validation given that there remains some issues of potential circularity
of dependence and time lags between the propagation of information in
the routing system and propagation of information in the RPKI, and
issues of treatment of unauthorised route objects in the scenario of
partial use of the RPKI. The consequence is that ROAs can increase the
confidence in the validity of route objects that match a valid ROA, but
cannot perform the opposite of explicitly rejecting invalid route
objects. To assist in the case of rejecting invalid route objects the
BOA has been used as a means of explicit rejection of certain classes
route objects. The implication is that RRs should issue both ROAs and
BOAs in order to provide the greatest level of information that will
allow relying parties to make appropriate choices in terms of route
preference selection.]</t>
</section>
<section title="IANA Considerations">
<t>[There are no IANA considerations in this document at this stage.
Later iterations of this draft may propose to add a ROA identifier into
the BGP attribute set]</t>
</section>
</middle>
<back>
<references title="Normative References">
<reference anchor="I-D.ietf-sidr-arch">
<front>
<title>An Infrastructure to Support Secure Internet Routing</title>
<author fullname="M. Lepinski" initials="M" surname="Lepinski">
<organization>BBN Technologies</organization>
</author>
<author fullname="S. Kent" initials="S" surname="Kent">
<organization>BBN Technologies</organization>
</author>
<author fullname="R. Barnes" initials="R" surname="Barnes">
<organization>BBN Technologies</organization>
</author>
<date day="25" month="February" year="2008" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-sidr-arch" />
<format target="http://draft-ietf-sidr-arch.potaroo.net" type="TXT" />
</reference>
<reference anchor="I-D.ietf-sidr-roa-format">
<front>
<title>An Infrastructure to Support Secure Internet Routing</title>
<author fullname="M. Lepinski" initials="M" surname="Lepinski">
<organization>BBN Technologies</organization>
</author>
<author fullname="S. Kent" initials="S" surname="Kent">
<organization>BBN Technologies</organization>
</author>
<author fullname="D. Kong" initials="D" surname="Kong">
<organization>BBN Technologies</organization>
</author>
<date day="7" month="July" year="2008" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-sidr-roa-format" />
<format target="http://draft-ietf-sidr-roa-format.potaroo.net"
type="TXT" />
</reference>
<reference anchor="I-D.ietf-sidr-boa">
<front>
<title>Profile for Bogon Origin Attestations (BOAs)</title>
<author fullname="G. Huston" initials="G" surname="Huston">
<organization>APNIC</organization>
</author>
<author fullname="T. Manderson" initials="T" surname="Manderson">
<organization>APNIC</organization>
</author>
<author fullname="G. Michaelson" initials="G" surname="Michaelson">
<organization>APNIC</organization>
</author>
<date day="7" month="August" year="2008" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-sidr-bogons" />
<format target="http://draft-ietf-sidr-roa-bogons.potaroo.net"
type="TXT" />
</reference>
<reference anchor="ID.ietf-rpsec-bgpsecrec">
<front>
<title>BGP Security Requirements</title>
<author fullname="B. Christian" initials="B" surname="Christian">
<organization>BBN Technologies</organization>
</author>
<author fullname="T. Tauber" initials="T" surname="Tauber">
<organization>BBN Technologies</organization>
</author>
<date day="19" month="November" year="2007" />
</front>
<seriesInfo name="EXPIRED Internet-Draft"
value="draft-ietf-sidr-roa-format" />
<format target="http://draft-ietf-sidr-roa-format.potaroo.net"
type="TXT" />
</reference>
<?rfc include='./rfcs/bibxml/reference.RFC.3779.xml'?>
<?rfc include='./rfcs/bibxml/reference.RFC.4271.xml'?>
<?rfc include='./rfcs/bibxml/reference.RFC.5280.xml'?>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-22 15:42:11 |