Skip to content

Commit 5d051df

Browse files
committed
first pass over examples
1 parent ad78438 commit 5d051df

File tree

1 file changed

+88
-81
lines changed

1 file changed

+88
-81
lines changed

systems.rst

Lines changed: 88 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
Chapter 9: Example Systems
2-
==============================
1+
Chapter 9: Other Examples
2+
============================
33

44
.. Assuming we keep a substantial set of examples, we should look
55
for ways to highlight the underlying open source software (and the
@@ -10,56 +10,53 @@ Chapter 9: Example Systems
1010
It's likely also the case that these are "Other" Example Systems,
1111
since new chapters are system focused.
1212
13-
We have now seen many of the components required to provide one or two
14-
aspects of security. These components include cryptographic algorithms,
15-
key predistribution mechanisms, and authentication protocols. In this
16-
chapter, we examine some complete systems that use these components.
17-
18-
These systems can be roughly categorized by the protocol layer at which
19-
they operate. Systems that operate at the application layer include
20-
Pretty Good Privacy (PGP), which provides electronic mail security, and
21-
Secure Shell (SSH), a secure remote login facility. At the transport
22-
layer, there is the IETF’s Transport Layer Security (TLS) standard and
23-
the older protocol from which it derives, Secure Socket Layer (SSL). The
24-
IPsec (IP Security) protocols, as their name implies, operate at the IP
25-
(network) layer. 802.11i provides security at the link layer of wireless
26-
networks. This chapter describes the salient features of each of these
27-
approaches.
28-
29-
You might reasonably wonder why security has to be provided at so many
30-
different layers. One reason is that different threats require different
31-
defensive measures, and this often translates into securing a different
32-
protocol layer. For example, if your main concern is with a person in
33-
the building next door snooping on your traffic as it flows between your
34-
laptop and your 802.11 access point, then you probably want security at
35-
the link layer. However, if you want to be really sure you are connected
36-
to your bank’s website and preventing all the data that you send to the
37-
bank from being read by curious employees of some Internet service
38-
provider, then something that extends all the way from your machine to
39-
the bank’s server—like the transport layer—may be the right place to
40-
secure the traffic. As is often the case, there is no one-size-fits-all
41-
solution.
42-
43-
The security systems described below have the ability to vary which
44-
cryptographic algorithms they use. The idea of making a security system
45-
algorithm independent is a very good one, because you never know when
46-
your favorite cryptographic algorithm might be proved to be
47-
insufficiently strong for your purposes. It would be nice if you could
48-
quickly change to a new algorithm without having to change the protocol
49-
specification or implementation. Note the analogy to being able to
50-
change keys without changing the algorithm; if one of your cryptographic
51-
algorithms turns out to be flawed, it would be great if your entire
52-
security architecture didn’t need an immediate redesign.
13+
Having focused on how to use the available cryptographic and
14+
authentication building blocks to secure the transport and network
15+
layers, we now turn our attention to other examples of how Internet
16+
systems are secured. The examples are part of the overall
17+
*defense-in-depth* strategy introduced in Chapter 2; they address
18+
specific threats that remain even when mechansism like TLS and DNSSEC
19+
are deployed.
20+
21+
The systems described in this chapter are at different layers: some
22+
are are built into applications, some run at the IP layer, and some
23+
secure network links. While they address different layer-specific
24+
threats, what the examples have in common is that they all leverage
25+
the same set of security builing blocks. Seeing how these building
26+
blocks can be assembled in different ways to build different solutions
27+
is main value of this chapter. To this end, the following sections
28+
focus on the use case and corresponding threat, with a brief
29+
description of how the system addresses the threat; no new algoritms
30+
or fundamental capabilities are required.
31+
32+
It is also noteworthy that in addition to taking avantage of existing
33+
building blocks, the example system are highly configurable. The idea
34+
of making a security system algorithm independent is a good one,
35+
because you never know when your preferred cryptographic algorithm
36+
might be proved to be insufficiently strong for your purposes. It
37+
would be nice if you could quickly change to a new algorithm without
38+
having to change the rest of the system. Note the analogy to being
39+
able to change keys without changing the algorithm; if one of your
40+
cryptographic algorithms turns out to be flawed, it would be great if
41+
your entire security architecture didn’t need an immediate redesign.
5342

5443
9.1 Pretty Good Privacy (PGP)
5544
-------------------------------
5645

5746
Pretty Good Privacy (PGP) is an approach to providing authentication,
58-
confidentiality, data integrity, and nonrepudiation. Originally devised
59-
by Phil Zimmerman in 1991, it has evolved into an IETF standard known as
60-
OpenPGP. As we saw in a previous chapter, PGP is notable for using a
61-
“web of trust” model for distribution of keys rather than a tree-like
62-
hierarchy.
47+
confidentiality, data integrity, and nonrepudiation for email.
48+
Originally devised by Phil Zimmerman in 1991, it has evolved into an
49+
IETF standard known as OpenPGP. As we saw in Chapter 4, PGP is notable
50+
for using a “web of trust” model for distribution of keys rather than
51+
a tree-like hierarchy.
52+
53+
The other thing of note about PGP is that it is *not* widely used, in
54+
large part because most users elect to trust their email provider (or,
55+
at least, are not concerned about their email being used for marketing
56+
purposes). On the other hand, PGP is an option for users that put a
57+
premium on privacy and being certain of who they are exchanging
58+
with. The availability of easy-to-use client software is now making
59+
that option more viable.
6360

6461
PGP’s confidentiality and receiver authentication depend on the receiver
6562
of a message having a public key that is known to the sender. To
@@ -124,33 +121,40 @@ delayed or replayed email).
124121
------------------------
125122

