Skip to content

Commit d53aa10

Browse files
committed
mention ssh3
1 parent 5d051df commit d53aa10

File tree

1 file changed

+64
-53
lines changed

1 file changed

+64
-53
lines changed

systems.rst

Lines changed: 64 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,29 @@ authentication building blocks to secure the transport and network
1515
layers, we now turn our attention to other examples of how Internet
1616
systems are secured. The examples are part of the overall
1717
*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.
18+
specific threats—associated with specific use case—that remain even
19+
when mechansism like TLS and DNSSEC are deployed.
2020

2121
The systems described in this chapter are at different layers: some
2222
are are built into applications, some run at the IP layer, and some
23-
secure network links. While they address different layer-specific
23+
secure network links. But while they address different layer-specific
2424
threats, what the examples have in common is that they all leverage
2525
the same set of security builing blocks. Seeing how these building
2626
blocks can be assembled in different ways to build different solutions
2727
is main value of this chapter. To this end, the following sections
28-
focus on the use case and corresponding threat, with a brief
28+
focus on the use case and corresponding threat, with a high-level
2929
description of how the system addresses the threat; no new algoritms
3030
or fundamental capabilities are required.
3131

3232
It is also noteworthy that in addition to taking avantage of existing
33-
building blocks, the example system are highly configurable. The idea
33+
building blocks, the example systems are highly configurable. The idea
3434
of making a security system algorithm independent is a good one,
3535
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.
36+
might be proved to be insufficiently strong for your purposes. Note
37+
the analogy to being able to change keys without changing the
38+
algorithm; if one of your cryptographic algorithms turns out to be
39+
flawed, it would be great if your entire security architecture didn’t
40+
need an immediate redesign.
4241

4342
9.1 Pretty Good Privacy (PGP)
4443
-------------------------------
@@ -51,10 +50,10 @@ for using a “web of trust” model for distribution of keys rather than
5150
a tree-like hierarchy.
5251

5352
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
53+
large part because most users elect to trust their email provider (or
54+
rather, are not concerned about their email being used for marketing
55+
purposes). In contrast, PGP is an option for users that put a premium
56+
on privacy and being certain about who they are exchanging messages
5857
with. The availability of easy-to-use client software is now making
5958
that option more viable.
6059

@@ -96,20 +95,21 @@ application reverses this process step-by-step to obtain the original
9695
plaintext message and confirm Alice’s digital signature—and reminds
9796
Bob of the level of trust he has in Alice’s public key.
9897

99-
Email has particular characteristics that allow PGP to embed an adequate
100-
authentication protocol in this one-message data transmission protocol,
101-
avoiding the need for any prior message exchange (and sidestepping some
102-
of the complexities described in the previous chapter). Alice’s digital
103-
signature suffices to authenticate her. Although there is no proof that
104-
the message is timely, legitimate email isn’t guaranteed to be timely
105-
either. There is also no proof that the message is original, but Bob is
106-
an email user and probably a fault-tolerant human who can recover from
107-
duplicate emails (which, again, are not out of the question under normal
108-
operation anyway). Alice can be sure that only Bob could read the
109-
message because the session key was encrypted with his public key.
110-
Although this protocol doesn’t prove to Alice that Bob is actually there
111-
and received the email, an authenticated email from Bob back to Alice
112-
could do this.
98+
PGP is not strictly for email, but email has particular
99+
characteristics that allow PGP to embed an adequate authentication
100+
protocol in this one-message data transmission protocol. This avoids
101+
the need for any prior message exchange (and sidestepping some of the
102+
complexities described in the earlier chapter). Alice’s digital
103+
signature suffices to authenticate her. Although there is no proof
104+
that the message is timely, legitimate email isn’t guaranteed to be
105+
timely either. There is also no proof that the message is original,
106+
but Bob is an email user and probably a fault-tolerant human who can
107+
recover from duplicate emails (which, again, are not out of the
108+
question under normal operation anyway). Alice can be sure that only
109+
Bob could read the message because the session key was encrypted with
110+
his public key. Although this protocol doesn’t prove to Alice that
111+
Bob is actually there and received the email, an authenticated email
112+
from Bob back to Alice could do this.
113113

114114
The preceding discussion gives a good example of why application-layer
115115
security mechanisms can be helpful. Only with a full knowledge of how
@@ -120,9 +120,9 @@ delayed or replayed email).
120120
9.2 Secure Shell (SSH)
121121
------------------------
122122

123-
The Secure Shell (SSH) protocol is used to provide a remote login
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
123+
The Secure Shell (SSH) protocol provides a remote login service,
124+
replacing the less secure Telnet used in the early days of the
125+
Internet. SSH can also be used to remotely execute commands and
126126
transfer files. It is most often used to provide strong client/server
127127
authentication/message integrity—where the SSH client runs on the
128128
user’s laptop (for example) and the SSH server runs on some remote
@@ -156,7 +156,7 @@ increasingly the case for tools that support Cloud DevOps, with
156156
GitHub, Docker, Ansible, and Jenkins being popular examples that use
157157
SSH's remote execution feature.
158158

