以互联网为代表的信息技术日新月异,引领了社会生产新变革,创造了人类生活新空间,拓展了国家治理新领域,极大地提高了人类认识世界、改造世界的能力。
互联网开辟了继陆、海、空和太空之后的人类第五疆域: 网络空间,与此同时,国家安全的疆域也从传统的陆、海、空、天的物理空间向数字化的网络空间拓展,制网权成为大国战略较量的又一焦点。
习近平总书记2014 年2 月27 日在中央网络安全和信息化领导小组第一次会议上高屋建瓴地指出没有网络安全就没有国家安全,没有信息化就没有现代化。为了加快网络安全人才培养,2015 年6
月,国务院学位委员会和决定设立网络空间安全一级学科。清华大学是国内最早开展网络空间安全专业研究生培养的高等院校之一。为了满足网络空间安全学科发展的要求,清华大学计算机系安排我和李琦为计算机科学与技术等相关专业的本科生开设
网络空间安全导论课程。
网络空间安全导论课程定位为计算机系本科生的必修课,一方面要向同学们展示网络空间安全学科的整体框架体系,另一方面也希望通过课程的学习,同学们能了解和掌握网络空间安全相关基本理论、基本机制和基本原理并具有一定的实践动手能力。为了配合课程教学,我们着手编写了此书,为了体现课程中基本原理的重要性,我们将书名确定为《网络空间安全原理与实践》。建设一门新的课程无疑是一个巨大的挑战,特别是这样一门新兴学科的概论课程。网络空间安全领域宽广,知识点繁杂,涉及计算机芯片、操作系统、网络协议、应用软件、人工智能算法等诸多方面,而且对实践能力要求很高。课程内容如何取舍?课程主线如何建立?这些问题无疑都增加了课程建设的难度。
在吴建平院士的指导下,我们深入学习了网络空间安全一级学科论证报告和兄弟院校的相关课程,确定了以网络空间的发展历程为基础的课程主线,课程内容包括了基础理论、机制与算法、系统安全、网络安全及分布式系统与应用安全这几个部分,这几部分的相互关系详见第1 章,这里不再赘述。
需要指出的一点是,尽管我们努力使本书达到自包含的效果,但是仍然希望读者在计算机组成原理、计算机网络和操作系统等方面有一定的基础知识。如果读者希望深入了解计算机网络的基本原理,可以参考拙作《高级计算机网络》(第2 版)。
本书的第1 版于2022 年出版,随着大模型等人工智能新技术的飞速发展,相关的安全问题已经引起了大家的广泛关注,为了更全面准确地反映网络空间安全领域的最新进展,我们修订完成了本书。与第1 版相比,除了增加大模型安全章节之外,还增加了互联网路由安全和流量识别技术的相关内容。
本书的完成,首先要感谢团队学术带头人吴建平院士,他始终把握着我们团队的研究方向,带领我们在新一代互联网和网络空间安全领域努力前行。感谢我的同事徐明伟、赵有健、尹霞、崔勇、张小平、刘莹、李丹、裴丹,我们就像一个大家庭一样互相支持。
网络空间安全一级学科虽然建设时间并不长,但在兄弟院校的共同努力下,已经涌现出一批优秀的课程,并出版了多部优秀的教材,我们从中获益甚多,在此表示深深的谢意。
在本书及其初版的撰写过程中,作者就相关内容分别请教了张钹院士、邬江兴院士、戴浩院士、方滨兴院士、张尧学院士、于全院士、戴琼海院士、王小云院士、冯登国院士、张宏科院士和胡事民院士,非常感谢各位院士对书稿提出的宝贵意见和建议。院士们对后辈的关心和支持令人感佩。
感谢孙富春教授、姜誉教授、张帆教授和郑中翔博士对书稿提出宝贵意见。感谢我的三位合作者,李琦的加入极大提升了我们团队在安全领域的研究水平。沈蒙和朱敏是我招收的第一届博士生,如今都已能独当一面开展科研工作,他们的成长令我十分欣慰。
在本书及其初版的完成过程中,赵乙、朱亮、谭崎、李海斌、车征、魏雅倩、王自强、傅川溥、冯学伟、姜盛林、付松涛、周广猛、徐松松、凌思通、杜鑫乐、刘自轩、李旸、苏悦、杨宇翔、黄翰林等参与了大量的工作,在此一并表示感谢。
感谢我的父母和家人,谨以此书献给他们。
感谢国家自然科学基金委员会多年来对作者研究工作的支持(项目编号:62425201)。限于作者的水平,书中不当之处希望得到广大读者的指正,文责当由我一人承担。网络空间安全领域是一个飞速发展的领域,我们将在吸取大家的意见和建议的基础上,在适当的时候再做修订和补充。
徐恪
2025 年1 月
第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 网络科学概述. 27
1.3.2 复杂网络的性质.. 27
1.3.3 复杂网络与网络空间安全.. 32
总结. 33
参考文献. 34
习题. 36
第2 章网络空间安全中的理论工具37
引言. 37
2.1 新的挑战. 39
2.2 图论. 42
2.2.1 图论的起源. 42
2.2.2 网络安全中的图论43
2.2.3 图论简介46
2.2.4 小结52
2.3控制论52
2.3.1 控制论的起源52
2.3.2 网络安全中的控制论53
2.3.3 控制论简介53
2.3.4 小结59
2.4 博弈论59
2.4.1 博弈论的起源59
2.4.2 网络安全中的博弈论.60
2.4.3 博弈论简介61
2.4.4 小结69
2.5 最优化理论70
2.5.1 最优化的起源70
2.5.2 网络安全中的最优化70
2.5.3 最优化的简介71
2.5.4 小结76
2.6 概率论76
2.6.1 概率论的起源77
2.6.2 网络安全中的概率论77
2.6.3 概率论简介77
2.6.4 小结82总结82
参考文献82
习题84
第3 章网络空间安全基本机制86
引言86
3.1 网络空间安全机制的整体发展脉络86
3.2 访问控制89
3.2.1 访问控制的发展概况89
3.2.2 访问控制的安全目标.89
3.2.3 访问控制的基本思想和原理89
3.3 沙箱91
3.3.1 沙箱的发展概况92
3.3.2 沙箱的安全目标92
3.3.3 沙箱的基本思想和原理92
3.3.4 反沙箱技术93
3.4 入侵容忍94
3.4.1 入侵容忍的发展概况94
3.4.2 入侵容忍的安全目标.94
3.4.3 入侵容忍的基本思想和原理95
3.5 可信计算96
3.5.1 可信计算的发展概况96
3.5.2 可信计算的安全目标97
3.5.3 可信计算的基本思想和原理97
3.6 类免疫防御98
3.6.1 类免疫防御的发展概98
3.6.2 类免疫防御的安全目标99
3.6.3 类免疫防御的基本思想和原理99
3.7 移动目标防御99
3.7.1 移动目标防御的发展概况100
3.7.2 移动目标防御的安全目标100
3.7.3 移动目标防御的基本思想和原理101
3.8 拟态防御101
3.8.1 拟态防御的发展概况102
3.8.2拟态防御的安全目标102
3.8.3 拟态防御的基本思想和原理102
3.9 零信任网络103
3.9.1 零信任网络的发展概况104
3.9.2 零信任网络的安全目标104
3.9.3 零信任网络的基本思想和原理104
总结106
参考文献106
习题109
第4 章数据加密110
引言110
4.1 密码学简史111
4.1.1 古典密码111
4.1.2 近代密码113
4.1.3 现代密码116
4.2 对称密码118
4.2.1 分组密码 118
4.2.2 DES 算法120
4.2.3 流密码125
4.3 公钥密码127
4.3.1 提出背景127
4.3.2 加密原理128
4.3.3 RSA 算法128
4.3.4 应用场景132
4.4 摘要与签名133
4.4.1 散列函数133
4.4.2 消息认证码138
4.4.3 数字签名141
4.5 公钥基础设施PKI 143
4.5.1 体系结构144
4.5.2 信任模型147
4.5.3 安全问题149
4.5.4 应用场景150
4.6 密码分析技术152
总结153
参考文献153
习题157
附录158
实验一:制造MD5
算法的散列值碰撞(难度:899) 158
实验二:基于口令的安全身份认证协议(难度:888) 160
实验三:数字证书的使用(难度:899) 162
第5 章隐私保护165
引言165
5.1 隐私保护技术初探167
5.1.1 网络空间中的隐私167
5.1.2 隐私泄露的危害168
5.1.3 隐私保护技术介绍169
5.2 匿名化171
5.2.1 匿名化隐私保护模型172
5.2.2 匿名化方法176
5.3 差分隐私178
5.3.1 差分隐私基础178
5.3.2 数值型差分隐私181
5.3.3 非数值型差分隐私183
5.4 同态加密184
5.4.1 同态加密基础185
5.4.2 半同态加密187
5.4.3全同态加密189
5.5 安全多方计算190
5.5.1 安全多方计算基础190
5.5.2 百万富翁协议193
总结194
参考文献195
习题197
附录197
实验:基于Paillier
算法的匿名电子投票流程实现(难度:899)197
第6 章系统硬件安全199
引言199
6.1 系统硬件概述200
6.1.1 硬件的范畴200
6.1.2 硬件组成模块201
6.1.3 中央处理器201
6.1.4 硬件安全203
6.2 硬件安全问题203
6.2.1 安全威胁事件204
6.2.2 硬件攻击分类206
6.2.3 安全威胁剖析212
6.3 硬件安全防护213
6.3.1 处理器安全模型.213
6.3.2 硬件防护技术214
6.4 典型漏洞分析218
6.4.1 Spectre 220
6.4.2 VoltJockey 漏洞221
总结223
参考文献223
习题227
附录228
实验:Spectre
攻击验证(难度:889 )28
第7 章操作系统安全230
引言230
7.1 操作系统安全威胁示例231
7.1.1 操作系统安全威胁模型232
7.1.2 操作系统安全威胁案例233
7.2 操作系统基础攻击方案233
7.2.1 内存管理基础234
7.2.2 基础的栈区攻击方案235
7.2.3 基础的堆区攻击方案239
7.2.4 小结243
7.3 操作系统基础防御方案.243
7.3.1 W.X 243
7.3.2 ASLR 244
7.3.3 StackCanary244
7.3.4 SMAP 和SMEP245
7.3.5 小结245
7.4 高级控制流劫持方案246
7.4.1 进程执行的更多细节246
7.4.2 面向返回地址编程247
7.4.3 全局偏置表劫持. 250
7.4.4 虚假vtable 劫持251
7.4.5 小结253
7.5 高级操作系统保护方案.253
7.5.1 控制流完整性保护253
7.5.2 指针完整性保护.254
7.5.3 信息流控制255
7.5.4 I/O 子系统保护.256
7.5.5 小结257
总结.258
参考文献259
习题263
附录263
实验一:简单栈溢出实验(难度:889) 263
实验二:基于栈溢出的模拟勒索实验(难度:888) 265
第8 章TCP/IP 协议栈安全268
引言268
8.1 协议栈安全的背景及现状268
8.1.1 协议栈安全的基本概念268
8.1.2 协议栈安全的背景及研究范畴270
8.1.3 协议栈安全问题现状270
8.2 协议栈安全问题的本质及原因270
8.2.1 多样化的网络攻击271
8.2.2 网络攻击的共性特征279
8.2.3 协议栈中的不当设计和实现280
8.3 协议栈安全的基本防御原理281
8.3.1 基于真实源地址的网络安全防御282
8.3.2 增强协议栈随机化属性282
8.3.3 协议的安全加密283
8.3.4 安全防御实践及规范.286
8.4 典型案例分析286
8.4.1 误用IP 分片机制污染UDP 协议286
8.4.2 伪造源IP 地址进行DDoS 攻击288
8.4.3 TCP 连接劫持攻击289
8.4.4 利用Wi-Fi 帧大小检测并劫持TCP 连接.290
8.4.5 基于Wi-Fi 网络NAT 漏洞检测并劫持TCP 连接292
总结 294
参考文献294
习题298
附录299
实验一:SYN Flooding 攻击(难度:899) 299
实验二:基于IPID 侧信道的TCP 连接阻断(难度:888) 300
第9 章互联网路由安全303
引言303
9.1 路由系统概述303
9.1.1 互联网路由的基本概念304
9.1.2域内路由协议306
9.1.3 域间路由系统309
9.2 互联网路由的安全威胁与挑战314
9.2.1 域内路由系统安全315
9.2.2 域间路由系统安全318
9.2.3 路由安全典型案例分析321
9.3 路由防劫持抗泄露相关技术323
9.3.1 路由源劫持防御324
9.3.2 路由路径伪造防御331
9.3.3 路由泄露防御334
9.3.4 恶意路由检测机制337
9.3.5 MANRS 行动339
总结341
参考文献342
习题345
附录345
实验:互联网路由异常检测(难度:88. ) 345
第10 章DNS 安全349
引言349
10.1 DNS 概述349
10.1.1 DNS 的演进350
10.1.2 DNS 域名结构与区域组织形式.352
10.2 DNS使用及解析过程.353
10.2.1 DNS 使用353
10.2.2 DNS 解析过程354
10.2.3 DNS 请求及应答报文356
10.3 DNS 攻击359
10.3.1 DNS 攻击目标及共性特征359
10.3.2 缓存中毒攻击361
10.3.3 来自恶意权威域名服务器的回复伪造攻击367
10.3.4 拒绝服务攻击369
10.4 DNS 攻击防御策略371
10.4.1 基于密码技术的防御策略372
10.4.2 基于系统管理的防御策略.375
10.4.3 新型架构设计376
10.5 典型案例分析.378
10.5.1 Kaminsky 攻击.378
10.5.2 恶意服务器回复伪造攻击.379
总结381
参考文献. 382
习题. 384
附录. 385
实验:实现本地DNS
缓存中毒攻击(难度:889) 385
第11 章真实源地址验证388
引言388
11.1 真实源地址验证体系结构的研究背景389
11.1.1 当前互联网体系结构缺乏安全可信基础389
11.1.2 IP 地址欺骗391
11.1.3 真实源地址验证体系结构SAVA 的提出395
11.2 真实源地址验证SAVA 体系结构设计396
11.2.1 当前互联网的地址结构397
11.2.2 真实源地址验证SAVA 体系结构设计原则.398
11.3 SAVA 体系结构及其关键技术400
11.3.1 真实源地址验证SAVA 体系结构401
11.3.2 接入网真实源地址验证技术SAVI402
11.3.3 域内真实源地址验证技术SAVA-P 405
11.3.4 域间真实源地址验证技术SAVA-X 408
11.3.5 基于IPv6 的可信身份标识412
11.3.6 数据包防篡改机制412
11.4 真实可信新一代互联网体系结构414
总结415
参考文献416
习题417
附录417
实验:域间源地址验证技术SMA 简单模拟(难度:889) 417
第12 章流量识别与分析技术421
引言. 421
12.1 流量分析系统概述423
12.1.1 流量分析问题定义423
12.1.2 流量分析系统模型425
12.2 负载特征驱动的流量检测426
12.2.1基于固定规则的流量检测426
12.2.2 基于人工智能的流量检测.427
12.2.3 基于人工智能的负载分析:网站应用防火墙428
12.2.4 基于人工智能的负载分析:恶意软件检测.430
12.3 统计特征驱动的流量识别方案432
12.3.1 基于包粒度特征的流量检测433
12.3.2 基于流粒度特征的流量检测434
12.3.3 基于可编程网络设备的流量检测.438
12.3.4 针对加密攻击流量的检测.440
12.4 检测后的防御方法442
12.4.1 检测后的防御方案设计理念442
12.4.2 基于地址匹配的传统流量清洗443
12.4.3 基于特征匹配的可编程交换机防御444
12.5 基于流量分析的攻击446
12.5.1 网站指纹攻击446
12.5.2 其他流量分析攻击448
12.5.3 针对流量分析攻击的防御.. 449
12.6 流量分析技术的发展449
12.6.1 对流量分析技术的批判449
12.6.2流量检测的假阳性警报问题450
12.6.3 流量分析的可解释性问题.451
总结452
参考文献453
习题461
附录461
实验一:可视化分析流量交互图(难度:889) 461
实验二:网站指纹攻击实现(难度:889) 463
第13 章分布式系统安全465
引言465
13.1 分布式系统概述466
13.1.1 分布式系统的组成466
13.1.2 分布式系统中的舍与得470
13.1.3 安全问题的根源.473
13.2 协作的前提:建立安全、稳定的交互网络475
13.2.1 建立安全、稳定的交互信道475
13.2.2 建立应用层路由479
13.2.3 选择可靠的邻居节点.481
13.3 实现稳定协同:安全稳定的分布式算法.482
13.3.1 时钟同步482
13.3.2 并发控制484
13.3.3 故障容错487
13.4 实现可信协同:解决信任问题493
13.4.1 身份认证和访问控制493
13.4.2 信用模型495
13.4.3 拜占庭容错共识495
总结500
参考文献501
习题503
附录504
实验:拜占庭/ 故障容错共识的模拟与验证(难度:889)504
第14 章应用安全508
引言508
14.1 网络应用及其相关的应用安全问题509
14.1.1 网络应用安全问题概览510
14.1.2 各种应用安全攻击分析511
14.1.3 网络应用安全攻击的共性特征526
14.2 应用安全的基本防御原理527
14.2.1 身份认证与信任管理.527
14.2.2 隐私保护.528
14.2.3 应用安全监控防御528
14.3 典型案例分析528
14.3.1 微博病毒.528
14.3.2 剑桥分析通过社交网络操纵美国大选.530
总结531
参考文献532
习题533
附录534
实验:实现本地Web 攻击(难度:889) 534
第15 章人工智能安全536
引言536
15.1 人工智能安全绪论539
15.1.1 人工智能发展史.539
15.1.2 人工智能基本组件542
15.1.3 人工智能安全543
15.1.4 人工智能敌手分析546
15.2 框架安全547
15.2.1 框架发展简史548
15.2.2 框架自身的安全漏洞.552
15.2.3 环境接触带来的漏洞554
15.3 算法安全556
15.3.1 人工智能算法简介557
15.3.2 人工智能算法的鲁棒性560
15.3.3 人工智能算法的鲁棒性攻防561
15.3.4 人工智能算法的隐私攻防.564
15.4 人工智能算法的局限性.568
15.4.1 数据局限性568
15.4.2 成本局限性570
15.4.3 偏见局限性571
15.4.4 伦理局限性573
总结574
参考文献574
习题577
附录577
实验:后门攻击与防御的实现(难度:889) 577
第16 章大模型安全579
引言579
16.1 大模型安全绪论. 581
16.1.1 大模型的发展581
16.1.2 大模型安全研究范畴.586
16.1.3 大模型安全政策及规范588
16.2 大模型系统安全589
16.2.1 系统安全威胁589
16.2.2 系统安全防御手段593
16.3 大模型数据安全598
16.3.1 数据安全威胁598
16.3.2 数据安全防御策略603
16.4 大模型对抗安全.612
16.4.1 对抗攻击威胁612
16.4.2 对抗防御策略617
总结. 623
参考文献. 624
习题. 633
附录633
实验:流量大模型的流量检测能力实现(难度:888) 633