Skip to content

Commit 8cc5ebd

Browse files
committed
isolation and trust
1 parent 5c1a445 commit 8cc5ebd

File tree

2 files changed

+36
-32
lines changed

2 files changed

+36
-32
lines changed

firewall.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -756,12 +756,12 @@ variant of the first countermeasure in that it forces the attacker to
756756
use additional resources.
757757

758758
These examples are just two of many illustrating the need to program
759-
defensively. This is especially true for protocols that are purposely
760-
designed to process data from remote sources, exposing them to
761-
attempts to crash, hack, or as in the case of DoS attacks, simply
762-
consume the system. This topic ventures outside the scope of the book,
763-
but the following reference explores one approach addressing the
764-
challenge.
759+
defensively. This is especially true for protocols since they are
760+
purposely designed to process messages from remote sources, exposing
761+
them to attempts to crash, hack, or as in the case of DoS attacks,
762+
simply consume the system. This topic ventures outside the scope of
763+
the book, but the following reference explores one approach to
764+
addressing the challenge.
765765

766766
.. admonition:: Further Reading
767767

systems.rst

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ algorithm; if one of your cryptographic algorithms turns out to be
3535
flawed, it would be great if your entire security architecture didn’t
3636
need an immediate redesign.
3737

38-
7.1 Pretty Good Privacy (PGP)
38+
7.1 Pretty Good Privacy
3939
------------------------------------------
4040

4141
Pretty Good Privacy (PGP) is an approach to providing authentication,
@@ -113,7 +113,7 @@ the application works can you make the right choices about which attacks
113113
to defend against (like forged email) versus which to ignore (like
114114
delayed or replayed email).
115115

116-
7.2 Secure Shell (SSH)
116+
7.2 Secure Shell
117117
------------------------
118118

119119
The Secure Shell (SSH) protocol provides a remote login service,
@@ -264,7 +264,7 @@ it is also the case that corporate firewalls often block port 22 (SSH's
264264
well-known port), limiting the situations in which SSH works as a
265265
VPN-like tunnel.
266266

267-
7.3 IP Security (IPsec)
267+
7.3 IP Security
268268
--------------------------------
269269

270270
One of the earliest efforts to integrate security into the Internet
@@ -388,7 +388,7 @@ such tunnels can be used to implement an entire virtual private
388388
network. But there is more to VPNs than just tunneling mechanisms, as
389389
we discuss below.
390390

391-
7.4 Virtual Private Networks (VPNs)
391+
7.4 Virtual Private Networks
392392
------------------------------------
393393

394394
A virtual private network (VPN) can be built using a wide variety of
@@ -401,13 +401,12 @@ users, even though the underlying infrastructure is shared more
401401
widely. In practice, this means that a VPN is almost always built as
402402
some sort of overlay on shared infrastructure.
403403

404-
The type of VPN that we will focus on here uses
405-
tunneling technologies such as IPsec or SSL to provide private
406-
connectivity across the shared infrastructure of the Internet. We have
407-
already seen how encrypted tunnels can be established, but tunnels are
408-
just a building block for VPNs. VPN requirements vary among
409-
different use cases, so we begin our discussion by looking at some of
410-
the most common uses for VPNs.
404+
The type of VPN that we focus on here uses tunneling technologies such
405+
as IPsec or SSL to provide private connectivity across the shared
406+
infrastructure of the Internet. We have already seen how encrypted
407+
tunnels can be established, but tunnels are just a building block for
408+
VPNs. VPN requirements vary among different use cases, so we begin our
409+
discussion by looking at some of the most common uses for VPNs.
411410

412411
*Remote Access VPNs* are commonly used to support remote workers,
413412
telecommuters, or contractors who need access to corporate
@@ -455,21 +454,21 @@ TLS. Client certificates may be used, but this raises the issue of how
455454
certificates can be reliably distributed to client devices. One option
456455
is that they are provisioned by a corporate IT department as part of
457456
setting up client devices. OpenVPN also allows for other
458-
authentication methods including username plus password and optionally
457+
authentication methods, including username plus password and optionally
459458
multi-factor authentication.
460459

