目录
- 导语
- 一、第8章知识体系回顾
- 二、复习题
- 三、习题
- 四、Wireshark实验:探究TLS
- 五、IPsec实验
- 本章核心总结(必看)
- 结语
导语
大家好呀~恭喜你来到第8章的最后一节!这一章我们学习了计算机网络中的安全——从网络安全的基本概念,到密码学原理,到报文完整性和数字签名,到端点鉴别,到安全电子邮件(PGP),到TLS/HTTPS,到IPsec/VPN,到无线网络安全,再到防火墙和入侵检测系统。内容非常丰富,几乎涵盖了网络安全的所有核心领域。
这一节我们会做三件事:第一,回顾整个第8章的知识体系,把零散的知识点串成一张网;第二,做一些复习题和习题,检验和巩固所学;第三,用Wireshark实际抓包分析TLS握手过程,并了解IPsec实验。理论结合实践,才能真正掌握网络安全。准备好了吗?让我们开始最后的冲刺~
一、第8章知识体系回顾
1. 安全的层次结构
第8章的内容可以按照TCP/IP协议栈的层次来组织:
| 层次 | 安全技术 | 对应章节 |
|---|---|---|
| 应用层 | PGP安全电子邮件、HTTPS | 8.5 |
| 运输层 | TLS/SSL | 8.6 |
| 网络层 | IPsec、VPN | 8.7 |
| 链路层 | WiFi安全(WPA2/WPA3)、4G/5G安全 | 8.8 |
| 运行安全 | 防火墙、IDS/IPS | 8.9 |
| 基础 | 密码学、散列、数字签名、鉴别 | 8.2-8.4 |
2. 核心概念地图
整个第8章围绕四个安全目标展开:
- 机密性:对称加密(AES)、公钥加密(RSA)、混合加密
- 完整性:散列函数(SHA-256)、MAC(HMAC)
- 鉴别:数字签名、端点鉴别、数字证书
- 可用性:防火墙、IDS/IPS、DDoS防御
密码学是基础(8.2-8.4),各层安全协议是应用(8.5-8.8),运行安全是防护(8.9)。
3. 关键技术对比
| 技术 | 层次 | 机密性 | 完整性 | 鉴别 | 典型应用 |
|---|---|---|---|---|---|
| PGP | 应用层 | 是 | 是 | 是 | 安全邮件 |
| TLS | 运输层 | 是 | 是 | 是(服务器) | HTTPS |
| IPsec | 网络层 | 是 | 是 | 是 | VPN |
| WPA2/3 | 链路层 | 是 | 是 | 是 | WiFi |
| 防火墙 | 运行层 | - | - | - | 流量过滤 |
| IDS/IPS | 运行层 | - | - | - | 攻击检测/阻断 |
二、复习题
8.1 什么是网络安全
1. 网络安全通信需要满足哪四个要素?
机密性(只有授权方能理解消息)、报文完整性(消息未被篡改)、端点鉴别(确认对方身份)、运行安全性(保护网络基础设施)。
2. CIA三元组指什么?
机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。
3. 列举三种常见的网络攻击类型。
窃听(被动截获数据)、篡改(修改数据)、冒充(伪造身份)、DoS/DDoS(拒绝服务)、中间人攻击、恶意软件、钓鱼等。
8.2 密码学原理
4. 对称加密和公钥加密的主要区别是什么?
对称加密加密解密用同一个密钥,速度快但密钥分发困难;公钥加密用一对密钥(公钥加密、私钥解密),解决了密钥分发但速度慢。实际中用混合加密结合两者。
5. 为什么AES取代了DES?
DES的56位密钥太短,随着计算机算力提升可以被暴力破解(1999年22小时破解)。AES支持128/192/256位密钥,更安全,且算法设计更优。
6. 什么是柯克霍夫原则?
加密算法应该公开,只有密钥需要保密。安全性不依赖于算法的保密,而依赖于密钥的保密。
8.3 报文完整性和数字签名
7. 密码散列函数需要满足哪些特性?
单向性(不能从散列值反推输入)、抗弱碰撞(不能找到和指定输入有相同散列值的另一输入)、抗强碰撞(不能找到任意两个有相同散列值的输入)、雪崩效应(输入微小变化导致输出巨大变化)。
8. MAC和数字签名有什么区别?
MAC用共享密钥生成校验码,提供完整性和来源鉴别,但不能提供不可否认性(双方都有密钥);数字签名用私钥签名、公钥验证,提供完整性、鉴别和不可否认性。
9. 为什么需要数字证书?
解决公钥分发问题——确认某个公钥确实属于声称的身份。由可信的CA签发证书,证明公钥和身份的绑定关系。
8.4 端点鉴别
10. 什么是重放攻击?怎么防御?
重放攻击是攻击者窃听到鉴别消息后重新发送,冒充合法用户。防御方法是使用nonce(一次性随机数),服务器每次发不同的nonce,客户端用密钥加密nonce返回,旧的nonce无效。
11. 中间人攻击的原理是什么?怎么防御?
攻击者插入到通信双方之间,分别和双方建立连接,双方都以为在直接通信。防御核心是验证公钥的真实性(数字证书、证书固定、带外验证指纹)。
8.5 安全电子邮件
12. PGP怎么同时实现加密和签名?
先对邮件计算散列值并用私钥签名,然后生成随机会话密钥加密邮件+签名,再用收件人公钥加密会话密钥。收件人先用私钥解密得到会话密钥,再解密邮件,最后验证签名。
13. PGP的Web of Trust和S/MIME的CA层次有什么不同?
PGP用去中心化的信任网——用户互相签名公钥,通过信任链建立信任;S/MIME用中心化的CA层次——由可信的CA签发证书,通过证书链验证。
8.6 TLS
14. TLS握手的主要步骤是什么?
ClientHello(版本+加密套件+随机数)→ ServerHello(选定参数+随机数)→ 服务器证书+密钥交换参数 → 客户端验证证书+发送加密的预主密钥 → 双方派生密钥 → 双方发送Finished消息验证握手完整性。
15. 什么是前向保密?TLS怎么实现?
前向保密指即使服务器的长期私钥在未来泄露,之前的会话密钥也不会被破解。TLS通过ECDHE(临时椭圆曲线Diffie-Hellman)实现——每次会话生成临时密钥对,用完即弃,长期私钥只用于签名认证。
16. TLS 1.3相比1.2有哪些主要改进?
1-RTT握手(1.2是2-RTT)、0-RTT恢复、强制前向保密、移除不安全算法(RC4/MD5/3DES/CBC)、握手消息加密、简化加密套件。
8.7 IPsec和VPN
17. IPsec的传输模式和隧道模式有什么区别?
传输模式只保护传输层数据,保留原始IP首部,开销小,用于端到端通信;隧道模式保护整个IP数据报,添加新的外部IP首部,开销大,隐藏真实IP,用于VPN。
18. 什么是安全关联(SA)?
SA是IPsec中发送方和接收方之间的单向逻辑连接,定义了安全参数(SPI、加密/鉴别算法和密钥、模式、生存期等)。双向通信需要两个SA。
19. AH和ESP的区别是什么?
AH只提供数据源鉴别和完整性,不提供加密,且不兼容NAT;ESP同时提供加密和鉴别,兼容NAT,是目前的主流。
8.8 无线网络安全
20. WPA2四次握手的目的是什么?
在AP和STA之间协商出加密用的会话密钥(PTK和GTK),同时验证双方都拥有正确的PMK(由WiFi密码派生)。四次握手过程中WiFi密码本身不在网络上传输。
21. WPA3相比WPA2的主要安全改进是什么?
用SAE(同时对等认证)替代PSK,抵抗离线字典攻击;强制前向保密;支持192位加密;简化IoT设备配置。
22. 蜂窝网络AKA鉴权怎么实现双向认证?
网络通过用户返回的RES验证用户身份(用户知道SIM卡中的长期密钥K);用户通过验证AUTN(用K加密的网络认证令牌)确认网络是真实的,防止伪基站。
8.9 防火墙和IDS
23. 包过滤防火墙和状态检测防火墙的区别?
包过滤对每个数据包独立检查IP/端口/协议,不跟踪连接状态;状态检测维护连接状态表,只允许属于已建立连接的数据包通过,更安全。
24. IDS和IPS的区别?
IDS被动监控网络流量,检测攻击并告警,不阻断流量;IPS在线部署,检测到攻击后主动阻断。IDS误报不影响业务,IPS误报会中断正常业务。
25. 基于特征和基于异常的入侵检测各有什么优缺点?
基于特征的检测准确率高、误报低,但只能检测已知攻击;基于异常的检测能发现未知攻击(零日漏洞),但误报率高,需要建立正常行为基线。
三、习题
习题1:对称加密和公钥加密的性能对比
假设AES-256的加密速度是100MB/s,RSA-2048的加密速度是1000次/秒(每次加密256字节)。如果要加密一个10MB的文件:
- 只用AES加密需要多长时间?
- 只用RSA加密需要多长时间?
- 用混合加密(AES加密文件+RSA加密AES密钥)需要多长时间?
解答:
- AES:10MB ÷ 100MB/s = 0.1秒
- RSA:10MB = 10485760字节,每次加密256字节,需要10485760÷256 = 40960次,40960÷1000 = 40.96秒
- 混合加密:AES加密文件0.1秒 + RSA加密密钥(一次)0.001秒 ≈ 0.1秒
结论:混合加密比纯RSA快约400倍,这就是为什么实际安全协议都用混合加密。
习题2:RSA计算
假设p=3,q=11(仅用于演示,实际用大素数):
- 计算n和φ(n)
- 选择e=3(满足gcd(e,φ(n))=1),计算d
- 对明文m=7加密,得到密文c
- 解密密文c,验证得到m=7
解答:
- n = p×q = 3×11 = 33
- φ(n) = (p-1)(q-1) = 2×10 = 20
- d = e^(-1) mod 20,3×7=21≡1 mod 20,所以d=7
- 加密:c = m^e mod n = 7^3 mod 33 = 343 mod 33 = 343-10×33 = 343-330 = 13
- 解密:m = c^d mod n = 13^7 mod 33。132=169≡4,134≡42=16,137=134×132×13≡16×4×13=832≡832-25×33=832-825=7。验证正确。
习题3:TLS握手分析
在TLS 1.2握手中,客户端发送的ClientHello包含client_random,服务器发送的ServerHello包含server_random,客户端发送用服务器公钥加密的pre_master_secret。请说明主密钥(master_secret)是怎么派生的,以及为什么需要三个随机数(client_random、server_random、pre_master_secret)而不是只用pre_master_secret。
解答:
- 主密钥通过PRF(伪随机函数)派生:master_secret = PRF(pre_master_secret, “master secret”, client_random + server_random)
- 需要三个随机数的原因:
- pre_master_secret提供长期安全性(由公钥加密保护)
- client_random和server_random确保每次会话的主密钥不同(即使pre_master_secret相同,随机数不同则主密钥不同)
- 防止重放攻击(每次握手的随机数不同)
- 增加熵,提高密钥强度
习题4:防火墙规则设计
公司网络有一个Web服务器(192.168.1.10,提供HTTP和HTTPS)、一个邮件服务器(192.168.1.20,提供SMTP和IMAPS)、员工工作站(192.168.1.0/24)。请设计包过滤防火墙规则,满足:
- 外部可以访问Web服务器的80和443端口
- 外部可以访问邮件服务器的25和993端口
- 员工可以访问外部的HTTP、HTTPS、DNS
- 禁止外部主动访问员工工作站
- 禁止ICMP从外部进入
解答(规则按顺序匹配):
| 规则 | 方向 | 源IP | 目的IP | 协议 | 目的端口 | 动作 |
|---|---|---|---|---|---|---|
| 1 | 入站 | 任意 | 192.168.1.10 | TCP | 80,443 | 允许 |
| 2 | 入站 | 任意 | 192.168.1.20 | TCP | 25,993 | 允许 |
| 3 | 入站 | 任意 | 192.168.1.0/24 | TCP | 任意 | 丢弃(禁止外部主动访问内网) |
| 4 | 入站 | 任意 | 任意 | ICMP | - | 丢弃 |
| 5 | 出站 | 192.168.1.0/24 | 任意 | TCP | 80,443 | 允许 |
| 6 | 出站 | 192.168.1.0/24 | 任意 | UDP | 53 | 允许(DNS) |
| 7 | 出站 | 192.168.1.0/24 | 任意 | 任意 | 任意 | 丢弃 |
注意:实际中还需要允许已建立连接的返回流量(状态检测防火墙自动处理)。
四、Wireshark实验:探究TLS
实验目标
通过Wireshark抓包,观察TLS握手的完整过程,理解ClientHello、ServerHello、证书、密钥交换、Finished等消息的结构和内容。
实验环境
- 电脑安装Wireshark(https://www.wireshark.org/)
- 浏览器(Chrome/Firefox)
- 网络连接
实验步骤
第一步:启动抓包
- 打开Wireshark,选择当前使用的网络接口(如Wi-Fi或以太网)
- 在显示过滤器中输入
tls或ssl,只显示TLS相关数据包 - 点击开始抓包(鲨鱼鳍图标)
第二步:访问HTTPS网站
- 打开浏览器,访问一个HTTPS网站(如 https://www.example.com 或 https://www.baidu.com)
- 等待页面加载完成
- 回到Wireshark,停止抓包(红色停止按钮)
第三步:分析TLS握手
在抓包结果中,你应该能看到以下TLS握手消息:
Client Hello:
- TLS版本(如TLS 1.2或TLS 1.3)
- 客户端随机数(32字节,28字节随机数+4字节时间)
- 支持的加密套件列表(如TLS_AES_256_GCM_SHA384)
- 扩展字段(SNI服务器名称指示、支持的曲线、签名算法等)
Server Hello:
- 选定的TLS版本
- 服务器随机数
- 选定的加密套件
- (TLS 1.3中还包含密钥共享扩展)
Certificate:
- 服务器的数字证书链
- 可以展开查看证书的颁发者、主题、有效期、公钥、签名算法
Server Key Exchange(TLS 1.2,ECDHE时):
- 服务器的ECDHE临时公钥参数
- 用服务器私钥签名的参数
Client Key Exchange(TLS 1.2):
- 客户端的ECDHE临时公钥(或RSA加密的预主密钥)
Change Cipher Spec:
- 通知对方后续消息将使用协商好的密钥加密
Finished:
- 第一个加密消息,包含所有握手消息的摘要
- 验证握手过程未被篡改
第四步:观察加密数据
握手完成后,后续的数据包都是 “Application Data”(应用数据),内容是加密的,Wireshark只能看到加密后的密文,看不到明文的HTTP请求和响应。这正是TLS提供机密性的体现。
实验思考题
- 你抓到的TLS握手用的是哪个版本?TLS 1.2还是TLS 1.3?
- 服务器证书的颁发者是谁?证书有效期是多长?
- 选定的加密套件是什么?用的是哪种密钥交换算法(RSA还是ECDHE)?
- TLS 1.3的握手比TLS 1.2少了哪些消息?为什么?
- 能不能从抓包中看到HTTP请求的URL?为什么?
进阶:解密TLS流量
如果你想查看加密的应用数据内容,可以配置SSLKEYLOGFILE:
- 设置环境变量
SSLKEYLOGFILE=/path/to/sslkeys.log - 用Chrome/Firefox访问HTTPS网站,浏览器会把TLS会话密钥写入日志文件
- 在Wireshark中:编辑→首选项→Protocols→TLS→(Pre)-Master-Secret log filename,选择日志文件
- Wireshark会用密钥解密应用数据,显示明文HTTP内容
注意:这只能解密你自己浏览器的流量(因为你有浏览器的会话密钥),不能解密别人的流量。
五、IPsec实验
实验目标
了解IPsec VPN的配置和工作原理,观察IPsec隧道模式下的数据包封装,理解ESP协议的加密和认证。
实验环境(推荐使用虚拟机)
- 两台Linux虚拟机(如Ubuntu),可以互相通信
- 安装strongSwan(开源IPsec实现):
sudo apt install strongswan - 或者使用网络模拟器(如GNS3、Cisco Packet Tracer)
实验步骤概要
第一步:配置IPsec站点到站点VPN
- 在两台Linux主机上配置strongSwan
- 配置预共享密钥(PSK)或证书认证
- 配置加密算法(AES-256)和完整性算法(SHA-256)
- 配置隧道模式,指定要保护的子网
第二步:建立IPsec连接
- 从一端发起连接(
ipsec up <连接名>) - 观察IKEv2的四次消息交换(IKE_SA_INIT和IKE_AUTH)
- 用
ipsec status查看SA状态
第三步:抓包观察IPsec
- 在中间链路上用Wireshark抓包
- 从一端ping另一端
- 观察ESP数据包:
- 外部IP首部(隧道端点地址)
- ESP首部(SPI+序列号)
- 加密的载荷(原始IP数据报+ESP尾部)
- ESP认证数据(ICV)
- 注意:原始IP首部被加密,看不到真实的源/目的IP
第四步:对比有无IPsec的数据包
- 关闭IPsec,抓包观察普通ICMP包(明文,可见原始IP首部和ICMP数据)
- 开启IPsec,抓包观察ESP包(加密,只可见外部IP首部和ESP首部)
- 对比两者的区别,理解隧道模式的封装
实验思考题
- IPsec隧道模式下,外部IP首部的源地址和目的地址是什么?
- ESP包中能不能看到原始IP数据报的内容?为什么?
- IKEv2建立SA需要几次消息交换?每次交换的作用是什么?
- 如果用传输模式而不是隧道模式,数据包结构有什么不同?
- IPsec和TLS都能提供加密,它们在应用场景上有什么不同?
本章核心总结(必看)
第8章「计算机网络中的安全」核心要点:
一、安全基础(8.1-8.4)
- CIA三元组:机密性、完整性、可用性
- 对称加密(AES)+ 公钥加密(RSA)= 混合加密
- 散列函数(SHA-256)+ MAC(HMAC)= 完整性
- 数字签名(私钥签名+公钥验证)= 鉴别+不可否认
- 数字证书(CA签发)= 解决公钥分发
- nonce防重放,证书防中间人
二、安全协议(8.5-8.8)
- PGP:安全电子邮件,混合加密+信任网
- TLS:运输层安全,HTTPS基础,1.3更快更安全
- IPsec:网络层安全,VPN核心,ESP+隧道模式+IKE
- WiFi安全:WPA2四次握手→WPA3 SAE
- 蜂窝安全:SIM卡+AKA双向认证,5G SUPI加密
三、运行安全(8.9)
- 防火墙:包过滤→状态检测→NGFW,流量过滤
- IDS:特征检测+异常检测,攻击告警
- IPS:在线阻断,主动防御
- SOC:集中监控响应
四、关键原则
- 纵深防御:多层次安全防护
- 最小权限:只授予必要的访问权限
- 零信任:永不信任,始终验证
- 安全是过程不是产品:持续监控、更新、改进
结语
恭喜你完成了第8章「计算机网络中的安全」的全部学习!这一章我们从网络安全的基本概念出发,深入学习了密码学原理、报文完整性和数字签名、端点鉴别、安全电子邮件、TLS、IPsec/VPN、无线网络安全、防火墙和入侵检测系统。这些知识构成了现代网络安全的完整体系。
网络安全是一个不断发展的领域——新的攻击手段不断出现,新的安全技术也在不断进步。但核心原理是不变的:机密性、完整性、鉴别、可用性,以及密码学这个基石。理解了这些原理,你就能看懂各种安全技术的本质,也能在实际工作中做出合理的安全决策。
希望这一章的笔记对你有帮助!如果你觉得有用,欢迎点赞收藏~有问题也欢迎留言讨论,我们一起进步。网络安全,人人有责!