126123
The Secure Shell (SSH) protocol is used to provide a remote login
127-
service, replacing the less secure Telnet used in the early days of the
128-
Internet. (SSH can also be used to remotely execute commands and
129-
transfer files, but we will focus first on how SSH supports remote
130-
login.) SSH is most often used to provide strong client/server
131-
authentication/message integrity—where the SSH client runs on the user’s
132-
desktop machine and the SSH server runs on some remote machine that the
133-
user wants to log into—but it also supports confidentiality. Telnet
134-
provides none of these capabilities. Note that “SSH” is often used to
135-
refer to both the SSH protocol and applications that use it; you need to
136-
figure out which from the context.
137-
138-
To better appreciate the importance of SSH on today’s Internet, consider
139-
a couple of the scenarios where it is used. Telecommuters, for example,
140-
often subscribe to ISPs that offer high-speed Internet access at home, and
141-
they use these ISPs (plus some chain of other ISPs) to reach machines
142-
operated by their employer. This means that when a telecommuter logs
143-
into a machine inside his employer’s data center, both the passwords and
144-
all the data sent or received potentially passes through any number of
124+
service, replacing the less secure Telnet used in the early days of
125+
the Internet. SSH can also be used to remotely execute commands and
126+
transfer files. It is most often used to provide strong client/server
127+
authentication/message integrity—where the SSH client runs on the
128+
user’s laptop (for example) and the SSH server runs on some remote
129+
machine that the user wants to log into—but it also supports
130+
confidentiality. Telnet provides none of these capabilities. Note that
131+
“SSH” is often used to refer to both the SSH protocol and applications
132+
that use it; you need to figure out which from the context.
133+
134+
To better appreciate the importance of SSH in today’s Internet,
135+
consider two scenarios where it is used. Telecommuters often subscribe
136+
to ISPs that offer high-speed Internet access at home, and they use
137+
these ISPs (plus some chain of other ISPs) to reach machines operated
138+
by their employer. This means that when a telecommuter logs into a
139+
machine inside his employer’s data center, both the passwords and all
140+
the data sent or received potentially passes through any number of
145141
untrusted networks. SSH provides a way to encrypt the data sent over
146142
these connections and to improve the strength of the authentication
147-
mechanism used to log in. (A similar situation occurs when said employee
148-
connects to work using the public Wi-Fi at a coffee shop.) Another usage of
149-
SSH is remote login to a router, perhaps to change its configuration or
150-
read its log files; clearly, a network administrator wants to be sure
151-
that he can log into a router securely and that unauthorized parties can
152-
neither log in nor intercept the commands sent to the router or the output
153-
sent back to the administrator.
143+
mechanism used to log in. (A similar situation occurs when said
144+
employee connects to work using the public Wi-Fi at a coffee shop.)
145+
146+
A second common usage of SSH is to login into a remote router, server,
147+
or VM for the purpose of managing it; for example, changing its
148+
configuration, reading its log files, or installing the latest
149+
software. Clearly, an administrator wants to be sure that he can log
150+
into a remote machine securely and that unauthorized parties can
151+
neither log in nor intercept the commands sent to the machine or the
152+
output sent back to the administrator. This use case is common enough
153+
that SSH is often incorporated into more sophisticated management
154+
software that automates some aspect of remote management. This is
155+
increasingly the case for tools that support Cloud DevOps, with
156+
GitHub, Docker, Ansible, and Jenkins being popular examples that use
157+
SSH's remote execution feature.
154158

