图书目录

目录

第 1 章 从互联网到网络空间 1

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 互联网发展漫话 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1 计算机和计算机系统 . . . . . . . . . . . . . . . . . . . . 3

1.1.2 改变人类生活方式的互联网及其通信协议 TCP/IP . . . 8

1.1.3 从 Web 开始的互联网应用大爆炸 . . . . . . . . . . . . . 11

1.1.4 网络战争的打响 . . . . . . . . . . . . . . . . . . . . . . . 13

1.2 网络空间及网络空间安全 . . . . . . . . . . . . . . . . . . . . . 17

1.2.1 网络空间定义及其特点 . . . . . . . . . . . . . . . . . . . 17

1.2.2 网络空间安全定义及其现状 . . . . . . . . . . . . . . . . 20

1.2.3 网络空间安全战略 . . . . . . . . . . . . . . . . . . . . . 22

1.2.4 网络空间安全学科体系架构 . . . . . . . . . . . . . . . . 23

1.3 网络空间基础理论之网络科学 . . . . . . . . . . . . . . . . . . . 26

1.3.1 网络科学概述 . . . . . . . . . . . . . . . . . . . . . . . . 26

1.3.2 复杂网络的性质 . . . . . . . . . . . . . . . . . . . . . . . 27

1.3.3 复杂网络与网络空间安全 . . . . . . . . . . . . . . . . . 32

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

第 2 章 网络空间安全中的理论工具 38

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.1 新的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.2 图论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.2.1 图论的起源 . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.2.2 网络安全中的图论 . . . . . . . . . . . . . . . . . . . . . 44

2.2.3 图论简介 . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2.3 控制论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2.3.1 控制论的起源 . . . . . . . . . . . . . . . . . . . . . . . . 53

2.3.2 网络安全中的控制论 . . . . . . . . . . . . . . . . . . . . 54

2.3.3 控制论简介 . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.3.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

2.4 博弈论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

2.4.1 博弈论的起源 . . . . . . . . . . . . . . . . . . . . . . . . 60

2.4.2 网络安全中的博弈论 . . . . . . . . . . . . . . . . . . . . 61

2.4.3 博弈论简介 . . . . . . . . . . . . . . . . . . . . . . . . . 61

2.4.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

2.5 最优化理论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

2.5.1 最优化的起源 . . . . . . . . . . . . . . . . . . . . . . . . 71

2.5.2 网络安全中的最优化 . . . . . . . . . . . . . . . . . . . . 71

2.5.3 最优化的简介 . . . . . . . . . . . . . . . . . . . . . . . . 72

2.5.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

2.6 概率论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

2.6.1 概率论的起源 . . . . . . . . . . . . . . . . . . . . . . . . 78

2.6.2 网络安全中的概率论 . . . . . . . . . . . . . . . . . . . . 78

2.6.3 概率论简介 . . . . . . . . . . . . . . . . . . . . . . . . . 78

2.6.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

第 3 章 网络空间安全基本机制 88

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.1 网络空间安全机制的整体发展脉络 . . . . . . . . . . . . . . . . 88

3.2 沙箱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

3.2.1 沙箱的发展概况 . . . . . . . . . . . . . . . . . . . . . . . 91

3.2.2 沙箱的安全目标 . . . . . . . . . . . . . . . . . . . . . . . 91

3.2.3 沙箱的基本思想和原理 . . . . . . . . . . . . . . . . . . . 91

3.3 入侵容忍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

3.3.1 入侵容忍的发展概况 . . . . . . . . . . . . . . . . . . . . 93

3.3.2 入侵容忍的安全目标 . . . . . . . . . . . . . . . . . . . . 93

3.3.3 入侵容忍的基本思想和原理 . . . . . . . . . . . . . . . . 93

3.4 可信计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

3.4.1 可信计算的发展概况 . . . . . . . . . . . . . . . . . . . . 95

3.4.2 可信计算的安全目标 . . . . . . . . . . . . . . . . . . . . 95

3.4.3 可信计算的基本思想和原理 . . . . . . . . . . . . . . . . 95

