第Ⅰ部分 历史背景 3
第1章 安全概述 3
1.1安全的传统定义 3
1.2访问控制矩阵 5
1.3其他观点 7
1.3.1正确性 7
1.3.2风险管理 10
1.4安全状态和访问控制矩阵 11
1.4.1可计算性理论 11
1.4.2安全性问题 11
1.5其他安全难题 12
1.5.1敌手是谁 12
1.5.2系统的安全边界在哪里 13
1.5.3如何量化成长性 14
1.5.4检测还是阻止 14
1.5.5安全的代价有多大 14
1.6本章小结 14
1.7思考和实践 15
第2章 旧约 17
2.1基本框架 17
2.2安全模型 18
2.2.1信息流和偏序 18
2.2.2 Bell-LaPadula模型 21
2.2.3其他安全模型 22
2.3桔皮书 24
2.3.1访问控制矩阵 25
2.3.2访问控制矩阵方法的扩充 25
2.3.3系统的结构 27
2.3.4软件工程 28
2.3.5系统保障 28
2.3.6案例研究 29
2.4信息安全、作业安全和工作安全 30
2.5本章小结 31
2.6思考和实践 31
第3章 旧准则,新环境 33
3.1桔皮书是否解决了错误问题 33
3.2是否因缺乏政府支持而虎头蛇尾 35
3.3旧准则是否太不实用 36
3.4 Saltzer和Schroeder 38
3.5旧准则在现代计算环境中的适用性 40
3.6本章小结 40
3.7思考和实践 41
第Ⅱ部分 安全与现代计算场景 45
第4章 操作系统安全 45
4.1操作系统的背景 45
4.1.1计算机体系结构 45
4.1.2操作系统的功用 46
4.1.3基本元素 47
4.2操作系统安全的基本概念和原理 50
4.2.1进程隔离和内存保护 50
4.2.2用户 51
4.2.3文件系统访问控制 51
4.2.4引用监视器 53
4.2.5可信计算基础(TCB) 53
4.3真实操作系统:几乎实现了所有功能 53
4.3.1操作系统的访问 53
4.3.2远程过程调用支持 54
4.3.3密码学支持 55
4.3.4内核扩展 55
4.4针对操作系统的攻击 56
4.4.1通用攻击策略 56
4.4.2通用攻击技术 57
4.4.3按键记录器和Rootkit 58
4.5选择何种操作系统 60
4.5.1 Windows和Linux 60
4.5.2其他操作系统 61
4.6本章小结 62
4.7思考和实践 63
第5章 网络安全 65
5.1基本框架 65
5.1.1大概原理 66
5.1.2查找联网机器 67
5.1.3联网机器的使用 69
5.1.4其他网络栈 70
5.1.5网络和操作系统 72
5.1.6企业网络体系结构 72
5.2协议 74
5.2.1 SSL/TLS 74
5.2.2 IPsec 75
5.2.3 DNSSEC 76
5.2.4 (S)BGP 76
5.3网络攻防 77
5.3.1攻击 78
5.3.2防御 81
5.4新技术、新问题 83
5.4.1无线局域网 83
5.4.2蓝牙 87
5.5本章小结 89
5.6思考和实践 90
第6章 安全实现 91
6.1缓冲区溢出 92
6.1.1程序内存环境简述 92
6.1.2栈溢出 94
6.1.3溢出剖析 94
6.1.4其他溢出攻击方法 95
6.1.5防御 95
6.2参数验证和其他问题 97
6.2.1模糊测试 97
6.2.2格式化字符串 97
6.2.3整数溢出 98
6.2.4转义序列 100
6.2.5内部验证 101
6.3 TOCTOU 101
6.4恶意软件 102
6.4.1类型 103
6.4.2著名示例 103
6.5编程语言安全 104
6.5.1内存管理 104
6.5.2类型安全 105
6.5.3信息流 106
6.5.4过去和未来的解决方法 107
6.5.5工具 107
6.6开发周期内的安全 108
6.6.1开发周期 108
6.6.2两全齐美是不可能的 108
6.6.3内嵌安全性 109
6.7本章小结 110
6.8思考与实践 110
第Ⅲ部分 安全系统的构成模块 113
第7章 密码学 113
7.1框架和术语 113
7.1.1转换 114
7.1.2复杂性 115
7.1.3一些攻击策略 115
7.2随机化 115
7.3对称密码学 117
7.3.1信息论 118
7.3.2流加密和分组加密 119
7.3.3链接 120
7.3.4分组迭代 121
7.4对称密码学的应用 124
7.4.1加密 124
7.4.2消息认证码 124
7.4.3单向函数 125
7.4.4伪随机数产生器 126
7.5公钥密码学 126
7.5.1基础 126
7.5.2加密 126
7.5.3签名 127
7.5.4术语警告 127
7.5.5 RSA 128
7.5.6其他算法 128
7.6 hash函数 130
7.6.1介绍 130
7.6.2函数构造 130
7.6.3基本应用 130
7.7公钥的实现问题 132
7.7.1编码 132
7.7.2性能 133
7.7.3填充 134
7.8过去和未来 135
7.9本章小结 135
7.10思考与实践 135
第8章 密码破解 137
8.1非暴力破解对称密钥 137
8.1.1非开源的随机数产生算法 138
8.1.2开源的随机数产生器 138
8.2暴力破解对称密钥 139
8.3非因式分解方法破解公钥 140
8.3.1智力扑克欺骗问题 141
8.3.2基本RSA 141
8.3.3填充函数 143
8.3.4 hash函数 144
8.4密码机制实现破解 147
8.4.1 RSA时序攻击 147
8.4.2缓冲时序攻击 148
8.4.3硬件旁路攻击 149
8.4.4 Keyj acking 150
8.4.5理论依据 151
8.5模数分解的可能性 152
8.5.1量子力学和量子计算机 152
8.5.2 BQP问题 153
8.6本章小结 153
8.7思考与实践 154
第9章 身份认证 155
9.1基本框架 155
9.2人的身份认证 156
9.2.1口令 156
9.2.2生物学身份认证 157
9.2.3令牌 158
9.3人为因素 159
9.3.1口令 159
9.3.2证书恢复 159
9.3.3其他基于知识的方法 160
9.3.4生物特征 160
9.3.5口令共享 160
9.4从机器的角度看身份认证 161
9.5高级方法 163
9.5.1一次性口令 163
9.5.2密码学方法 165
9.5.3双向认证 167
9.5.4会话劫持 169
9.5.5需考虑的必要因素 169
9.5.6零知识 169
9.6案例研究 171
9.6.1 Kerberos 171
9.6.2 SSH 174
9.7其他问题 175
9.7.1名字 175
9.7.2授权 176
9.7.3信任协商 177
9.7.4信任管理 178
9.7.5证明 178
9.8本章小结 178
9.9思考与实践 179
第10章 公钥基础设施 181
10.1基本定义 182
10.2基本结构 183
10.3复杂性 184
10.3.1注册 184
10.3.2密钥托管和密钥恢复 185
10.4多证书中心 187
10.5证书回收 190
10.5.1主流方法 190
10.5.2其他方法 191
10.5.3复杂性和语义 192
10.6 X.509方案 192
10.6.1基本观点 192
10.6.2 X.509的变种 192
10.6.3 X.509的替代方案 194
10.7反对观点 194
10.7.1 Ellison 195
10.7.2 Whitten 195
10.7.3 Garfinkel 196
10.7.4 Gutmann 196
10.8当前存在的问题 196
10.8.1密钥存储 196
10.8.2信任流的表示 197
10.8.3端用户信任决策 197
10.8.4历史的观点 197
10.9本章小结 197
10.10思考与实践 198
第11章 标准、实施和测试 199
11.1标准 200
11.1.1常见标准 201
11.1.2美国标准与技术研究院 201
11.1.3美国国家标准研究院 202
11.1.4公钥密码学标准 203
11.1.5 RFC 203
11.1.6标准的缺陷 203
11.2策略实施 204
11.2.1 HIPAA 204
11.2.2 SOX法案 205
11.2.3 GLBA法案 205
11.2.4最佳实践框架 206
11.2.5审计 207
11.3测试 208
11.3.1实验测试 209
11.3.2测试方案 209
11.3.3开发者的作用 210
11.3.4负面测试 210
11.3.5现场测试 211
11.3.6观察 212
11.3.7模糊化 212
11.3.8漏洞发现 213
11.4本章小结 213
11.5思考和实践 214
第Ⅳ部分 应用 217
第12章 Web及其安全 217
12.1基本结构 218
12.1.1基本动作 218
12.1.2页面请求 218
12.1.3页面内容 221
12.1.4状态 224
12.1.5网络问题 226
12.2安全技术 227
12.2.1基本访问控制 227
12.2.2服务器端SSL 228
12.2.3客户端SSL 232
12.3隐私问题 236
12.3.1客户端问题 236
12.3.2服务器端问题 237
12.3.3第三方服务器 237
12.3.4跨会话信息泄露 238
12.3.5秘密浏览技术 238
12.3.6 P3P 239
12.4 Web服务 239
12.5本章小结 240
12.6思考与实践 241
第13章 办公工具及其安全 243
13.1 Word 243
13.1.1概要 244
13.1.2真实趣闻 247
13.1.3 Word的bug 250
13.1.4 Word表单保护 250
13.1.5宏 251
13.2 Lotus 1-2-3 252
13.3 PDF 253
13.3.1崩溃 253
13.3.2编写 253
13.3.3可随意修改性 254
13.4剪切-粘贴 255
13.5 PKI和办公工具 258
13.6概念模型 259
13.6.1文本该何去何从? 259
13.6.2 Google 260
13.7本章小结 261
13.8思考与实践 261
第14章 货币、时间、属性 263
14.1货币 263
14.1.1类型 263
14.1.2属性 264
14.1.3其他问题 265
14.1.4密码学工具箱 265
14.1.5 DigiCash 268
14.1.6其他电子货币系统 270
14.2时间 270
14.2.1数字时间戳 271
14.2.2整合hash函数 272
14.3属性 274
14.3.1信息隐藏和盗版 274
14.3.2囚犯问题 275
14.3.3水印示例 275
14.3.4水印应用 276
14.3.5攻击 277
14.4本章小结 278
14.5思考与实践 278
第Ⅴ部分 新型工具 281
第15章 形式化方法和安全 281
15.1规范 282
15.2逻辑 284
15.2.1布尔逻辑 284
15.2.2命题逻辑 284
15.2.3一阶逻辑 285
15.2.4时态逻辑 286
15.2.5 BAN逻辑 286
15.2.6一些安全例子 288
15.3实现 290
15.4案例研究 290
15.5了解你的银行账号 291
15.6自动形式化方法的不足 293
15.7本章小结 294
15.8思考与实践 294
第16章 基于硬件的安全 297
16.1数据残留 298
16.1.1磁介质 298
16.1.2 FLASH 298
16.1.3 RAM 299
16.1.4系统 300
16.1.5旁通道 300
16.2攻击和防御 300
16.2.1物理攻击 300
16.2.2防御策略 302
16.3工具 305
16.3.1安全协处理器 305
16.3.2密码加速器 306
16.3.3外部CPU功能性 308
16.3.4可携带令牌 311
16.4其他体系结构 311
16.4.1常用机器 312
16.4.2虚拟化 313
16.4.3多核 315
16.4.4受保护CPU 315
16.4.5标记 315
16.5发展趋势 316
16.5.1虚拟化和安全 316
16.5.2证明和鉴别 318
16.5.3摩尔定律的未来 319
16.5.4未来的个人令牌 320
16.5.5射频识别 320
16.6本章小结 320
16.7思考与实践 321
第17章 搜索有害位 323
17.1 AI工具 324
17.2应用分类 327
17.3案例研究 329
17.3.1环境 329
17.3.2问题 330
17.3.3技术 330
17.3.4特征集 331
17.3.5实验 332
17.4实现 333
17.5本章小结 334
17.6思考与实践 334
第18章 人为因素 335
18.1最后一程 336
18.2设计准则 338
18.2.1这不是你的错 338
18.2.2概念模型 339
18.2.3映射 341
18.2.4约束、可用性、反馈 341
18.2.5 Yee的准则 343
18.3其他因素 343
18.4信任 345
18.4.1信任为什么重要 345
18.4.2促进信任 346
18.5本章小结 346
18.6思考与实践 347
附录A 相关理论 349
A.1关系、序、格 349
A.2函数 350
A.3可计算性理论 351
A.3.1不可数 351
A.3.2不可计算 353
A.4框架 354
A.5量子物理和量子计算 355
A.5.1物理的发展 355
A.5.2量子力学 356
A.5.3 Root-Not门 357
参考文献 359