本书由浅入深地提供了网络空间安全学科的实验教学内容。书中首先详细介绍了一系列经典的密码学算法和安全协议,随后通过仿真实验帮助读者深入了解各类网络环境的安全部署,最后介绍了一系列常见的网络攻击与软件漏洞。本书基于易上手、高仿真的实验环境提供了丰富的代码实现方法和实验分析过程。
本书可用作高等院校网络空间安全、信息安全等专业的配套实验教材,也可以作为其他相关专业人员的辅助教材或参考读物。
随着大数据与云计算等新兴技术的蓬勃发展,“万物互联”的网络空间已经成为与陆、海、空、天并列的第五维空间领域,不仅与人们的生产、生活息息相关,更对国家安全造成了重大影响。近年来,各高校积极响应国家号召,不断加快网络安全学科专业和院系建设,积极创新网络安全人才培养机制,为实施网络强国战略、维护国家安全提供了人才保障。网络安全教材建设作为人才培养的重要环节,承担着辅助和指导教师的教学工作、引导学生由浅入深地掌握网络安全知识与技能的重要责任。然而,网络空间安全作为新兴学科,兼具多领域理论融合的复杂性和日新月异不断发展的时效性,其人才培养仍然处于不断探索和总结的阶段。为此,本书通过整合密码学、网络安全、系统安全等领域知识,为网络空间安全学科设计了一系列紧密贴合实际应用场景的实验,以帮助学生熟悉并掌握更全面的安全理论和攻防技能。
由于网络空间安全学科的体系广而深,因此学生需要综合学习各领域的安全知识,然而普通的课堂教学往往只能停留在理论学习与分析阶段,一方面难以将各领域内容进行整合与融会贯通,学生容易“学一门,忘一门”,另一方面学生不能及时接触实际应用场景的安全攻防技术,无法搞清各类安全算法和协议是如何实际部署在真实网络环境中的,不利于培养工程实践能力。本书基于各安全领域的经典案例,前6章介绍了经典的密码学算法和安全协议的设计原理(如DES加密、RSA算法、RADIUS协议等),并通过丰富的代码实现和实验分析加深读者对设计细节与实用场景的理解;第7至15章通过仿真实验帮助读者深入了解各类网络环境的配置及安全部署,并详细分析了复杂网络环境下用户可能面临的攻击和常用的安全抵御方式;第16至19章介绍了常见的利用计算机系统软件漏洞进行攻击的方式,并提供了详细的真实环境下的实验步骤,以便读者了解攻击的原理,进一步了解漏洞的危害。
本书各章均首先向读者阐明实验目的,并在实验原理部分对涉及的算法协议和攻击方式进行理论分析,在实验后通过详尽的分析引导学生进一步思考,从而培养其独立解决问题的能力。本书在实验部分向读者提供了详细的源代码和操作步骤,使读者能利用易于搭建的实验环境完成相关内容的实验,以便通过及时复现操作来进一步理解攻击细节。例如,对于DES加密和AES算法的相关实验,本书详细描述了算法的执行过程,并就各模块提供了详细的代码实现,读者可以紧随书中内容进行相关功能的实现和复用;在第13~15章网络安全部署的相关实验中,借用思科的Packet Tracer工具进行网络搭建,让读者可以直接在个人计算机上模拟路由器过滤配置、入侵检测系统构建等操作,直观地理解和观察各网络组件的运行以及各网络协议的通信过程,从而对网络安全有更直观和深入的认识;第16~19章对缓冲区溢出攻击进行了详尽的原理分析和实验仿真,读者可以使用虚拟机通过安装配置沙箱Sanboxie,结合沙箱内的软件行为监听工具BSA(Buster Sandbox Analysis),分析给定的恶意代码,进一步提升读者对计算机底层攻击漏洞的理解,解决读者对于安全攻防实验“不懂做,不敢做”的困境。
本书作者李兴华、冯鹏斌、李腾、张俊伟长期从事网络空间安全教学工作。作者团队根据自身在实际教学工作中发现的学生编写代码能力不足、不了解攻防工具的底层原理、不具备独立分析能力等实际问题,通过由浅入深的内容安排,为安全教学提供了覆盖从密码理论到系统安全防护的实验指导,帮助学生循序渐进地掌握各类协议与攻击的基本原理。
本书适用于网络空间安全学科的实验教学,也可以作为网络工程与通信工程等相关专业学生的辅助教材,亦可作为参考读物用于提高计算机从业人员的安全意识。
由于作者团队精力与水平有限,书中难免有不当之处,敬请各位读者提出宝贵的意见。
作 者
2023年3月
第1章 古典密码 1
1.1 实验内容 1
1.2 实验目的 1
1.3 实验原理 1
1.3.1 代替密码 1
1.3.2 置换密码 3
1.4 实验环境 4
1.5 实验步骤 4
1.5.1 恺撒密码实验 4
1.5.2 维吉尼亚密码实验 6
1.5.3 Playfair密码实验 7
1.5.4 一次一密实验 11
1.5.5 列置换密码实验 14
1.6 实验分析 17
第2章 对称加密 19
2.1 实验内容 19
2.2 实验目的 19
2.3 实验原理 19
2.3.1 DES算法原理 19
2.3.2 AES算法原理 23
2.4 实验环境 26
2.5 实验步骤 26
2.5.1 DES算法实验 26
2.5.2 AES算法实验 29
2.6 实验分析 32
第3章 RSA算法 34
3.1 实验内容 34
3.2 实验目的 34
3.3 实验原理 34
3.3.1 RSA算法设计原理 34
3.3.2 RSA算法的加解密过程 35
3.3.3 RSA算法原理补充知识 35
3.4 实验环境 35
3.5 实验步骤 36
3.5.1 库函数 36
3.5.2 核心函数 36
3.5.3 主函数 37
3.6 实验分析 38
第4章 Diffie-Hellman算法 40
4.1 实验内容 40
4.2 实验目的 40
4.3 实验原理 40
4.4 实验环境 41
4.5 实验步骤 41
4.5.1 库函数 41
4.5.2 核心函数 41
4.5.3 主函数 43
4.6 实验分析 43
第5章 PGP邮件加密 47
5.1 实验内容 47
5.2 实验目的 47
5.3 实验原理 47
5.3.1 认证 48
5.3.2 保密 48
5.3.3 保密和认证 49
5.3.4 压缩 49
5.3.5 电子邮件的兼容性 49
5.3.6 PGP系统的认证保密过程 49
5.4 实验环境 50
5.5 实验步骤 50
5.6 实验分析 65
第6章 AAA认证机制 67
6.1 实验内容 67
6.2 实验目的 67
6.3 实验原理 67
6.3.1 AAA协议 67
6.3.2 RADIUS协议 68
6.4 实验环境 70
6.5 实验步骤 70
6.6 实验分析 73
第7章 无线局域网安全实验 75
7.1 实验内容 75
7.2 实验目的 76
7.3 实验原理 76
7.4 实验环境 76
7.5 实验步骤 77
7.6 实验分析 87
第8章 IPSec安全机制 90
8.1 实验内容 90
8.2 实验目的 90
8.3 实验原理 90
8.3.1 IP隧道技术 90
8.3.2 IPSecVPN 92
8.4 实验环境 95
8.5 实验步骤 95
8.6 实验分析 119
第9章 路由器安全配置 124
9.1 实验内容 124
9.2 实验目的 124
9.3 实验原理 124
9.3.1 路由器结构体系 124
9.3.2 路由器的安全防护 125
9.3.3 一般路由器的安全认证协议 127
9.4 实验环境 129
9.5 实验步骤 129
9.6 实验分析 139
第10章 DoS攻击 141
10.1 实验内容 141
10.2 实验目的 141
10.3 实验原理 141
10.3.1 DoS攻击 141
10.3.2 THC-SSL-DoS攻击 142
10.3.3 洪泛攻击 143
10.4 实验环境 146
10.5 实验步骤 146
10.6 实验分析 153
第11章 欺骗攻击 154
11.1 实验内容 154
11.2 实验目的 154
11.3 实验原理 154
11.3.1 ARP欺骗攻击 154
11.3.2 IP欺骗攻击 155
11.3.3 路由器RIP攻击 155
11.4 实验环境 156
11.5 实验步骤 156
11.6 实验分析 164
第12章 攻击检测 165
12.1 实验内容 165
12.2 实验目的 165
12.3 实验原理 165
12.3.1 DoS攻击流量检测 165
12.3.2 IP扫描流量检测 166
12.3.3 CVE评估与攻击图生成 166
12.3.4 Nessus漏洞扫描与分析软件 167
12.3.5 MulVAL 167
12.3.6 攻击图技术 167
12.3.7 路由表 168
12.4 实验环境 168
12.5 实验步骤 168
12.6 实验分析 184
第13章 钓鱼网站 186
13.1 实验内容 186
13.2 实验目的 186
13.3 实验原理 186
13.3.1 DNS工作原理 186
13.3.2 DHCP工作原理 186
13.3.3 钓鱼网站实施过程 187
13.4 实验环境 188
13.5 实验步骤 188
13.6 实验分析 198
第14章 防火墙实验 199
14.1 实验内容 199
14.1.1 标准分组过滤器实验内容 199
14.1.2 拓展分组过滤器实验内容 199
14.2 实验目的 200
14.3 实验原理 200
14.4 实验环境 201
14.5 实验步骤 201
14.6 实验分析 216
第15章 入侵检测系统实验 218
15.1 实验内容 218
15.2 实验目的 218
15.3 实验原理 218
15.3.1 基于特征的入侵检测机制 218
15.3.2 入侵检测实验过程 218
15.4 实验环境 219
15.5 实验步骤 219
15.6 实验分析 226
第16章 恶意代码检测 228
16.1 实验内容 228
16.2 实验目的 228
16.3 实验原理 228
16.3.1 恶意代码概述 228
16.3.2 恶意代码的防范 229
16.3.3 恶意代码的检测 229
16.4 实验环境 230
16.5 实验步骤 231
16.6 实验分析 235
第17章 虚拟蜜罐 236
17.1 实验内容 236
17.2 实验目的 236
17.3 实验原理 236
17.3.1 蜜罐技术概述 236
17.3.2 虚拟蜜罐 237
17.4 实验环境 238
17.5 实验步骤 239
17.6 实验分析 242
第18章 缓冲区溢出攻击 243
18.1 实验内容 243
18.2 实验目的 243
18.3 实验原理 243
18.3.1 概述 243
18.3.2 缓冲区溢出原理 244
18.3.3 缓冲区溢出的利用 245
18.4 实验环境 246
18.5 实验步骤 246
18.6 实验分析 249
第19章 Linux内核漏洞 250
19.1 实验内容 250
19.2 实验目的 250
19.3 实验原理 250
19.4 实验环境 251
19.5 实验步骤 251
19.6 实验分析 256
参考文献 257