目录
第 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