Skip to content

Commit a60d673

Browse files
committed
typos and other minor edits
1 parent 2c34507 commit a60d673

File tree

1 file changed

+49
-49
lines changed

1 file changed

+49
-49
lines changed

infra.rst

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ between parties as their traffic traverses the Internet. But the
2525
Internet itself consists of infrastructure, such as routers, that must
2626
also be defended against attacks. Two areas of particular concern are
2727
the 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
3030
sections.
3131

3232

@@ -35,11 +35,11 @@ sections.
3535

3636
In most respects, a router is just a special-purpose computer with
3737
some 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
3939
protected like end-systems, e.g., with strong passwords and
4040
multi-factor authentication, using access control lists and firewalls,
4141
etc. 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,
4343
the Border Gateway Protocol, is vulnerable to a wide range of
4444
attacks, and is the only routing protocol that is expected to cross the
4545
boundaries 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
5252
web site we wanted to connect to? But there are multiple levels to
5353
this problem when it comes to inter-domain routing. When you have a
5454
secure, 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 (mostlybanks do make
5656
mistakes on occasions) and the secure connection protects it from
5757
modification by an attacker. A secure, encrypted connection to the
5858
website 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
122122
cryptographic algorithm, so it is now deprecated in favor of a more
123123
general 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
126126
over TLS, given the maturity and widespread adoption of that
127127
technology today. The explanation for this comes down to a combination
128128
of factors including history, inertia, and the different operational
129129
model of running BGP versus connecting to a remote website. For
130130
example, 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
132132
simple TTL-based method to prevent spoofing. Privacy of BGP updates is
133133
considerably less important than authenticity. And as we shall see,
134134
there 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
182182
don't, but there has been a multi-decade quest to build mechanisms that
183183
enable greater confidence in the correctness of such
184184
announcements. 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

189189
Let's start with a simple and well-studied example. In 2008, ISPs in
190190
Pakistan 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
195195
path. The problem was that not only was this path not a viable way to
196196
reach YouTube, it was also a *more specific* path, that is, it was for
197197
a 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
199199
boundaries of Pakistan when the ISP advertised the route upstream to a
200200
larger ISP. The upstream ISP now saw the more specific route as a
201201
distinct piece of routing information from the true, less specific
202202
route, and so it re-advertised this (false) path to its peers. Repeated
203203
application of this decision to accept the more specific path and
204204
re-advertise it caused much of the Internet to view the small ISP in
205205
Pakistan 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
207207
global outage for YouTube. Resolution was achieved by manual
208208
intervention at multiple ISPs to stop the global advertisement of the
209209
false path.
@@ -216,16 +216,16 @@ upstream from Pakistan Telecom should not have accepted the
216216
advertisement that said "I have a route to YouTube". How would it know
217217
not to accept this? After all, BGP needs to be dynamic, so a newly
218218
advertised 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
221221
advertise them. In the prior example, since YouTube is not a customer
222222
of Pakistan Telecom, the IRR would show that the YouTube prefix should
223223
not be advertised by this AS. The responsibility to filter out the
224224
false announcement falls on the *upstream* ISP, who would need to
225225
periodically query one or more IRRs in order to maintain an up-to-date
226226
set 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
229229
that this sort of filtering gets much more difficult the closer you
230230
get to the "core" of the Internet. It's one thing to filter prefixes
231231
from 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

274274
The 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
276276
Route Origin Authorization (ROA) contains a certificate,
277277
an AS number, and a set of prefixes that the AS is authorized to
278278
advertise. The ROA is cryptographically signed by an entity that is
@@ -281,7 +281,7 @@ which this address prefix has been allocated.
281281

282282
Address allocation is a hierarchical process. Because Regional
283283
Internet 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
285285
as a trust anchor, for the RPKI. There are five RIRs globally and each
286286
has a root certificate in the RPKI.
287287

