Skip to content

Commit 920e79a

Browse files
committed
start on chapter 2
1 parent 31176fb commit 920e79a

File tree

4 files changed

+158
-106
lines changed

4 files changed

+158
-106
lines changed

index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The Authors
1919
:glob:
2020

2121
intro.rst
22-
trust.rst
22+
principles.rst
2323
crypto.rst
2424
key-distro.rst
2525
authentication.rst

intro.rst

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,16 @@ to log in to a remote computer, you would (usually) need to authenticate
3838
yourself to that remote system (e.g., with a user name and password) before
3939
gaining access to any resources on that system.
4040

41-
Ensuring the security of end systems does not come close to addressing the entire set of
42-
security issues that exist in a computer network. For example, an
43-
attacker with access to a link, switch or router somewhere in the network
44-
has the potential to read or modify packets passing
45-
through that point. Furthermore, by
46-
connecting computers to a global network, the opportunity to exploit
47-
vulnerabilities in the code running on those end systems is opened up
48-
to a much greater---potentially global---set of actors.
41+
Ensuring the security of end systems, while important, does not come
42+
close to addressing the entire set of security issues that exist in a
43+
computer network. For example, an attacker with access to a link,
44+
switch or router somewhere in the network has the potential to read or
45+
modify packets passing through that point. Furthermore, failures of
46+
end system security are exposed when we connect them to networks. By
47+
connecting computers to a global network such as the Internet, the
48+
opportunity to exploit vulnerabilities in the code running on those
49+
end systems is opened up to a much greater---potentially global---set
50+
of actors.
4951

5052
Thus we can think of network security as having two main
5153
thrusts. First, we need to address the security challenges of a
@@ -54,8 +56,9 @@ challenges of connecting end systems, which run imperfect software, to
5456
a global set of actors, some of whom are bound to be malicious.
5557

5658
For an interesting retrospective view on system security, and some
57-
commentary on how far we still have to go, we recommend
58-
the paper on Multics from Karger and Schell.
59+
commentary on how far we still have to go, we recommend the paper
60+
looking back on the history of security in Multics from Karger and
61+
Schell.
5962

6063
.. admonition:: Further Reading
6164

@@ -70,14 +73,15 @@ highlight the breadth of the challenges included in the term "network
7073
security". The Morris worm was the first large-scale attack on the
7174
Internet, launched in 1988 when the Internet was largely limited to
7275
universities and research institutions. While it was made possible by
73-
the fact that the Internet of that era generally allowed packets from any source
74-
to any destination, it was also dependent on a number of
76+
the fact that the Internet of that era generally allowed packets from
77+
any source to any destination, it was also dependent on a number of
7578
vulnerabilities in the software running on the end systems connected
7679
to the Internet. Like many future attacks, the Morris worm exploited
77-
multiple vulnerabilities, including weak or default passwords, a buffer
78-
overflow bug in a then widely-used software tool, and a security hole in
79-
the sendmail program. There is a comprehensive analysis of the worm's
80-
operation in the report from Donn Seeley written soon afterwards.
80+
multiple 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
83+
analysis of the worm's operation in the report from Donn Seeley
84+
written soon afterwards.
8185

8286
.. admonition:: Further Reading
8387

@@ -92,8 +96,8 @@ approach requires us to look at the entire system: the network
9296
components and the end systems connected by the network, both hardware
9397
and software.
9498

95-
A Short History of Internet Security
96-
------------------------------------
99+
1.1 A Short History of Internet Security
100+
----------------------------------------
97101

98102
The Internet architecture was initially created with essentially no
99103
security features. This was not because the inventors, implementors and
@@ -120,10 +124,11 @@ The Morris Worm served as something of a wake-up call to the early
120124
developers of the Internet by highlighting just how vulnerable it
121125
was. By the early 1990s the first firewalls had appeared, allowing the
122126
default "accept any packet from anywhere" behavior of the Internet to
123-
be changed. These devices filtered packets based on information in the
124-
TCP and IP headers, and could be implemented in both hosts and
125-
routers. By 1994 they were common enough that applications such as FTP
126-
(the file transfer protocol) adapted to work with them.
127+
be changed in a controlled way. These devices, which remain common
128+
today, filter packets based on information in the TCP and IP headers,
129+
and can be implemented in both hosts and routers. By 1994 they were
130+
common enough that applications such as FTP (the file transfer
131+
protocol) were adapted to work with them.
127132

