<?xml version="1.0" encoding="UTF-8"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="no"?>
<?rfc rfcedstyle="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="bcp"
     seriesNo="185" consensus="true" docName="draft-ietf-sidrops-rpkimaxlen-15"
     submissionType="IETF" number="9319" ipr="trust200902"
     consensus="true"> tocInclude="true" symRefs="true" sortRefs="true" updates="" obsoletes="" xml:lang="en" version="3">

<!-- xml2rfc v2v3 conversion 3.14.0 -->

  <front>
    <title abbrev="RPKI maxLength">The Use of maxLength in the RPKI</title> Resource Public Key Infrastructure (RPKI)</title>
    <seriesInfo name="RFC" value="9319"/>
    <seriesInfo name="BCP" value="185"/>
    <author fullname="Yossi Gilad" initials="Y." surname="Gilad">
      <organization>Hebrew University of Jerusalem</organization>
      <address>
        <postal>
                    <street>Rothburg
	  <extaddr>Rothburg Family Buildings, Edmond Buildings</extaddr>
          <street>Edmond J. Safra Campus</street>
          <city>Jerusalem</city>
                    <region></region>
          <region/>
          <code>9190416</code>
          <country>Israel</country>
        </postal>
        <email>yossigi@cs.huji.ac.il</email>
      </address>
    </author>
    <author fullname="Sharon Goldberg" initials="S." surname="Goldberg">
      <organization>Boston University</organization>
      <address>
        <postal>
          <street>111 Cummington St, MCS135</street>
          <city>Boston</city>
          <region>MA</region>
          <code>02215</code>
                    <country>USA</country>
          <country>United States of America</country>
        </postal>
        <email>goldbe@cs.bu.edu</email>
      </address>
    </author>
    <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
      <organization abbrev="USA NIST">USA National Institute of Standards and Technology</organization>
      <address>
        <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>MD</region>
          <code>20899</code>
                    <country>USA</country>
          <country>United States of America</country>
        </postal>
        <email>kotikalapudi.sriram@nist.gov</email>
      </address>
    </author>
    <author fullname="Job Snijders" initials="J." surname="Snijders">
      <organization>Fastly</organization>
      <address>
        <postal>
          <street/>
          <code/>
          <city>Amsterdam</city>
          <country>Netherlands</country>
        </postal>
        <email>job@fastly.com</email>
      </address>
    </author>
    <author fullname="Ben Maddison" initials="B." surname="Maddison">
      <organization>Workonline Communications</organization>
      <address>
        <postal>
          <street>114 West St</street>
          <city>Johannesburg</city>
          <code>2196</code>
          <country>South Africa</country>
        </postal>
        <email>benm@workonline.africa</email>
      </address>
    </author>
    <date year="2022" month="October" />

        <workgroup>Internet Engineering Task Force (IETF)</workgroup>
    <area>ops</area>
    <workgroup>sidrops</workgroup>
    <keyword>Secure Internet routing</keyword>
    <keyword>Resource public key infrastructure</keyword>
    <abstract>

            <t>
                This
      <t>This document recommends ways to reduce the forged-origin hijack
      attack surface by prudently limiting the set of IP prefixes that are
      included in a Route Origin Authorization (ROA). One recommendation is to
      avoid using the maxLength attribute in ROAs except in some specific
      cases. The recommendations complement and extend those in RFC 7115. The This
      document also discusses the creation of ROAs for facilitating the use of
      Distributed Denial of Service (DDoS) mitigation services. Considerations
      related to ROAs and origin validation RPKI-based Route Origin Validation (RPKI-ROV) in the context of
      destination-based Remotely Triggered Discard Route (RTDR) (elsewhere
      referred to as "Remotely Triggered Black Hole") filtering are also
      highlighted.
      </t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction" anchor="intro">
            <t>
                The RPKI
      <name>Introduction</name>

      <t>The Resource Public Key Infrastructure (RPKI) <xref
      target="RFC6480"/> uses Route Origin Authorizations (ROAs) to create a
      cryptographically verifiable mapping from an IP prefix to a set of autonomous
                systems
      Autonomous Systems (ASes) that are authorized to originate that prefix.
      Each ROA contains a set of IP prefixes, prefixes and the AS number of one of the
      ASes authorized to originate all the IP prefixes in the set <xref
      target="RFC6482"/>.  The ROA is cryptographically signed by the party
      that holds a certificate for the set of IP prefixes.
      </t>

            <t>
                The
      <t>The ROA format also supports a maxLength attribute. According to
      <xref target="RFC6482"/>, "When
      present, the maxLength specifies the maximum length of the IP address
      prefix that the AS is authorized to advertise."  Thus, rather than
      requiring the ROA to list each prefix that the AS is authorized to
      originate, the maxLength attribute provides a shorthand that authorizes
      an AS to originate a set of IP prefixes.
      </t>

            <t>
                However,

      <t>However, measurements of RPKI deployments have found that the use of
      the maxLength attribute in ROAs tends to lead to security problems.
      In particular, measurements taken in June 2017 showed that of the
      prefixes specified in ROAs that use the maxLength attribute, 84% were
      vulnerable to a forged-origin sub-prefix hijack <xref target="HARMFUL" />.
      target="GSG17"/>.  The forged-origin prefix or sub-prefix hijack
      involves inserting the legitimate AS as specified in the ROA as the
      origin AS in the AS_PATH, and AS_PATH; the hijack can be launched against any IP
      prefix/sub-prefix that has a ROA. Consider a prefix/sub-prefix that has
      a ROA but that is unused, i.e., unused (i.e., not announced in BGP by a legitimate AS. AS). A forged
                origin
      forged-origin hijack involving such a prefix/sub-prefix can propagate
      widely throughout the Internet. On the other hand, if the
      prefix/sub-prefix were announced by the legitimate AS, then the
      propagation of the forged-origin hijack is somewhat limited because of
      its increased AS_PATH length relative to the legitimate announcement. Of
      course, forged-origin hijacks are harmful in both cases cases, but the extent
      of harm is greater for unannounced prefixes. See <xref target="hijack"/>
      for detailed discussion.
      </t>

            <t>
                For
      <t>For this reason, this document recommends that, whenever possible,
      operators SHOULD <bcp14>SHOULD</bcp14> use "minimal ROAs" that authorize only
      those IP prefixes that are actually originated in BGP, and no other
      prefixes. Further, it recommends ways to reduce the forged-origin attack
      surface by prudently limiting the address space that is included in Route Origin Authorizations (ROAs).
      ROAs. One recommendation is to avoid using the maxLength attribute in
      ROAs except in some specific cases. The recommendations complement and
      extend those in <xref target="RFC7115"/>. The document also discusses
      the creation of ROAs for facilitating the use of Distributed
                Denial of Service (DDoS) DDoS mitigation
      services.  Considerations related to ROAs and
                origin validation RPKI-ROV in the context of
      destination-based Remotely Triggered Discard Route (RTDR) (elsewhere
      referred to as "Remotely Triggered Black Hole") filtering are also
      highlighted.
      </t>
            <t>
                One
      <t>Please note that the term "RPKI-based Route Origin Validation" and
      the corresponding acronym "RPKI-ROV" that are used in this document mean the
      same as the term "Prefix Origin Validation" used in <xref target="RFC6811"/>.
      </t>
      <t>One ideal place to implement the ROA related ROA-related recommendations is in
      the user interfaces for configuring ROAs. Recommendations for
      implementors of such user interfaces are provided in <xref target="ui"/> target="ui"/>.
      </t>

            <t>
                Best current

      <t>The practices described in this document require no changes
      to the RPKI
                specification specifications and will not increase the number of signed
      ROAs in the RPKI because ROAs already support lists of IP prefixes <xref
      target="RFC6482"/>.
      </t>

            <section title="Requirements">
                <t>
                    The
      <section>
        <name>Requirements</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
                    "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
        "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
        NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
        "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
        "<bcp14>MAY</bcp14>", and "OPTIONAL" "<bcp14>OPTIONAL</bcp14>" in this document
        are to be interpreted as described in BCP 14 BCP&nbsp;14 <xref
        target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
        appear in all capitals, as shown here.
        </t>
      </section>

            <section title=" Documentation Prefixes">
                <t>
                    The
      <section>
        <name>Documentation Prefixes</name>

        <t>The documentation prefixes recommended in <xref target="RFC5737"/> are
        insufficient for use as example prefixes in this document. Therefore,
        this document uses <xref target="RFC1918" /> the address space defined in <xref target="RFC1918"/> for
        constructing example prefixes.
        </t>
                <t>
                    Note
        <t>Note that although the examples in this document are presented
        using IPv4 prefixes, all the analysis thereof and the recommendations
        made are equally valid for the equivalent IPv6 cases.
        </t>
      </section>
    </section>

        <section title="Suggested Reading">

            <t>
                It
    <section>
      <name>Suggested Reading</name>
      <t>It is assumed that the reader understands BGP <xref
      target="RFC4271"/>, RPKI <xref target="RFC6480"/>, Route Origin Authorizations (ROAs) ROAs <xref
      target="RFC6482"/>, RPKI-based Prefix Validation RPKI-ROV <xref
      target="RFC6811"/>, and BGPsec <xref target="RFC8205"/>.
      </t>
    </section>
    <section title="Forged-Origin Sub-prefix Hijack" anchor="hijack">

            <t>
                A
      <name>Forged-Origin Sub-Prefix Hijack</name>
      <t>A detailed description and discussion of forged-origin sub-prefix
      hijacks are presented here, especially considering the case when the
      sub-prefix is not announced in BGP.  The forged-origin sub-prefix hijack
      is relevant to a scenario in which:
                <list>
                    <t>
                        (1) the
      </t>
      <ol type="(%d)" spacing="normal">
      <li>the RPKI <xref target="RFC6480"/> is deployed, and
                    </t>
                    <t>
                        (2) routers and</li>
      <li>routers use RPKI origin validation RPKI-ROV to drop invalid
      routes <xref target="RFC6811" />, target="RFC6811"/>, but
                    </t>
                    <t>
                        (3) BGPsec </li>
      <li>BGPsec <xref target="RFC8205"/> (or any similar method
      to validate the truthfulness of the BGP AS_PATH attribute) is not deployed.
                    </t>
                </list>
                Note
      deployed.</li></ol>
      <t>Note that this set of assumptions accurately describes a substantial
      and growing number of large Internet networks at the time of writing.
      </t>

            <t>
                The

      <t>The forged-origin sub-prefix hijack <xref target="RFC7115" /> target="RFC7115"/>
        <xref target="GCHSS" /> target="GCHSS"/> is described here using a running example.
      </t>

            <t>
                Consider
      <t>Consider the IP prefix 192.168.0.0/16 192.168.0.0/16, which is allocated to an
      organization that also operates AS 64496.  In BGP, AS 64496 originates
      the IP prefix 192.168.0.0/16 as well as its sub-prefix 192.168.225.0/24.
      Therefore, the RPKI should contain a ROA authorizing AS 64496 to
      originate these two IP prefixes.
      </t>

            <t>
                Suppose,
      <t>Suppose, however, the organization issues and publishes a ROA
      including a maxLength value of 24:
                <list>
                    <t>
                        ROA:(192.168.0.0/16-24, AS 64496)
      </t>
                </list>
                We
      <t indent="3">ROA:(192.168.0.0/16-24, AS 64496)</t>
      <t>We refer to the above as a "loose ROA" since it authorizes AS 64496
      to originate any sub-prefix of 192.168.0.0/16 up to and including length
      /24, rather than only those prefixes that are intended to be announced
      in BGP.
      </t>

            <t>
                Because
      <t>Because AS 64496 only originates two prefixes in BGP: 192.168.0.0/16 BGP (192.168.0.0/16
      and
                192.168.225.0/24, 192.168.225.0/24), all other prefixes authorized by the "loose ROA" loose ROA
      (for instance,
                192.168.0.0/24), 192.168.0.0/24) are vulnerable to the following
      forged-origin sub-prefix hijack <xref target="RFC7115"/> <xref target="GCHSS" />:
                <list>
                    <t>
                        The
      target="GCHSS"/>:
      </t>
      <t indent="3">The hijacker AS 64511 sends a BGP announcement
      "192.168.0.0/24: AS 64511, AS 64496", falsely claiming that AS 64511 is
      a neighbor of AS 64496 and
                        falsely claiming that AS 64496 originates the IP prefix
      192.168.0.0/24. In fact, the IP prefix 192.168.0.0/24 is not originated
      by AS 64496.
                    </t>
                    <t>
                        The 64496.</t>
      <t indent="3">The hijacker's BGP announcement is valid according to the
      RPKI since the ROA (192.168.0.0/16-24, AS 64496) authorizes AS 64496 to
      originate BGP routes for 192.168.0.0/24.
                    </t>
                    <t>
                        Because 192.168.0.0/24.</t>
      <t indent="3">Because AS 64496 does not actually originate a route for
      192.168.0.0/24, the hijacker's route is the only route for
      192.168.0.0/24. Longest-prefix-match routing ensures that the hijacker's
      route to the sub-prefix 192.168.0.0/24 is always preferred over the
      legitimate route to 192.168.0.0/16 originated by AS 64496.
                    </t>
                </list>
                Thus, 64496.</t>
      <t>Thus, the hijacker's route propagates through the Internet, and
      traffic destined for IP addresses in 192.168.0.0/24 will be delivered to
      the hijacker.
      </t>

            <t>
                The
      <t>The forged-origin sub-prefix hijack would have failed if a "minimal ROA" minimal
      ROA as described
                below in <xref target="recommendations"/> was used instead of the "loose ROA". loose ROA.  In this
      example, a "minimal ROA" minimal ROA would be:
                <list>
                    <t>
                        ROA:(192.168.0.0/16,
      </t>
      <t indent="3">ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496)
                    </t>
                </list>
                This 64496)</t>
      <t>This ROA is "minimal" because it includes only those IP prefixes that AS 64496 originates in BGP, but no other IP prefixes <xref target="RFC6907" />. target="RFC6907"/>.
      </t>

            <t>
                The "minimal ROA"
      <t>The minimal ROA renders AS 64511's BGP announcement invalid because:
                <list>
                    <t>
                        (1) this
      </t>
      <ol type="(%d)" spacing="normal">
        <li>this ROA "covers" the attacker's announcement (since
        192.168.0.0/24 is a sub-prefix of 192.168.0.0/16), and
                    </t>
                    <t>
                        (2) there and</li>
        <li>there is no ROA "matching" the attacker's announcement (there is
        no ROA for AS 64511 and IP prefix 192.168.0.0/24) <xref target="RFC6811" />.
                    </t>
                </list>
                If
        target="RFC6811"/>.</li>
      </ol>
      <t>If routers ignore invalid BGP announcements, the minimal ROA above
      ensures that the sub-prefix hijack will fail.
      </t>

            <t>
                Thus,
      <t>Thus, if a "minimal ROA" minimal ROA had been used, the attacker would be forced
      to launch a forged-origin prefix hijack in order to attract traffic, traffic as
      follows:
                <list>
                    <t>
                        The
      </t>
      <t indent="3">The hijacker AS 64511 sends a BGP announcement
      "192.168.0.0/16: AS 64511, AS 64496", falsely claiming that AS 64511 is
      a neighbor of AS 64496.
                    </t>
                </list>
            </t>

            <t>
                This 64496.</t>
      <t>This forged-origin prefix hijack is significantly less damaging than
      the forged-origin sub-prefix hijack:
                <list>
                    <t>
                        AS
      </t>
      <t indent="3">AS 64496 legitimately originates 192.168.0.0/16 in BGP, so
      the hijacker AS 64511 is not presenting the only route to 192.168.0.0/16.
                    </t>
                    <t>
                        Moreover,
      192.168.0.0/16.</t>
      <t indent="3">Moreover, the path originated by AS 64511 is one hop
      longer than the path originated by the legitimate origin AS 64496.
                    </t>
                </list>
                As 64496.</t>
      <t>As discussed in <xref target="LSG16"/>, this means that the hijacker
      will attract less traffic than it would have in the forged-origin
      sub-prefix hijack, hijack where the hijacker presents the only route to the
      hijacked sub-prefix.
      </t>

            <t>
                In
      <t>In summary, a forged-origin sub-prefix hijack has the same impact as
      a regular sub-prefix hijack, despite the increased AS_PATH length of the
      illegitimate route.  A forged-origin sub-prefix hijack is also more
      damaging than the forged-origin prefix hijack.
      </t>
    </section>

        <section title="Measurements
    <section>
      <name>Measurements of the RPKI">

            <t>
                Network RPKI</name>

      <t>Network measurements taken in June 2017 showed that 12% of the IP
      prefixes authorized in ROAs have a maxLength value longer than their prefix
      length.  Of these, the vast majority (84%) were non-minimal, as they
      included sub-prefixes that are not announced in BGP by the legitimate AS,
      AS and were thus vulnerable to forged-origin sub-prefix hijacks.  See
      <xref target="GSG17"/> for details.
      </t>

            <t>
                These
      <t>These measurements suggest that operators commonly misconfigure the
      maxLength
                attribute, attribute and unwittingly open themselves up to forged-origin
      sub-prefix hijacks.  That is, they are exposing a much larger attack
      surface for forged-origin hijacks than necessary.
      </t>
    </section>
    <section title="Recommendations anchor="recommendations">
      <name>Recommendations about Minimal ROAs and maxLength" anchor="recommendations">

            <t>
                Operators SHOULD maxLength</name>
      <t>Operators <bcp14>SHOULD</bcp14> use "minimal ROAs" minimal ROAs whenever possible.
      A minimal ROA contains only those IP prefixes that are actually
      originated by an AS in BGP and no other IP prefixes.
                (See  See <xref
      target="hijack"/> for an example.) example.
      </t>

            <t>
                In
      <t>In general, operators SHOULD <bcp14>SHOULD</bcp14> avoid using the maxLength
      attribute in their ROAs, since its inclusion will usually make the ROA
      non-minimal.
      </t>

            <t>
                One
      <t>One such exception may be when all more specific prefixes permitted
      by the maxLength value are actually announced by the AS in the ROA.  Another
      exception is where: (a) the maxLength value is substantially larger compared
      to the specified prefix length in the ROA, and (b) a large number of
      more specific prefixes in that range are announced by the AS in the
      ROA. In practice, this case should occur rarely (if at all). Operator
      discretion is necessary in this case.
            </t>

            <t>
                This case.</t>
      <t>This practice requires no changes to the RPKI specification specifications and need
      not increase the number of signed ROAs in the RPKI because ROAs already
      support lists of IP prefixes <xref target="RFC6482"/>.  See also <xref
      target="GSG17"/> for further discussion of why this practice will have
      minimal impact on the performance of the RPKI ecosystem.
      </t>

            <t>
                Operators implementing
      <t>Operators that implement these recommendations and that have existing
      ROAs published in the RPKI system MUST <bcp14>MUST</bcp14> perform a review
      of such objects, especially where they make use of the maxLength
      attribute, to ensure that the set of included prefixes is "minimal" with
      respect to the current BGP origination and routing policies.  Published
      ROAs MUST <bcp14>MUST</bcp14> be replaced as necessary.  Such an exercise MUST
      <bcp14>MUST</bcp14> be repeated whenever the operator makes changes to
      either policy.
      </t>
      <section title="Facilitating anchor="nominimal">
        <name>Facilitating Ad Hoc Routing Changes and DDoS Mitigation" anchor="nominimal">

                <t>
                    Operational Mitigation</name>
        <t>Operational requirements may require that a route for an IP prefix
        be originated on an ad hoc basis, with little or no prior warning.  An
        example of such a situation arises when an operator wishes to make use
        of DDoS mitigation services that use BGP to redirect traffic via a
        "scrubbing center".
        </t>

                <t>
                    In
        <t>In order to ensure that such ad hoc routing changes are effective,
        a ROA validating the new route should exist. However However, a difficulty
        arises due to the fact that newly created objects in the RPKI are made
        visible to relying parties considerably more slowly than routing
        updates in BGP.
        </t>

                <t>
                    Ideally,
        <t>Ideally, it would not be necessary to pre-create the ROA ROA, which
        validates the ad hoc route, and instead create it "on-the-fly" "on the fly" as
        required. However, this is practical only if the latency imposed by
        the propagation of RPKI data is guaranteed to be within acceptable
        limits in the circumstances.  For time-critical interventions such as
        responding to a DDoS attack, this is unlikely to be the case.
        </t>

                <t>
                    Thus,
        <t>Thus, the ROA in question will usually need to be created well in
        advance of the routing intervention, but such a ROA will be
        non-minimal, since it includes an IP prefix that is sometimes (but not
        always) originated in BGP.
        </t>

                <t>
                    In
        <t>In this case, the ROA SHOULD include only:
                    <list>
                        <t>
                            (1) the <bcp14>SHOULD</bcp14> only include:
        </t>
        <ol type="(%d)" spacing="normal">
          <li>the set of IP prefixes that are always originated in BGP, and
                        </t>
                        <t>
                            (2) the
          and</li>
          <li>the set of IP prefixes that are sometimes, but not always,
          originated in BGP.
                        </t>
                    </list>
                    The BGP.</li>
        </ol>
        <t>The ROA SHOULD NOT <bcp14>SHOULD NOT</bcp14> include any IP prefixes that the
        operator knows will not be originated in BGP.  In general, the ROA SHOULD NOT
        <bcp14>SHOULD NOT</bcp14> make use of the maxLength attribute unless
        doing so has no impact on the set of included prefixes.
        </t>

                <t>
                    The
        <t>The running example is now extended to illustrate one situation
        where it is not possible to issue a minimal ROA.
        </t>

                <t>
                    Consider
        <t>Consider the following scenario prior to the deployment of RPKI.
        Suppose AS 64496 announced 192.168.0.0/16 and has a contract with a Distributed
                    Denial of Service (DDoS)
        DDoS mitigation service provider that
        holds AS 64500.  Further, assume that the DDoS mitigation service
        contract applies to all IP addresses covered by 192.168.0.0/22.  When
        a DDoS attack is detected and reported by AS 64496, AS 64500
        immediately originates 192.168.0.0/22, thus attracting all the DDoS
        traffic to itself.  The traffic is scrubbed at AS 64500 and then sent
        back to AS 64496 over a backhaul link.  Notice that, during a DDoS
        attack, the DDoS mitigation service provider AS 64500 originates a /22
        prefix that is longer than AS 64496's /16 prefix, and so all the
        traffic (destined to addresses in 192.168.0.0/22) that normally goes
        to AS 64496 goes to AS 64500 instead.  In some deployments, the
        origination of the /22 route is performed by AS 64496 and announced
        only to AS 64500, which then announces transit for that prefix.  This
        variation does not change the properties considered here.
        </t>

                <t>
                    First,
        <t>First, suppose the RPKI only had the minimal ROA for AS 64496, as
        described in <xref target="hijack"/>.
                    But  However, if there is no ROA
        authorizing AS 64500 to announce the /22 prefix, then the DDoS
        mitigation (and traffic scrubbing) scheme would not work.  That is, if
        AS 64500 originates the /22 prefix in BGP during DDoS attacks, the
        announcement would be invalid <xref target="RFC6811" />. target="RFC6811"/>.
        </t>

                <t>
                    Therefore,
        <t>Therefore, the RPKI should have two ROAs: one for AS 64496 and one
        for AS 64500.
                    <list>
                        <t>
                            ROA:(192.168.0.0/16,
        </t>
<t indent="3">ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496)
                        </t>
                        <t>
                            ROA:(192.168.0.0/22, 64496)</t>
