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
54439.1 Pretty Good Privacy (PGP)
5544-------------------------------
5645
5746Pretty 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
6461PGP’s confidentiality and receiver authentication depend on the receiver
6562of a message having a public key that is known to the sender. To
@@ -124,33 +121,40 @@ delayed or replayed email).
124121------------------------
125122
126123The 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
145141untrusted networks. SSH provides a way to encrypt the data sent over
146142these 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
155159The 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
212216The main thing you should take away from this discussion is that SSH
213217is 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
215219sometimes makes SSH a challenge to understand is all the keys a user
216220has to create and manage, where the exact interface is operating
217221system dependent. For example, the OpenSSH package that runs on most
@@ -250,12 +254,17 @@ network (VPN) using SSH tunnels in this way.
2502549.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
260269IPsec is really a framework (as opposed to a single protocol or system)
261270for providing a broad set of security services discussed throughout this
@@ -447,7 +456,6 @@ that attackers will keep using that option to breach user
447456accounts. This is one of the problems that needs to be addressed in
448457the deployment of passkeys.
449458
450-
451459The WebAuthn spec allows for considerable implementation flexibility,
452460but there are two broad categories of passkey implementation. One
453461approach 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
506514replace the ubiquitous password for user authentication.
507515
508516
509-
5105179.5 Wireless Security (802.11i)
511518---------------------------------
512519
0 commit comments