3.5 类免疫防御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

3.5.1 类免疫防御的发展概况 . . . . . . . . . . . . . . . . . . . 97

3.5.2 类免疫防御的安全目标 . . . . . . . . . . . . . . . . . . . 97

3.5.3 类免疫防御的基本思想和原理 . . . . . . . . . . . . . . . 97

3.6 移动目标防御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

3.6.1 移动目标防御的发展概况 . . . . . . . . . . . . . . . . . 99

3.6.2 移动目标防御的安全目标 . . . . . . . . . . . . . . . . . 99

3.6.3 移动目标防御的基本思想和原理 . . . . . . . . . . . . . . 99

3.7 拟态防御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

3.7.1 拟态防御的发展概况 . . . . . . . . . . . . . . . . . . . . 100

3.7.2 拟态防御的安全目标 . . . . . . . . . . . . . . . . . . . . 101

3.7.3 拟态防御的基本思想和原理 . . . . . . . . . . . . . . . . 101

3.8 零信任网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

3.8.1 零信任网络的发展概况 . . . . . . . . . . . . . . . . . . . 102

3.8.2 零信任网络的安全目标 . . . . . . . . . . . . . . . . . . . 103

3.8.3 零信任网络的基本思想和原理 . . . . . . . . . . . . . . . 103

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

第 4 章 数据加密 109

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

4.1 密码学简史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.1.1 古典密码 . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.1.2 近代密码 . . . . . . . . . . . . . . . . . . . . . . . . . . 112

4.1.3 现代密码 . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.2 对称密码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.2.1 分组密码 . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.2.2 DES 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 119

4.2.3 流密码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

4.3 公钥密码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

4.3.1 提出背景 . . . . . . . . . . . . . . . . . . . . . . . . . . 126

4.3.2 加密原理 . . . . . . . . . . . . . . . . . . . . . . . . . . 127

4.3.3 RSA 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 127

4.3.4 应用场景 . . . . . . . . . . . . . . . . . . . . . . . . . . 131

4.4 摘要与签名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

4.4.1 散列函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 132

4.4.2 消息认证码 . . . . . . . . . . . . . . . . . . . . . . . . . 137

4.4.3 数字签名 . . . . . . . . . . . . . . . . . . . . . . . . . . 140

4.5 密码分析技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

实验一:制造 MD5 算法的散列值碰撞(难度:899) . . . . 147

实验二:基于口令的安全身份认证协议(难度:888) . . . 149

第 5 章 隐私保护 153

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

5.1 隐私保护技术初探 . . . . . . . . . . . . . . . . . . . . . . . . . 155

5.1.1 网络空间中的隐私 . . . . . . . . . . . . . . . . . . . . . 155

5.1.2 隐私泄露的危害 . . . . . . . . . . . . . . . . . . . . . . . 156

5.1.3 隐私保护技术介绍 . . . . . . . . . . . . . . . . . . . . . 157

5.2 匿名化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

5.2.1 匿名化隐私保护模型 . . . . . . . . . . . . . . . . . . . . 160

5.2.2 匿名化方法 . . . . . . . . . . . . . . . . . . . . . . . . . 164

5.3 差分隐私 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

5.3.1 差分隐私基础 . . . . . . . . . . . . . . . . . . . . . . . . 166

5.3.2 数值型差分隐私 . . . . . . . . . . . . . . . . . . . . . . . 169

5.3.3 非数值型差分隐私 . . . . . . . . . . . . . . . . . . . . . 171

5.4 同态加密 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

5.4.1 同态加密基础 . . . . . . . . . . . . . . . . . . . . . . . . 173

5.4.2 半同态加密 . . . . . . . . . . . . . . . . . . . . . . . . . 175

5.4.3 全同态加密 . . . . . . . . . . . . . . . . . . . . . . . . . 177

5.5 安全多方计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

5.5.1 安全多方计算基础 . . . . . . . . . . . . . . . . . . . . . 178