128133
Also in the early 1990s, the Internet was growing quickly enough to make it clear
129134
that IP version 4 (IPv4), with 32-bit addresses, would eventually run
@@ -162,10 +167,10 @@ at the transport layer.
162167
Another aspect of securing the Internet that started to receive
163168
attention in this period was the security of its infrastructure. One
164169
such piece of infrastructure is the domain name system (DNS). DNS
165-
replaced static host-to-address mapping files in the 1980s and subsequently
170+
replaced static hostname-to-address mapping files in the 1980s and subsequently
166171
become critical to the operation of the Internet. Clearly the
167172
information served up by DNS needs to be robust against manipulation
168-
by adversaries, and hence there has been an multi-decade effort to add
173+
by adversaries, and hence there has been a multi-decade effort to add
169174
security to the DNS. The fact that this continues to roll on
170175
illustrates some of the challenges in making incremental updates to
171176
the distributed infrastructure of the Internet.
@@ -182,7 +187,8 @@ This is by no means a complete history of Internet security but it
182187
gives some sense of the scope of the problems faced. Some further
183188
perspective on this history, and the factors that contributed to
184189
Internet's lack of security, can be found in the following series
185-
of articles from the Washington Post.
190+
of articles from the Washington Post, in which many of the Internet's
191+
pioneers are interviewed.
186192

187193

188194
.. admonition:: Further Reading
@@ -191,16 +197,21 @@ of articles from the Washington Post.
191197
<https://www.washingtonpost.com/sf/business/2015/05/30/net-of-insecurity-part-1/>`__.
192198
The Washington Post, May 30, 2015.
193199

194-
Trust and Threats
195-
-----------------
200+
1.2 Trust and Threats
201+
----------------------
196202

197203
A discussion of security often begins with an analysis of the *threat
198204
landscape*. That is, what are the threats that our system is likely to
199205
be exposed to and which we hope to mitigate. This is one of the great
200206
challenges in developing a security strategy: how do we know when we
201207
have identified all the likely threats? Some may be obvious, such as
202208
eavesdropping on unencrypted traffic sent over a shared medium, but
203-
less obvious threats are constantly being identified.
209+
less obvious threats are constantly being identified. Furthermore,
210+
there are different *threat actors* with different motivations,
211+
ranging from those who enjoy the technical challenge of finding
212+
vulnerabilities, to criminals looking to obtain valuable information
213+
such as credit card details, to government actors looking to perform
214+
surveillence or interfere in elections.
204215

205216
It is common to talk about security as a "negative goal". That is, we
206217
are trying to ensure that a set of undesirable things cannot
@@ -247,14 +258,14 @@ applicable to system security.
247258
Uncertain World. Copernicus Books, 2003.
248259

249260

250-
Threats to Network Security
251-
----------------------------
261+
1.3 Threats to Network Security
262+
-------------------------------
252263

253264

254265

255266
.. from the original book chapter - somewhat edited to follow the above text
256267
257-
Computer networks are, like multi-user computers, invariably a shared
268+
Computer networks are, as we noted above, invariably a shared
258269
resource. They are used by many applications representing different
259270
interests. The Internet is particularly widely shared, being used by
260271
competing businesses, mutually antagonistic governments, and
@@ -292,8 +303,8 @@ encrypt all messages such that even if an adversary has access to the
292303
data, they are unable to *understand* the message contents. A protocol that does
293304
so is said to provide *confidentiality*. Taking the concept a step
294305
farther, concealing the quantity and destination of communication is
295-
called *traffic confidentiality*because merely knowing how much
296-
traffic is going where can be useful to an adversary in some
306+
called *traffic confidentiality*---because merely knowing where
307+
traffic is going, and how much, can be useful to an adversary in some
297308
situations.
298309

299310
Confidentiality alone is not sufficient. An adversary who can’t read
@@ -305,7 +316,7 @@ detects such message tampering is said to provide
305316
*integrity*. Similarly, an attacker might capture a message and
306317
send it again at another time, which might cause a duplicate purchase,
307318
for example. This is called a *replay attack* and prevention of such
308-
attacks is a common feature of security protocols.
319+
attacks is a common requirement of security protocols.
309320

310321
Another threat to the customer is unknowingly being directed to a
311322
false website. This can result from a Domain Name System (DNS) attack,