<t indent="3">ROA:(192.168.0.0/22, AS 64500)
                        </t>
                    </list>
                    Neither 64500)</t>
        <t>Neither ROA uses the maxLength attribute.
                    But attribute, but the second ROA is
        not "minimal" because it contains a /22 prefix that is not originated
        by anyone in BGP during normal operations.  The /22 prefix is only
        originated by AS 64500 as part of its DDoS mitigation service during a
        DDoS attack.
        </t>

                <t>
                    Notice,
        <t>Notice, however, that this scheme does not come without risks.
        Namely, all IP addresses in 192.168.0.0/22 are vulnerable to a
        forged-origin sub-prefix hijack during normal operations, operations when the /22
        prefix is not originated.  (The hijacker AS 64511 would send the BGP
        announcement "192.168.0.0/22: AS 64511, AS 64500", falsely claiming
        that AS 64511 is a neighbor of AS 64500 and falsely claiming that AS
        64500 originates 192.168.0.0/22.)
        </t>

                <t>
                    In
        <t>In some situations, the DDoS mitigation service at AS 64500 might
        want to limit the amount of DDoS traffic that it attracts and scrubs.
        Suppose that a DDoS attack only targets IP addresses in
        192.168.0.0/24.  Then, the DDoS mitigation service at AS 64500 only
        wants to attract the traffic designated for the /24 prefix that is
        under attack, but not the entire /22 prefix.  To allow for this, the
        RPKI should have two ROAs: one for AS 64496 and one for AS 64500.
                    <list>
                        <t>
                            ROA:(192.168.0.0/16,
        </t>
	<t indent="3">ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496)
                        </t>
                        <t>
                            ROA:(192.168.0.0/22-24, 64496)</t>
        <t indent="3">ROA:(192.168.0.0/22-24, AS 64500)
                        </t>
                    </list>
                </t>
                <t>
                    The 64500)</t>
        <t>The second ROA uses the maxLength attribute because it is designed
        to explicitly enable AS 64500 to originate any /24 sub-prefix of
        192.168.0.0/22.
        </t>
                <t>
                    As
        <t>As before, the second ROA is not "minimal" because it contains
        prefixes that are not originated by anyone in BGP during normal
        operations.
                    As before, Also, all IP addresses in 192.168.0.0/22 are
        vulnerable to a forged-origin sub-prefix hijack during normal operations,
        operations when the /22 prefix is not originated.
        </t>
                <t>
                    The
        <t>The use of the maxLength attribute in this second ROA also comes with additional
        risk.  While it permits the DDoS mitigation service at AS 64500 to
        originate prefix 192.168.0.0/24 during a DDoS attack in that space, it
        also makes the other /24 prefixes covered by the /22 prefix (i.e.,
        192.168.1.0/24, 192.168.2.0/24, and 192.168.3.0/24) vulnerable to
        forged-origin sub-prefix attacks.
        </t>
      </section>
      <section title="Defensive anchor="deaggr">
        <name>Defensive De-aggregation In in Response To to Prefix Hijacks" anchor="deaggr">
                <t>
                    In Hijacks</name>
        <t>When responding to certain classes of prefix hijack, in hijack (in particular,
        the forged-origin sub-prefix hijack described above, above), it may be
        desirable for the victim to perform "defensive de-aggregation", i.e.
        i.e., to begin originating more-specific prefixes in order to compete
        with the hijack routes for selection as the best path in networks that
        are not performing RPKI-based route origin
                    validation (ROV) RPKI-ROV <xref
        target="RFC6811"/>.
        </t>
                <t>
                    In some topologies,
        <t>In topologies where at least one AS on every path between the
        victim and hijacker filters ROV RPKI-ROV invalid prefixes, it may be the case
        that the existence of a minimal ROA issued by the victim prevents the
        defensive more-specific prefixes from being propagated to the networks
        topologically close to the attacker, thus hampering the effectiveness
        of this response.
        </t>
                <t>
                    Nevertheless,
        <t>Nevertheless, this document recommends that that, where possible, network
        operators publish minimal ROAs even in the face of this risk. This is
        because:
                    <list style="symbols">
                        <t>
                            Minimal
        </t>
        <ul spacing="normal">
          <li>Minimal ROAs offer the best possible protection against the
          immediate impact of such an attack, rendering the need for such a
          response less
                            likely;
                        </t>
                        <t>
                            Increasing ROV likely;</li>
          <li>Increasing RPKI-ROV adoption by network operators will, over time,
          decrease the size of the neighborhoods in which this risk exists; and
                        </t>
                        <t>
                            Other
          and</li>
          <li>Other methods for reducing the size of such neighborhoods are
          available to potential victims, such as establishing direct EBGP External
          BGP (EBGP) adjacencies with networks from whom the defensive routes
          would otherwise be hidden.
                        </t>
                    </list>
                </t> hidden.</li>
        </ul>
      </section>
    </section>
    <section title="Considerations anchor="rtdr">
      <name>Considerations for RTDR Filtering Scenarios" anchor="rtdr">
        <t>
            Considerations Scenarios</name>
      <t>Considerations related to ROAs and origin validation RPKI-ROV <xref
      target="RFC6811"/> for the case of destination-based Remotely Triggered Discard Route (RTDR) RTDR
      (elsewhere referred to as "Remotely Triggered Black
      Hole") filtering are addressed here.  In RTDR filtering, highly specific
      prefixes (greater than /24 in IPv4 and greater than /48 in IPv6; IPv6, or
      possibly even /32 (IPv4) in IPv4 and /128 (IPv6)) in IPv6) are announced in BGP.  These
      announcements are tagged with the Well-known well-known BGP Community community defined by
      <xref target="RFC7999"/>.
            It  For the reasons set out
      above, it is obviously not desirable to use a large
      maxLength value or include any such highly specific prefixes in the ROAs to
      accommodate destination-based RTDR filtering, for the
            reasons set out above. filtering.
      </t>

        <t>
            As

      <t>As a result, RPKI-based route origin validation RPKI-ROV <xref target="RFC6811"/> is a poor fit for the
      validation of RTDR routes.
      Specification of new procedures to address this use case through the use
      of the RPKI is outside the scope of this document.
      </t>

        <t>
            Therefore:
            <list style="symbols">
                <t>
                    Operators SHOULD NOT
      <t>Therefore:
      </t>
      <ul spacing="normal">
        <li>Operators <bcp14>SHOULD NOT</bcp14> create non-minimal ROAs (either by
        (by either creating additional
                    ROAs, ROAs or through using the use of maxLength) maxLength attribute)
        for the purpose of advertising RTDR routes; and
                </t>
                <t>
                    Operators and</li>
        <li>Operators providing a means for operators of neighboring
        autonomous systems to advertise RTDR routes via BGP MUST NOT <bcp14>MUST
        NOT</bcp14> make the creation of non-minimal ROAs a pre-requisite for
        its use.
                </t>
            </list>
        </t> use.</li>
      </ul>
    </section>
    <section title="User anchor="ui">
      <name>User Interface Design Recommendations" anchor="ui">
        <t>
            Most Recommendations</name>
      <t>Most operator interaction with the RPKI system when creating or
      modifying ROAs will occur via a user interface that abstracts the
      underlying encoding, signing signing, and publishing operations.
      </t>
        <t>
            This
      <t>This document recommends that designers and/or providers of such user
      interfaces SHOULD <bcp14>SHOULD</bcp14> provide warnings to draw the user's
      attention to the risks of creating non-minimal ROAs in general, general and use of using
      the maxLength attribute in particular.
      </t>
        <t>
            Warnings
      <t>Warnings provided by such a system may vary in nature from generic
      warnings based purely on the inclusion of the maxLength attribute, attribute to
      customised guidance based on the observable BGP routing policy of the
      operator in question.  The choices made in this respect are expected to
      be dependent on the target user audience of the implementation.
      </t>
    </section>
    <section title="Operational Considerations" anchor="operational-considerations">
        <t>
            The
      <name>Operational Considerations</name>
      <t>The recommendations specified in this document, in document (in particular, those
      in <xref target="recommendations"/>, target="recommendations"/>) involve trade-offs between
      operational agility and security.
      </t>
        <t>
            Operators
      <t>Operators adopting the recommended practice of issuing minimal ROAs
      will, by definition definition, need to make changes to their existing set of issued
      ROAs in order to effect changes to the set of prefixes which that are
      originated in BGP.
      </t>
        <t>
            Even
      <t>Even in the case of routing changes that are planned in advance,
      existing procedures may need to be updated to incorporate changes to
      issued ROAs, ROAs and may require additional time allowed for those changes
      to propagate.
      </t>
        <t>
            Operators
      <t>Operators are encouraged to carefully review the issues highlighted
      (especially those in Sections <xref target="nominimal"/> target="nominimal" format="counter"/> and <xref target="deaggr"/>)
      target="deaggr" format="counter"/>) in light of their specific operational
      requirements. Failure to do so could, in the worst case, result in a
      self-inflicted denial of service.
      </t>
        <t>
            The
      <t>The recommendations made in section 5 <xref target="recommendations"/> are
      likely to be more onerous for operators utilising large IP address space
      allocations from which many more-specific advertisements are made in
      BGP. Operators of such networks are encouraged to seek opportunities to
      automate the required procedures in order to minimise manual operational
      burden.
      </t>
    </section>
    <section title="Security Considerations" anchor="security-considerations">
        <t>
            This
      <name>Security Considerations</name>
      <t>This document makes recommendations regarding the use of RPKI-based origin validation RPKI-ROV
      as defined in <xref target="RFC6811"/>, and target="RFC6811"/> and, as such such,
      introduces no additional security considerations beyond those specified
      therein.
      </t>
    </section>
    <section anchor="IANA" title="IANA Considerations">
        <t>
            This anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document includes has no request to IANA.
        </t>
    </section>

    <section anchor="Acknowledgments" title="Acknowledgments">
        <t>
            The authors would like to thank the following people for their review and
            contributions to this document:
            Omar Sagga
            and
            Aris Lambrianidis.
            Thanks are also due to
            Matthias Waehlisch,
            Ties de Kock,
            Amreesh Phokeer,
            Éric Vyncke,
            Alvaro Retana,
            John Scudder,
            Roman Danyliw,
            Andrew Alston,
            and
            Murray Kucherawy
            for comments and suggestions,
            to Roni Even for the Gen-ART review,
            to Jean Mahoney for the ART-ART review,
            to Acee Lindem for the Routing Directorate review,
            and
            to Sean Turner for the Security Area Directorate review. IANA actions.
      </t>
    </section>
  </middle>
  <back>

    <references title="Normative References">
        <?rfc include="reference.RFC.1918.xml"?>
        <?rfc include="reference.RFC.2119.xml"?>
        <?rfc include="reference.RFC.4271.xml"?>
        <?rfc include="reference.RFC.6480.xml"?>
        <?rfc include="reference.RFC.6482.xml"?>
        <?rfc include="reference.RFC.6811.xml"?>
        <?rfc include="reference.RFC.7115.xml"?>
        <?rfc include="reference.RFC.8174.xml"?>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1918.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6480.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6482.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6811.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7115.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      </references>

    <references title="Informative References">
      <references>
        <name>Informative References</name>

        <reference anchor="GSG17" target="https://eprint.iacr.org/2016/1015.pdf">
          <front>
                <title>Maxlength
            <title>MaxLength Considered Harmful to the RPKI</title>
            <author initials="Y." surname="Gilad"><organization /></author> surname="Gilad">
              <organization/>
            </author>
            <author initials="O." surname="Sagga"><organization /></author> surname="Sagga">
              <organization/>
            </author>
            <author initials="S." surname="Goldberg"><organization /></author> surname="Goldberg">
              <organization/>
            </author>
            <date year="2017" month="December" /> month="December"/>
          </front>
	  <refcontent>CoNEXT '17</refcontent>
	  <seriesInfo name="in" value="ACM CoNEXT 2017" /> name="DOI" value="10.1145/3143361.3143363"/>
        </reference>

        <reference anchor="LSG16" target="http://cacm.acm.org/magazines/2016/10/207763-rethinking-security-for-internet-routing/">
          <front>
            <title>Rethinking Security security for Internet Routing</title> internet routing</title>
            <author initials="R." surname="Lychev"><organization /></author> surname="Lychev">
              <organization/>
            </author>
            <author initials="M." surname="Shapira"><organization /></author> surname="Shapira">
              <organization/>
            </author>
            <author initials="S." surname="Goldberg"><organization /></author> surname="Goldberg">
              <organization/>
            </author>
            <date year="2016" month="October" /> month="October"/>
          </front>
            <seriesInfo name="in" value="Communications
	  <refcontent>Communications of the ACM" /> ACM</refcontent>
	  <seriesInfo name="DOI" value="10.1145/2896817"/>
        </reference>

        <reference anchor="GCHSS" target="https://eprint.iacr.org/2016/1010.pdf">
          <front>
            <title>Are We There Yet? On RPKI&#39;s RPKI's Deployment and Security</title>
            <author initials="Y." surname="Gilad"><organization /></author> surname="Gilad">
              <organization/>
            </author>
            <author initials="A." surname="Cohen"><organization /></author> surname="Cohen">
              <organization/>
            </author>
            <author initials="A." surname="Herzberg"><organization /></author> surname="Herzberg">
              <organization/>
            </author>
            <author initials="M." surname="Schapira"><organization /></author> surname="Schapira">
              <organization/>
            </author>
            <author initials="H." surname="Shulman"><organization /></author> surname="Shulman">
              <organization/>
            </author>
            <date year="2017" month="February" /> month="February"/>
          </front>
            <seriesInfo name="in" value="NDSS 2017" />
	  <refcontent>NDSS 2017</refcontent>
        </reference>

        <reference anchor="HARMFUL" target="https://eprint.iacr.org/2016/1015.pdf">
            <!-- https://dl.acm.org/citation.cfm?doid=3143361.3143363 -->
            <front>
                <title>MaxLength Considered Harmful

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5737.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6907.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7999.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8205.xml"/>
      </references>
    </references>
    <section anchor="Acknowledgments" numbered="false">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the RPKI</title>
                <author initials="Y." surname="Gilad"><organization /></author>
                <author initials="O." surname="Sagga"><organization /></author>
                <author initials="S." surname="Goldberg"><organization /></author>
                <date year="2017" />
            </front>
            <!-- <seriesInfo name="in" value="NDSS 2017" /> -->
        </reference>

        <?rfc include="reference.RFC.5737.xml"?>
        <?rfc include="reference.RFC.6907.xml"?>
        <?rfc include="reference.RFC.7999.xml"?>
        <?rfc include="reference.RFC.8205.xml"?>
    </references> following people for their review
      and contributions to this document: <contact fullname="Omar Sagga"/> and
      <contact fullname="Aris Lambrianidis"/>.  Thanks are also due to
      <contact fullname="Matthias Waehlisch"/>, <contact fullname="Ties de
      Kock"/>, <contact fullname="Amreesh Phokeer"/>, <contact fullname="Éric
      Vyncke"/>, <contact fullname="Alvaro Retana"/>, <contact fullname="John
      Scudder"/>, <contact fullname="Roman Danyliw"/>, <contact
      fullname="Andrew Alston"/>, and <contact fullname="Murray Kucherawy"/>
      for comments and suggestions, to <contact fullname="Roni Even"/> for the
      Gen-ART review, to <contact fullname="Jean Mahoney"/> for the ART-ART
      review, to <contact fullname="Acee Lindem"/> for the Routing Area Directorate
      review, and to <contact fullname="Sean Turner"/> for the Security Area
      Directorate review.
      </t>
    </section>
  </back>

</rfc>
<!-- vim: et ts=4 sts=4 sw=4 colorcolumn=100 spell :
-->