@@ -5,7 +5,7 @@ Chapter 1: Introduction
55.. New effort from Bruce
66
77
8- Security of computer systems has been a focus for system designers for
8+ Security has been a focus of system designers for
99as long as we have had time-shared computers. If two users can share a
1010computer, then it is necessary to have protections in place to limit
1111the impact one user can have on another. For example, one user should
@@ -16,12 +16,13 @@ support that in a controlled way. Similarly, multi-user systems ensure
1616that malicious or poorly written code from one user cannot interfere
1717with the operation of another user's programs.
1818
19- Computer networks are, like multi-user computers, shared
20- resources, and similar requirements apply. One network user should not
21- be able to interfere with another user's traffic. Networks are often
22- used so that specific resources can be shared among users. And in general,
23- a user sending data across a network wants that data to be protected
24- from unauthorized modification or eavesdropping.
19+ Computer networks are, like multi-user computers, shared resources,
20+ and similar requirements apply. One network user should not be able to
21+ interfere with another user's traffic, and in general, a user sending
22+ data across a network wants that data to be protected from
23+ unauthorized modification or eavesdropping. At the same time, networks
24+ are typically used so that specific resources can be shared among
25+ users.
2526
2627As we will see, the security of computer systems and the security of
2728computer networks are closely related topics. And just as a
@@ -38,24 +39,24 @@ to log in to a remote computer, you would (usually) need to authenticate
3839yourself to that remote system (e.g., with a user name and password) before
3940gaining access to any resources on that system.
4041
41- Ensuring the security of end systems, while important, does not come
42+ But ensuring the security of end systems, while important, does not come
4243close to addressing the entire set of security issues that exist in a
4344computer network. For example, an attacker with access to a link,
4445switch or router somewhere in the network has the potential to read or
4546modify packets passing through that point. Furthermore, failures of
4647end system security are exposed when we connect them to networks. By
4748connecting computers to a global network such as the Internet, the
4849opportunity to exploit vulnerabilities in the code running on those
49- end systems is opened up to a much greater--- potentially global--- set
50+ end systems is opened up to a much greater— potentially global— set
5051of actors.
5152
52- Thus we can think of network security as having two main
53+ Thus, we can think of network security as having two main
5354thrusts. First, we need to address the security challenges of a
5455shared, globally distributed network. Second, we need to address the
55- challenges of connecting end systems, which run imperfect software, to
56+ challenges of connecting end systems running imperfect software to
5657a global set of actors, some of whom are bound to be malicious.
5758
58- For an interesting retrospective view on system security, and some
59+ For an interesting retrospective view on computer system security, and some
5960commentary on how far we still have to go, we recommend the paper
6061looking back on the history of security in Multics from Karger and
6162Schell.
@@ -70,16 +71,16 @@ Schell.
7071
7172An early example of a security failure in the Internet serves to
7273highlight the breadth of the challenges included in the term "network
73- security". The Morris worm was the first large-scale attack on the
74- Internet, launched in 1988 when the Internet was largely limited to
74+ security". The Morris worm, the first large-scale attack on the
75+ Internet, was launched in 1988 when the Internet was largely limited to
7576universities and research institutions. While it was made possible by
7677the fact that the Internet of that era generally allowed packets from
7778any source to any destination, it was also dependent on a number of
7879vulnerabilities in the software running on the end systems connected
7980to the Internet. Like many future attacks, the Morris worm exploited
8081multiple vulnerabilities. In this case they included weak or default
81- passwords, a buffer overflow bug in a then widely-used software tool,
82- and a security hole in the sendmail program. There is a comprehensive
82+ passwords, a buffer overflow bug in a widely-used software tool,
83+ and a security hole in the Sendmail program. There is a comprehensive
8384analysis of the worm's operation in the report from Donn Seeley
8485written soon afterwards.
8586
@@ -93,7 +94,7 @@ security of computer networks. Our focus is on how to create networks
9394that meet certain security objectives, such as protection against
9495eavesdropping and modification of data in transit. The systems
9596approach requires us to look at the entire system: the network
96- components and the end systems connected by the network, both hardware
97+ components and the end systems connected by the network, as well as both hardware
9798and software.
9899
991001.1 A Short History of Internet Security
@@ -103,10 +104,10 @@ The Internet architecture was initially created with essentially no
103104security features. This was not because the inventors, implementors and
104105architects were unaware of security issues, but rather because there
105106were other, more pressing goals. As Vint Cerf, the co-inventor of
106- TCP/IP said: "getting this thing to work at all was
107- non-trivial”. David Clark, the architect of the Internet, has said
108- "it’s not that we didn’t think about security…we thought we could
109- exclude [untrustworthy people].”
107+ TCP/IP said: * "getting this thing to work at all was
108+ non-trivial.” * David Clark, the architect of the Internet, has said
109+ * "it’s not that we didn’t think about security…we thought we could
110+ exclude [untrustworthy people].” *
110111
111112The Internet's architecture is often characterized as an hourglass,
112113with IP being the narrow waist that sits between a wide range of
@@ -122,7 +123,7 @@ could send it a packet.
122123
123124 The Morris Worm served as something of a wake-up call to the early
124125developers of the Internet by highlighting just how vulnerable it
125- was. By the early 1990s the first firewalls had appeared, allowing the
126+ was. By the early 1990s the first * firewalls * had appeared, allowing the
126127default "accept any packet from anywhere" behavior of the Internet to
127128be changed in a controlled way. These devices, which remain common
128129today, filter packets based on information in the TCP and IP headers,
@@ -145,29 +146,30 @@ support encryption, message integrity and authentication. However, it
145146became clear that such features did not require a new version of IP,
146147only a way to add optional information to the packet
147148header, and so these capabilities also made their way into IPv4. These
148- extensions became known collectively as IPSEC (IP security) and are
149+ extensions became known collectively as * IPSEC (IP security) * and are
149150described in several dozen RFCs. We discuss them in a later chapter.
150151
151152It is worth noting that, even if IPSEC had
152153existed in 1988, it would probably have had minimal impact on the
153154spread of the Morris Worm. This is because the worm spread among
154155hosts that were *supposed * to connect to each other (e.g., to exchange
155- email using the sendmail program). Encrypting and authenticating traffic
156+ email using the Sendmail program). Encrypting and authenticating traffic
156157between hosts doesn't prevent the spread of malware
157158if the end-systems have the sorts of
158159weaknesses exploited by the Morris worm.
159160
160161The rise in popularity of the World Wide Web in the 1990s created the
161162demand for security features at the transport layer to support
162- applications such as e-commerce. This lead to the creation of SSL
163- (secure sockets layer) which was superseded by TLS (transport layer
164- security), both of which provided confidentiality and authentication
165- at the transport layer.
163+ applications such as e-commerce. This lead to the creation of *SSL
164+ (secure sockets layer) * which was superseded by *TLS (transport layer
165+ security) *, both of which provided confidentiality and authentication
166+ at the transport layer. TLS is an important case study for network
167+ security, and we describe it in detail in a later chapter.
166168
167169Another aspect of securing the Internet that started to receive
168170attention in this period was the security of its infrastructure. One
169- such piece of infrastructure is the domain name system (DNS). DNS
170- replaced static hostname-to-address mapping files in the 1980s and subsequently
171+ such piece of infrastructure is the * Domain Name System (DNS)*,
172+ which replaced static hostname-to-address mapping files in the 1980s, and subsequently
171173become critical to the operation of the Internet. Clearly the
172174information served up by DNS needs to be robust against manipulation
173175by adversaries, and hence, there has been a multi-decade effort to add
@@ -179,7 +181,8 @@ The Internet's routing system is at least as important as DNS, and
179181similarly lacked any security provisions in its original design. Not
180182only do we need to be concerned about modification of routing messages
181183in transit, but it has historically been all too easy to simply send
182- incorrect routing updates in BGP. For example, a router might advertise a good route to
184+ incorrect routing updates in BGP, the *Border Gateway Protocol *.
185+ For example, a router might advertise a good route to
183186some prefix from an autonomous system that has no such route.
184187Securing BGP has likewise proven to be a multi-decade, incremental task.
185188
@@ -248,7 +251,7 @@ security strategy:
248251
249252Schneier's book is targeted at a general audience, addressing
250253security in a broad context (e.g., airports), not just computing systems and
251- networks. Nevertheless it provides some useful guidelines that are
254+ networks. Nevertheless, it provides some useful guidelines that are
252255applicable to system security.
253256
254257
@@ -267,7 +270,9 @@ intercept messages as a threat (and adopt some of the methods
267270discussed in this book as a countermeasure). But if you are planning
268271to transmit messages over a fiber link between two machines in a
269272locked datacenter, you might trust that channel is secure, and so take
270- no additional steps. Every system makes trust assumptions. The key is
273+ no additional steps. Every system makes trust assumptions, even if it
274+ as simple as trusting the computer you just bought from a reputable
275+ vendor does not forward your data to a adversary. The key is
271276to be as explicit as possible about those assumptions, because they
272277may change over time.
273278
@@ -318,7 +323,7 @@ encrypt all messages such that even if an adversary has access to the
318323data, they are unable to *understand * the message contents. A protocol that does
319324so is said to provide *confidentiality *. Taking the concept a step
320325farther, concealing the quantity and destination of communication is
321- called *traffic confidentiality *--- because merely knowing where
326+ called *traffic confidentiality *— because merely knowing where
322327traffic is going, and how much, can be useful to an adversary in some
323328situations.
324329
@@ -348,8 +353,8 @@ it is no longer the same message.
348353The owner of the website can be attacked as well. Some websites have
349354been defaced; the files that make up the website content have been
350355remotely accessed and modified without authorization. That is an issue
351- of *access control *: enforcing the rules regarding who is allowed to do
352- what. Websites are also subject to denial -of-service (DoS)
356+ of *access control *, enforcing the rules regarding who is allowed to do
357+ what. Websites are also subject to * Denial -of-Service (DoS)*
353358attacks, during which would-be customers are unable to access the
354359website because it is being overwhelmed by bogus requests. Ensuring a
355360degree of access is called *availability *.
@@ -367,8 +372,8 @@ to inflict further harm, such as launching DoS attacks.
367372We will look further into these various classes of threats and the
368373measures developed to mitigate them in the following chapters. For a
369374solid introduction to system security we recommend the chapter below
370- from Saltzer and Kaashoek. Their perspective is grounded in Operating
371- System (OS) design, which is the context for much of the foundational
375+ from Saltzer and Kaashoek. Their perspective is grounded in * Operating
376+ System (OS) * design, which is the context for much of the foundational
372377work in security. In that setting, finding the right balance between
373378sharing (so users can access each other's files) and security (so you
374379can keep users from accessing your private data) is a central
0 commit comments