principles.rst

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
Chapter 2. Design Principles
2+
============================
3+
4+
In the preceding chapter we looked at some reasons why network
5+
security is a never-ending challenge. As security is a negative goal, we can never
6+
be sure that we have foreseen and prevented every possible
7+
threat. Nevertheless, there are a number of general principles that
8+
have been developed over the decades that we can apply to improve the
9+
overall security of our networks and systems. We will discuss these in
10+
this chapter and see them in action in subsequent chapters.
11+
12+
In order to take a systematic approach to security it helps to have a
13+
clear view of our requirements. Once we have defined those we can consider the
14+
principles that can be applied to help us meet them.
15+
16+
2.1 Requirements
17+
--------------------
18+
19+
The first requirement that comes to mind when thinking about sending
20+
data across a shared network is likely to be *confidentiality*. As
21+
noted in Chapter 1, there are many ways that an adversary might gain
22+
access to data in transit through a network. Confidentiality is the
23+
ability to prevent data from being read by anyone other than its
24+
intended recipient. This, for example, is what is required to prevent
25+
your credit card details being exposed when you enter then on a
26+
website.
27+
28+
Related to the confidentiality of data is *traffic
29+
confidentiality*. This is the idea that we don't want an adversary to
30+
be able to determine where or to whom we are sending traffic, or in
31+
what quantity. This presents some distinct challenges from data
32+
confidentiality; there is no need for network devices to see our data,
33+
but they generally must look at packet headers, which contain
34+
destination information, to determine where to
35+
send traffic.
36+
37+
An equally important requirement in many cases is
38+
*authentication*. This is the ability to verify that an item of data
39+
was sent by the entity that claimed to have sent it. In the example of
40+
e-commerce, this is what allows us to know we are connected to, say,
41+
the website of the vendor we wish to patronize and not handing over
42+
our credit card to some imposter.
43+
44+
Closely related to authentication is *integrity*. It is not only important that
45+
we know who we are talking to, but that we can verify
46+
that the data sent across our connection has not been modified by some
47+
adversary in transit.
48+
49+
The preceding requirements also suggest a fourth: *identity*. That is,
50+
we need a system by which the entities involved in communication,
51+
often called *principals*, can be securely identified. As we will
52+
discuss later,
53+
this problem is harder to solve than it might first appear. How can we
54+
know that a website we are communicating with actually represents the
55+
business with whom we wish to communicate?
56+
57+
Just as we are concerned that an adversary might access our data in
58+
transit to eavesdrop on or modifiy it, we also need to be concened
59+
about *replay attacks* in which data is captured and then
60+
retransmitted at some later time. For example, we would want to
61+
protect against an attack in which an item added to a shopping cart
62+
was repeatedly added again by an attacker. Thus it is a common
63+
requirement to have some form of *replay prevention*.
64+
65+
A common requirement in computer system security is *access control*:
66+
the ability to limit who has access to a system and what operations
67+
they may perform on it. This applies not only to end systems but to
68+
network devices such as routers and infrastructure components such
69+
as name servers.
70+
71+
Finally, it is important that networks and the systems attached to
72+
them can be protected against *denial-of-service* (DoS) attacks. The
73+
Morris Worm was an early example of an unintentional DoS attack: as
74+
the worm spread to more and more computers, and reinfected computers
75+
on which it was already present, the resources consumed by the worm
76+
rendered those computers unable to function. Networks provide a meands
77+
by which data can be amplified by replication, allowing large volumes
78+
of traffic to be sent to the target of a DoS attack; thus it has
79+
become necessary to develop means to mitigate such attacks.
80+
81+
2.2 Principles for Secure Systems
82+
---------------------------------
83+
84+
Given how long people have been trying to build secure computing
85+
systems, including networked systems, there has been plenty of
86+
time to develop some principles that improve the chances that the
87+
system remains secure. We will outline some of the most well-known
88+
principles here and the following chapters contain examples of how
89+
those principles have been applied in practice.
90+
91+
92+
.. working list of ideas
93+
94+
Least Privilege
95+
96+
Defense in Depth/safety net
97+
98+
Be Explicit
99+
100+
Design for Iteration
101+
102+
Audit
103+
104+
Open Design
105+
106+
Minimize secrets
107+
108+
economy of mechanism
109+
110+
fail-safe defaults
111+
112+

trust.rst

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)