461460
WireGuard is a more recent implementation of encrypted tunnels that
462461
aims to address some shortcomings that have emerged over years of
463462
using IPsec and OpenVPN tunnels. The paper below from NDSS 2017 lays
464463
out the design philosophy of WireGuard. Compared to OpenVPN, it is
465464
less complex by virtue of reducing the set of cryptographic algorithms
466-
that it supports. It establishes "stateless" tunnels that are more like
467-
IPsec than TLS—that is, there is no transport connection to
465+
that it supports. It establishes "stateless" tunnels that are more
466+
like IPsec than TLS—that is, there is no transport connection to
468467
establish. It also uses the idea of pre-shared public keys for mutual
469468
authentication, similar to the approach used in SSH. Finally, it is
470469
implemented in the operating system kernel, another contrast to
471-
OpenVPN that improves performance. For further details we refer you to
472-
the paper.
470+
OpenVPN, so as to improve performance. For further details we refer
471+
you to the paper.
473472

474473
.. admonition:: Further Reading
475474

@@ -485,7 +484,7 @@ administrative controls for managing user accounts and interfaces for
485484
passing the VPN traffic on to the corporate network. Note that a
486485
remote access VPN will almost always have to solve the problem of how
487486
to get traffic through the corporate firewall. We cover firewalls in a
488-
later chapter, but it is generally the case that VPN traffic will be
487+
later chapter, but it is generally the case that VPN traffic is
489488
allowed to traverse the firewall so that the VPN user can access
490489
corporate resources. The problems of this approach are discussed in
491490
the firewalls chapter.
@@ -509,12 +508,17 @@ configuring routing protocols to forward traffic across the mesh of
509508
tunnels becomes significant.
510509

511510
The complexity of configuring and managing a VPN comprised of
512-
encrypted tunnels is one reason why MPLS VPNs, which outsource
513-
most of the complexity of VPN management to a service provider, became
514-
such a successful service offering in the early 2000s. MPLS does not
515-
protect privacy using encryption, but it does solve the issues of routing
516-
traffic among large numbers of sites and ensures that the traffic
517-
belonging to one customer from does not leak to the network of another.
511+
encrypted tunnels is one reason why MPLS VPNs, which outsource most of
512+
the complexity of VPN management to a service provider, became such a
513+
successful service offering in the early 2000s. MPLS does not protect
514+
privacy using encryption, but it does solve the issues of routing
515+
traffic among large numbers of sites, and with respect to security,
516+
ensures that the traffic belonging to one customer does not leak to
517+
the network of another. Said another way, MPLS isolates users (private
518+
networks) from each other, but users trust that the service provider
519+
does not snoop on the traffic they carry. This is a trust assumption
520+
that typically does not hold for a VPN that traverses the public
521+
Internet.
518522

519523
Several approaches to reduce the configuration overhead for VPNs using
520524
encrypted tunnels have appeared in recent years. With the rise of
@@ -618,7 +622,7 @@ to a VPN concentrator with a public IP address, or between a pair of
618622
edge routers, but it has to be solved if you want to build
619623
client-to-client tunnels. There are quite a few details to getting
620624
this to work, especially given that NAT devices don't all behave the
621-
same way, and there may be firewalls to travese as well. An IETF
625+
same way, and there may be firewalls to traverse as well. An IETF
622626
standard called STUN (Session Traversal Utilities for NAT) plays an
623627
important part, and the centralized control plane helps to resolve
624628
some of the more difficult corner cases. You can read more about the
@@ -639,7 +643,7 @@ networking, a topic we discuss in chapter 9.
639643
Tailscale blog, 2020.
640644

641645

642-
7.5 Web Authentication (WebAuthn) and Passkeys
646+
7.5 Web Authentication and Passkeys
643647
----------------------------------------------------------------
644648

645649
While public key cryptography has been well understood for decades,
@@ -804,7 +808,7 @@ redundant. Not all users are that careful, of course, but there are
804808
also control packets exchanged between the wireless device and the
805809
wired infrastructure, and that communication must be secured.
806810

807-
7.6.1 Wi-Fi (802.11i)
811+
7.6.1 Wi-Fi
808812
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
809813

810814
It has long been understood how easy it is for an employee of a

0 commit comments

Comments
 (0)