Secure Inter-Domain Routing (SIDR)                             G. Huston
Internet-Draft                                             G. Michaelson
Intended status: Informational                                     APNIC
Expires: February 7, September 4, 2010                                 March 3, 2010                                 August 6, 2009

 Validation of Route Origination in BGP using the Resource Certificate PKI and
                                  ROAs
                 draft-ietf-sidr-roa-validation-03.txt
                 draft-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 on February 7, September 4, 2010.

Copyright Notice

   Copyright (c) 2009 2010 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 this document (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

   This  Code Components extracted from this document defines an application of the Resource Public Key
   Infrastructure to validate the origination of routes advertised must
   include Simplified BSD License text as described in Section 4.e of
   the Border 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 and does not require any changes to are provided without warranty as
   described in the specification of
   BGP. BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  ROA Validation Outcomes of for a BGP Route Object  . . . . . . . . . . 3
   3.  Applying Validation Outcomes to BGP Route 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 . . . . . . . . . . . . . . . . . . . .  8 6
   5.  Security Considerations  . . . .  Route Object Validation Lifetime  . . . . . . . . . . . . . . .  8 7
   6.  IANA  Security Considerations . . . . . . . . . . . . . . . . . . . . .  9 7
   7.  Change Log . . . . . . . . . . . . . . . . . . . . . . . . . .  9
     7.1.  Changes -02 to -03 . . . . . . . . . . . . . . . . . .  IANA Considerations . .  9
     7.2.  Changes -01 to -02 . . . . . . . . . . . . . . . . . . . . 10 8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 10 8
     8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 10 8
     8.2.  Informative References  . . . . . . . . . . . . . . . . . . 11 8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 11 8

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 authorized an a 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 a valid ROA, with
   particular reference to application in BGP inter-domain routing relating
   to the origination of route objects.

   This proposed application of validation of ROAs does not require any
   changes to objects, and the specification of BGP protocol elements.  The outcomes
   of ROA validation may be used as part intended scope of BGP's local route selection
   procedure [RFC4271]. the
   authority that is conveyed in the ROA.

2.  ROA Validation Outcomes of for a BGP Route Object

   A BGP "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 ROA

   It is assumed here that should be
   used by a Relying Party (RP) has access to validate the origination information
   contained in a 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 determined

   This approach to be syntactically correct
   and are signed using route object origination validation uses a signature model of
   "positive" attestations, where route objects that can cannot be verified using validated
   within the RPKI, RPKI framework would conventionally be treated by a RP as described 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 this ROA
   model of positive attestation.  In the context of route object
   validation function it is assumed that either the RP has determined once 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" in the context a partial deployment scenario.  Such route objects
   have a validation outcome of the RPKI, or the "unknown".

   The validation condition of a route object with a prefix and an
   origin AS when using single ROA for validation is invalid, summarized in which
   case 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 not
   considered to be used by the RP. "valid" if any ROA provides a "valid" outcome.  It
   is assumed here that considered to be "invalid" if one (or more) ROAs are managed and distributed
   independently of the operation of BGP itself, provide an
   "invalid" outcome and that no ROAs provide a local BGP
   speaker has access "valid" outcome.  It is
   considered to a local cache of the complete set of valid ROAs be "unknown" when performing no ROA produces either a route 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 any ROA of 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
          a
          ROAIPAddress ROAIPAddress, 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 to BGP Route Selection

   Within the framework of the abstract model of the operation of inter-
   domain routing using BGP operation, [RFC4271], a received prefix announcement
   from a BGP speaking routing peer is compared to all announcements for this prefix
   received from other BGP routing 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 preference, in section
   9.1.1 of which case the BGP specification [RFC4271].  The
   local degree order 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 routing policy as to the actions to be
   undertaken by a BGP instance 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 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 routing policy as to whether "invalid" route
   objects are considered to be ineligible for further consideration in the
   a route selection process.  The  A 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 route objects 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 to attest that construct 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 the ROA'S ROA's subject AS is one that will not must never be
   used in a any 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 not SHOULD 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, an AS0 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 an AS0 AS 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 ROA should SHOULD 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 ROA should SHOULD 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

   The lifetime "lifetime" of a validation outcome is not specified here.
         This specifically refers to the time period
   during which the original validation outcome can be still applied, at applied.
   The implicit assumption here is that when the
         expiration of which validation lifetime
   expires the routing object should SHOULD be re-tested for validity.  It is

   The validation lifetime for a matter of local policy setting as ROA is controlled by the Valid times
   specified in the End Entity (EE) Certificate used to whether
         a validation outcome be regarded as sign the ROA,
   and the valid until times of those certificates in the route
         object is withdrawn or further updated, or whether certification path
   used to validate the EE Certificate.  A ROA validation "expires" at
   the Validity To field of a route object should occur the signing EE certificate, or at more frequent intervals.

      *  It is such a matter of local configuration as to whether ROA
         validation
   time when there is performed on a per-AS basis rather than no certification path that can validate the ROA.
   A ROA issuer may prematurely invalidate a per-BGP
         speaker, and ROA by revoking the appropriate mechanisms EE
   certificate that was used to support a de-coupled
         framework of validation of ROAs and sign the loading 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 ROA will implicitly invalidate invalidates all route objects for that
   have more specific prefixes with a prefix length greater than
   maxLength, and all originating AS's other than the AS listed in the
   collection of ROAs. 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 prefix is authorised by holder authorises multiple AS's then
   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 -02 to -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 of
   originate route objects, 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 it appears that there is no general WG support necessary for the use of an
   explicit denial object (termed a 'BOA').  The alternative approach,
   explored in previous iterations of this draft, used a more restricted
   interpretation of a ROA that 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 to be generated for
   every such authorized AS.

7.  IANA Considerations

   [There are no WG 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), July October 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), July
              October 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