Skip to content

Commit 1b5c7d8

Browse files
committed
towards an outline and intro
1 parent c297a8a commit 1b5c7d8

File tree

1 file changed

+75
-28
lines changed

1 file changed

+75
-28
lines changed

infra.rst

Lines changed: 75 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,16 @@ bit more closely at how BGP works to see where the challenges lie.
6464
BGP speakers advertise *paths* to reach *prefixes*. When a BGP speaker
6565
receives a set of path advertisements from its peers, it runs a route
6666
selection process to determine the "best" path to any prefix, using a
67-
fairly large set of criteria to decide what is "best". For example, a
68-
path to a given prefix that is shorter (as measured by the number of autonomous systems
69-
it contains) may be preferred to one that is longer. However, there are
70-
many other criteria, notably the business relationship between the
71-
peers, which are used to determine the ultimate choice of path. For a
72-
more full discussion of how BGP works, refer to the section on
73-
Inter-domain routing in our main textbook.
74-
75-
.. _reading_bgp:
76-
.. admonition:: Further Reading
77-
78-
Peterson, L. and Davie, B. `Computer Networks: A Systems Approach. Interdomain
79-
Routing <https://book.systemsapproach.org/scaling/global.html#interdomain-routing-bgp>`__.
67+
fairly large and flexible set of criteria to decide what is
68+
"best". For example, a path to a given prefix that is shorter (as
69+
measured by the number of autonomous systems it contains) may be
70+
preferred to one that is longer. However, there are many other
71+
criteria, notably the business relationship between the peers, which
72+
are used to determine the ultimate choice of path. When a BGP speaker
73+
has chosen a path to reach a particular prefix, it may choose to
74+
re-advertise that path to other BGP speakers, either in the same AS or
75+
in another AS. For a more full discussion of how BGP works, refer to
76+
the section on Inter-domain routing in our main textbook.
8077

8178
A BGP speaker needs to trust that the paths that it is receiving from
8279
its peers are correct, and this turns out to be a multi-faceted
@@ -96,6 +93,12 @@ two BGP speakers:
9693
represent the true forwarding state of the peer?
9794
* How current is the information received, and is it still valid?
9895

96+
The first two bullets are versions of the authentication and integrity
97+
issues that we addressed in Chapter 5. There are some details specific
98+
to BGP that we cover below. The remaining challenges all relate to the
99+
correctness of routing information carried by BGP and turn out to be
100+
more difficult to address.
101+
99102
.. _reading_threat:
100103
.. admonition:: Further Reading
101104

@@ -104,6 +107,14 @@ two BGP speakers:
104107
<https://labs.apnic.net/index.php/2021/08/03/a-survey-on-securing-inter-domain-routing-part-1-bgp-design-threats-and-security-requirements/>`__.
105108
APNIC Blog, August 2021.
106109

110+
111+
Peterson, L. and Davie, B. `Computer Networks: A Systems Approach. Interdomain
112+
Routing <https://book.systemsapproach.org/scaling/global.html#interdomain-routing-bgp>`__.
113+
114+
115+
8.1.1 Authentication and Integrity
116+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117+
107118
Since BGP runs over a TCP connection, it was recommended for many
108119
years that the TCP connection be authenticated and integrity-protected
109120
using MD5 authentication. The MD5 authentication option for TCP is now
@@ -115,21 +126,20 @@ general TCP authentication option which is described in RFC 5925.
115126
It might seem somewhat counter-intuitive that BGP does not currently run
116127
over TLS, given the maturity and widespread adoption of that
117128
technology today. The explanation for this comes down to a combination
118-
of factors including history, intertia, and the different operational
129+
of factors including history, inertia, and the different operational
119130
model of running BGP versus connecting to a remote website. For
120131
example, BGP sessions often run between directly connected routers at
121132
a peering point or internet exchange points (IXPs) which allows for a
122133
simple TTL-based method to prevent spoofing. Privacy of BGP updates is
123-
considerably less important than autheniticity. And as we shall see,
124-
there is a lot more to establishing the authenticitiy of a BGP
134+
considerably less important than authenticity. And as we shall see,
135+
there is a lot more to establishing the authenticity of a BGP
125136
advertisement that just authenticating the messages from a peer.
126137

