Published by Pearson (August 29, 2013) © 2014
Michael Goodrich | Roberto Tamassia1 Introduction 1
1.1 Fundamental Concepts . . . . . . . . . . . . . . . . . . . . . 2
1.2 Access Control Models . . . . . . . . . . . . . . . . . . . . . 19
1.3 Cryptographic Concepts . . . . . . . . . . . . . . . . . . . . . 25
1.4 Implementation and Usability Issues . . . . . . . . . . . . . . 39
1.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2 Physical Security 55
2.1 Physical Protections and Attacks . . . . . . . . . . . . . . . . 56
2.2 Locks and Safes . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3 Authentication Technologies . . . . . . . . . . . . . . . . . . . 71
2.4 Direct Attacks Against Computers . . . . . . . . . . . . . . . 88
2.5 Special-Purpose Machines . . . . . . . . . . . . . . . . . . . 99
2.6 Physical Intrusion Detection . . . . . . . . . . . . . . . . . . . 13
2.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3 Operating Systems Security 113
3.1 Operating Systems Concepts . . . . . . . . . . . . . . . . . . 114
3.2 Process Security . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.3 Memory and Filesystem Security . . . . . . . . . . . . . . . . 136
3.4 Application Program Security . . . . . . . . . . . . . . . . . . 149
3.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
4 Malware 173
4.1 Insider Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . 174
4.2 Computer Viruses . . . . . . . . . . . . . . . . . . . . . . . . 181
4.3 Malware Attacks . . . . . . . . . . . . . . . . . . . . . . . . . 188
4.4 Privacy-Invasive Software . . . . . . . . . . . . . . . . . . . . 202
4.5 Countermeasures . . . . . . . . . . . . . . . . . . . . . . . . 208
4.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5 Network Security I 221
5.1 Network Security Concepts . . . . . . . . . . . . . . . . . . . 222
5.2 The Link Layer . . . . . . . . . . . . . . . . . . . . . . . . . . 229
5.3 The Network Layer . . . . . . . . . . . . . . . . . . . . . . . . 236
5.4 The Transport Layer . . . . . . . . . . . . . . . . . . . . . . . 246
5.5 Denial-of-Service Attacks . . . . . . . . . . . . . . . . . . . . 256
5.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
6 Network Security II 269
6.1 The Application Layer and DNS . . . . . . . . . . . . . . . . . 270
6.2 Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
6.3 Tunneling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
6.4 Intrusion Detection . . . . . . . . . . . . . . . . . . . . . . . . 299
6.5 Wireless Networking . . . . . . . . . . . . . . . . . . . . . . . 313
6.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
7 Web Security 327
7.1 The World Wide Web . . . . . . . . . . . . . . . . . . . . . . 328
7.2 Attacks on Clients . . . . . . . . . . . . . . . . . . . . . . . . 347
7.3 Attacks on Servers . . . . . . . . . . . . . . . . . . . . . . . . 368
7.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
8 Cryptography 387
8.1 Symmetric Cryptography . . . . . . . . . . . . . . . . . . . . 388
8.2 Public-Key Cryptography . . . . . . . . . . . . . . . . . . . . . 406
8.3 Cryptographic Hash Functions . . . . . . . . . . . . . . . . . 417
8.4 Digital Signatures . . . . . . . . . . . . . . . . . . . . . . . . . 421
8.5 Details on AES and RSA . . . . . . . . . . . . . . . . . . . . 425
8.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
9 Distributed-Applications Security 487
9.1 Database