@@ -361,9 +361,9 @@ timescale, and certificates can be issued at the same time. Thus it is
361361
feasible to fetch the entire contents of the RPKI repository to build up a
362362
complete picture of the chains of certificates that have been
363363
issued. 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
365365
this 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
367367
to automate this process for popular operating systems and commercial
368368
routing platforms. Notably, the routers running BGP do not perform
369369
cryptographic operations in real time when processing route
@@ -422,7 +422,7 @@ the RPKI repositories just like other objects in the RPKI.
422422
Route origin validation only tackles part of the problem with BGP
423423
security. Even if the originating AS can be shown to be valid, what do
424424
we 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
426426
chooses to falsely advertise that it can reach that prefix in two AS
427427
hops, it is likely to attract traffic destined for that
428428
prefix. Whatever the motive for such a step may be (e.g., to increase
@@ -449,7 +449,7 @@ message.
449449

450450
The harder part of the problem is validating that the *contents* of
451451
the 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
453453
itself into the path to the destination, we need to validate that
454454
every AS in the path has correctly announced a route to the
455455
destination when it added itself into the path.
@@ -463,7 +463,7 @@ With the RPKI in place, every AS participating in BGPsec can be assumed
463463
to have a well-known public key and matching private key.
464464

465465
Now 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
467467
an announcement that says it is the origin for the prefix, using its
468468
private key. Furthermore, it includes the number of the target AS,
469469
AS2, 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
485485
to lie about the path it has to AS1, claiming that the path <AS3,AS1>
486486
is valid (skipping over AS2). It can't construct a valid message to
487487
make 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
489489
attempt 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
491491
its target was AS2, not AS3.
492492

493493
Thus, when a valid signed announcement is received, the receiver is
@@ -536,34 +536,34 @@ in the following section.
536536
At the time of writing, there is an effort underway at the IETF to
537537
standardize an approach to path validation known as ASPA (AS Provider
538538
Authorization). 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
540540
check the validity of BGP advertisements as they are received.
541541

542542
ASPA shares an attractive property with ROV: no cryptographic
543543
operations are added to BGP itself. Just as ROV builds a database (in
544544
the 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,
546546
too, uses the RPKI, but with different types of certificates.
547547

548548
An 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
553553
relationship can normally be classified as customer-to-provider, or
554554
peer-to-peer. A customer depends on a provider to deliver traffic to
555555
and from their AS, and that means that it is expected that the
556556
provider'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
559559
comes 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
562562
visually as "valley-free" routing. Routing advertisements flow "up" from customers
563563
to providers, then (optionally) across between peers, then down from
564564
providers 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
567567
relationship. Valley-free routes have the property that they never
568568
start to go down (towards customers) and then head up again towards
569569
providers. 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
581581
using ASPA objects in the RPKI. Let's say that there is an ASPA object
582582
asserting that AS X is a provider for AS Y, as well as an ASPA object
583583
asserting 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

595595
Notably, ASPA catches some routing problems (such as accidental
596596
leakage 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
598598
the customer-provider relationships.
599599

600600
Interestingly, 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
602602
quite 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
730730
the resolver to make queries to example.com by issuing queries of its
731731
own, and then send the flood of responses to impersonate the
732732
authoritative 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
734734
get the bad result from the cache. There are many variations of this type of
735735
attack, broadly cataloged in RFC 3833, which analyzes the threats
736736
faced by DNS.
@@ -891,21 +891,21 @@ how to encode the requests and responses are spelled out in the RFCs
891891
and we need not dwell on them here.
892892

893893
It'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
901901
information provided to it from upstream in the DNS hierarchy has been
902902
corrupted, the client will be none the wiser. So while the need to
903903
deploy DNSSEC all the way along the hierarchy is something of an
904904
impediment to deployment, it does provide a level of security that
905905
isn't provided by simply securing the client-to-resolver channel.
906906

907907
Another 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
909909
making the queries. The resolver has access to all the client requests
910910
in unencrypted form, which would seem to be a requirement for those
911911
requests to be served. However, there have been efforts to improve the

0 commit comments

Comments
 (0)