第1章 简介 1
1.1基本概念 1
1.1.1机密性、完整性和可用性 1
1.1.2保证、真实性和匿名 5
1.1.3威胁与攻击 8
1.1.4安全原则 9
1.2访问控制模型 11
1.2.1访问控制矩阵 11
1.2.2访问控制列表 12
1.2.3权能 13
1.2.4基于角色的访问控制 14
1.3加密的概念 16
1.3.1加密 16
1.3.2数字签名 19
1.3.3对密码系统的简单攻击 20
1.3.4加密散列函数 23
1.3.5数字证书 24
1.4实现和可用性问题 25
1.4.1效率和可用性 26
1.4.2密码 27
1.4.3社会工程 28
1.4.4源于编程错误的脆弱性 29
1.5练习 30
第2章 物理安全 36
2.1物理保护与攻击 36
2.2锁与保险箱 36
2.2.1锁技术 37
2.2.2针对锁与保险箱的攻击 40
2.2.3锁安全的数学知识 44
2.3身份验证技术 45
2.3.1条形码 46
2.3.2磁条卡 46
2.3.3智能卡 47
2.3.4 RFID 51
2.3.5生物特征识别 54
2.4针对计算机的直接攻击 56
2.4.1环境攻击和事故 57
2.4.2窃听 57
2.4.3 TEMPEST 60
2.4.4 Live CD 61
2.4.5计算机取证 62
2.5专用机 63
2.5.1自动取款机 64
2.5.2投票机 65
2.6物理入侵检测 66
2.6.1视频监控 66
2.6.2人为因素和社会工程 67
2.7练习 68
第3章 操作系统的安全 73
3.1操作系统的概念 73
3.1.1内核与输入/输出 73
3.1.2进程 74
3.1.3文件系统 77
3.1.4内存管理 80
3.1.5虚拟机 82
3.2进程的安全 84
3.2.1从开始到结束的传递信任 84
3.2.2监控、管理与日志 85
3.3内存与文件系统的安全 88
3.3.1虚拟内存的安全 88
3.3.2基于密码的身份验证 89
3.3.3访问控制与高级文件权限 91
3.3.4文件描述符 95
3.3.5符号链接与快捷方式 96
3.4应用程序的安全 97
3.4.1编译与链接 97
3.4.2简单的缓冲区溢出攻击 98
3.4.3基于堆栈的缓冲区溢出 99
3.4.4基于堆的缓冲区溢出攻击 104
3.4.5格式化字符串攻击 106
3.4.6竞争条件 107
3.5练习 109
第4章 恶意软件 114
4.1内部攻击 114
4.1.1后门 114
4.1.2逻辑炸弹 116
4.1.3内部攻击的防御 118
4.2计算机病毒 118
4.2.1病毒的分类 119
4.2.2病毒的防御 121
4.2.3加密病毒 122
4.2.4多变体病毒和变形病毒 123
4.3恶意软件攻击 123
4.3.1特洛伊木马 124
4.3.2计算机蠕虫 125
4.3.3 Rootkits 129
4.3.4零日攻击 131
4.3.5僵尸网络 132
4.4入侵隐私软件 133
4.4.1广告软件 133
4.4.2间谍软件 135
4.5对策 137
4.5.1最佳实践 138
4.5.2检测所有恶意软件的不可能性 139
4.5.3恶意软件检测的军备竞赛 140
4.5.4恶意软件的经济 141
4.6练习 142
第5章 网络安全Ⅰ 147
5.1网络安全的概念 147
5.1.1网络拓扑 147
5.1.2互联网协议层 147
5.1.3网络安全问题 150
5.2链路层 151
5.2.1以太网 152
5.2.2媒体访问控制(MAC)地址 153
5.2.3 ARP欺骗 155
5.3网络层 156
5.3.1 IP 157
5.3.2网际控制消息协议 159
5.3.3 IP欺骗 161
5.3.4数据包嗅探 162
5.4传输层 163
5.4.1传输控制协议 164
5.4.2用户数据报协议(UDP) 167
5.4.3网络地址转换 167
5.4.4 TCP会话劫持 168
5.5拒绝服务攻击 170
5.5.1 ICMP攻击 171
5.5.2 SYN洪水攻击 172
5.5.3优化的TCP ACK攻击 173
5.5.4分布式拒绝服务 174
5.5.5 IP回溯 175
5.6练习 175
第6章 网络安全Ⅱ 180
6.1应用层与DNS 180
6.1.1应用层协议示例 180
6.1.2域名系统 180
6.1.3 DNS攻击 185
6.1.4 DNSSEC 190
6.2防火墙 192
6.2.1防火墙策略 192
6.2.2无状态和有状态防火墙 193
6.3隧道 195
6.3.1安全的Shell (SSH) 196
6.3.2 IPSec 197
6.3.3虚拟专用网络 199
6.4入侵检测 200
6.4.1入侵侦测事件 202
6.4.2基于规则的入侵检测 204
6.4.3统计入侵检测 205
6.4.4端口扫描 206
6.4.5蜜罐 209
6.5无线网 209
6.5.1无线技术 210
6.5.2有线等效保密 211
6.5.3 Wi-Fi保护访问 213
6.6练习 215
第7章Web安全 219
7.1万维网 219
7.1.1 HTTP与HTML 219
7.1.2 HTTPS 223
7.1.3动态内容 226
7.1.4会话和cookie 229
7.2针对客户端的攻击 232
7.2.1会话劫持 232
7.2.2网络钓鱼 234
7.2.3点击劫持 235
7.2.4媒体内容的脆弱性 236
7.2.5隐私攻击 238
7.2.6跨站点脚本 239
7.2.7跨站请求伪造 244
7.2.8防御客户端的攻击 245
7.3服务器的攻击 247
7.3.1服务器端的脚本 247
7.3.2服务器端脚本包含的脆弱性 248
7.3.3数据库和SQL注入攻击 249
7.3.4拒绝服务攻击 254
7.3.5 Web服务器权限 255
7.3.6防御服务器端的攻击 255
7.4练习 256
第8章 加密 260
8.1对称加密 260
8.1.1攻击 260
8.1.2替换密码 262
8.1.3一次一密 263
8.1.4伪随机数发生器 264
8.1.5希尔密码与置换密码 266
8.1.6高级加密标准(AES) 267
8.1.7操作模式 269
8.2公钥加密 271
8.2.1模运算 271
8.2.2 RSA密码系统 274
8.2.3 Elgamal密码系统 276
8.2.4密钥交换 277
8.3加密散列函数 279
8.3.1性质与应用 279
8.3.2生日攻击 280
8.4数字签名 281
8.4.1 RSA签名方案 282
8.4.2 Elgamal签名方案 283
8.4.3使用Hash函数的数字签名 283
8.5 AES和RSA加密细节 284
8.5.1 AES的细节 284
8.5.2 RSA的细节 289
8.6练习 294
第9章 安全模型与实践 298
9.1策略、模型与信任 298
9.1.1安全策略 298
9.1.2安全模型 298
9.1.3信任管理 299
9.2访问控制模型 301
9.2.1 Bell-La Padula模型 301
9.2.2其他的访问控制模型 303
9.2.3基于角色的访问控制 305
9.3安全标准与评价 307
9.3.1橘皮书和通用标准 307
9.3.2政府管治及标准 308
9.4软件的脆弱性评估 310
9.4.1静态测试与动态测试 310
9.4.2漏洞开发与脆弱性披露 313
9.5管理和测试 313
9.5.1系统管理 314
9.5.2网络测试与渗透测试 315
9.6 Kerberos 317
9.6.1 Kerberos票据与服务器 317
9.6.2 Kerberos身份验证 317
9.7安全存储 320
9.7.1文件加密 320
9.7.2磁盘加密 321
9.7.3可信平台模块 322
9.8练习 323
第10章 分布式应用程序的安全 326
10.1数据库安全 326
10.1.1表和查询 326
10.1.2更新和两阶段提交协议 328
10.1.3数据库访问控制 329
10.1.4敏感数据 332
10.2电子邮件安全 334
10.2.1电子邮件的工作原理 334
10.2.2加密和身份验证 336
10.2.3垃圾邮件 339
10.3支付系统和拍卖 344
10.3.1信用卡 344
10.3.2数字现金 346
10.3.3网上拍卖 347
10.4数字版权管理 348
10.4.1数字媒体版权技术 348
10.4.2数字媒体版权实践 350
10.4.3软件许可方案 352
10.4.4法律问题 353
10.5社交网络 353
10.5.1作为攻击载体的社交网络 354
10.5.2私隐 354
10.6投票系统 356
10.6.1安全目标 356
10.6.2 ThreeBallot 356
10.7练习 358
参考文献 363