| rfc9319xml2.original.xml | rfc9319.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="UTF-8"?> | <?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"?> | ||||
| <rfc category="bcp" | ||||
| seriesNo="185" | ||||
| docName="draft-ietf-sidrops-rpkimaxlen-15" | ||||
| submissionType="IETF" | ||||
| ipr="trust200902" | ||||
| consensus="true"> | ||||
| <front> | ||||
| <title abbrev="RPKI maxLength">The Use of maxLength in the RPKI</title> | ||||
| <author fullname="Yossi Gilad" initials="Y." surname="Gilad"> | ||||
| <organization>Hebrew University of Jerusalem</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Rothburg Family Buildings, Edmond J. Safra Campus</s | ||||
| treet> | ||||
| <city>Jerusalem</city> | ||||
| <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> | ||||
| </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> | ||||
| </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 /> | ||||
| <workgroup>Internet Engineering Task Force (IETF)</workgroup> | ||||
| <keyword>Secure Internet routing</keyword> | ||||
| <keyword>Resource public key infrastructure</keyword> | ||||
| <abstract> | ||||
| <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 ma | ||||
| xLength attribute | ||||
| in ROAs except in some specific cases. The recommendations compl | ||||
| ement and extend | ||||
| those in RFC 7115. The document also discusses the creation of R | ||||
| OAs for facilitating | ||||
| the use of Distributed Denial of Service (DDoS) mitigation servi | ||||
| ces. Considerations | ||||
| related to ROAs and origin validation in the context of destinat | ||||
| ion-based Remotely | ||||
| Triggered Discard Route (RTDR) (elsewhere referred to as "Remote | ||||
| ly Triggered | ||||
| Black Hole") filtering are also highlighted. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <middle> | ||||
| <section title="Introduction" anchor="intro"> | ||||
| <t> | ||||
| The RPKI <xref target="RFC6480"/> uses Route Origin Authorizatio | ||||
| ns (ROAs) to create | ||||
| a cryptographically verifiable mapping from an IP prefix to a se | ||||
| t of autonomous | ||||
| systems (ASes) that are authorized to originate that prefix. | ||||
| Each ROA contains a set of IP prefixes, and the AS number of one | ||||
| of the ASes | ||||
| authorized to originate all the IP prefixes in the set <xref tar | ||||
| get="RFC6482"/>. | ||||
| The ROA is cryptographically signed by the party that holds a ce | ||||
| rtificate for the | ||||
| set of IP prefixes. | ||||
| </t> | ||||
| <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 aut | ||||
| horizes an AS to | ||||
| originate a set of IP prefixes. | ||||
| </t> | ||||
| <t> | ||||
| However, measurements of RPKI deployments have found that the us | ||||
| e of the maxLength in | ||||
| ROAs tends to lead to security problems. | ||||
| In particular, measurements taken in June 2017 showed that of th | ||||
| e prefixes | ||||
| specified in ROAs that use the maxLength attribute, 84% were vul | ||||
| nerable to a | ||||
| forged-origin sub-prefix hijack <xref target="HARMFUL" />. | ||||
| 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 can | ||||
| be launched | ||||
| against any IP prefix/sub-prefix that has a ROA. Consider a pref | ||||
| ix/sub-prefix that | ||||
| has a ROA but is unused, i.e., not announced in BGP by a legitim | ||||
| ate AS. A forged | ||||
| origin hijack involving such a prefix/sub-prefix can propagate w | ||||
| idely throughout the | ||||
| Internet. On the other hand, if the prefix/sub-prefix were annou | ||||
| nced 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 legitima | ||||
| te announcement. Of | ||||
| course, forged-origin hijacks are harmful in both cases but the | ||||
| extent of harm is | ||||
| greater for unannounced prefixes. See <xref target="hijack"/> fo | ||||
| r detailed | ||||
| discussion. | ||||
| </t> | ||||
| <t> | ||||
| For this reason, this document recommends that, whenever possibl | ||||
| e, operators SHOULD | ||||
| use "minimal ROAs" that authorize only those IP prefixes that ar | ||||
| e actually | ||||
| originated in BGP, and no other prefixes. Further, it recommends | ||||
| ways to reduce the | ||||
| forged-origin attack surface by prudently limiting the address s | ||||
| pace that is | ||||
| included in Route Origin Authorizations (ROAs). One recommendati | ||||
| on is to avoid | ||||
| using the maxLength attribute in ROAs except in some specific ca | ||||
| ses. The | ||||
| recommendations complement and extend those in <xref target="RFC | ||||
| 7115"/>. The | ||||
| document also discusses the creation of ROAs for facilitating th | ||||
| e use of Distributed | ||||
| Denial of Service (DDoS) mitigation services. Considerations rel | ||||
| ated to ROAs and | ||||
| origin validation in the context of destination-based Remotely T | ||||
| riggered Discard | ||||
| Route (RTDR) (elsewhere referred to as "Remotely Triggered Black | ||||
| Hole") filtering | ||||
| are also highlighted. | ||||
| </t> | ||||
| <t> | ||||
| One ideal place to implement the ROA related recommendations is | ||||
| in the user | ||||
| interfaces for configuring ROAs. Recommendations for implementor | ||||
| s of such user | ||||
| interfaces are provided in <xref target="ui"/> | ||||
| </t> | ||||
| <t> | ||||
| Best current practices described in this document require no cha | ||||
| nges to the RPKI | ||||
| specification 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 key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHAL | ||||
| L NOT", "SHOULD", | ||||
| "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and " | ||||
| OPTIONAL" in this | ||||
| document are to be interpreted as described in BCP 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 documentation prefixes recommended in <xref target="RFC5 | ||||
| 737"/> are | ||||
| insufficient for use as example prefixes in this document. T | ||||
| herefore, this | ||||
| document uses <xref target="RFC1918" /> address space for co | ||||
| nstructing example | ||||
| prefixes. | ||||
| </t> | ||||
| <t> | ||||
| Note that although the examples in this document are present | ||||
| ed using IPv4 | ||||
| prefixes, all the analysis thereof and the recommendations m | ||||
| ade are | ||||
| equally valid for the equivalent IPv6 cases. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Suggested Reading"> | ||||
| <t> | ||||
| It is assumed that the reader understands BGP <xref target="RFC4 | ||||
| 271"/>, RPKI | ||||
| <xref target="RFC6480"/>, Route Origin Authorizations (ROAs) | ||||
| <xref target="RFC6482"/>, RPKI-based Prefix Validation <xref tar | ||||
| get="RFC6811"/>, | ||||
| and BGPsec <xref target="RFC8205"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Forged-Origin Sub-prefix Hijack" anchor="hijack"> | ||||
| <t> | ||||
| A detailed description and discussion of forged-origin sub-prefi | ||||
| x hijacks are | ||||
| presented here, especially considering the case when the sub-pre | ||||
| fix is not announced | ||||
| in BGP. | ||||
| The forged-origin sub-prefix hijack is relevant to a scenario in | ||||
| which: | ||||
| <list> | ||||
| <t> | ||||
| (1) the RPKI <xref target="RFC6480"/> is deployed, and | ||||
| </t> | ||||
| <t> | ||||
| (2) routers use RPKI origin validation to drop invalid r | ||||
| outes | ||||
| <xref target="RFC6811" />, but | ||||
| </t> | ||||
| <t> | ||||
| (3) BGPsec <xref target="RFC8205"/> (or any similar meth | ||||
| od to validate the | ||||
| truthfulness of the BGP AS_PATH attribute) is not de | ||||
| ployed. | ||||
| </t> | ||||
| </list> | ||||
| Note that this set of assumptions accurately describes a substan | ||||
| tial and growing | ||||
| number of large Internet networks at the time of writing. | ||||
| </t> | ||||
| <t> | ||||
| The forged-origin sub-prefix hijack <xref target="RFC7115" /> | ||||
| <xref target="GCHSS" /> is described here using a running exampl | ||||
| e. | ||||
| </t> | ||||
| <t> | ||||
| Consider the IP prefix 192.168.0.0/16 which is allocated to an o | ||||
| rganization 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, however, the organization issues and publishes a ROA in | ||||
| cluding a maxLength | ||||
| value of 24: | ||||
| <list> | ||||
| <t> | ||||
| ROA:(192.168.0.0/16-24, AS 64496) | ||||
| </t> | ||||
| </list> | ||||
| We refer to the above as a "loose ROA" since it authorizes AS 64 | ||||
| 496 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 AS 64496 only originates two prefixes in BGP: 192.168.0. | ||||
| 0/16 and | ||||
| 192.168.225.0/24, all other prefixes authorized by the "loose RO | ||||
| A" (for instance, | ||||
| 192.168.0.0/24), are vulnerable to the following forged-origin s | ||||
| ub-prefix hijack | ||||
| <xref target="RFC7115"/> <xref target="GCHSS" />: | ||||
| <list> | ||||
| <t> | ||||
| 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 hijacker's BGP announcement is valid according to th | ||||
| e 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 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/2 | ||||
| 4. | ||||
| Longest-prefix-match routing ensures that the hijacker's | ||||
| route to the | ||||
| sub-prefix 192.168.0.0/24 is always preferred over the l | ||||
| egitimate route to | ||||
| 192.168.0.0/16 originated by AS 64496. | ||||
| </t> | ||||
| </list> | ||||
| 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 hija | ||||
| cker. | ||||
| </t> | ||||
| <t> | ||||
| The forged-origin sub-prefix hijack would have failed if a "mini | ||||
| mal ROA" described | ||||
| below was used instead of the "loose ROA". | ||||
| In this example, a "minimal ROA" would be: | ||||
| <list> | ||||
| <t> | ||||
| ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | ||||
| </t> | ||||
| </list> | ||||
| This ROA is "minimal" because it includes only those IP prefixes | ||||
| that AS 64496 | ||||
| originates in BGP, but no other IP prefixes <xref target="RFC690 | ||||
| 7" />. | ||||
| </t> | ||||
| <t> | ||||
| The "minimal ROA" renders AS 64511's BGP announcement invalid be | ||||
| cause: | ||||
| <list> | ||||
| <t> | ||||
| (1) 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 is no ROA "matching" the attacker's announceme | ||||
| nt (there is no ROA | ||||
| for AS 64511 and IP prefix 192.168.0.0/24) <xref tar | ||||
| get="RFC6811" />. | ||||
| </t> | ||||
| </list> | ||||
| If routers ignore invalid BGP announcements, the minimal ROA abo | ||||
| ve ensures that the | ||||
| sub-prefix hijack will fail. | ||||
| </t> | ||||
| <t> | <!DOCTYPE rfc [ | |||
| Thus, if a "minimal ROA" had been used, the attacker would be fo | <!ENTITY nbsp " "> | |||
| rced to launch a | <!ENTITY zwsp "​"> | |||
| forged-origin prefix hijack in order to attract traffic, as foll | <!ENTITY nbhy "‑"> | |||
| ows: | <!ENTITY wj "⁠"> | |||
| <list> | ]> | |||
| <t> | ||||
| 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 forged-origin prefix hijack is significantly less damaging | ||||
| than the | ||||
| forged-origin sub-prefix hijack: | ||||
| <list> | ||||
| <t> | ||||
| 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, the path originated by AS 64511 is one hop lon | ||||
| ger than the path | ||||
| originated by the legitimate origin AS 64496. | ||||
| </t> | ||||
| </list> | ||||
| As discussed in <xref target="LSG16"/>, this means that the hija | ||||
| cker will attract | ||||
| less traffic than it would have in the forged-origin sub-prefix | ||||
| hijack, where | ||||
| the hijacker presents the only route to the hijacked sub-prefix. | ||||
| </t> | ||||
| <t> | ||||
| In summary, a forged-origin sub-prefix hijack has the same impac | ||||
| t as a regular | ||||
| sub-prefix hijack, despite the increased AS_PATH length of the i | ||||
| llegitimate route. | ||||
| A forged-origin sub-prefix hijack is also more damaging than the | ||||
| forged-origin | ||||
| prefix hijack. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Measurements of the RPKI"> | ||||
| <t> | ||||
| Network measurements taken in June 2017 showed that 12% of the I | ||||
| P prefixes | ||||
| authorized in ROAs have a maxLength longer than their prefix len | ||||
| gth. | ||||
| Of these, the vast majority (84%) were non-minimal, as they incl | ||||
| uded sub-prefixes | ||||
| that are not announced in BGP by the legitimate AS, and were thu | ||||
| s vulnerable to | ||||
| forged-origin sub-prefix hijacks. | ||||
| See <xref target="GSG17"/> for details. | ||||
| </t> | ||||
| <t> | ||||
| These measurements suggest that operators commonly misconfigure | ||||
| the maxLength | ||||
| attribute, and unwittingly open themselves up to forged-origin s | ||||
| ub-prefix hijacks. | ||||
| That is, they are exposing a much larger attack surface for forg | ||||
| ed-origin hijacks | ||||
| than necessary. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Recommendations about Minimal ROAs and maxLength" anchor | ||||
| ="recommendations"> | ||||
| <t> | ||||
| Operators SHOULD use "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 <xref target="hijack"/> for an example.) | ||||
| </t> | ||||
| <t> | ||||
| In general, operators SHOULD avoid using the maxLength attribute | ||||
| in their ROAs, | ||||
| since its inclusion will usually make the ROA non-minimal. | ||||
| </t> | ||||
| <t> | ||||
| One such exception may be when all more specific prefixes permit | ||||
| ted by the | ||||
| maxLength are actually announced by the AS in the ROA. | ||||
| Another exception is where: (a) the maxLength is substantially l | ||||
| arger compared to | ||||
| the specified prefix length in the ROA, and (b) a large number o | ||||
| f more specific | ||||
| prefixes in that range are announced by the AS in the ROA. In pr | ||||
| actice, this case | ||||
| should occur rarely (if at all). Operator discretion is necessar | ||||
| y in this case. | ||||
| </t> | ||||
| <t> | ||||
| This practice requires no changes to the RPKI specification and | ||||
| need not increase | ||||
| the number of signed ROAs in the RPKI because ROAs already suppo | ||||
| rt lists of IP | ||||
| prefixes <xref target="RFC6482"/>. | ||||
| See also <xref target="GSG17"/> for further discussion of why th | ||||
| is practice will | ||||
| have minimal impact on the performance of the RPKI ecosystem. | ||||
| </t> | ||||
| <t> | ||||
| Operators implementing these recommendations and that have exist | ||||
| ing ROAs published | ||||
| in the RPKI system MUST perform a review of such objects, especi | ||||
| ally where they | ||||
| make use of the maxLength attribute, to ensure that the set of i | ||||
| ncluded prefixes is | ||||
| "minimal" with respect to the current BGP origination and routin | ||||
| g policies. | ||||
| Published ROAs MUST be replaced as necessary. | ||||
| Such an exercise MUST be repeated whenever the operator makes ch | ||||
| anges to either | ||||
| policy. | ||||
| </t> | ||||
| <section title="Facilitating Ad Hoc Routing Changes and DDoS Mitigat | ||||
| ion" anchor="nominimal"> | ||||
| <t> | ||||
| Operational requirements may require that a route for an IP | ||||
| prefix be | ||||
| originated on an ad hoc basis, with little or no prior warni | ||||
| ng. | ||||
| An example of such a situation arises when an operator wishe | ||||
| s to make use of | ||||
| DDoS mitigation services that use BGP to redirect traffic vi | ||||
| a a "scrubbing | ||||
| center". | ||||
| </t> | ||||
| <t> | ||||
| In order to ensure that such ad hoc routing changes are effe | ||||
| ctive, a ROA | ||||
| validating the new route should exist. 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, it would not be necessary to pre-create the ROA whi | ||||
| ch validates the | ||||
| ad hoc route, and instead create it "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 circumstanc | ||||
| es. | ||||
| For time-critical interventions such as responding to a DDoS | ||||
| attack, this is | ||||
| unlikely to be the case. | ||||
| </t> | ||||
| <t> | ||||
| Thus, the ROA in question will usually need to be created we | ||||
| ll 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 i | ||||
| n BGP. | ||||
| </t> | ||||
| <t> | ||||
| In this case, the ROA SHOULD include only: | ||||
| <list> | ||||
| <t> | ||||
| (1) the set of IP prefixes that are always | ||||
| originated in BGP, and | ||||
| </t> | ||||
| <t> | ||||
| (2) the set of IP prefixes that are sometimes, but n | ||||
| ot always, | ||||
| originated in BGP. | ||||
| </t> | ||||
| </list> | ||||
| The ROA SHOULD NOT include any IP prefixes that the operator | ||||
| knows will not be | ||||
| originated in BGP. | ||||
| In general, the ROA SHOULD NOT make use of the maxLength att | ||||
| ribute unless doing | ||||
| so has no impact on the set of included prefixes. | ||||
| </t> | ||||
| <t> | ||||
| The running example is now extended to illustrate one situat | ||||
| ion where it is not | ||||
| possible to issue a minimal ROA. | ||||
| </t> | ||||
| <t> | ||||
| Consider the following scenario prior to the deployment of R | ||||
| PKI. | ||||
| Suppose AS 64496 announced 192.168.0.0/16 and has a contract | ||||
| with a Distributed | ||||
| Denial of Service (DDoS) mitigation service provider that ho | ||||
| lds AS 64500. | ||||
| Further, assume that the DDoS mitigation service contract ap | ||||
| plies 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 traf | ||||
| fic 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 servi | ||||
| ce 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) th | ||||
| at normally goes to | ||||
| AS 64496 goes to AS 64500 instead. | ||||
| In some deployments, the origination of the /22 route is per | ||||
| formed by AS 64496 | ||||
| and announced only to AS 64500, which then announces transit | ||||
| for that prefix. | ||||
| This variation does not change the properties considered her | ||||
| e. | ||||
| </t> | ||||
| <t> | ||||
| First, suppose the RPKI only had the minimal ROA for AS 6449 | ||||
| 6, as described | ||||
| in <xref target="hijack"/>. | ||||
| But 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" />. | ||||
| </t> | ||||
| <t> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
| Therefore, the RPKI should have two ROAs: one for AS 64496 a | bcp" consensus="true" docName="draft-ietf-sidrops-rpkimaxlen-15" number="9319" i | |||
| nd one for AS | pr="trust200902" tocInclude="true" symRefs="true" sortRefs="true" updates="" obs | |||
| 64500. | oletes="" xml:lang="en" version="3"> | |||
| <list> | ||||
| <t> | ||||
| ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | ||||
| </t> | ||||
| <t> | ||||
| ROA:(192.168.0.0/22, AS 64500) | ||||
| </t> | ||||
| </list> | ||||
| Neither ROA uses the maxLength attribute. | ||||
| But the second ROA is not "minimal" because it contains a /2 | ||||
| 2 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> | <!-- xml2rfc v2v3 conversion 3.14.0 --> | |||
| Notice, however, that this scheme does not come without risk | ||||
| s. | ||||
| Namely, all IP addresses in 192.168.0.0/22 are vulnerable to | ||||
| a forged-origin | ||||
| sub-prefix hijack during normal operations, when the /22 pre | ||||
| fix 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 nei | ||||
| ghbor of AS 64500 | ||||
| and falsely claiming that AS 64500 originates 192.168.0.0/22 | ||||
| .) | ||||
| </t> | ||||
| <t> | <front> | |||
| In some situations, the DDoS mitigation service at AS 64500 | <title abbrev="RPKI maxLength">The Use of maxLength in the Resource Public K | |||
| might want to limit | ey Infrastructure (RPKI)</title> | |||
| the amount of DDoS traffic that it attracts and scrubs. | <seriesInfo name="RFC" value="9319"/> | |||
| Suppose that a DDoS attack only targets IP addresses in 192. | <seriesInfo name="BCP" value="185"/> | |||
| 168.0.0/24. | <author fullname="Yossi Gilad" initials="Y." surname="Gilad"> | |||
| Then, the DDoS mitigation service at AS 64500 only wants to | <organization>Hebrew University of Jerusalem</organization> | |||
| attract the traffic | <address> | |||
| designated for the /24 prefix that is under attack, but not | <postal> | |||
| the entire /22 | <extaddr>Rothburg Family Buildings</extaddr> | |||
| prefix. | <street>Edmond J. Safra Campus</street> | |||
| To allow for this, the RPKI should have two ROAs: one for AS | <city>Jerusalem</city> | |||
| 64496 and one for | <region/> | |||
| AS 64500. | <code>9190416</code> | |||
| <list> | <country>Israel</country> | |||
| <t> | </postal> | |||
| ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | <email>yossigi@cs.huji.ac.il</email> | |||
| </t> | </address> | |||
| <t> | </author> | |||
| ROA:(192.168.0.0/22-24, AS 64500) | <author fullname="Sharon Goldberg" initials="S." surname="Goldberg"> | |||
| </t> | <organization>Boston University</organization> | |||
| </list> | <address> | |||
| </t> | <postal> | |||
| <t> | <street>111 Cummington St, MCS135</street> | |||
| The second ROA uses the maxLength attribute because it is de | <city>Boston</city> | |||
| signed to | <region>MA</region> | |||
| explicitly enable AS 64500 to originate any /24 sub-prefix o | <code>02215</code> | |||
| f 192.168.0.0/22. | <country>United States of America</country> | |||
| </t> | </postal> | |||
| <t> | <email>goldbe@cs.bu.edu</email> | |||
| As before, the second ROA is not "minimal" because it contai | </address> | |||
| ns prefixes that | </author> | |||
| are not originated by anyone in BGP during normal operations | <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram"> | |||
| . | <organization abbrev="USA NIST">USA National Institute of Standards and Te | |||
| As before, all IP addresses in 192.168.0.0/22 are vulnerable | chnology</organization> | |||
| to a forged-origin | <address> | |||
| sub-prefix hijack during normal operations, when the /22 pre | <postal> | |||
| fix is not | <street>100 Bureau Drive</street> | |||
| originated. | <city>Gaithersburg</city> | |||
| </t> | <region>MD</region> | |||
| <t> | <code>20899</code> | |||
| The use of maxLength in this second ROA also comes with addi | <country>United States of America</country> | |||
| tional risk. | </postal> | |||
| While it permits the DDoS mitigation service at AS 64500 to | <email>kotikalapudi.sriram@nist.gov</email> | |||
| originate prefix | </address> | |||
| 192.168.0.0/24 during a DDoS attack in that space, it also m | </author> | |||
| akes the other | <author fullname="Job Snijders" initials="J." surname="Snijders"> | |||
| /24 prefixes covered by the /22 prefix (i.e., 192.168.1.0/24 | <organization>Fastly</organization> | |||
| , 192.168.2.0/24, | <address> | |||
| 192.168.3.0/24) vulnerable to forged-origin sub-prefix attac | <postal> | |||
| ks. | <street/> | |||
| </t> | <code/> | |||
| </section> | <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" /> | ||||
| <area>ops</area> | ||||
| <workgroup>sidrops</workgroup> | ||||
| <keyword>Secure Internet routing</keyword> | ||||
| <keyword>Resource public key infrastructure</keyword> | ||||
| <abstract> | ||||
| <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. 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 RPKI-based Route Origin Validation (RPKI-ROV) in the c | ||||
| ontext 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 anchor="intro"> | ||||
| <name>Introduction</name> | ||||
| <section title="Defensive De-aggregation In Response To Prefix Hijac | <t>The Resource Public Key Infrastructure (RPKI) <xref | |||
| ks" anchor="deaggr"> | target="RFC6480"/> uses Route Origin Authorizations (ROAs) to create a | |||
| <t> | cryptographically verifiable mapping from an IP prefix to a set of | |||
| In responding to certain classes of prefix hijack, in partic | Autonomous Systems (ASes) that are authorized to originate that prefix. | |||
| ular, the | Each ROA contains a set of IP prefixes and the AS number of one of the | |||
| forged-origin sub-prefix hijack described above, it may be d | ASes authorized to originate all the IP prefixes in the set <xref | |||
| esirable for the | target="RFC6482"/>. The ROA is cryptographically signed by the party | |||
| victim to perform "defensive de-aggregation", i.e. to begin | that holds a certificate for the set of IP prefixes. | |||
| originating | </t> | |||
| more-specific prefixes in order to compete with the hijack r | <t>The ROA format also supports a maxLength attribute. According to | |||
| outes for selection | <xref target="RFC6482"/>, "When | |||
| as the best path in networks that are not performing RPKI-ba | present, the maxLength specifies the maximum length of the IP address | |||
| sed route origin | prefix that the AS is authorized to advertise." Thus, rather than | |||
| validation (ROV) <xref target="RFC6811"/>. | requiring the ROA to list each prefix that the AS is authorized to | |||
| </t> | originate, the maxLength attribute provides a shorthand that authorizes | |||
| <t> | an AS to originate a set of IP prefixes. | |||
| In some topologies, where at least one AS on every path betw | </t> | |||
| een the victim | ||||
| and hijacker filters ROV invalid prefixes, it may be the cas | ||||
| e 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 t | ||||
| his response. | ||||
| </t> | ||||
| <t> | ||||
| Nevertheless, this document recommends that where possible, | ||||
| network operators | ||||
| publish minimal ROAs even in the face of this risk. This is | ||||
| because: | ||||
| <list style="symbols"> | ||||
| <t> | ||||
| Minimal ROAs offer the best possible protection agai | ||||
| nst the immediate | ||||
| impact of such an attack, rendering the need for suc | ||||
| h a response less | ||||
| likely; | ||||
| </t> | ||||
| <t> | ||||
| Increasing ROV adoption by network operators will, o | ||||
| ver time, decrease | ||||
| the size of the neighborhoods in which this risk exi | ||||
| sts; and | ||||
| </t> | ||||
| <t> | ||||
| Other methods for reducing the size of such neighbor | ||||
| hoods are available | ||||
| to potential victims, such as establishing direct EB | ||||
| GP adjacencies with | ||||
| networks from whom the defensive routes would otherw | ||||
| ise be hidden. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| </section> | <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="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; the hijack can be launched against any IP | ||||
| prefix/sub-prefix that has a ROA. Consider a prefix/sub-prefix that has | ||||
| a ROA that is unused (i.e., not announced in BGP by a legitimate AS). A | ||||
| 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, but the extent | ||||
| of harm is greater for unannounced prefixes. See <xref target="hijack"/> | ||||
| for detailed discussion. | ||||
| </t> | ||||
| <t>For this reason, this document recommends that, whenever possible, | ||||
| operators <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 | ||||
| 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 DDoS mitigation | ||||
| services. Considerations related to ROAs and 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>Please note that the term "RPKI-based Route Origin Validation" and | ||||
| the corresponding acronym "RPKI-ROV" that are used in this document mean t | ||||
| he | ||||
| same as the term "Prefix Origin Validation" used in <xref target="RFC6811" | ||||
| />. | ||||
| </t> | ||||
| <t>One ideal place to implement the ROA-related recommendations is in | ||||
| the user interfaces for configuring ROAs. Recommendations for | ||||
| implementors of such user interfaces are provided in <xref target="ui"/>. | ||||
| </t> | ||||
| <section title="Considerations for RTDR Filtering Scenarios" anchor="rtdr"> | <t>The practices described in this document require no changes | |||
| <t> | to the RPKI specifications and will not increase the number of signed | |||
| Considerations related to ROAs and origin validation <xref target="R | ROAs in the RPKI because ROAs already support lists of IP prefixes <xref | |||
| FC6811"/> for the | target="RFC6482"/>. | |||
| case of destination-based Remotely Triggered Discard Route (RTDR) (e | </t> | |||
| lsewhere referred | <section> | |||
| to as "Remotely Triggered Black Hole") filtering are addressed here. | <name>Requirements</name> | |||
| In RTDR filtering, highly specific prefixes (greater than /24 in IPv | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| 4 and greater than | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| /48 in IPv6; possibly even /32 (IPv4) and /128 (IPv6)) are announced | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| in BGP. | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| These announcements are tagged with the Well-known BGP Community def | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
| ined by | are to be interpreted as described in BCP 14 <xref | |||
| <xref target="RFC7999"/>. | target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they | |||
| It is obviously not desirable to use a large maxLength or include an | appear in all capitals, as shown here. | |||
| y such highly | ||||
| specific prefixes in the ROAs to accommodate destination-based RTDR | ||||
| filtering, for the | ||||
| reasons set out above. | ||||
| </t> | </t> | |||
| </section> | ||||
| <section> | ||||
| <name>Documentation Prefixes</name> | ||||
| <t> | <t>The documentation prefixes recommended in <xref target="RFC5737"/> ar | |||
| As a result, RPKI-based route origin validation <xref target="RFC681 | e | |||
| 1"/> is a poor fit | insufficient for use as example prefixes in this document. Therefore, | |||
| for the validation of RTDR routes. | this document uses the address space defined in <xref target="RFC1918"/> | |||
| Specification of new procedures to address this use case through the | for | |||
| use of the RPKI is | constructing example prefixes. | |||
| outside the scope of this document. | ||||
| </t> | </t> | |||
| <t>Note that although the examples in this document are presented | ||||
| <t> | using IPv4 prefixes, all the analysis thereof and the recommendations | |||
| Therefore: | made are equally valid for the equivalent IPv6 cases. | |||
| <list style="symbols"> | ||||
| <t> | ||||
| Operators SHOULD NOT create non-minimal ROAs (either by crea | ||||
| ting additional | ||||
| ROAs, or through the use of maxLength) for the purpose of ad | ||||
| vertising RTDR | ||||
| routes; and | ||||
| </t> | ||||
| <t> | ||||
| Operators providing a means for operators of neighboring aut | ||||
| onomous systems to | ||||
| advertise RTDR routes via BGP MUST NOT make the creation of | ||||
| non-minimal ROAs | ||||
| a pre-requisite for its use. | ||||
| </t> | ||||
| </list> | ||||
| </t> | </t> | |||
| </section> | ||||
| </section> | ||||
| <section> | ||||
| <name>Suggested Reading</name> | ||||
| <t>It is assumed that the reader understands BGP <xref | ||||
| target="RFC4271"/>, RPKI <xref target="RFC6480"/>, ROAs <xref | ||||
| target="RFC6482"/>, RPKI-ROV <xref | ||||
| target="RFC6811"/>, and BGPsec <xref target="RFC8205"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="hijack"> | ||||
| <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: | ||||
| </t> | ||||
| <ol type="(%d)" spacing="normal"> | ||||
| <li>the RPKI <xref target="RFC6480"/> is deployed, and</li> | ||||
| <li>routers use RPKI-ROV to drop invalid | ||||
| routes <xref target="RFC6811"/>, but </li> | ||||
| <li>BGPsec <xref target="RFC8205"/> (or any similar method | ||||
| to validate the truthfulness of the BGP AS_PATH attribute) is not | ||||
| 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 forged-origin sub-prefix hijack <xref target="RFC7115"/> | ||||
| <xref target="GCHSS"/> is described here using a running example. | ||||
| </t> | ||||
| <t>Consider the IP prefix 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, however, the organization issues and publishes a ROA | ||||
| including a maxLength value of 24: | ||||
| </t> | ||||
| <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 AS 64496 only originates two prefixes in BGP (192.168.0.0/16 | ||||
| and 192.168.225.0/24), all other prefixes authorized by the loose ROA | ||||
| (for instance, 192.168.0.0/24) are vulnerable to the following | ||||
| forged-origin sub-prefix hijack <xref target="RFC7115"/> <xref | ||||
| 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 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 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 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> | ||||
| <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 forged-origin sub-prefix hijack would have failed if a minimal | ||||
| ROA as described in <xref target="recommendations"/> was used instead of t | ||||
| he loose ROA. In this | ||||
| example, a minimal ROA would be: | ||||
| </t> | ||||
| <t indent="3">ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496)</t> | ||||
| <t>This ROA is "minimal" because it includes only those IP prefixes that A | ||||
| S 64496 originates in BGP, but no other IP prefixes <xref target="RFC6907"/>. | ||||
| </t> | ||||
| <t>The minimal ROA renders AS 64511's BGP announcement invalid because: | ||||
| </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</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"/>.</li> | ||||
| </ol> | ||||
| <t>If routers ignore invalid BGP announcements, the minimal ROA above | ||||
| ensures that the sub-prefix hijack will fail. | ||||
| </t> | ||||
| <t>Thus, if a minimal ROA had been used, the attacker would be forced | ||||
| to launch a forged-origin prefix hijack in order to attract traffic as | ||||
| follows: | ||||
| </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> | ||||
| <t>This forged-origin prefix hijack is significantly less damaging than | ||||
| the forged-origin sub-prefix hijack: | ||||
| </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 indent="3">Moreover, the path originated by AS 64511 is one hop | ||||
| longer than the path originated by the legitimate origin 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 where the hijacker presents the only route to the | ||||
| hijacked sub-prefix. | ||||
| </t> | ||||
| <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> | |||
| <section> | ||||
| <name>Measurements of the RPKI</name> | ||||
| <section title="User Interface Design Recommendations" anchor="ui"> | <t>Network measurements taken in June 2017 showed that 12% of the IP | |||
| <t> | prefixes authorized in ROAs have a maxLength value longer than their prefi | |||
| Most operator interaction with the RPKI system when creating or modi | x | |||
| fying ROAs will | length. Of these, the vast majority (84%) were non-minimal, as they | |||
| occur via a user interface that abstracts the underlying encoding, s | included sub-prefixes that are not announced in BGP by the legitimate | |||
| igning and | AS and were thus vulnerable to forged-origin sub-prefix hijacks. See | |||
| publishing operations. | <xref target="GSG17"/> for details. | |||
| </t> | ||||
| <t>These measurements suggest that operators commonly misconfigure the | ||||
| maxLength 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 anchor="recommendations"> | ||||
| <name>Recommendations about Minimal ROAs and maxLength</name> | ||||
| <t>Operators <bcp14>SHOULD</bcp14> use 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 <xref | ||||
| target="hijack"/> for an example. | ||||
| </t> | ||||
| <t>In general, operators <bcp14>SHOULD</bcp14> avoid using the maxLength | ||||
| attribute in their ROAs, since its inclusion will usually make the ROA | ||||
| non-minimal. | ||||
| </t> | ||||
| <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. Anoth | ||||
| er | ||||
| exception is where: (a) the maxLength value is substantially larger compar | ||||
| ed | ||||
| 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 practice requires no changes to the RPKI 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 <xref | ||||
| target="GSG17"/> for further discussion of why this practice will have | ||||
| minimal impact on the performance of the RPKI ecosystem. | ||||
| </t> | ||||
| <t>Operators that implement these recommendations and have existing | ||||
| ROAs published in the RPKI system <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 <bcp14>MUST</bcp14> be replaced as necessary. Such an exercise | ||||
| <bcp14>MUST</bcp14> be repeated whenever the operator makes changes to | ||||
| either policy. | ||||
| </t> | ||||
| <section anchor="nominimal"> | ||||
| <name>Facilitating Ad Hoc Routing Changes and DDoS 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> | |||
| <t> | <t>In order to ensure that such ad hoc routing changes are effective, | |||
| This document recommends that designers and/or providers of such use | a ROA validating the new route should exist. However, a difficulty | |||
| r interfaces SHOULD | arises due to the fact that newly created objects in the RPKI are made | |||
| provide warnings to draw the user's attention to the risks of creati | visible to relying parties considerably more slowly than routing | |||
| ng non-minimal | updates in BGP. | |||
| ROAs in general, and use of the maxLength attribute in particular. | ||||
| </t> | </t> | |||
| <t> | <t>Ideally, it would not be necessary to pre-create the ROA, which | |||
| Warnings provided by such a system may vary in nature from generic w | validates the ad hoc route, and instead create it "on the fly" as | |||
| arnings based | required. However, this is practical only if the latency imposed by | |||
| purely on the inclusion of the maxLength attribute, to customised gu | the propagation of RPKI data is guaranteed to be within acceptable | |||
| idance based on the | limits in the circumstances. For time-critical interventions such as | |||
| observable BGP routing policy of the operator in question. | responding to a DDoS attack, this is unlikely to be the case. | |||
| The choices made in this respect are expected to be dependent on the | ||||
| target user | ||||
| audience of the implementation. | ||||
| </t> | </t> | |||
| </section> | <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 | ||||
| <section title="Operational Considerations" anchor="operational-consideratio | non-minimal, since it includes an IP prefix that is sometimes (but not | |||
| ns"> | always) originated in BGP. | |||
| <t> | ||||
| The recommendations specified in this document, in particular, those | ||||
| in | ||||
| <xref target="recommendations"/>, involve trade-offs between operati | ||||
| onal agility and | ||||
| security. | ||||
| </t> | </t> | |||
| <t> | <t>In this case, the ROA <bcp14>SHOULD</bcp14> only include: | |||
| Operators adopting the recommended practice of issuing minimal ROAs | ||||
| will, by definition | ||||
| need to make changes to their existing set of issued ROAs in order t | ||||
| o effect changes to | ||||
| the set of prefixes which are originated in BGP. | ||||
| </t> | </t> | |||
| <t> | <ol type="(%d)" spacing="normal"> | |||
| Even in the case of routing changes that are planned in advance, exi | <li>the set of IP prefixes that are always originated in BGP, | |||
| sting procedures | and</li> | |||
| may need to be updated to incorporate changes to issued ROAs, and ma | <li>the set of IP prefixes that are sometimes, but not always, | |||
| y require | originated in BGP.</li> | |||
| additional time allowed for those changes to propagate. | </ol> | |||
| <t>The ROA <bcp14>SHOULD NOT</bcp14> include any IP prefixes that the | ||||
| operator knows will not be originated in BGP. In general, the ROA | ||||
| <bcp14>SHOULD NOT</bcp14> make use of the maxLength attribute unless | ||||
| doing so has no impact on the set of included prefixes. | ||||
| </t> | </t> | |||
| <t> | <t>The running example is now extended to illustrate one situation | |||
| Operators are encouraged to carefully review the issues highlighted | where it is not possible to issue a minimal ROA. | |||
| (especially those | ||||
| in <xref target="nominimal"/> and <xref target="deaggr"/>) 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> | |||
| <t> | <t>Consider the following scenario prior to the deployment of RPKI. | |||
| The recommendations made in section 5 are likely to be more onerous | Suppose AS 64496 announced 192.168.0.0/16 and has a contract with a | |||
| for operators | DDoS mitigation service provider that | |||
| utilising large IP address space allocations from which many more-sp | holds AS 64500. Further, assume that the DDoS mitigation service | |||
| ecific | contract applies to all IP addresses covered by 192.168.0.0/22. When | |||
| advertisements are made in BGP. Operators of such networks are encou | a DDoS attack is detected and reported by AS 64496, AS 64500 | |||
| raged to seek | immediately originates 192.168.0.0/22, thus attracting all the DDoS | |||
| opportunities to automate the required procedures in order to minimi | traffic to itself. The traffic is scrubbed at AS 64500 and then sent | |||
| se manual | back to AS 64496 over a backhaul link. Notice that, during a DDoS | |||
| operational burden. | attack, the DDoS mitigation service provider AS 64500 originates a /22 | |||
| prefix that is longer than AS 64496's /16 prefix, 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> | |||
| </section> | <t>First, suppose the RPKI only had the minimal ROA for AS 64496, as | |||
| described in <xref target="hijack"/>. However, if there is no ROA | ||||
| <section title="Security Considerations" anchor="security-considerations"> | authorizing AS 64500 to announce the /22 prefix, then the DDoS | |||
| <t> | mitigation (and traffic scrubbing) scheme would not work. That is, if | |||
| This document makes recommendations regarding the use of RPKI-based | AS 64500 originates the /22 prefix in BGP during DDoS attacks, the | |||
| origin validation | announcement would be invalid <xref target="RFC6811"/>. | |||
| as defined in <xref target="RFC6811"/>, and as such introduces no ad | ||||
| ditional security | ||||
| considerations beyond those specified therein. | ||||
| </t> | </t> | |||
| </section> | <t>Therefore, the RPKI should have two ROAs: one for AS 64496 and one | |||
| for AS 64500. | ||||
| <section anchor="IANA" title="IANA Considerations"> | ||||
| <t> | ||||
| This document includes no request to IANA. | ||||
| </t> | </t> | |||
| </section> | <t indent="3">ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496)</t> | |||
| <t indent="3">ROA:(192.168.0.0/22, AS 64500)</t> | ||||
| <section anchor="Acknowledgments" title="Acknowledgments"> | <t>Neither ROA uses the maxLength attribute, but the second ROA is | |||
| <t> | not "minimal" because it contains a /22 prefix that is not originated | |||
| The authors would like to thank the following people for their revie | by anyone in BGP during normal operations. The /22 prefix is only | |||
| w and | originated by AS 64500 as part of its DDoS mitigation service during a | |||
| contributions to this document: | DDoS attack. | |||
| Omar Sagga | </t> | |||
| and | <t>Notice, however, that this scheme does not come without risks. | |||
| Aris Lambrianidis. | Namely, all IP addresses in 192.168.0.0/22 are vulnerable to a | |||
| Thanks are also due to | forged-origin sub-prefix hijack during normal operations when the /22 | |||
| Matthias Waehlisch, | prefix is not originated. (The hijacker AS 64511 would send the BGP | |||
| Ties de Kock, | announcement "192.168.0.0/22: AS 64511, AS 64500", falsely claiming | |||
| Amreesh Phokeer, | that AS 64511 is a neighbor of AS 64500 and falsely claiming that AS | |||
| Éric Vyncke, | 64500 originates 192.168.0.0/22.) | |||
| Alvaro Retana, | </t> | |||
| John Scudder, | <t>In some situations, the DDoS mitigation service at AS 64500 might | |||
| Roman Danyliw, | want to limit the amount of DDoS traffic that it attracts and scrubs. | |||
| Andrew Alston, | Suppose that a DDoS attack only targets IP addresses in | |||
| and | 192.168.0.0/24. Then, the DDoS mitigation service at AS 64500 only | |||
| Murray Kucherawy | wants to attract the traffic designated for the /24 prefix that is | |||
| for comments and suggestions, | under attack, but not the entire /22 prefix. To allow for this, the | |||
| to Roni Even for the Gen-ART review, | RPKI should have two ROAs: one for AS 64496 and one for AS 64500. | |||
| to Jean Mahoney for the ART-ART review, | </t> | |||
| to Acee Lindem for the Routing Directorate review, | <t indent="3">ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496)</t> | |||
| and | <t indent="3">ROA:(192.168.0.0/22-24, AS 64500)</t> | |||
| to Sean Turner for the Security Area Directorate review. | <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 before, the second ROA is not "minimal" because it contains | ||||
| prefixes that are not originated by anyone in BGP during normal | ||||
| operations. Also, all IP addresses in 192.168.0.0/22 are | ||||
| vulnerable to a forged-origin sub-prefix hijack during normal | ||||
| operations when the /22 prefix is not originated. | ||||
| </t> | ||||
| <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 anchor="deaggr"> | ||||
| <name>Defensive De-aggregation in Response to Prefix Hijacks</name> | ||||
| <t>When responding to certain classes of prefix hijack (in particular, | ||||
| the forged-origin sub-prefix hijack described above), it may be | ||||
| desirable for the victim to perform "defensive de-aggregation", | ||||
| 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-ROV <xref | ||||
| target="RFC6811"/>. | ||||
| </t> | ||||
| <t>In topologies where at least one AS on every path between the | ||||
| victim and hijacker filters RPKI-ROV invalid prefixes, it may be the cas | ||||
| e | ||||
| 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, this document recommends that, where possible, network | ||||
| operators publish minimal ROAs even in the face of this risk. This is | ||||
| because: | ||||
| </t> | </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;</li> | ||||
| <li>Increasing RPKI-ROV adoption by network operators will, over time, | ||||
| decrease the size of the neighborhoods in which this risk exists; | ||||
| and</li> | ||||
| <li>Other methods for reducing the size of such neighborhoods are | ||||
| available to potential victims, such as establishing direct External | ||||
| BGP (EBGP) adjacencies with networks from whom the defensive routes | ||||
| would otherwise be hidden.</li> | ||||
| </ul> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="rtdr"> | ||||
| <name>Considerations for RTDR Filtering Scenarios</name> | ||||
| <t>Considerations related to ROAs and RPKI-ROV <xref | ||||
| target="RFC6811"/> for the case of destination-based 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, or | ||||
| possibly even /32 in IPv4 and /128 in IPv6) are announced in BGP. These | ||||
| announcements are tagged with the well-known BGP community defined by | ||||
| <xref target="RFC7999"/>. 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 t | ||||
| o | ||||
| accommodate destination-based RTDR filtering. | ||||
| </t> | ||||
| </middle> | <t>As a result, RPKI-ROV <xref target="RFC6811"/> is a poor fit for the | |||
| validation of RTDR routes. | ||||
| <back> | Specification of new procedures to address this use case through the use | |||
| of the RPKI is outside the scope of this document. | ||||
| <references title="Normative References"> | </t> | |||
| <?rfc include="reference.RFC.1918.xml"?> | <t>Therefore: | |||
| <?rfc include="reference.RFC.2119.xml"?> | </t> | |||
| <?rfc include="reference.RFC.4271.xml"?> | <ul spacing="normal"> | |||
| <?rfc include="reference.RFC.6480.xml"?> | <li>Operators <bcp14>SHOULD NOT</bcp14> create non-minimal ROAs | |||
| <?rfc include="reference.RFC.6482.xml"?> | (by either creating additional ROAs or using the maxLength attribute) | |||
| <?rfc include="reference.RFC.6811.xml"?> | for the purpose of advertising RTDR routes; and</li> | |||
| <?rfc include="reference.RFC.7115.xml"?> | <li>Operators providing a means for operators of neighboring | |||
| <?rfc include="reference.RFC.8174.xml"?> | autonomous systems to advertise RTDR routes via BGP <bcp14>MUST | |||
| NOT</bcp14> make the creation of non-minimal ROAs a pre-requisite for | ||||
| </references> | its use.</li> | |||
| </ul> | ||||
| <references title="Informative References"> | </section> | |||
| <section anchor="ui"> | ||||
| <name>User Interface Design 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, and publishing operations. | ||||
| </t> | ||||
| <t>This document recommends that designers and/or providers of such user | ||||
| interfaces <bcp14>SHOULD</bcp14> provide warnings to draw the user's | ||||
| attention to the risks of creating non-minimal ROAs in general and using | ||||
| the maxLength attribute in particular. | ||||
| </t> | ||||
| <t>Warnings provided by such a system may vary in nature from generic | ||||
| warnings based purely on the inclusion of the maxLength 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 anchor="operational-considerations"> | ||||
| <name>Operational Considerations</name> | ||||
| <t>The recommendations specified in this document (in particular, those | ||||
| in <xref target="recommendations"/>) involve trade-offs between | ||||
| operational agility and security. | ||||
| </t> | ||||
| <t>Operators adopting the recommended practice of issuing minimal ROAs | ||||
| will, by definition, need to make changes to their existing set of issued | ||||
| ROAs in order to effect changes to the set of prefixes that are | ||||
| originated in BGP. | ||||
| </t> | ||||
| <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 and may require additional time allowed for those changes | ||||
| to propagate. | ||||
| </t> | ||||
| <t>Operators are encouraged to carefully review the issues highlighted | ||||
| (especially those in Sections <xref target="nominimal" format="counter"/> | ||||
| and <xref | ||||
| 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 recommendations made in <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 anchor="security-considerations"> | ||||
| <name>Security Considerations</name> | ||||
| <t>This document makes recommendations regarding the use of RPKI-ROV | ||||
| as defined in <xref target="RFC6811"/> and, as such, | ||||
| introduces no additional security considerations beyond those specified | ||||
| therein. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="IANA"> | ||||
| <name>IANA Considerations</name> | ||||
| <t>This document has no IANA actions. | ||||
| </t> | ||||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| <references> | ||||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1 | ||||
| 918.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
| 119.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 271.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 480.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 482.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 811.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 115.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 174.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <reference anchor="GSG17" target="https://eprint.iacr.org/2016/1015.pdf" > | <reference anchor="GSG17" target="https://eprint.iacr.org/2016/1015.pdf" > | |||
| <front> | <front> | |||
| <title>Maxlength Considered Harmful to the RPKI</title> | <title>MaxLength Considered Harmful to the RPKI</title> | |||
| <author initials="Y." surname="Gilad"><organization /></author> | <author initials="Y." surname="Gilad"> | |||
| <author initials="O." surname="Sagga"><organization /></author> | <organization/> | |||
| <author initials="S." surname="Goldberg"><organization /></autho | </author> | |||
| r> | <author initials="O." surname="Sagga"> | |||
| <date year="2017" month="December" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="in" value="ACM CoNEXT 2017" /> | <author initials="S." surname="Goldberg"> | |||
| <organization/> | ||||
| </author> | ||||
| <date year="2017" month="December"/> | ||||
| </front> | ||||
| <refcontent>CoNEXT '17</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1145/3143361.3143363"/> | ||||
| </reference> | </reference> | |||
| <reference anchor="LSG16" target="http://cacm.acm.org/magazines/2016/10/ 207763-rethinking-security-for-internet-routing/"> | <reference anchor="LSG16" target="http://cacm.acm.org/magazines/2016/10/ 207763-rethinking-security-for-internet-routing/"> | |||
| <front> | <front> | |||
| <title>Rethinking Security for Internet Routing</title> | <title>Rethinking security for internet routing</title> | |||
| <author initials="R." surname="Lychev"><organization /></author> | <author initials="R." surname="Lychev"> | |||
| <author initials="M." surname="Shapira"><organization /></author | <organization/> | |||
| > | </author> | |||
| <author initials="S." surname="Goldberg"><organization /></autho | <author initials="M." surname="Shapira"> | |||
| r> | <organization/> | |||
| <date year="2016" month="October" /> | </author> | |||
| </front> | <author initials="S." surname="Goldberg"> | |||
| <seriesInfo name="in" value="Communications of the ACM" /> | <organization/> | |||
| </author> | ||||
| <date year="2016" month="October"/> | ||||
| </front> | ||||
| <refcontent>Communications of the ACM</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1145/2896817"/> | ||||
| </reference> | </reference> | |||
| <reference anchor="GCHSS" target="https://eprint.iacr.org/2016/1010.pdf" > | <reference anchor="GCHSS" target="https://eprint.iacr.org/2016/1010.pdf" > | |||
| <front> | <front> | |||
| <title>Are We There Yet? On RPKI's Deployment and Security</ | <title>Are We There Yet? On RPKI's Deployment and Security</title> | |||
| title> | <author initials="Y." surname="Gilad"> | |||
| <author initials="Y." surname="Gilad"><organization /></author> | <organization/> | |||
| <author initials="A." surname="Cohen"><organization /></author> | </author> | |||
| <author initials="A." surname="Herzberg"><organization /></autho | <author initials="A." surname="Cohen"> | |||
| r> | <organization/> | |||
| <author initials="M." surname="Schapira"><organization /></autho | </author> | |||
| r> | <author initials="A." surname="Herzberg"> | |||
| <author initials="H." surname="Shulman"><organization /></author | <organization/> | |||
| > | </author> | |||
| <date year="2017" month="February" /> | <author initials="M." surname="Schapira"> | |||
| </front> | <organization/> | |||
| <seriesInfo name="in" value="NDSS 2017" /> | </author> | |||
| </reference> | <author initials="H." surname="Shulman"> | |||
| <organization/> | ||||
| <reference anchor="HARMFUL" target="https://eprint.iacr.org/2016/1015.pd | </author> | |||
| f"> | <date year="2017" month="February"/> | |||
| <!-- https://dl.acm.org/citation.cfm?doid=3143361.3143363 --> | </front> | |||
| <front> | <refcontent>NDSS 2017</refcontent> | |||
| <title>MaxLength Considered Harmful to the RPKI</title> | ||||
| <author initials="Y." surname="Gilad"><organization /></author> | ||||
| <author initials="O." surname="Sagga"><organization /></author> | ||||
| <author initials="S." surname="Goldberg"><organization /></autho | ||||
| r> | ||||
| <date year="2017" /> | ||||
| </front> | ||||
| <!-- <seriesInfo name="in" value="NDSS 2017" /> --> | ||||
| </reference> | </reference> | |||
| <?rfc include="reference.RFC.5737.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| <?rfc include="reference.RFC.6907.xml"?> | 737.xml"/> | |||
| <?rfc include="reference.RFC.7999.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| <?rfc include="reference.RFC.8205.xml"?> | 907.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 999.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 205.xml"/> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section anchor="Acknowledgments" numbered="false"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>The authors would like to thank the 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 Director | ||||
| ate | ||||
| review, and to <contact fullname="Sean Turner"/> for the Security Area | ||||
| Directorate review. | ||||
| </t> | ||||
| </section> | ||||
| </back> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| <!-- vim: et ts=4 sts=4 sw=4 colorcolumn=100 spell : | ||||
| End of changes. 35 change blocks. | ||||
| 1035 lines changed or deleted | 692 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||