5.5.2 百万富翁协议 . . . . . . . . . . . . . . . . . . . . . . . . 181

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

实验:基于 Paillier 算法的匿名电子投票流程实现(难度:899)186

第 6 章 系统硬件安全 188

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

6.1 系统硬件概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

6.1.1 硬件的范畴 . . . . . . . . . . . . . . . . . . . . . . . . . 189

6.1.2 硬件组成模块 . . . . . . . . . . . . . . . . . . . . . . . . 190

6.1.3 中央处理器 . . . . . . . . . . . . . . . . . . . . . . . . . 190

6.1.4 硬件安全 . . . . . . . . . . . . . . . . . . . . . . . . . . 192

6.2 硬件安全问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

6.2.1 安全威胁事件 . . . . . . . . . . . . . . . . . . . . . . . . 193

6.2.2 硬件攻击分类 . . . . . . . . . . . . . . . . . . . . . . . . 195

6.2.3 安全威胁剖析 . . . . . . . . . . . . . . . . . . . . . . . . 201

6.3 硬件安全防护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

6.3.1 处理器安全模型 . . . . . . . . . . . . . . . . . . . . . . . 202

6.3.2 硬件防护技术 . . . . . . . . . . . . . . . . . . . . . . . . 203

6.4 典型漏洞分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

6.4.1 Spectre . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

6.4.2 VoltJockey 漏洞 . . . . . . . . . . . . . . . . . . . . . . 210

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

实验:Spectre 攻击验证(难度:888) . . . . . . . . . . . . 218

第 7 章 操作系统安全 220

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

7.1 操作系统安全威胁示例 . . . . . . . . . . . . . . . . . . . . . . . 222

7.1.1 操作系统安全威胁模型 . . . . . . . . . . . . . . . . . . . 222

7.1.2 操作系统安全威胁案例 . . . . . . . . . . . . . . . . . . . 223

7.2 操作系统基础攻击方案 . . . . . . . . . . . . . . . . . . . . . . . 224

7.2.1 内存管理基础 . . . . . . . . . . . . . . . . . . . . . . . . 224

7.2.2 基础的栈区攻击方案 . . . . . . . . . . . . . . . . . . . . 225

7.2.3 基础的堆区攻击方案 . . . . . . . . . . . . . . . . . . . . 229

7.2.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

7.3 操作系统基础防御方案 . . . . . . . . . . . . . . . . . . . . . . . 233

7.3.1 WˆX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

7.3.2 ASLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

7.3.3 Stack Canary . . . . . . . . . . . . . . . . . . . . . . . . 234

7.3.4 SMAP 和 SMEP . . . . . . . . . . . . . . . . . . . . . . 235

7.3.5 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

7.4 高级控制流劫持方案 . . . . . . . . . . . . . . . . . . . . . . . . 236

7.4.1 进程执行的更多细节 . . . . . . . . . . . . . . . . . . . . 236

7.4.2 面向返回地址编程 . . . . . . . . . . . . . . . . . . . . . 237

7.4.3 全局偏置表劫持 . . . . . . . . . . . . . . . . . . . . . . . 240

7.4.4 虚假 vtable 劫持 . . . . . . . . . . . . . . . . . . . . . . 241

7.4.5 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

7.5 高级操作系统保护方案 . . . . . . . . . . . . . . . . . . . . . . . 243

7.5.1 控制流完整性保护 . . . . . . . . . . . . . . . . . . . . . 243

7.5.2 指针完整性保护 . . . . . . . . . . . . . . . . . . . . . . . 245

7.5.3 信息流控制 . . . . . . . . . . . . . . . . . . . . . . . . . 245

7.5.4 I/O 子系统保护 . . . . . . . . . . . . . . . . . . . . . . . 246

7.5.5 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

实验一:简单栈溢出实验(难度:889) . . . . . . . . . . . 254

实验二:基于栈溢出的模拟勒索实验(难度:888) . . . . . 256

第 8 章 TCP/IP 协议栈安全 259

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

8.1 协议栈安全的背景及现状 . . . . . . . . . . . . . . . . . . . . . 259