155159
The latest version of SSH, version 2, consists of three protocols:
156160

@@ -211,7 +215,7 @@ connect; standard SSH-TRANS only authenticates the server by default.
211215

212216
The main thing you should take away from this discussion is that SSH
213217
is a fairly straightforward application of the protocols and
214-
algorithms we have seen throughout this chapter. However, what
218+
algorithms we have seen throughout this book. However, what
215219
sometimes makes SSH a challenge to understand is all the keys a user
216220
has to create and manage, where the exact interface is operating
217221
system dependent. For example, the OpenSSH package that runs on most
@@ -250,12 +254,17 @@ network (VPN) using SSH tunnels in this way.
250254
9.3 IP Security (IPsec)
251255
-------------------------
252256

253-
One of the earliest efforts to integrate security
254-
into the Internet sits at the IP layer. Support for IPsec, as the
255-
architecture is called, is optional in IPv4 but mandatory in
256-
IPv6. Indeed, better security was one of the stated goals of IPv6,
257-
although it turned out that the central ideas could also be retrofitted
258-
into IPv4 .
257+
One of the earliest efforts to integrate security into the Internet
258+
sits at the IP layer. Support for IPsec, as the architecture is
259+
called, is optional in IPv4 but mandatory in IPv6. Indeed, better
260+
security was one of the stated goals of IPv6, although it turned out
261+
that the central ideas could also be retrofitted into IPv4. It's also
262+
noteworthy that while the original intent was for IPsec to be part
263+
securing the network infrastructrue (as discussed in the previous
264+
chapter), today IPsec is most commonly used to implement secure
265+
tunnels running on top of the public IP substrate. These tunnels
266+
are often part of a Virtual Private Network (VPN), for example,
267+
connecting a remote user to their "home" enterprise.
259268

260269
IPsec is really a framework (as opposed to a single protocol or system)
261270
for providing a broad set of security services discussed throughout this
@@ -447,7 +456,6 @@ that attackers will keep using that option to breach user
447456
accounts. This is one of the problems that needs to be addressed in
448457
the deployment of passkeys.
449458

450-
451459
The WebAuthn spec allows for considerable implementation flexibility,
452460
but there are two broad categories of passkey implementation. One
453461
approach binds the key to a specific piece of hardware, such as a USB
@@ -506,7 +514,6 @@ sites. Those who have led their development hope that they start to
506514
replace the ubiquitous password for user authentication.
507515

508516

509-
510517
9.5 Wireless Security (802.11i)
511518
---------------------------------
512519

0 commit comments

Comments
 (0)