159-
The latest version of SSH, version 2, consists of three protocols:
159+
The latest version of SSH, Version 2, consists of three protocols:\ [#]_
160160

161161
- SSH-TRANS, a transport layer protocol
162162

@@ -167,6 +167,11 @@ The latest version of SSH, version 2, consists of three protocols:
167167
We focus on the first two, which are involved in remote login. We
168168
briefly discuss the purpose of SSH-CONN at the end of the section.
169169

170+
.. [#] Version 3 of SSH (SSH3) is also being defined, but it is
171+
currently an experimental effort optimized for web-based use
172+
cases. For example, SSH3 runs on top of QUIC (which is UDP-based)
173+
instead of TCP. SSH2 remains the widely adopted standard.
174+
170175
SSH-TRANS provides an encrypted channel between the client and server
171176
machines. It runs on top of a TCP connection. Any time a user uses an
172177
SSH application to log into a remote machine, the first step is to set
@@ -238,18 +243,24 @@ machines (i.e., they are used on the client side).
238243

239244
Finally, SSH has proven so useful as a system for securing remote login,
240245
it has been extended to also support other applications, such as sending
241-
and receiving email. The idea is to run these applications over a secure
246+
and receiving email. The idea is to run the applications over a secure
242247
“SSH tunnel.” This capability is called *port forwarding*, and it uses
243248
the SSH-CONN protocol. The idea is illustrated in :numref:`Figure
244249
%s <fig-ssh-tunnel>`, where we see a client on host A indirectly
245250
communicating with a server on host B by forwarding its traffic through
246251
an SSH connection. The mechanism is called *port forwarding* because
247252
when messages arrive at the well-known SSH port on the server, SSH first
248253
decrypts the contents and then “forwards” the data to the actual port at
249-
which the server is listening. This is just another sort of tunnel,
250-
which in this case happens to provide confidentiality and
251-
authentication. It’s possible to provide a form of virtual private
252-
network (VPN) using SSH tunnels in this way.
254+
which the server is listening.
255+
256+
This is effectively a tunnel, which in this case happens to provide
257+
confidentiality and authentication. (In practice, it ma also get you
258+
through a corporate firewall, which leaves port 22 open.) It is
259+
possible to provide a kind of virtual private network (VPN) using SSH
260+
tunnels in this way. But unlike the VPN mechanism described in the
261+
next section, it is a tunnel to a single remote machine rather than to
262+
a remote network. The latter gives you access to *any* machine on the
263+
local network.
253264

254265
9.3 IP Security (IPsec)
255266
-------------------------
@@ -262,21 +273,21 @@ that the central ideas could also be retrofitted into IPv4. It's also
262273
noteworthy that while the original intent was for IPsec to be part
263274
securing the network infrastructrue (as discussed in the previous
264275
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.
268-
269-
IPsec is really a framework (as opposed to a single protocol or system)
270-
for providing a broad set of security services discussed throughout this
271-
book. IPsec provides three degrees of freedom. First, it is highly
272-
modular, allowing users (or more likely, system administrators) to
273-
select from a variety of cryptographic algorithms and specialized
274-
security protocols. Second, IPsec allows users to select from a large
275-
menu of security properties, including access control, integrity,
276-
authentication, originality, and confidentiality. Third, IPsec can be
277-
used to protect narrow streams (e.g., packets belonging to a particular
278-
TCP connection being sent between a pair of hosts) or wide streams
279-
(e.g., all packets flowing between a pair of routers or locations).
276+
tunnels running on top of the public Internet. These tunnels are often
277+
part of a Virtual Private Network (VPN), for example, connecting a
278+
remote user to their "home" enterprise network.
279+
280+
IPsec is really a framework (as opposed to a single protocol or
281+
system) for providing a broad set of security services. It provides
282+
three degrees of freedom. First, it is highly modular, allowing users
283+
(or more likely, system administrators) to select from a variety of
284+
cryptographic algorithms and specialized security protocols. Second,
285+
IPsec allows users to select from a large menu of security properties,
286+
including access control, integrity, authentication, originality, and
287+
confidentiality. Third, IPsec can be used to protect narrow streams
288+
(e.g., packets belonging to a particular TCP connection being sent
289+
between a pair of hosts) or wide streams (e.g., all packets flowing
290+
between a pair of routers or locations).
280291

281292
When viewed from a high level, IPsec consists of two parts. The first
282293
part is a pair of protocols that implement the available security

0 commit comments

Comments
 (0)