@@ -25,8 +25,8 @@ between parties as their traffic traverses the Internet. But the
2525Internet itself consists of infrastructure, such as routers, that must
2626also be defended against attacks. Two areas of particular concern are
2727the interdomain routing system and the domain name system (DNS). Both
28- systems routinely come under attack. There are efforts under way to
29- make them more resistant to attacks as we discuss in the following
28+ systems routinely come under attack. There are efforts underway to
29+ make them more resistant to attacks, as we discuss in the following
3030sections.
3131
3232
@@ -35,11 +35,11 @@ sections.
3535
3636In most respects, a router is just a special-purpose computer with
3737some high-speed interfaces and specialized software to perform tasks
38- such as route computation and advertisement. So they need to be
38+ such as route computation and advertisement. So routers need to be
3939protected like end-systems, e.g., with strong passwords and
4040multi-factor authentication, using access control lists and firewalls,
4141etc. That is only a starting point, however, because the actual
42- routing protocols themselves represent an opportunity for attack. BGP,
42+ routing protocols themselves introduce opportunities for attack. BGP,
4343the Border Gateway Protocol, is vulnerable to a wide range of
4444attacks, and is the only routing protocol that is expected to cross the
4545boundaries of a single administrative domain, so we focus our
@@ -52,7 +52,7 @@ the problem solved by TLS: how do we know that we're talking to the
5252web site we wanted to connect to? But there are multiple levels to
5353this problem when it comes to inter-domain routing. When you have a
5454secure, encrypted connection to your bank, you probably trust them to
55- show you accurate information about your account (mostly- banks do make
55+ show you accurate information about your account (mostly— banks do make
5656mistakes on occasions) and the secure connection protects it from
5757modification by an attacker. A secure, encrypted connection to the
5858website of the New York Times, however, doesn't mean you should
@@ -122,13 +122,13 @@ algorithm). It also lacks dynamic key management and the ability to update the
122122cryptographic algorithm, so it is now deprecated in favor of a more
123123general TCP authentication option which is described in RFC 5925.
124124
125- It might seem somewhat counter-intuitive that BGP does not currently run
125+ It might seem somewhat counterintuitive that BGP does not currently run
126126over TLS, given the maturity and widespread adoption of that
127127technology today. The explanation for this comes down to a combination
128128of factors including history, inertia, and the different operational
129129model of running BGP versus connecting to a remote website. For
130130example, BGP sessions often run between directly connected routers at
131- a peering point or internet exchange points (IXPs) which allows for a
131+ a peering point or Internet exchange points (IXPs) which allows for a
132132simple TTL-based method to prevent spoofing. Privacy of BGP updates is
133133considerably less important than authenticity. And as we shall see,
134134there is a lot more to establishing the authenticity of a BGP
@@ -182,9 +182,9 @@ use the path if asked to do so? The short answer to both questions is that we
182182don't, but there has been a multi-decade quest to build mechanisms that
183183enable greater confidence in the correctness of such
184184announcements. This quest, and the slowness of its progress, was well
185- documented by Sharon Goldberg in 2014, and the progress continues
186- today. A more recent study by Testart and Clark from 2021 backs up the
187- claim that progress has been slow.
185+ documented by Sharon Goldberg in 2014. While progress continues
186+ today, a more recent study by Testart and Clark from 2021 indicated
187+ that progress had remained slow.
188188
189189Let's start with a simple and well-studied example. In 2008, ISPs in
190190Pakistan were ordered by the government to block access to YouTube for
@@ -195,15 +195,15 @@ so that it could then redirect traffic that would try to follow that
195195path. The problem was that not only was this path not a viable way to
196196reach YouTube, it was also a *more specific * path, that is, it was for
197197a longer prefix than the true path to YouTube that was being
198- advertised by other ASs . This turned into a problem well beyond the
198+ advertised by other ASes . This turned into a problem well beyond the
199199boundaries of Pakistan when the ISP advertised the route upstream to a
200200larger ISP. The upstream ISP now saw the more specific route as a
201201distinct piece of routing information from the true, less specific
202202route, and so it re-advertised this (false) path to its peers. Repeated
203203application of this decision to accept the more specific path and
204204re-advertise it caused much of the Internet to view the small ISP in
205205Pakistan as a true path to YouTube. Within minutes a large percentage
206- of the Internet was sending YouTube traffic to Pakistan, causing a
206+ of the Internet was sending YouTube request traffic to Pakistan, causing a
207207global outage for YouTube. Resolution was achieved by manual
208208intervention at multiple ISPs to stop the global advertisement of the
209209false path.
@@ -216,16 +216,16 @@ upstream from Pakistan Telecom should not have accepted the
216216advertisement that said "I have a route to YouTube". How would it know
217217not to accept this? After all, BGP needs to be dynamic, so a newly
218218advertised prefix is sometimes going to be correct. One solution to
219- this problem is the use of Internet Routing Registries, which serve as
220- databases mapping address prefixes to the ASs that are authorized to
219+ this problem is the use of Internet Routing Registries (IRRs) , which serve as
220+ databases mapping address prefixes to the ASes that are authorized to
221221advertise them. In the prior example, since YouTube is not a customer
222222of Pakistan Telecom, the IRR would show that the YouTube prefix should
223223not be advertised by this AS. The responsibility to filter out the
224224false announcement falls on the *upstream * ISP, who would need to
225225periodically query one or more IRRs in order to maintain an up-to-date
226226set of filters to apply to its downstream peers.
227227
228- There are numerous issues with the IRR approach, including the fact
228+ There are numerous issues with the IRR approach, including
229229that this sort of filtering gets much more difficult the closer you
230230get to the "core" of the Internet. It's one thing to filter prefixes
231231from an ISP that serves a modest number of customers in a single
@@ -272,7 +272,7 @@ describe three different uses of the RPKI in the following sections.
272272~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
273273
274274The first use of RPKI is to allow an AS to prove that it is authorized
275- to originate routing advertisements to specific address prefixes. A
275+ to originate routing advertisements for specific address prefixes. A
276276Route Origin Authorization (ROA) contains a certificate,
277277an AS number, and a set of prefixes that the AS is authorized to
278278advertise. The ROA is cryptographically signed by an entity that is
@@ -281,7 +281,7 @@ which this address prefix has been allocated.
281281
282282Address allocation is a hierarchical process. Because Regional
283283Internet Registries (RIRs) are at the top of the hierarchy for address
284- allocation, they are a logical place to place the root of trust, known
284+ allocation, they are a logical place for the root of trust, known
285285as a trust anchor, for the RPKI. There are five RIRs globally and each
286286has a root certificate in the RPKI.
287287
@@ -361,9 +361,9 @@ timescale, and certificates can be issued at the same time. Thus it is
361361feasible to fetch the entire contents of the RPKI repository to build up a
362362complete picture of the chains of certificates that have been
363363issued. With this information, a router running BGP can determine *in advance * which
364- ASs could originate routing advertisements for which prefixes and use
364+ ASes could originate routing advertisements for which prefixes and use
365365this to configure filtering rules that specify which advertisements they are
366- willing to accept. There is a well- established set of software tools
366+ willing to accept. There is a well established set of software tools
367367to automate this process for popular operating systems and commercial
368368routing platforms. Notably, the routers running BGP do not perform
369369cryptographic operations in real time when processing route
@@ -422,7 +422,7 @@ the RPKI repositories just like other objects in the RPKI.
422422Route origin validation only tackles part of the problem with BGP
423423security. Even if the originating AS can be shown to be valid, what do
424424we know about the rest of the path? For example, if a malicious ISP
425- has a valid path to a certain prefix that traverses five ASs , but
425+ has a valid path to a certain prefix that traverses five ASes , but
426426chooses to falsely advertise that it can reach that prefix in two AS
427427hops, it is likely to attract traffic destined for that
428428prefix. Whatever the motive for such a step may be (e.g., to increase
@@ -449,7 +449,7 @@ message.
449449
450450The harder part of the problem is validating that the *contents * of
451451the message are correct from the perspective of BGP. Since a BGP
452- announcement is an ordered list of ASs , each of which has added
452+ announcement is an ordered list of ASes , each of which has added
453453itself into the path to the destination, we need to validate that
454454every AS in the path has correctly announced a route to the
455455destination when it added itself into the path.
@@ -463,7 +463,7 @@ With the RPKI in place, every AS participating in BGPsec can be assumed
463463to have a well-known public key and matching private key.
464464
465465Now consider the process of constructing a path to a particular
466- prefix. The path consists of a set of ASs . For example, AS1, the origin AS, signs
466+ prefix. The path consists of a set of ASes . For example, AS1, the origin AS, signs
467467an announcement that says it is the origin for the prefix, using its
468468private key. Furthermore, it includes the number of the target AS,
469469AS2, to which it is sending the announcement, in the set of fields
@@ -485,9 +485,9 @@ the correct operation of BGPsec. Suppose that, for example, AS3 tries
485485to lie about the path it has to AS1, claiming that the path <AS3,AS1>
486486is valid (skipping over AS2). It can't construct a valid message to
487487make this claim with the information that it received from
488- AS2, because of the fact that AS2 is the target given by AS1. An
488+ AS2, because AS2 is the target given by AS1. An
489489attempt to create a signed path <AS3,AS1> could be detected as
490- invalid, because the signed statement from AS1 includes the fact that
490+ invalid, because the signed statement from AS1 includes that
491491its target was AS2, not AS3.
492492
493493Thus, when a valid signed announcement is received, the receiver is
@@ -536,34 +536,34 @@ in the following section.
536536At the time of writing, there is an effort underway at the IETF to
537537standardize an approach to path validation known as ASPA (AS Provider
538538Authorization). The idea is to use a new set of objects in the RPKI to
539- capture the relationships among ASs , and then use that information to
539+ capture the relationships among ASes , and then use that information to
540540check the validity of BGP advertisements as they are received.
541541
542542ASPA shares an attractive property with ROV: no cryptographic
543543operations are added to BGP itself. Just as ROV builds a database (in
544544the RPKI) of who is allowed to originate an advertisement, ASPA builds
545- a database showing which ASs provide transit to other ASs . This,
545+ a database showing which ASes provide transit to other ASes . This,
546546too, uses the RPKI, but with different types of certificates.
547547
548548An important ingredient in ASPA is the insight that the relationships
549- between ASs can be placed into a small set of categories. First, if there is
550- no BGP connection between a pair of ASs , they have no relationship—and
551- hence we should never see this pair of ASs next to each other in an
552- advertised path. For any pair of ASs that do interconnect, the
549+ between ASes can be placed into a small set of categories. First, if there is
550+ no BGP connection between a pair of ASes , they have no relationship—and
551+ hence we should never see this pair of ASes next to each other in an
552+ advertised path. For any pair of ASes that do interconnect, the
553553relationship can normally be classified as customer-to-provider, or
554554peer-to-peer. A customer depends on a provider to deliver traffic to
555555and from their AS, and that means that it is expected that the
556556provider's AS number will appear in routing advertisements to reach
557- the customer AS. Customer ASs , on the other hand, only deliver
558- traffic to their provider ASs if it originates in the customer AS itself or
557+ the customer AS. Customer ASes , on the other hand, only deliver
558+ traffic to their provider ASes if it originates in the customer AS itself or
559559comes from the customer's customers.
560560
561- The relationship between customers and providers is normally capture
561+ The relationship between customers and providers is normally captured
562562visually as "valley-free" routing. Routing advertisements flow "up" from customers
563563to providers, then (optionally) across between peers, then down from
564564providers to customers, as depicted in :numref: `Figure %s
565- <fig-valleyfree>`. In this figure, customer ASs are depicted below
566- their provider AS, while the two ASs at the top have a peer-to-peer
565+ <fig-valleyfree>`. In this figure, customer ASes are depicted below
566+ their provider AS, while the two ASes at the top have a peer-to-peer
567567relationship. Valley-free routes have the property that they never
568568start to go down (towards customers) and then head up again towards
569569providers. The appearance of a valley is a strong indication of a
@@ -577,7 +577,7 @@ relationships gives us the ability to detect such anomalies.
577577
578578 Valley-free topology of Autonomous Systems
579579
580- Suppose that two ASs , X and Y, publish a list of their providers
580+ Suppose that two ASes , X and Y, publish a list of their providers
581581using ASPA objects in the RPKI. Let's say that there is an ASPA object
582582asserting that AS X is a provider for AS Y, as well as an ASPA object
583583asserting the AS Y is *not * among the providers for AS X. If a router
@@ -594,11 +594,11 @@ power a BGP speaker gains to detect paths that are invalid.
594594
595595Notably, ASPA catches some routing problems (such as accidental
596596leakage of routes) that are not caught by BGPsec. This is because
597- BGPsec shows that ASs are connected to each other but does not capture
597+ BGPsec shows that ASes are connected to each other but does not capture
598598the customer-provider relationships.
599599
600600Interestingly, ASPA starts to provide some benefit to those using it
601- as soon as there are two ASs taking part. In other words, it has
601+ as soon as there are two ASes taking part. In other words, it has
602602quite good incremental deployment properties, another advantage over BGPsec.
603603
604604.. _reading_aspa :
@@ -631,7 +631,7 @@ quite good incremental deployment properties, another advantage over BGPsec.
631631 used to absorb flash crowds of legitimate traffic: a * Content
632632 Distribution Network (CDN). *The idea is to replicate content
633633 (whether it's a movie or a critical piece of infrastructure
634- metadata) across many widely- distributed servers. As long as the
634+ metadata) across many widely distributed servers. As long as the
635635 aggregate capacity of these servers is greater than the aggregate
636636 capacity of the botnet, content remains available. This notion of *
637637 aggregate *capacity generalizes beyond servers responding to GET
@@ -641,7 +641,7 @@ quite good incremental deployment properties, another advantage over BGPsec.
641641
642642 *The second countermeasure is to filter malicious traffic as early
643643 (close to the source) as possible. If a DoS attack comes from a
644- single source, then it is easy to "block" traffic from from that
644+ single source, then it is easy to "block" traffic from that
645645 source at an ingress to a network you control. This is why DoS
646646 attacks are typically distributed. Dropping (or rate limiting)
647647 attack packets at the boundary router (or firewall) for an
@@ -730,7 +730,7 @@ Even with no visibility of the client traffic, the attacker can force
730730the resolver to make queries to example.com by issuing queries of its
731731own, and then send the flood of responses to impersonate the
732732authoritative server. If successful, this leaves the fake data in the
733- cache until its TTL expires. Other clients of the resolved will now
733+ cache until its TTL expires. Other clients of the resolver will now
734734get the bad result from the cache. There are many variations of this type of
735735attack, broadly cataloged in RFC 3833, which analyzes the threats
736736faced by DNS.
@@ -891,21 +891,21 @@ how to encode the requests and responses are spelled out in the RFCs
891891and we need not dwell on them here.
892892
893893It's worth noting that in this model, we no longer have an assurance
894- that they DNS information being provided by the resolver is correct at
895- the same level that we did with DNSSEC . What we can be sure of is the
896- identity of the resolver we are connected to, since that is provided
897- by its TLS certificate, and the fact that the query sent and response
898- issued by the resolver have not been modified or observed by an
899- intermediary, since they are both encrypted and authenticated. But if
900- the resolver itself is giving bad information, perhaps because the
894+ to the same extent that we did with DNSSEC that the DNS information
895+ being provided by the resolver is correct . What we can be sure of is
896+ the identity of the resolver we are connected to, since that is
897+ provided by its TLS certificate, and that the query sent and
898+ response issued by the resolver have not been modified or observed by
899+ an intermediary, since they are both encrypted and authenticated. But
900+ if the resolver itself is giving bad information, perhaps because the
901901information provided to it from upstream in the DNS hierarchy has been
902902corrupted, the client will be none the wiser. So while the need to
903903deploy DNSSEC all the way along the hierarchy is something of an
904904impediment to deployment, it does provide a level of security that
905905isn't provided by simply securing the client-to-resolver channel.
906906
907907Another notable security risk that is not addressed by any of the
908- approaches discussed to this point, is the privacy of the client
908+ approaches discussed to this point is the privacy of the client
909909making the queries. The resolver has access to all the client requests
910910in unencrypted form, which would seem to be a requirement for those
911911requests to be served. However, there have been efforts to improve the
0 commit comments