8.1.1 协议栈安全的基本概念 . . . . . . . . . . . . . . . . . . . 259

8.1.2 协议栈安全的背景及研究范畴 . . . . . . . . . . . . . . . 260

8.1.3 协议栈安全问题现状 . . . . . . . . . . . . . . . . . . . . 261

8.2 协议栈安全问题的本质及原因 . . . . . . . . . . . . . . . . . . . 262

8.2.1 多样化的网络攻击 . . . . . . . . . . . . . . . . . . . . . 262

8.2.2 网络攻击的共性特征 . . . . . . . . . . . . . . . . . . . . 270

8.2.3 协议栈中的不当设计和实现 . . . . . . . . . . . . . . . . 271

8.3 协议栈安全的基本防御原理 . . . . . . . . . . . . . . . . . . . . 272

8.3.1 基于真实源地址的网络安全防御 . . . . . . . . . . . . . . 273

8.3.2 增强协议栈随机化属性 . . . . . . . . . . . . . . . . . . . 273

8.3.3 协议的安全加密 . . . . . . . . . . . . . . . . . . . . . . . 274

8.3.4 安全防御实践及规范 . . . . . . . . . . . . . . . . . . . . 277

8.4 典型案例分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

8.4.1 误用 IP 分片机制污染 UDP 协议 . . . . . . . . . . . . . 278

8.4.2 伪造源 IP 地址进行 DDoS 攻击 . . . . . . . . . . . . . . 279

8.4.3 TCP 连接劫持攻击 . . . . . . . . . . . . . . . . . . . . . 280

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

实验一:SYN Flooding 攻击(难度:899) . . . . . . . . . 287

实验二:基于 IPID 侧信道的 TCP 连接阻断(难度:889) 288

第 9 章 DNS 安全 291

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

9.1 DNS 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

9.1.1 DNS 的演进 . . . . . . . . . . . . . . . . . . . . . . . . . 292

9.1.2 DNS 域名结构与区域组织形式 . . . . . . . . . . . . . . 294

9.2 DNS 使用及解析过程 . . . . . . . . . . . . . . . . . . . . . . . 295

9.2.1 DNS 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . 295

9.2.2 DNS 解析过程 . . . . . . . . . . . . . . . . . . . . . . . 296

9.2.3 DNS 请求及应答报文 . . . . . . . . . . . . . . . . . . . 298

9.3 DNS 攻击 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

9.3.1 DNS 攻击目标及共性特征 . . . . . . . . . . . . . . . . . 301

9.3.2 缓存中毒攻击 . . . . . . . . . . . . . . . . . . . . . . . . 303

9.3.3 来自恶意权威域名服务器的回复伪造攻击 . . . . . . . . 309

9.3.4 拒绝服务攻击 . . . . . . . . . . . . . . . . . . . . . . . . 311

9.4 DNS 攻击防御策略 . . . . . . . . . . . . . . . . . . . . . . . . 313

9.4.1 基于密码技术的防御策略 . . . . . . . . . . . . . . . . . 314

9.4.2 基于系统管理的防御策略 . . . . . . . . . . . . . . . . . 317

9.4.3 新型架构设计 . . . . . . . . . . . . . . . . . . . . . . . . 318

9.5 典型案例分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

9.5.1 Kaminsky攻击 . . . . . . . . . . . . . . . . . . . . . . . 320

9.5.2 恶意服务器回复伪造攻击 . . . . . . . . . . . . . . . . . 321

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

实验:实现本地 DNS 缓存中毒攻击(难度:889) . . . . . 327

第 10 章 真实源地址验证 330

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

10.1 真实源地址验证体系结构的研究背景 . . . . . . . . . . . . . . . 331

10.1.1 当前互联网体系结构缺乏安全可信基础 . . . . . . . . . . 331

10.1.2 IP 地址欺骗 . . . . . . . . . . . . . . . . . . . . . . . . . 333

10.1.3 真实源地址验证体系结构 SAVA 的提出 . . . . . . . . . 337

