| rfc9319.original | rfc9319.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) Y. Gilad | Internet Engineering Task Force (IETF) Y. Gilad | |||
| Internet-Draft Hebrew University of Jerusalem | Request for Comments: 9319 Hebrew University of Jerusalem | |||
| Intended status: Best Current Practice S. Goldberg | BCP: 185 S. Goldberg | |||
| Expires: 15 February 2023 Boston University | Category: Best Current Practice Boston University | |||
| K. Sriram | ISSN: 2070-1721 K. Sriram | |||
| USA NIST | USA NIST | |||
| J. Snijders | J. Snijders | |||
| Fastly | Fastly | |||
| B. Maddison | B. Maddison | |||
| Workonline Communications | Workonline Communications | |||
| 14 August 2022 | October 2022 | |||
| The Use of maxLength in the RPKI | The Use of maxLength in the Resource Public Key Infrastructure (RPKI) | |||
| draft-ietf-sidrops-rpkimaxlen-15 | ||||
| Abstract | Abstract | |||
| This document recommends ways to reduce the forged-origin hijack | This document recommends ways to reduce the forged-origin hijack | |||
| attack surface by prudently limiting the set of IP prefixes that are | attack surface by prudently limiting the set of IP prefixes that are | |||
| included in a Route Origin Authorization (ROA). One recommendation | included in a Route Origin Authorization (ROA). One recommendation | |||
| is to avoid using the maxLength attribute in ROAs except in some | is to avoid using the maxLength attribute in ROAs except in some | |||
| specific cases. The recommendations complement and extend those in | specific cases. The recommendations complement and extend those in | |||
| RFC 7115. The document also discusses the creation of ROAs for | RFC 7115. This document also discusses the creation of ROAs for | |||
| facilitating the use of Distributed Denial of Service (DDoS) | facilitating the use of Distributed Denial of Service (DDoS) | |||
| mitigation services. Considerations related to ROAs and origin | mitigation services. Considerations related to ROAs and RPKI-based | |||
| validation in the context of destination-based Remotely Triggered | Route Origin Validation (RPKI-ROV) in the context of destination- | |||
| Discard Route (RTDR) (elsewhere referred to as "Remotely Triggered | based Remotely Triggered Discard Route (RTDR) (elsewhere referred to | |||
| Black Hole") filtering are also highlighted. | as "Remotely Triggered Black Hole") filtering are also highlighted. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This memo documents an Internet Best Current Practice. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| BCPs is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 15 February 2023. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9319. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Requirements | |||
| 1.2. Documentation Prefixes . . . . . . . . . . . . . . . . . 4 | 1.2. Documentation Prefixes | |||
| 2. Suggested Reading . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Suggested Reading | |||
| 3. Forged-Origin Sub-prefix Hijack . . . . . . . . . . . . . . . 4 | 3. Forged-Origin Sub-Prefix Hijack | |||
| 4. Measurements of the RPKI . . . . . . . . . . . . . . . . . . 7 | 4. Measurements of the RPKI | |||
| 5. Recommendations about Minimal ROAs and maxLength . . . . . . 7 | 5. Recommendations about Minimal ROAs and maxLength | |||
| 5.1. Facilitating Ad Hoc Routing Changes and DDoS | 5.1. Facilitating Ad Hoc Routing Changes and DDoS Mitigation | |||
| Mitigation . . . . . . . . . . . . . . . . . . . . . . . 8 | 5.2. Defensive De-aggregation in Response to Prefix Hijacks | |||
| 5.2. Defensive De-aggregation In Response To Prefix Hijacks . 10 | 6. Considerations for RTDR Filtering Scenarios | |||
| 6. Considerations for RTDR Filtering Scenarios . . . . . . . . . 11 | 7. User Interface Design Recommendations | |||
| 7. User Interface Design Recommendations . . . . . . . . . . . . 11 | 8. Operational Considerations | |||
| 8. Operational Considerations . . . . . . . . . . . . . . . . . 12 | 9. Security Considerations | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 10. IANA Considerations | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 11. References | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | 11.1. Normative References | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 11.2. Informative References | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 13 | Acknowledgments | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 14 | Authors' Addresses | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
| 1. Introduction | 1. Introduction | |||
| The RPKI [RFC6480] uses Route Origin Authorizations (ROAs) to create | The Resource Public Key Infrastructure (RPKI) [RFC6480] uses Route | |||
| a cryptographically verifiable mapping from an IP prefix to a set of | Origin Authorizations (ROAs) to create a cryptographically verifiable | |||
| autonomous systems (ASes) that are authorized to originate that | mapping from an IP prefix to a set of Autonomous Systems (ASes) that | |||
| prefix. Each ROA contains a set of IP prefixes, and the AS number of | are authorized to originate that prefix. Each ROA contains a set of | |||
| one of the ASes authorized to originate all the IP prefixes in the | IP prefixes and the AS number of one of the ASes authorized to | |||
| set [RFC6482]. The ROA is cryptographically signed by the party that | originate all the IP prefixes in the set [RFC6482]. The ROA is | |||
| holds a certificate for the set of IP prefixes. | cryptographically signed by the party that holds a certificate for | |||
| the set of IP prefixes. | ||||
| The ROA format also supports a maxLength attribute. According to | The ROA format also supports a maxLength attribute. According to | |||
| [RFC6482], "When present, the maxLength specifies the maximum length | [RFC6482], "When present, the maxLength specifies the maximum length | |||
| of the IP address prefix that the AS is authorized to advertise." | 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 | Thus, rather than requiring the ROA to list each prefix that the AS | |||
| is authorized to originate, the maxLength attribute provides a | is authorized to originate, the maxLength attribute provides a | |||
| shorthand that authorizes an AS to originate a set of IP prefixes. | shorthand that authorizes an AS to originate a set of IP prefixes. | |||
| However, measurements of RPKI deployments have found that the use of | However, measurements of RPKI deployments have found that the use of | |||
| the maxLength in ROAs tends to lead to security problems. In | the maxLength attribute in ROAs tends to lead to security problems. | |||
| particular, measurements taken in June 2017 showed that of the | In particular, measurements taken in June 2017 showed that of the | |||
| prefixes specified in ROAs that use the maxLength attribute, 84% were | prefixes specified in ROAs that use the maxLength attribute, 84% were | |||
| vulnerable to a forged-origin sub-prefix hijack [HARMFUL]. The | vulnerable to a forged-origin sub-prefix hijack [GSG17]. The forged- | |||
| forged-origin prefix or sub-prefix hijack involves inserting the | origin prefix or sub-prefix hijack involves inserting the legitimate | |||
| legitimate AS as specified in the ROA as the origin AS in the | AS as specified in the ROA as the origin AS in the AS_PATH; the | |||
| AS_PATH, and can be launched against any IP prefix/sub-prefix that | hijack can be launched against any IP prefix/sub-prefix that has a | |||
| has a ROA. Consider a prefix/sub-prefix that has a ROA but is | ROA. Consider a prefix/sub-prefix that has a ROA that is unused | |||
| unused, i.e., not announced in BGP by a legitimate AS. A forged | (i.e., not announced in BGP by a legitimate AS). A forged-origin | |||
| origin hijack involving such a prefix/sub-prefix can propagate widely | hijack involving such a prefix/sub-prefix can propagate widely | |||
| throughout the Internet. On the other hand, if the prefix/sub-prefix | throughout the Internet. On the other hand, if the prefix/sub-prefix | |||
| were announced by the legitimate AS, then the propagation of the | were announced by the legitimate AS, then the propagation of the | |||
| forged-origin hijack is somewhat limited because of its increased | forged-origin hijack is somewhat limited because of its increased | |||
| AS_PATH length relative to the legitimate announcement. Of course, | AS_PATH length relative to the legitimate announcement. Of course, | |||
| forged-origin hijacks are harmful in both cases but the extent of | forged-origin hijacks are harmful in both cases, but the extent of | |||
| harm is greater for unannounced prefixes. See Section 3 for detailed | harm is greater for unannounced prefixes. See Section 3 for detailed | |||
| discussion. | discussion. | |||
| For this reason, this document recommends that, whenever possible, | For this reason, this document recommends that, whenever possible, | |||
| operators SHOULD use "minimal ROAs" that authorize only those IP | operators SHOULD use "minimal ROAs" that authorize only those IP | |||
| prefixes that are actually originated in BGP, and no other prefixes. | prefixes that are actually originated in BGP, and no other prefixes. | |||
| Further, it recommends ways to reduce the forged-origin attack | Further, it recommends ways to reduce the forged-origin attack | |||
| surface by prudently limiting the address space that is included in | surface by prudently limiting the address space that is included in | |||
| Route Origin Authorizations (ROAs). One recommendation is to avoid | ROAs. One recommendation is to avoid using the maxLength attribute | |||
| using the maxLength attribute in ROAs except in some specific cases. | in ROAs except in some specific cases. The recommendations | |||
| The recommendations complement and extend those in [RFC7115]. The | complement and extend those in [RFC7115]. The document also | |||
| document also discusses the creation of ROAs for facilitating the use | discusses the creation of ROAs for facilitating the use of DDoS | |||
| of Distributed Denial of Service (DDoS) mitigation services. | mitigation services. Considerations related to ROAs and RPKI-ROV in | |||
| Considerations related to ROAs and origin validation in the context | the context of destination-based Remotely Triggered Discard Route | |||
| of destination-based Remotely Triggered Discard Route (RTDR) | (RTDR) (elsewhere referred to as "Remotely Triggered Black Hole") | |||
| (elsewhere referred to as "Remotely Triggered Black Hole") filtering | filtering are also highlighted. | |||
| are also highlighted. | ||||
| One ideal place to implement the ROA related recommendations is in | 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 | ||||
| [RFC6811]. | ||||
| One ideal place to implement the ROA-related recommendations is in | ||||
| the user interfaces for configuring ROAs. Recommendations for | the user interfaces for configuring ROAs. Recommendations for | |||
| implementors of such user interfaces are provided in Section 7 | implementors of such user interfaces are provided in Section 7. | |||
| Best current practices described in this document require no changes | ||||
| to the RPKI specification and will not increase the number of signed | The practices described in this document require no changes to the | |||
| ROAs in the RPKI because ROAs already support lists of IP prefixes | RPKI specifications and will not increase the number of signed ROAs | |||
| in the RPKI because ROAs already support lists of IP prefixes | ||||
| [RFC6482]. | [RFC6482]. | |||
| 1.1. Requirements | 1.1. Requirements | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 1.2. Documentation Prefixes | 1.2. Documentation Prefixes | |||
| The documentation prefixes recommended in [RFC5737] are insufficient | The documentation prefixes recommended in [RFC5737] are insufficient | |||
| for use as example prefixes in this document. Therefore, this | for use as example prefixes in this document. Therefore, this | |||
| document uses [RFC1918] address space for constructing example | document uses the address space defined in [RFC1918] for constructing | |||
| prefixes. | example prefixes. | |||
| Note that although the examples in this document are presented using | Note that although the examples in this document are presented using | |||
| IPv4 prefixes, all the analysis thereof and the recommendations made | IPv4 prefixes, all the analysis thereof and the recommendations made | |||
| are equally valid for the equivalent IPv6 cases. | are equally valid for the equivalent IPv6 cases. | |||
| 2. Suggested Reading | 2. Suggested Reading | |||
| It is assumed that the reader understands BGP [RFC4271], RPKI | It is assumed that the reader understands BGP [RFC4271], RPKI | |||
| [RFC6480], Route Origin Authorizations (ROAs) [RFC6482], RPKI-based | [RFC6480], ROAs [RFC6482], RPKI-ROV [RFC6811], and BGPsec [RFC8205]. | |||
| Prefix Validation [RFC6811], and BGPsec [RFC8205]. | ||||
| 3. Forged-Origin Sub-prefix Hijack | 3. Forged-Origin Sub-Prefix Hijack | |||
| A detailed description and discussion of forged-origin sub-prefix | A detailed description and discussion of forged-origin sub-prefix | |||
| hijacks are presented here, especially considering the case when the | hijacks are presented here, especially considering the case when the | |||
| sub-prefix is not announced in BGP. The forged-origin sub-prefix | sub-prefix is not announced in BGP. The forged-origin sub-prefix | |||
| hijack is relevant to a scenario in which: | hijack is relevant to a scenario in which: | |||
| (1) the RPKI [RFC6480] is deployed, and | (1) the RPKI [RFC6480] is deployed, and | |||
| (2) routers use RPKI origin validation to drop invalid routes | (2) routers use RPKI-ROV to drop invalid routes [RFC6811], but | |||
| [RFC6811], but | ||||
| (3) BGPsec [RFC8205] (or any similar method to validate the | (3) BGPsec [RFC8205] (or any similar method to validate the | |||
| truthfulness of the BGP AS_PATH attribute) is not deployed. | truthfulness of the BGP AS_PATH attribute) is not deployed. | |||
| Note that this set of assumptions accurately describes a substantial | Note that this set of assumptions accurately describes a substantial | |||
| and growing number of large Internet networks at the time of writing. | and growing number of large Internet networks at the time of writing. | |||
| The forged-origin sub-prefix hijack [RFC7115] [GCHSS] is described | The forged-origin sub-prefix hijack [RFC7115] [GCHSS] is described | |||
| here using a running example. | here using a running example. | |||
| Consider the IP prefix 192.168.0.0/16 which is allocated to an | Consider the IP prefix 192.168.0.0/16, which is allocated to an | |||
| organization that also operates AS 64496. In BGP, AS 64496 | 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 | 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 | 192.168.225.0/24. Therefore, the RPKI should contain a ROA | |||
| authorizing AS 64496 to originate these two IP prefixes. | authorizing AS 64496 to originate these two IP prefixes. | |||
| Suppose, however, the organization issues and publishes a ROA | Suppose, however, the organization issues and publishes a ROA | |||
| including a maxLength value of 24: | including a maxLength value of 24: | |||
| ROA:(192.168.0.0/16-24, AS 64496) | ROA:(192.168.0.0/16-24, AS 64496) | |||
| We refer to the above as a "loose ROA" since it authorizes AS 64496 | 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 | 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 | length /24, rather than only those prefixes that are intended to be | |||
| announced in BGP. | announced in BGP. | |||
| Because AS 64496 only originates two prefixes in BGP: 192.168.0.0/16 | 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 | and 192.168.225.0/24), all other prefixes authorized by the loose ROA | |||
| ROA" (for instance, 192.168.0.0/24), are vulnerable to the following | (for instance, 192.168.0.0/24) are vulnerable to the following | |||
| forged-origin sub-prefix hijack [RFC7115] [GCHSS]: | forged-origin sub-prefix hijack [RFC7115] [GCHSS]: | |||
| The hijacker AS 64511 sends a BGP announcement "192.168.0.0/24: AS | 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 | 64511, AS 64496", falsely claiming that AS 64511 is a neighbor of | |||
| AS 64496 and falsely claiming that AS 64496 originates the IP | AS 64496 and that AS 64496 originates the IP prefix | |||
| prefix 192.168.0.0/24. In fact, the IP prefix 192.168.0.0/24 is | 192.168.0.0/24. In fact, the IP prefix 192.168.0.0/24 is not | |||
| not originated by AS 64496. | originated by AS 64496. | |||
| The hijacker's BGP announcement is valid according to the RPKI | 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 | since the ROA (192.168.0.0/16-24, AS 64496) authorizes AS 64496 to | |||
| originate BGP routes for 192.168.0.0/24. | originate BGP routes for 192.168.0.0/24. | |||
| Because AS 64496 does not actually originate a route for | 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, the hijacker's route is the only route for | |||
| 192.168.0.0/24. Longest-prefix-match routing ensures that the | 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 | 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 | preferred over the legitimate route to 192.168.0.0/16 originated | |||
| by AS 64496. | by AS 64496. | |||
| Thus, the hijacker's route propagates through the Internet, and | Thus, the hijacker's route propagates through the Internet, and | |||
| traffic destined for IP addresses in 192.168.0.0/24 will be delivered | traffic destined for IP addresses in 192.168.0.0/24 will be delivered | |||
| to the hijacker. | to the hijacker. | |||
| The forged-origin sub-prefix hijack would have failed if a "minimal | The forged-origin sub-prefix hijack would have failed if a minimal | |||
| ROA" described below was used instead of the "loose ROA". In this | ROA as described in Section 5 was used instead of the loose ROA. In | |||
| example, a "minimal ROA" would be: | this example, a minimal ROA would be: | |||
| ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | |||
| This ROA is "minimal" because it includes only those IP prefixes that | This ROA is "minimal" because it includes only those IP prefixes that | |||
| AS 64496 originates in BGP, but no other IP prefixes [RFC6907]. | AS 64496 originates in BGP, but no other IP prefixes [RFC6907]. | |||
| The "minimal ROA" renders AS 64511's BGP announcement invalid | The minimal ROA renders AS 64511's BGP announcement invalid because: | |||
| because: | ||||
| (1) this ROA "covers" the attacker's announcement (since | (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 | 192.168.0.0/24 is a sub-prefix of 192.168.0.0/16), and | |||
| (2) there is no ROA "matching" the attacker's announcement (there | (2) there is no ROA "matching" the attacker's announcement (there is | |||
| is no ROA for AS 64511 and IP prefix 192.168.0.0/24) [RFC6811]. | no ROA for AS 64511 and IP prefix 192.168.0.0/24) [RFC6811]. | |||
| If routers ignore invalid BGP announcements, the minimal ROA above | If routers ignore invalid BGP announcements, the minimal ROA above | |||
| ensures that the sub-prefix hijack will fail. | ensures that the sub-prefix hijack will fail. | |||
| Thus, if a "minimal ROA" had been used, the attacker would be forced | Thus, if a minimal ROA had been used, the attacker would be forced to | |||
| to launch a forged-origin prefix hijack in order to attract traffic, | launch a forged-origin prefix hijack in order to attract traffic as | |||
| as follows: | follows: | |||
| The hijacker AS 64511 sends a BGP announcement "192.168.0.0/16: AS | 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 | 64511, AS 64496", falsely claiming that AS 64511 is a neighbor of | |||
| AS 64496. | AS 64496. | |||
| This forged-origin prefix hijack is significantly less damaging than | This forged-origin prefix hijack is significantly less damaging than | |||
| the forged-origin sub-prefix hijack: | the forged-origin sub-prefix hijack: | |||
| AS 64496 legitimately originates 192.168.0.0/16 in BGP, so the | AS 64496 legitimately originates 192.168.0.0/16 in BGP, so the | |||
| hijacker AS 64511 is not presenting the only route to | hijacker AS 64511 is not presenting the only route to | |||
| 192.168.0.0/16. | 192.168.0.0/16. | |||
| Moreover, the path originated by AS 64511 is one hop longer than | Moreover, the path originated by AS 64511 is one hop longer than | |||
| the path originated by the legitimate origin AS 64496. | the path originated by the legitimate origin AS 64496. | |||
| As discussed in [LSG16], this means that the hijacker will attract | As discussed in [LSG16], this means that the hijacker will attract | |||
| less traffic than it would have in the forged-origin sub-prefix | less traffic than it would have in the forged-origin sub-prefix | |||
| hijack, where the hijacker presents the only route to the hijacked | hijack where the hijacker presents the only route to the hijacked | |||
| sub-prefix. | sub-prefix. | |||
| In summary, a forged-origin sub-prefix hijack has the same impact as | 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 | a regular sub-prefix hijack, despite the increased AS_PATH length of | |||
| the illegitimate route. A forged-origin sub-prefix hijack is also | the illegitimate route. A forged-origin sub-prefix hijack is also | |||
| more damaging than the forged-origin prefix hijack. | more damaging than the forged-origin prefix hijack. | |||
| 4. Measurements of the RPKI | 4. Measurements of the RPKI | |||
| Network measurements taken in June 2017 showed that 12% of the IP | Network measurements taken in June 2017 showed that 12% of the IP | |||
| prefixes authorized in ROAs have a maxLength longer than their prefix | prefixes authorized in ROAs have a maxLength value longer than their | |||
| length. Of these, the vast majority (84%) were non-minimal, as they | prefix length. Of these, the vast majority (84%) were non-minimal, | |||
| included sub-prefixes that are not announced in BGP by the legitimate | as they included sub-prefixes that are not announced in BGP by the | |||
| AS, and were thus vulnerable to forged-origin sub-prefix hijacks. | legitimate AS and were thus vulnerable to forged-origin sub-prefix | |||
| See [GSG17] for details. | hijacks. See [GSG17] for details. | |||
| These measurements suggest that operators commonly misconfigure the | These measurements suggest that operators commonly misconfigure the | |||
| maxLength attribute, and unwittingly open themselves up to forged- | maxLength attribute and unwittingly open themselves up to forged- | |||
| origin sub-prefix hijacks. That is, they are exposing a much larger | origin sub-prefix hijacks. That is, they are exposing a much larger | |||
| attack surface for forged-origin hijacks than necessary. | attack surface for forged-origin hijacks than necessary. | |||
| 5. Recommendations about Minimal ROAs and maxLength | 5. Recommendations about Minimal ROAs and maxLength | |||
| Operators SHOULD use "minimal ROAs" whenever possible. A minimal ROA | Operators SHOULD use minimal ROAs whenever possible. A minimal ROA | |||
| contains only those IP prefixes that are actually originated by an AS | contains only those IP prefixes that are actually originated by an AS | |||
| in BGP and no other IP prefixes. (See Section 3 for an example.) | in BGP and no other IP prefixes. See Section 3 for an example. | |||
| In general, operators SHOULD avoid using the maxLength attribute in | In general, operators SHOULD avoid using the maxLength attribute in | |||
| their ROAs, since its inclusion will usually make the ROA non- | their ROAs, since its inclusion will usually make the ROA non- | |||
| minimal. | minimal. | |||
| One such exception may be when all more specific prefixes permitted | One such exception may be when all more specific prefixes permitted | |||
| by the maxLength are actually announced by the AS in the ROA. | by the maxLength value are actually announced by the AS in the ROA. | |||
| Another exception is where: (a) the maxLength is substantially larger | Another exception is where: (a) the maxLength value is substantially | |||
| compared to the specified prefix length in the ROA, and (b) a large | larger compared to the specified prefix length in the ROA, and (b) a | |||
| number of more specific prefixes in that range are announced by the | large number of more specific prefixes in that range are announced by | |||
| AS in the ROA. In practice, this case should occur rarely (if at | the AS in the ROA. In practice, this case should occur rarely (if at | |||
| all). Operator discretion is necessary in this case. | all). Operator discretion is necessary in this case. | |||
| This practice requires no changes to the RPKI specification and need | This practice requires no changes to the RPKI specifications and need | |||
| not increase the number of signed ROAs in the RPKI because ROAs | not increase the number of signed ROAs in the RPKI because ROAs | |||
| already support lists of IP prefixes [RFC6482]. See also [GSG17] for | already support lists of IP prefixes [RFC6482]. See [GSG17] for | |||
| further discussion of why this practice will have minimal impact on | further discussion of why this practice will have minimal impact on | |||
| the performance of the RPKI ecosystem. | the performance of the RPKI ecosystem. | |||
| Operators implementing these recommendations and that have existing | Operators that implement these recommendations and have existing ROAs | |||
| ROAs published in the RPKI system MUST perform a review of such | published in the RPKI system MUST perform a review of such objects, | |||
| objects, especially where they make use of the maxLength attribute, | especially where they make use of the maxLength attribute, to ensure | |||
| to ensure that the set of included prefixes is "minimal" with respect | that the set of included prefixes is "minimal" with respect to the | |||
| to the current BGP origination and routing policies. Published ROAs | current BGP origination and routing policies. Published ROAs MUST be | |||
| MUST be replaced as necessary. Such an exercise MUST be repeated | replaced as necessary. Such an exercise MUST be repeated whenever | |||
| whenever the operator makes changes to either policy. | the operator makes changes to either policy. | |||
| 5.1. Facilitating Ad Hoc Routing Changes and DDoS Mitigation | 5.1. Facilitating Ad Hoc Routing Changes and DDoS Mitigation | |||
| Operational requirements may require that a route for an IP prefix be | 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 | 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 | example of such a situation arises when an operator wishes to make | |||
| use of DDoS mitigation services that use BGP to redirect traffic via | use of DDoS mitigation services that use BGP to redirect traffic via | |||
| a "scrubbing center". | a "scrubbing center". | |||
| In order to ensure that such ad hoc routing changes are effective, a | In order to ensure that such ad hoc routing changes are effective, a | |||
| ROA validating the new route should exist. However a difficulty | ROA validating the new route should exist. However, a difficulty | |||
| arises due to the fact that newly created objects in the RPKI are | arises due to the fact that newly created objects in the RPKI are | |||
| made visible to relying parties considerably more slowly than routing | made visible to relying parties considerably more slowly than routing | |||
| updates in BGP. | updates in BGP. | |||
| Ideally, it would not be necessary to pre-create the ROA which | Ideally, it would not be necessary to pre-create the ROA, which | |||
| validates the ad hoc route, and instead create it "on-the-fly" as | validates the ad hoc route, and instead create it "on the fly" as | |||
| required. However, this is practical only if the latency imposed by | required. However, this is practical only if the latency imposed by | |||
| the propagation of RPKI data is guaranteed to be within acceptable | the propagation of RPKI data is guaranteed to be within acceptable | |||
| limits in the circumstances. For time-critical interventions such as | limits in the circumstances. For time-critical interventions such as | |||
| responding to a DDoS attack, this is unlikely to be the case. | responding to a DDoS attack, this is unlikely to be the case. | |||
| Thus, the ROA in question will usually need to be created well in | 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- | advance of the routing intervention, but such a ROA will be non- | |||
| minimal, since it includes an IP prefix that is sometimes (but not | minimal, since it includes an IP prefix that is sometimes (but not | |||
| always) originated in BGP. | always) originated in BGP. | |||
| In this case, the ROA SHOULD include only: | In this case, the ROA SHOULD only include: | |||
| (1) the set of IP prefixes that are always originated in BGP, and | (1) the set of IP prefixes that are always originated in BGP, and | |||
| (2) the set of IP prefixes that are sometimes, but not always, | (2) the set of IP prefixes that are sometimes, but not always, | |||
| originated in BGP. | originated in BGP. | |||
| The ROA SHOULD NOT include any IP prefixes that the operator knows | 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 | will not be originated in BGP. In general, the ROA SHOULD NOT make | |||
| use of the maxLength attribute unless doing so has no impact on the | use of the maxLength attribute unless doing so has no impact on the | |||
| set of included prefixes. | set of included prefixes. | |||
| The running example is now extended to illustrate one situation where | The running example is now extended to illustrate one situation where | |||
| it is not possible to issue a minimal ROA. | it is not possible to issue a minimal ROA. | |||
| Consider the following scenario prior to the deployment of RPKI. | 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 | Suppose AS 64496 announced 192.168.0.0/16 and has a contract with a | |||
| Distributed Denial of Service (DDoS) mitigation service provider that | DDoS mitigation service provider that holds AS 64500. Further, | |||
| holds AS 64500. Further, assume that the DDoS mitigation service | assume that the DDoS mitigation service contract applies to all IP | |||
| contract applies to all IP addresses covered by 192.168.0.0/22. When | addresses covered by 192.168.0.0/22. When a DDoS attack is detected | |||
| a DDoS attack is detected and reported by AS 64496, AS 64500 | and reported by AS 64496, AS 64500 immediately originates | |||
| immediately originates 192.168.0.0/22, thus attracting all the DDoS | 192.168.0.0/22, thus attracting all the DDoS traffic to itself. The | |||
| traffic to itself. The traffic is scrubbed at AS 64500 and then sent | traffic is scrubbed at AS 64500 and then sent back to AS 64496 over a | |||
| back to AS 64496 over a backhaul link. Notice that, during a DDoS | backhaul link. Notice that, during a DDoS attack, the DDoS | |||
| attack, the DDoS mitigation service provider AS 64500 originates a | mitigation service provider AS 64500 originates a /22 prefix that is | |||
| /22 prefix that is longer than AS 64496's /16 prefix, and so all the | longer than AS 64496's /16 prefix, so all the traffic (destined to | |||
| traffic (destined to addresses in 192.168.0.0/22) that normally goes | addresses in 192.168.0.0/22) that normally goes to AS 64496 goes to | |||
| to AS 64496 goes to AS 64500 instead. In some deployments, the | AS 64500 instead. In some deployments, the origination of the /22 | |||
| origination of the /22 route is performed by AS 64496 and announced | route is performed by AS 64496 and announced only to AS 64500, which | |||
| only to AS 64500, which then announces transit for that prefix. This | then announces transit for that prefix. This variation does not | |||
| variation does not change the properties considered here. | change the properties considered here. | |||
| First, suppose the RPKI only had the minimal ROA for AS 64496, as | First, suppose the RPKI only had the minimal ROA for AS 64496, as | |||
| described in Section 3. But if there is no ROA authorizing AS 64500 | described in Section 3. However, if there is no ROA authorizing AS | |||
| to announce the /22 prefix, then the DDoS mitigation (and traffic | 64500 to announce the /22 prefix, then the DDoS mitigation (and | |||
| scrubbing) scheme would not work. That is, if AS 64500 originates | traffic scrubbing) scheme would not work. That is, if AS 64500 | |||
| the /22 prefix in BGP during DDoS attacks, the announcement would be | originates the /22 prefix in BGP during DDoS attacks, the | |||
| invalid [RFC6811]. | announcement would be invalid [RFC6811]. | |||
| Therefore, the RPKI should have two ROAs: one for AS 64496 and one | Therefore, the RPKI should have two ROAs: one for AS 64496 and one | |||
| for AS 64500. | for AS 64500. | |||
| ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | |||
| ROA:(192.168.0.0/22, AS 64500) | ROA:(192.168.0.0/22, AS 64500) | |||
| Neither ROA uses the maxLength attribute. But the second ROA is not | Neither ROA uses the maxLength attribute, but the second ROA is not | |||
| "minimal" because it contains a /22 prefix that is not originated by | "minimal" because it contains a /22 prefix that is not originated by | |||
| anyone in BGP during normal operations. The /22 prefix is only | anyone in BGP during normal operations. The /22 prefix is only | |||
| originated by AS 64500 as part of its DDoS mitigation service during | originated by AS 64500 as part of its DDoS mitigation service during | |||
| a DDoS attack. | a DDoS attack. | |||
| Notice, however, that this scheme does not come without risks. | Notice, however, that this scheme does not come without risks. | |||
| Namely, all IP addresses in 192.168.0.0/22 are vulnerable to a | Namely, all IP addresses in 192.168.0.0/22 are vulnerable to a | |||
| forged-origin sub-prefix hijack during normal operations, when the | forged-origin sub-prefix hijack during normal operations when the /22 | |||
| /22 prefix is not originated. (The hijacker AS 64511 would send the | prefix is not originated. (The hijacker AS 64511 would send the BGP | |||
| BGP announcement "192.168.0.0/22: AS 64511, AS 64500", falsely | announcement "192.168.0.0/22: AS 64511, AS 64500", falsely claiming | |||
| claiming that AS 64511 is a neighbor of AS 64500 and falsely claiming | that AS 64511 is a neighbor of AS 64500 and falsely claiming that AS | |||
| that AS 64500 originates 192.168.0.0/22.) | 64500 originates 192.168.0.0/22.) | |||
| In some situations, the DDoS mitigation service at AS 64500 might | In some situations, the DDoS mitigation service at AS 64500 might | |||
| want to limit the amount of DDoS traffic that it attracts and scrubs. | want to limit the amount of DDoS traffic that it attracts and scrubs. | |||
| Suppose that a DDoS attack only targets IP addresses in | Suppose that a DDoS attack only targets IP addresses in | |||
| 192.168.0.0/24. Then, the DDoS mitigation service at AS 64500 only | 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 | 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 | 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. | RPKI should have two ROAs: one for AS 64496 and one for AS 64500. | |||
| ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | |||
| skipping to change at page 10, line 4 ¶ | skipping to change at line 421 ¶ | |||
| In some situations, the DDoS mitigation service at AS 64500 might | In some situations, the DDoS mitigation service at AS 64500 might | |||
| want to limit the amount of DDoS traffic that it attracts and scrubs. | want to limit the amount of DDoS traffic that it attracts and scrubs. | |||
| Suppose that a DDoS attack only targets IP addresses in | Suppose that a DDoS attack only targets IP addresses in | |||
| 192.168.0.0/24. Then, the DDoS mitigation service at AS 64500 only | 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 | 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 | 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. | RPKI should have two ROAs: one for AS 64496 and one for AS 64500. | |||
| ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | ROA:(192.168.0.0/16, 192.168.225.0/24, AS 64496) | |||
| ROA:(192.168.0.0/22-24, AS 64500) | ROA:(192.168.0.0/22-24, AS 64500) | |||
| The second ROA uses the maxLength attribute because it is designed to | The second ROA uses the maxLength attribute because it is designed to | |||
| explicitly enable AS 64500 to originate any /24 sub-prefix of | explicitly enable AS 64500 to originate any /24 sub-prefix of | |||
| 192.168.0.0/22. | 192.168.0.0/22. | |||
| As before, the second ROA is not "minimal" because it contains | As before, the second ROA is not "minimal" because it contains | |||
| prefixes that are not originated by anyone in BGP during normal | prefixes that are not originated by anyone in BGP during normal | |||
| operations. As before, all IP addresses in 192.168.0.0/22 are | operations. Also, all IP addresses in 192.168.0.0/22 are vulnerable | |||
| vulnerable to a forged-origin sub-prefix hijack during normal | to a forged-origin sub-prefix hijack during normal operations when | |||
| operations, when the /22 prefix is not originated. | the /22 prefix is not originated. | |||
| The use of maxLength in this second ROA also comes with additional | The use of the maxLength attribute in this second ROA also comes with | |||
| risk. While it permits the DDoS mitigation service at AS 64500 to | additional risk. While it permits the DDoS mitigation service at AS | |||
| originate prefix 192.168.0.0/24 during a DDoS attack in that space, | 64500 to originate prefix 192.168.0.0/24 during a DDoS attack in that | |||
| it also makes the other /24 prefixes covered by the /22 prefix (i.e., | space, it also makes the other /24 prefixes covered by the /22 prefix | |||
| 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24) vulnerable to forged- | (i.e., 192.168.1.0/24, 192.168.2.0/24, and 192.168.3.0/24) vulnerable | |||
| origin sub-prefix attacks. | to forged-origin sub-prefix attacks. | |||
| 5.2. Defensive De-aggregation In Response To Prefix Hijacks | 5.2. Defensive De-aggregation in Response to Prefix Hijacks | |||
| In responding to certain classes of prefix hijack, in particular, the | When responding to certain classes of prefix hijack (in particular, | |||
| forged-origin sub-prefix hijack described above, it may be desirable | the forged-origin sub-prefix hijack described above), it may be | |||
| for the victim to perform "defensive de-aggregation", i.e. to begin | desirable for the victim to perform "defensive de-aggregation", i.e., | |||
| originating more-specific prefixes in order to compete with the | to begin originating more-specific prefixes in order to compete with | |||
| hijack routes for selection as the best path in networks that are not | the hijack routes for selection as the best path in networks that are | |||
| performing RPKI-based route origin validation (ROV) [RFC6811]. | not performing RPKI-ROV [RFC6811]. | |||
| In some topologies, where at least one AS on every path between the | In topologies where at least one AS on every path between the victim | |||
| victim and hijacker filters ROV invalid prefixes, it may be the case | and hijacker filters RPKI-ROV invalid prefixes, it may be the case | |||
| that the existence of a minimal ROA issued by the victim prevents the | that the existence of a minimal ROA issued by the victim prevents the | |||
| defensive more-specific prefixes from being propagated to the | defensive more-specific prefixes from being propagated to the | |||
| networks topologically close to the attacker, thus hampering the | networks topologically close to the attacker, thus hampering the | |||
| effectiveness of this response. | effectiveness of this response. | |||
| Nevertheless, this document recommends that where possible, network | Nevertheless, this document recommends that, where possible, network | |||
| operators publish minimal ROAs even in the face of this risk. This | operators publish minimal ROAs even in the face of this risk. This | |||
| is because: | is because: | |||
| * Minimal ROAs offer the best possible protection against the | * Minimal ROAs offer the best possible protection against the | |||
| immediate impact of such an attack, rendering the need for such a | immediate impact of such an attack, rendering the need for such a | |||
| response less likely; | response less likely; | |||
| * Increasing ROV adoption by network operators will, over time, | * Increasing RPKI-ROV adoption by network operators will, over time, | |||
| decrease the size of the neighborhoods in which this risk exists; | decrease the size of the neighborhoods in which this risk exists; | |||
| and | and | |||
| * Other methods for reducing the size of such neighborhoods are | * Other methods for reducing the size of such neighborhoods are | |||
| available to potential victims, such as establishing direct EBGP | available to potential victims, such as establishing direct | |||
| adjacencies with networks from whom the defensive routes would | External BGP (EBGP) adjacencies with networks from whom the | |||
| otherwise be hidden. | defensive routes would otherwise be hidden. | |||
| 6. Considerations for RTDR Filtering Scenarios | 6. Considerations for RTDR Filtering Scenarios | |||
| Considerations related to ROAs and origin validation [RFC6811] for | Considerations related to ROAs and RPKI-ROV [RFC6811] for the case of | |||
| the case of destination-based Remotely Triggered Discard Route (RTDR) | destination-based RTDR (elsewhere referred to as "Remotely Triggered | |||
| (elsewhere referred to as "Remotely Triggered Black Hole") filtering | Black Hole") filtering are addressed here. In RTDR filtering, highly | |||
| are addressed here. In RTDR filtering, highly specific prefixes | specific prefixes (greater than /24 in IPv4 and greater than /48 in | |||
| (greater than /24 in IPv4 and greater than /48 in IPv6; possibly even | IPv6, or possibly even /32 in IPv4 and /128 in IPv6) are announced in | |||
| /32 (IPv4) and /128 (IPv6)) are announced in BGP. These | BGP. These announcements are tagged with the well-known BGP | |||
| announcements are tagged with the Well-known BGP Community defined by | community defined by [RFC7999]. For the reasons set out above, it is | |||
| [RFC7999]. It is obviously not desirable to use a large maxLength or | obviously not desirable to use a large maxLength value or include any | |||
| include any such highly specific prefixes in the ROAs to accommodate | such highly specific prefixes in the ROAs to accommodate destination- | |||
| destination-based RTDR filtering, for the reasons set out above. | based RTDR filtering. | |||
| As a result, RPKI-based route origin validation [RFC6811] is a poor | As a result, RPKI-ROV [RFC6811] is a poor fit for the validation of | |||
| fit for the validation of RTDR routes. Specification of new | RTDR routes. Specification of new procedures to address this use | |||
| procedures to address this use case through the use of the RPKI is | case through the use of the RPKI is outside the scope of this | |||
| outside the scope of this document. | document. | |||
| Therefore: | Therefore: | |||
| * Operators SHOULD NOT create non-minimal ROAs (either by creating | * Operators SHOULD NOT create non-minimal ROAs (by either creating | |||
| additional ROAs, or through the use of maxLength) for the purpose | additional ROAs or using the maxLength attribute) for the purpose | |||
| of advertising RTDR routes; and | of advertising RTDR routes; and | |||
| * Operators providing a means for operators of neighboring | * Operators providing a means for operators of neighboring | |||
| autonomous systems to advertise RTDR routes via BGP MUST NOT make | autonomous systems to advertise RTDR routes via BGP MUST NOT make | |||
| the creation of non-minimal ROAs a pre-requisite for its use. | the creation of non-minimal ROAs a pre-requisite for its use. | |||
| 7. User Interface Design Recommendations | 7. User Interface Design Recommendations | |||
| Most operator interaction with the RPKI system when creating or | Most operator interaction with the RPKI system when creating or | |||
| modifying ROAs will occur via a user interface that abstracts the | modifying ROAs will occur via a user interface that abstracts the | |||
| underlying encoding, signing and publishing operations. | underlying encoding, signing, and publishing operations. | |||
| This document recommends that designers and/or providers of such user | This document recommends that designers and/or providers of such user | |||
| interfaces SHOULD provide warnings to draw the user's attention to | interfaces SHOULD provide warnings to draw the user's attention to | |||
| the risks of creating non-minimal ROAs in general, and use of the | the risks of creating non-minimal ROAs in general and using the | |||
| maxLength attribute in particular. | maxLength attribute in particular. | |||
| Warnings provided by such a system may vary in nature from generic | Warnings provided by such a system may vary in nature from generic | |||
| warnings based purely on the inclusion of the maxLength attribute, to | warnings based purely on the inclusion of the maxLength attribute to | |||
| customised guidance based on the observable BGP routing policy of the | customised guidance based on the observable BGP routing policy of the | |||
| operator in question. The choices made in this respect are expected | operator in question. The choices made in this respect are expected | |||
| to be dependent on the target user audience of the implementation. | to be dependent on the target user audience of the implementation. | |||
| 8. Operational Considerations | 8. Operational Considerations | |||
| The recommendations specified in this document, in particular, those | The recommendations specified in this document (in particular, those | |||
| in Section 5, involve trade-offs between operational agility and | in Section 5) involve trade-offs between operational agility and | |||
| security. | security. | |||
| Operators adopting the recommended practice of issuing minimal ROAs | Operators adopting the recommended practice of issuing minimal ROAs | |||
| will, by definition need to make changes to their existing set of | will, by definition, need to make changes to their existing set of | |||
| issued ROAs in order to effect changes to the set of prefixes which | issued ROAs in order to effect changes to the set of prefixes that | |||
| are originated in BGP. | are originated in BGP. | |||
| Even in the case of routing changes that are planned in advance, | Even in the case of routing changes that are planned in advance, | |||
| existing procedures may need to be updated to incorporate changes to | existing procedures may need to be updated to incorporate changes to | |||
| issued ROAs, and may require additional time allowed for those | issued ROAs and may require additional time allowed for those changes | |||
| changes to propagate. | to propagate. | |||
| Operators are encouraged to carefully review the issues highlighted | Operators are encouraged to carefully review the issues highlighted | |||
| (especially those in Section 5.1 and Section 5.2) in light of their | (especially those in Sections 5.1 and 5.2) in light of their specific | |||
| specific operational requirements. Failure to do so could, in the | operational requirements. Failure to do so could, in the worst case, | |||
| worst case, result in a self-inflicted denial of service. | result in a self-inflicted denial of service. | |||
| The recommendations made in section 5 are likely to be more onerous | The recommendations made in Section 5 are likely to be more onerous | |||
| for operators utilising large IP address space allocations from which | for operators utilising large IP address space allocations from which | |||
| many more-specific advertisements are made in BGP. Operators of such | many more-specific advertisements are made in BGP. Operators of such | |||
| networks are encouraged to seek opportunities to automate the | networks are encouraged to seek opportunities to automate the | |||
| required procedures in order to minimise manual operational burden. | required procedures in order to minimise manual operational burden. | |||
| 9. Security Considerations | 9. Security Considerations | |||
| This document makes recommendations regarding the use of RPKI-based | This document makes recommendations regarding the use of RPKI-ROV as | |||
| origin validation as defined in [RFC6811], and as such introduces no | defined in [RFC6811] and, as such, introduces no additional security | |||
| additional security considerations beyond those specified therein. | considerations beyond those specified therein. | |||
| 10. IANA Considerations | 10. IANA Considerations | |||
| This document includes no request to IANA. | This document has no IANA actions. | |||
| 11. Acknowledgments | ||||
| 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, Eric 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. | ||||
| 12. References | 11. References | |||
| 12.1. Normative References | 11.1. Normative References | |||
| [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G | [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. | |||
| J., and E. Lear, "Address Allocation for Private | J., and E. Lear, "Address Allocation for Private | |||
| Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | |||
| February 1996, <https://www.rfc-editor.org/info/rfc1918>. | February 1996, <https://www.rfc-editor.org/info/rfc1918>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
| skipping to change at page 14, line 9 ¶ | skipping to change at line 598 ¶ | |||
| [RFC7115] Bush, R., "Origin Validation Operation Based on the | [RFC7115] Bush, R., "Origin Validation Operation Based on the | |||
| Resource Public Key Infrastructure (RPKI)", BCP 185, | Resource Public Key Infrastructure (RPKI)", BCP 185, | |||
| RFC 7115, DOI 10.17487/RFC7115, January 2014, | RFC 7115, DOI 10.17487/RFC7115, January 2014, | |||
| <https://www.rfc-editor.org/info/rfc7115>. | <https://www.rfc-editor.org/info/rfc7115>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 12.2. Informative References | 11.2. Informative References | |||
| [GSG17] Gilad, Y., Sagga, O., and S. Goldberg, "Maxlength | ||||
| Considered Harmful to the RPKI", in ACM CoNEXT 2017, | ||||
| December 2017, <https://eprint.iacr.org/2016/1015.pdf>. | ||||
| [LSG16] Lychev, R., Shapira, M., and S. Goldberg, "Rethinking | ||||
| Security for Internet Routing", in Communications of the | ||||
| ACM, October 2016, <http://cacm.acm.org/ | ||||
| magazines/2016/10/207763-rethinking-security-for-internet- | ||||
| routing/>. | ||||
| [GCHSS] Gilad, Y., Cohen, A., Herzberg, A., Schapira, M., and H. | [GCHSS] Gilad, Y., Cohen, A., Herzberg, A., Schapira, M., and H. | |||
| Shulman, "Are We There Yet? On RPKI's Deployment and | Shulman, "Are We There Yet? On RPKI's Deployment and | |||
| Security", in NDSS 2017, February 2017, | Security", NDSS 2017, February 2017, | |||
| <https://eprint.iacr.org/2016/1010.pdf>. | <https://eprint.iacr.org/2016/1010.pdf>. | |||
| [HARMFUL] Gilad, Y., Sagga, O., and S. Goldberg, "MaxLength | [GSG17] Gilad, Y., Sagga, O., and S. Goldberg, "MaxLength | |||
| Considered Harmful to the RPKI", 2017, | Considered Harmful to the RPKI", CoNEXT '17, | |||
| DOI 10.1145/3143361.3143363, December 2017, | ||||
| <https://eprint.iacr.org/2016/1015.pdf>. | <https://eprint.iacr.org/2016/1015.pdf>. | |||
| [LSG16] Lychev, R., Shapira, M., and S. Goldberg, "Rethinking | ||||
| security for internet routing", Communications of the ACM, | ||||
| DOI 10.1145/2896817, October 2016, <http://cacm.acm.org/ | ||||
| magazines/2016/10/207763-rethinking-security-for-internet- | ||||
| routing/>. | ||||
| [RFC5737] Arkko, J., Cotton, M., and L. Vegoda, "IPv4 Address Blocks | [RFC5737] Arkko, J., Cotton, M., and L. Vegoda, "IPv4 Address Blocks | |||
| Reserved for Documentation", RFC 5737, | Reserved for Documentation", RFC 5737, | |||
| DOI 10.17487/RFC5737, January 2010, | DOI 10.17487/RFC5737, January 2010, | |||
| <https://www.rfc-editor.org/info/rfc5737>. | <https://www.rfc-editor.org/info/rfc5737>. | |||
| [RFC6907] Manderson, T., Sriram, K., and R. White, "Use Cases and | [RFC6907] Manderson, T., Sriram, K., and R. White, "Use Cases and | |||
| Interpretations of Resource Public Key Infrastructure | Interpretations of Resource Public Key Infrastructure | |||
| (RPKI) Objects for Issuers and Relying Parties", RFC 6907, | (RPKI) Objects for Issuers and Relying Parties", RFC 6907, | |||
| DOI 10.17487/RFC6907, March 2013, | DOI 10.17487/RFC6907, March 2013, | |||
| <https://www.rfc-editor.org/info/rfc6907>. | <https://www.rfc-editor.org/info/rfc6907>. | |||
| [RFC7999] King, T., Dietzel, C., Snijders, J., Doering, G., and G. | [RFC7999] King, T., Dietzel, C., Snijders, J., Doering, G., and G. | |||
| Hankins, "BLACKHOLE Community", RFC 7999, | Hankins, "BLACKHOLE Community", RFC 7999, | |||
| DOI 10.17487/RFC7999, October 2016, | DOI 10.17487/RFC7999, October 2016, | |||
| <https://www.rfc-editor.org/info/rfc7999>. | <https://www.rfc-editor.org/info/rfc7999>. | |||
| [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | |||
| Specification", RFC 8205, DOI 10.17487/RFC8205, September | Specification", RFC 8205, DOI 10.17487/RFC8205, September | |||
| 2017, <https://www.rfc-editor.org/info/rfc8205>. | 2017, <https://www.rfc-editor.org/info/rfc8205>. | |||
| Acknowledgments | ||||
| 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 Area Directorate review, and | ||||
| to Sean Turner for the Security Area Directorate review. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Yossi Gilad | Yossi Gilad | |||
| Hebrew University of Jerusalem | Hebrew University of Jerusalem | |||
| Rothburg Family Buildings, Edmond J. Safra Campus | Rothburg Family Buildings | |||
| Edmond J. Safra Campus | ||||
| Jerusalem 9190416 | Jerusalem 9190416 | |||
| Israel | Israel | |||
| Email: yossigi@cs.huji.ac.il | Email: yossigi@cs.huji.ac.il | |||
| Sharon Goldberg | Sharon Goldberg | |||
| Boston University | Boston University | |||
| 111 Cummington St, MCS135 | 111 Cummington St, MCS135 | |||
| Boston, MA 02215 | Boston, MA 02215 | |||
| United States of America | United States of America | |||
| Email: goldbe@cs.bu.edu | Email: goldbe@cs.bu.edu | |||
| End of changes. 82 change blocks. | ||||
| 253 lines changed or deleted | 252 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||