127-
When BGP was being
128-
developed in the 1980s and 1990s, TLS was still far in the future, and
129-
packet encryption and decryption operations were generally quite
130-
computationally expensive. So it made sense that the initial focus was
131-
on authenticating messages rather than providing the greater
132-
protection of encryption that TLS offers.
138+
When BGP was being developed in the 1980s and 1990s, TLS was still far
139+
in the future, and packet encryption and decryption operations were
140+
generally quite computationally expensive. So it made sense that the
141+
initial focus was on authenticating messages rather than providing the
142+
greater protection of encryption that TLS offers.
133143

134144
With this background, the idea of running BGP over TLS is an area of
135145
current research, and would offer potential benefits beyond simply
@@ -138,22 +148,43 @@ management for TLS is now highly automated, which contrasts with the
138148
manual provisioning that must be performed when using MD5
139149
or TCP-based authentication for BGP. The paper below on secure
140150
transport for BGP outlines this approach and suggests further
141-
enhancements that might further improve the securiy of BGP. However,
151+
enhancements that might further improve the security of BGP. However,
142152
in terms of the current state of the Internet, the recommended best
143153
practice for BGP sessions (described in RFC 7454) does not extend to
144-
TLS.
154+
running BGP over TLS.
155+
156+
Whether TLS or a more basic authentication mechanism is used, the
157+
effect is only to verify that the information came from the intended
158+
peer and has not been modified in transit. The much more challenging
159+
part of Internet routing security is in the validation of the routing
160+
information itself. When a peer announces that they have a path to a
161+
certain prefix, how do we know that they really do have this path?
145162

146163

147164
.. _reading_BGPTLS:
148165
.. admonition:: Further Reading
149166

150167
Thomas Wirtgen, Nicolas Rybowski, Cristel Pelsser, Olivier
151-
Bonaventure. `The Multiple Benefits of Secure Transport for BGP <https://conferences.sigcomm.org/co-next/2024/files/papers/p186.pdf/>`__.
152-
ACM Conext, December 2024.
168+
Bonaventure. `The Multiple Benefits of Secure Transport for
169+
BGP <https://conferences.sigcomm.org/co-next/2024/files/papers/p186.pdf/>`__.
170+
ACM CONEXT, December 2024.
153171

154172
J. Durand, I. Pepelnjak and G. Dorering. `BGP Operations and
155-
Security <https://www.rfc-editor.org/info/rfc7454>`__. RFC 7454,
156-
February 2015.
173+
Security <https://www.rfc-editor.org/info/rfc7454>`__. RFC 7454,
174+
February 2015.
175+
176+
8.1.2 Correctness of Routing Information
177+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
178+
179+
When a BGP speaker announces a path to a particular prefix, how do we
180+
know that they really have such a path? The short answer is that we
181+
don't, but there has been a multi-decade quest to build mechanisms that
182+
enable greater confidence in the correctness of such
183+
announcements. This quest, and the slowness of its progress, was well
184+
documented by Sharon Goldberg in 2014, and the progress continues
185+
today.
186+
187+
Let's start with a simple and well-studied example.
157188

158189
.. _reading_rpki:
159190
.. admonition:: Further Reading
@@ -165,10 +196,26 @@ TLS.
165196
8.2 DNS
166197
----------
167198

199+
Threat model (RFC 3833) - explain cache poisoning
200+
168201
DNS over HTTP (DoH)
169202

170203
DNSSEC
171204

172205
Geoff Huston. `Calling Time on DNSSEC?
173206
<https://labs.apnic.net/index.php/2024/05/27/calling-time-on-dnssec/>`__.
174207
APNIC Blog, May 2024.
208+
209+
RFC 3833
210+
211+
RFCs 4033-4035
212+
213+
214+
----
215+
adoption of RPKI vs DNSSEC - the difference between detecting
216+
corrupt info vs. preventing spread of corrupt info
217+
218+
compare infra mechanisms vs e2e, notably TLS
219+
220+
221+
8.3 DOS-preventing infra (Cloudflare et al)

0 commit comments

Comments
 (0)