10.2 真实源地址验证 SAVA 体系结构设计 . . . . . . . . . . . . . . . 338

10.2.1 当前互联网的地址结构 . . . . . . . . . . . . . . . . . . . 339

10.2.2 真实源地址验证 SAVA 体系结构设计原则 . . . . . . . . 340

10.3 SAVA 体系结构及其关键技术 . . . . . . . . . . . . . . . . . . . 342

10.3.1 真实源地址验证 SAVA 体系结构 . . . . . . . . . . . . . 343

10.3.2 接入网真实源地址验证技术 SAVI . . . . . . . . . . . . . 344

10.3.3 域内真实源地址验证技术 SAVA-P . . . . . . . . . . . . 347

10.3.4 域间真实源地址验证技术 SAVA-X . . . . . . . . . . . . 350

10.3.5 基于 IPv6 的可信身份标识 . . . . . . . . . . . . . . . . 354

10.3.6 数据包防篡改机制 . . . . . . . . . . . . . . . . . . . . . 354

10.4 真实可信新一代互联网体系结构 . . . . . . . . . . . . . . . . . . 356

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

实验:域间源地址验证技术 SMA 简单模拟(难度:889) . 360

第 11 章 公钥基础设施 PKI 363

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

11.1 走近互联网安全护卫者 . . . . . . . . . . . . . . . . . . . . . . . 364

11.1.1 PKI 相关技术 . . . . . . . . . . . . . . . . . . . . . . . . 365

11.1.2 数字证书 . . . . . . . . . . . . . . . . . . . . . . . . . . 366

11.1.3 PKI 体系结构的组成 . . . . . . . . . . . . . . . . . . . . 371

11.2 PKI 信任模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

11.2.1 以 CA 为中心的信任模型 . . . . . . . . . . . . . . . . . 374

11.2.2 以用户为中心的信任模型 . . . . . . . . . . . . . . . . . 376

11.3 公钥基础设施安全问题的由来 . . . . . . . . . . . . . . . . . . . 378

11.3.1 数字证书颁发过程中的安全问题 . . . . . . . . . . . . . . 378

11.3.2 数字证书维护过程中的安全问题 . . . . . . . . . . . . . . 379

11.4 公钥基础设施安全问题的解决思路 . . . . . . . . . . . . . . . . 379

11.4.1 建立监督机制 . . . . . . . . . . . . . . . . . . . . . . . . 379

11.4.2 建立证书状态日志 . . . . . . . . . . . . . . . . . . . . . 380

11.5 区块链在 PKI 安全中的应用 . . . . . . . . . . . . . . . . . . . . 381

11.5.1 区块链的特点 . . . . . . . . . . . . . . . . . . . . . . . . 381

11.5.2 以 CA 为中心的 PKI 中区块链的应用 . . . . . . . . . . 383

11.5.3 以用户为中心的 PKI 中区块链的应用 . . . . . . . . . . 384

11.6 PKI 主要应用场景 . . . . . . . . . . . . . . . . . . . . . . . . . 386

11.6.1 加密数据传输 . . . . . . . . . . . . . . . . . . . . . . . . 386

11.6.2 HTTPS 协议 . . . . . . . . . . . . . . . . . . . . . . . . 387

11.6.3 虚拟专用网 . . . . . . . . . . . . . . . . . . . . . . . . . 388

11.6.4 资源公钥基础设施 . . . . . . . . . . . . . . . . . . . . . 389

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394

实验:数字证书的使用(难度:899) . . . . . . . . . . . . 394

第 12 章 分布式系统安全 396

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

12.1 分布式系统概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

12.1.1 分布式系统的组成 . . . . . . . . . . . . . . . . . . . . . 397

12.1.2 分布式系统中的舍与得 . . . . . . . . . . . . . . . . . . . 401

12.1.3 安全问题的根源 . . . . . . . . . . . . . . . . . . . . . . . 404

12.2 协作的前提:建立安全、稳定的交互网络 . . . . . . . . . . . . 406

12.2.1 建立安全、稳定的交互信道 . . . . . . . . . . . . . . . . 406

12.2.2 建立应用层路由 . . . . . . . . . . . . . . . . . . . . . . . 410

12.2.3 选择可靠的邻居节点 . . . . . . . . . . . . . . . . . . . . 412

12.3 实现稳定协同:安全稳定的分布式算法 . . . . . . . . . . . . . . 413

12.3.1 时钟同步 . . . . . . . . . . . . . . . . . . . . . . . . . . 413

12.3.2 并发控制 . . . . . . . . . . . . . . . . . . . . . . . . . . 415

12.3.3 故障容错 . . . . . . . . . . . . . . . . . . . . . . . . . . 418

12.4 实现可信协同:解决信任问题 . . . . . . . . . . . . . . . . . . . 424

12.4.1 身份认证和访问控制 . . . . . . . . . . . . . . . . . . . . 424

12.4.2 信用模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 426

12.4.3 拜占庭容错共识 . . . . . . . . . . . . . . . . . . . . . . . 426

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

实验:拜占庭 / 故障容错共识的模拟与验证(难度:889) . 435

第 13 章 应用安全 439

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

13.1 网络应用及其相关的应用安全问题 . . . . . . . . . . . . . . . . 440

13.1.1 网络应用安全问题概览 . . . . . . . . . . . . . . . . . . . 441

13.1.2 各种应用安全攻击分析 . . . . . . . . . . . . . . . . . . . 442

13.1.3 网络应用安全攻击的共性特征 . . . . . . . . . . . . . . . 457

13.2 应用安全的基本防御原理 . . . . . . . . . . . . . . . . . . . . . 458

13.2.1 身份认证与信任管理 . . . . . . . . . . . . . . . . . . . . 459

13.2.2 隐私保护 . . . . . . . . . . . . . . . . . . . . . . . . . . 459

13.2.3 应用安全监控防御 . . . . . . . . . . . . . . . . . . . . . 459

13.3 典型案例分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

13.3.1 微博病毒 . . . . . . . . . . . . . . . . . . . . . . . . . . 460

13.3.2 剑桥分析通过社交网络操纵美国大选 . . . . . . . . . . . 461

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465

实验: 实现本地 Web 攻击 (难度:889) . . . . . . . . . . . . . 465

第 14 章 人工智能算法安全 468

引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468

14.1 人工智能安全绪论 . . . . . . . . . . . . . . . . . . . . . . . . . 471

14.1.1 人工智能发展史 . . . . . . . . . . . . . . . . . . . . . . . 471

14.1.2 人工智能安全 . . . . . . . . . . . . . . . . . . . . . . . . 474

14.2 框架安全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477

14.2.1 框架发展简史 . . . . . . . . . . . . . . . . . . . . . . . . 478

14.2.2 框架自身的安全漏洞 . . . . . . . . . . . . . . . . . . . . 482

14.2.3 环境接触带来的漏洞 . . . . . . . . . . . . . . . . . . . . 483

14.3 算法安全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486

14.3.1 人工智能算法简介 . . . . . . . . . . . . . . . . . . . . . 486

14.3.2 人工智能算法的鲁棒性 . . . . . . . . . . . . . . . . . . . 489

14.3.3 人工智能算法安全的分类维度 . . . . . . . . . . . . . . . 491

14.3.4 面向算法的攻击与防御 . . . . . . . . . . . . . . . . . . . 493

14.4 人工智能算法的局限性 . . . . . . . . . . . . . . . . . . . . . . . 495

14.4.1 数据局限性 . . . . . . . . . . . . . . . . . . . . . . . . . 495

14.4.2 成本局限性 . . . . . . . . . . . . . . . . . . . . . . . . . 497

14.4.3 偏见局限性 . . . . . . . . . . . . . . . . . . . . . . . . . 499

14.4.4 伦理局限性 . . . . . . . . . . . . . . . . . . . . . . . . . 500

总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504

实验:后门攻击与防御的实现(难度:889) . . . . . . . . . 504