计算机网络第 8 章复习:Network Security 网络安全

计算机网络第 8 章复习:Network Security 网络安全

适合期末复习 / CSDN 博客整理 / 初学者补逻辑版。

本文按照第 8 章 PPT 的顺序整理,尽量不删知识点,但把原 PPT 中比较跳跃的地方串成一条更清楚的逻辑线。


文章目录

  • [计算机网络第 8 章复习:Network Security 网络安全](#计算机网络第 8 章复习:Network Security 网络安全)
    • [0. 这一章到底在讲什么?](#0. 这一章到底在讲什么?)
  • [1. P1-P7:什么是网络安全?](#1. P1-P7:什么是网络安全?)
    • [1.1 P1-P3:本章目标和目录](#1.1 P1-P3:本章目标和目录)
    • [1.2 P4:网络安全的四个核心目标](#1.2 P4:网络安全的四个核心目标)
      • [1. Confidentiality 机密性](#1. Confidentiality 机密性)
      • [2. Authentication 认证 / 鉴别](#2. Authentication 认证 / 鉴别)
      • [3. Message integrity 报文完整性](#3. Message integrity 报文完整性)
      • [4. Access and availability 访问与可用性](#4. Access and availability 访问与可用性)
    • [1.3 P5-P6:Alice、Bob、Trudy 模型](#1.3 P5-P6:Alice、Bob、Trudy 模型)
    • [1.4 P7:攻击者能做什么?](#1.4 P7:攻击者能做什么?)
      • [1. Eavesdrop 窃听](#1. Eavesdrop 窃听)
      • [2. Insert messages 插入消息](#2. Insert messages 插入消息)
      • [3. Impersonation 伪装](#3. Impersonation 伪装)
      • [4. Hijacking 劫持](#4. Hijacking 劫持)
      • [5. Denial of service 拒绝服务](#5. Denial of service 拒绝服务)
  • [2. P8-P28:密码学基础](#2. P8-P28:密码学基础)
    • [2.1 P9:密码学的基本语言](#2.1 P9:密码学的基本语言)
    • [2.2 P10:攻击加密方案的三种方式](#2.2 P10:攻击加密方案的三种方式)
      • [1. Ciphertext-only attack 唯密文攻击](#1. Ciphertext-only attack 唯密文攻击)
      • [2. Known-plaintext attack 已知明文攻击](#2. Known-plaintext attack 已知明文攻击)
      • [3. Chosen-plaintext attack 选择明文攻击](#3. Chosen-plaintext attack 选择明文攻击)
    • [2.3 P11-P15:对称密钥密码](#2.3 P11-P15:对称密钥密码)
      • [P11:对称密钥 cryptography](#P11:对称密钥 cryptography)
      • [P12:单码代替密码 monoalphabetic cipher](#P12:单码代替密码 monoalphabetic cipher)
      • P13:多表替换密码
      • P14:DES
      • P15:AES
    • [2.4 P16-P18:公开密钥密码为什么出现?](#2.4 P16-P18:公开密钥密码为什么出现?)
    • [2.5 P19-P20:RSA 的数学准备](#2.5 P19-P20:RSA 的数学准备)
    • [2.6 P21-P27:RSA 算法](#2.6 P21-P27:RSA 算法)
      • [P21:RSA 密钥生成](#P21:RSA 密钥生成)
      • [P22:RSA 加密与解密](#P22:RSA 加密与解密)
      • [P23:RSA 小例子](#P23:RSA 小例子)
      • [P24-P26:为什么 RSA 能工作?](#P24-P26:为什么 RSA 能工作?)
      • [P27:为什么 RSA 安全?](#P27:为什么 RSA 安全?)
    • [2.7 P28:为什么 RSA 实际中不直接加密大量数据?](#2.7 P28:为什么 RSA 实际中不直接加密大量数据?)
      • [第一,RSA 要做大整数模幂运算](#第一,RSA 要做大整数模幂运算)
      • [第二,RSA 一次只能处理很小的数据块](#第二,RSA 一次只能处理很小的数据块)
  • [3. P29-P40:认证协议为什么一步步变复杂?](#3. P29-P40:认证协议为什么一步步变复杂?)
    • [3.1 P30-P31:ap1.0,只声明身份](#3.1 P30-P31:ap1.0,只声明身份)
    • [3.2 P32-P33:ap2.0,带源 IP 地址](#3.2 P32-P33:ap2.0,带源 IP 地址)
    • [3.3 P34-P35:ap3.0,发送密码](#3.3 P34-P35:ap3.0,发送密码)
    • [3.4 P36-P37:把密码加密后发送,仍然不够](#3.4 P36-P37:把密码加密后发送,仍然不够)
    • [3.5 P38:ap4.0,引入 nonce 防重放](#3.5 P38:ap4.0,引入 nonce 防重放)
    • [3.6 P39-P40:ap5.0,用公钥认证,但还有中间人攻击](#3.6 P39-P40:ap5.0,用公钥认证,但还有中间人攻击)
  • [4. P41-P51:消息完整性、数字签名与 CA](#4. P41-P51:消息完整性、数字签名与 CA)
    • [4.1 P42-P43:数字签名 digital signature](#4.1 P42-P43:数字签名 digital signature)
    • [4.2 P44:消息摘要 message digest](#4.2 P44:消息摘要 message digest)
    • [4.3 P45:Internet checksum 不是好的密码学 Hash](#4.3 P45:Internet checksum 不是好的密码学 Hash)
    • [4.4 P46-P47:数字签名 = 签名消息摘要](#4.4 P46-P47:数字签名 = 签名消息摘要)
    • [4.5 P48-P51:为什么需要 CA?](#4.5 P48-P51:为什么需要 CA?)
    • [4.6 P50-P51:Certification Authority,证书认证机构](#4.6 P50-P51:Certification Authority,证书认证机构)
  • [5. P52-P56:安全电子邮件](#5. P52-P56:安全电子邮件)
    • [5.1 P53-P54:只要求机密性](#5.1 P53-P54:只要求机密性)
    • [5.2 P55:只要求完整性和认证](#5.2 P55:只要求完整性和认证)
    • [5.3 P56:同时要求机密性、完整性、认证](#5.3 P56:同时要求机密性、完整性、认证)
  • [6. P57-P69:TLS 与 HTTPS](#6. P57-P69:TLS 与 HTTPS)
    • [6.1 P58-P59:TLS 是什么?](#6.1 P58-P59:TLS 是什么?)
    • [6.2 P60:TLS 需要解决什么?](#6.2 P60:TLS 需要解决什么?)
      • [1. Handshake 握手](#1. Handshake 握手)
      • [2. Key derivation 密钥派生](#2. Key derivation 密钥派生)
      • [3. Data transfer 数据传输](#3. Data transfer 数据传输)
      • [4. Connection closure 安全关闭](#4. Connection closure 安全关闭)
    • [6.3 P61:toy TLS 初始握手](#6.3 P61:toy TLS 初始握手)
    • [6.4 P62:为什么 TLS 要派生多把密钥?](#6.4 P62:为什么 TLS 要派生多把密钥?)
    • [6.5 P63:为什么 TLS 要分 record?](#6.5 P63:为什么 TLS 要分 record?)
    • [6.6 P64:TLS 如何防重排和重放?](#6.6 P64:TLS 如何防重排和重放?)
      • [1. Re-ordering 重排](#1. Re-ordering 重排)
      • [2. Replay 重放](#2. Replay 重放)
    • [6.7 P65:安全关闭与截断攻击](#6.7 P65:安全关闭与截断攻击)
    • [6.8 P66:TLS 给应用提供 API](#6.8 P66:TLS 给应用提供 API)
    • [6.9 P67:TLS 1.3 cipher suite](#6.9 P67:TLS 1.3 cipher suite)
    • [6.10 P68-P69:TLS 1.3 的 1-RTT 和 0-RTT](#6.10 P68-P69:TLS 1.3 的 1-RTT 和 0-RTT)
  • [7. P70-P82:IPsec,网络层安全](#7. P70-P82:IPsec,网络层安全)
    • [7.1 P71:IPsec 提供什么?](#7.1 P71:IPsec 提供什么?)
      • [1. Transport mode 传输模式](#1. Transport mode 传输模式)
      • [2. Tunnel mode 隧道模式](#2. Tunnel mode 隧道模式)
    • [7.2 P72:AH 和 ESP](#7.2 P72:AH 和 ESP)
      • [1. AH:Authentication Header](#1. AH:Authentication Header)
      • [2. ESP:Encapsulation Security Payload](#2. ESP:Encapsulation Security Payload)
    • [7.3 P73:Security Association,SA](#7.3 P73:Security Association,SA)
    • [7.4 P74-P75:ESP tunnel mode 数据报结构和发送动作](#7.4 P74-P75:ESP tunnel mode 数据报结构和发送动作)
    • [7.5 P76:IPsec sequence number 防重放](#7.5 P76:IPsec sequence number 防重放)
    • [7.6 P77:SPD 和 SAD](#7.6 P77:SPD 和 SAD)
      • [SPD:Security Policy Database](#SPD:Security Policy Database)
      • [SAD:Security Association Database](#SAD:Security Association Database)
    • [7.7 P78:IPsec 能防什么?](#7.7 P78:IPsec 能防什么?)
    • [7.8 P79-P81:IKE,自动建立 SA](#7.8 P79-P81:IKE,自动建立 SA)
      • [P80:IKE 的两种认证方式](#P80:IKE 的两种认证方式)
        • [1. PSK:Pre-shared secret](#1. PSK:Pre-shared secret)
        • [2. PKI](#2. PKI)
      • [P81:IKE 两个阶段](#P81:IKE 两个阶段)
        • [Phase 1](#Phase 1)
        • [Phase 2](#Phase 2)
    • [7.9 P82:IPsec 总结](#7.9 P82:IPsec 总结)
  • [8. P83-P90:802.11 WiFi 安全](#8. P83-P90:802.11 WiFi 安全)
    • [8.1 P84:移动设备接入 WiFi 的两步](#8.1 P84:移动设备接入 WiFi 的两步)
    • [8.2 P85:发现 AP 的安全能力](#8.2 P85:发现 AP 的安全能力)
    • [8.3 P86:双向认证和共享会话密钥派生](#8.3 P86:双向认证和共享会话密钥派生)
    • [8.4 P87:WPA3 handshake](#8.4 P87:WPA3 handshake)
    • [8.5 P88-P89:把共享会话密钥交给 AP](#8.5 P88-P89:把共享会话密钥交给 AP)
    • [8.6 P90:EAP、EAPoL、RADIUS](#8.6 P90:EAP、EAPoL、RADIUS)
  • [9. P91-P99:4G/5G 中的认证与加密](#9. P91-P99:4G/5G 中的认证与加密)
    • [9.1 P92:4G LTE 接入时要做什么?](#9.1 P92:4G LTE 接入时要做什么?)
    • [9.2 P93:4G 中的角色](#9.2 P93:4G 中的角色)
    • [9.3 P94-P98:4G LTE 认证流程](#9.3 P94-P98:4G LTE 认证流程)
      • 第一步:attach
      • [第二步:HSS 生成认证材料](#第二步:HSS 生成认证材料)
      • [第三步:mobile 计算响应](#第三步:mobile 计算响应)
      • [第四步:网络认证 mobile](#第四步:网络认证 mobile)
      • [第五步:生成密钥并通知 BS](#第五步:生成密钥并通知 BS)
    • [9.4 P99:4G 到 5G 的安全变化](#9.4 P99:4G 到 5G 的安全变化)
      • [1. 认证决策位置不同](#1. 认证决策位置不同)
      • [2. IoT 场景下密钥机制变化](#2. IoT 场景下密钥机制变化)
      • [3. IMSI 隐私增强](#3. IMSI 隐私增强)
  • [10. P100-P113:防火墙与 IDS](#10. P100-P113:防火墙与 IDS)
    • [10.1 P101:防火墙是什么?](#10.1 P101:防火墙是什么?)
    • [10.2 P102:为什么需要防火墙?](#10.2 P102:为什么需要防火墙?)
      • [1. 防止 DoS 攻击](#1. 防止 DoS 攻击)
      • [2. 防止非法访问或修改内部数据](#2. 防止非法访问或修改内部数据)
      • [3. 只允许授权访问](#3. 只允许授权访问)
    • [10.3 P103:无状态包过滤 stateless packet filtering](#10.3 P103:无状态包过滤 stateless packet filtering)
    • [10.4 P104-P105:无状态过滤例子](#10.4 P104-P105:无状态过滤例子)
      • [例 1](#例 1)
      • [例 2](#例 2)
      • [P105 更多策略例子](#P105 更多策略例子)
    • [10.5 P106:ACL 访问控制列表](#10.5 P106:ACL 访问控制列表)
    • [10.6 P107-P108:有状态包过滤 stateful packet filtering](#10.6 P107-P108:有状态包过滤 stateful packet filtering)
    • [10.7 P109:应用网关 application gateway](#10.7 P109:应用网关 application gateway)
    • [10.8 P110:防火墙和网关的局限](#10.8 P110:防火墙和网关的局限)
    • [10.9 P111-P112:IDS 入侵检测系统](#10.9 P111-P112:IDS 入侵检测系统)
    • [10.10 P113:全章总结](#10.10 P113:全章总结)
  • [11. 全章总复习:一张表串起来](#11. 全章总复习:一张表串起来)
  • [12. 期末考试高频问题](#12. 期末考试高频问题)
    • [12.1 对称加密和公钥加密有什么区别?](#12.1 对称加密和公钥加密有什么区别?)
    • [12.2 为什么 RSA 不直接加密大量数据?](#12.2 为什么 RSA 不直接加密大量数据?)
    • [12.3 nonce 的作用是什么?](#12.3 nonce 的作用是什么?)
    • [12.4 数字签名和加密有什么区别?](#12.4 数字签名和加密有什么区别?)
    • [12.5 Hash、checksum、MAC、数字签名怎么区分?](#12.5 Hash、checksum、MAC、数字签名怎么区分?)
    • [12.6 CA 到底解决什么问题?](#12.6 CA 到底解决什么问题?)
    • [12.7 TLS 和 IPsec 有什么区别?](#12.7 TLS 和 IPsec 有什么区别?)
    • [12.8 AH 和 ESP 区别?](#12.8 AH 和 ESP 区别?)
    • [12.9 SPD 和 SAD 区别?](#12.9 SPD 和 SAD 区别?)
    • [12.10 防火墙三类怎么区分?](#12.10 防火墙三类怎么区分?)
  • 结尾:这一章怎么复习最有效?

0. 这一章到底在讲什么?

第 8 章叫 Security 网络安全。它不是单独讲某一个协议,而是先讲安全通信需要的基本工具,再讲这些工具如何落到真实协议中。

可以先抓住这一条主线:

text 复制代码
攻击者可以窃听、伪装、篡改、重放、劫持、拒绝服务
        ↓
所以网络安全要提供:机密性、认证、完整性、可用性
        ↓
实现这些目标需要:对称加密、公钥加密、Hash、MAC、数字签名、证书、nonce
        ↓
这些工具组合之后,就形成安全邮件、TLS、IPsec、WiFi/4G/5G 安全机制
        ↓
运行时还需要防火墙和 IDS 做边界防护与攻击检测

所以这一章不能死记协议名,重点是理解:

  • 这个机制要解决什么攻击?
  • 它用了什么密码学工具?
  • 它提供了机密性、认证、完整性、可用性中的哪几个?
  • 它还有什么限制?

1. P1-P7:什么是网络安全?

1.1 P1-P3:本章目标和目录

P1 是封面,P2-P3 给出本章目标和结构。

本章目标有两个层次。

第一层是理解网络安全基本原理:

  • cryptography,密码学;
  • authentication,认证;
  • message integrity,消息完整性;
  • cryptography 不只是用来加密,也可以用来认证、签名、保证完整性。

第二层是理解真实网络中的安全实践:

  • application layer:安全电子邮件;
  • transport layer:TLS,也就是 HTTPS 的核心;
  • network layer:IPsec;
  • link layer / wireless:WiFi、4G/5G 安全;
  • operational security:防火墙和 IDS。

这也是本章 PPT 后面的顺序。


1.2 P4:网络安全的四个核心目标

P4 给出网络安全最基本的四个目标。

1. Confidentiality 机密性

机密性说的是:

只有发送方和预期接收方能够理解消息内容。

也就是说,中间的攻击者即使截获了报文,也看不懂。

实现机密性最典型的手段是 加密 encryption

发送方把明文加密成密文:

text 复制代码
明文 m → 加密算法 + 密钥 → 密文 c

接收方再把密文解密回明文:

text 复制代码
密文 c → 解密算法 + 密钥 → 明文 m

2. Authentication 认证 / 鉴别

认证说的是:

通信双方想确认对方到底是谁。

例如 Bob 收到一条消息,对方声称自己是 Alice。Bob 要确认:

  • 这真的是 Alice 发的吗?
  • 会不会是 Trudy 冒充 Alice?

注意,认证不等于看源 IP。源 IP 可以伪造,所以后面 PPT 会一步步说明简单认证为什么失败。


3. Message integrity 报文完整性

完整性说的是:

接收方希望确认消息在传输过程中没有被篡改。

例如 Alice 发:

text 复制代码
pay Bob $100

攻击者把它改成:

text 复制代码
pay Trudy $10000

完整性机制要能让 Bob 检测出这条消息被动过。


4. Access and availability 访问与可用性

可用性说的是:

服务必须能被合法用户访问,不能轻易被攻击者搞瘫痪。

拒绝服务攻击 DoS / DDoS 就是在破坏可用性。攻击者可能并不偷数据,也不篡改数据,只是让系统忙到无法服务正常用户。


1.3 P5-P6:Alice、Bob、Trudy 模型

安全课里经常用三个人物:

  • Alice:合法发送方;
  • Bob:合法接收方;
  • Trudy:攻击者 / 入侵者。

P5 说 Alice 和 Bob 想安全通信,而 Trudy 可能在中间:

  • intercept messages,截获消息;
  • delete messages,删除消息;
  • add messages,插入消息。

P6 说明 Alice 和 Bob 不一定真的是人,也可以是:

  • Web browser 和 Web server;
  • 网上银行客户端和服务器;
  • DNS servers;
  • BGP routers 交换路由表更新;
  • 其他任何两个想安全通信的网络实体。

所以 Alice/Bob/Trudy 模型本质是在抽象:

两个合法实体想通信,一个攻击者在中间尝试窃听、伪造、修改或破坏。


1.4 P7:攻击者能做什么?

P7 是后面所有安全机制的动机。

攻击者可以做很多事。

1. Eavesdrop 窃听

攻击者截获消息,偷看内容。

对应防御目标:机密性

对应工具:加密


2. Insert messages 插入消息

攻击者主动往连接里插入伪造报文。

对应防御目标:认证 + 完整性


3. Impersonation 伪装

攻击者伪装成别人,比如伪造源 IP 地址或其他字段。

对应防御目标:认证


4. Hijacking 劫持

攻击者接管一个正在进行的连接,把原来的发送方或接收方挤掉,然后自己插进去。

对应防御目标:认证、完整性、加密、防重放等。


5. Denial of service 拒绝服务

攻击者让服务无法被正常用户使用,比如用大量请求耗尽服务器资源。

对应防御目标:可用性

对应机制:防火墙、IDS、限流、过滤、认证等。


2. P8-P28:密码学基础

P8 是目录页,正式进入 Principles of cryptography 密码学原理

这一部分可以看成全章的工具箱。


2.1 P9:密码学的基本语言

P9 定义几个符号。

  • m:plaintext message,明文消息;
  • K_A(m):用密钥 K_A 加密后的 ciphertext,密文;
  • K_B(K_A(m)) = m:用另一把密钥 K_B 解密后恢复明文。

可以理解为:

text 复制代码
Alice: 明文 m --用 KA 加密--> 密文 KA(m)
Bob:   密文 KA(m) --用 KB 解密--> 明文 m

现代密码系统通常假设:

算法可以公开,真正要保密的是密钥。

这和很多初学者的直觉不一样。安全不应该依赖"算法别人不知道",而应该依赖"密钥别人不知道"。


2.2 P10:攻击加密方案的三种方式

P10 讲攻击者如何尝试破解加密方案。

1. Ciphertext-only attack 唯密文攻击

攻击者只有密文,没有明文。

她可以尝试:

  • brute force:暴力搜索所有密钥;
  • statistical analysis:统计分析。

比如在单表替换密码里,英文中字母 e 出现频率很高,攻击者可以通过频率猜测替换关系。


2. Known-plaintext attack 已知明文攻击

攻击者知道一些明文和对应密文。

例如她知道某段密文对应的明文里有 alicebob,就能推断一些字母映射。


3. Chosen-plaintext attack 选择明文攻击

攻击者可以选择明文,让加密系统给出对应密文。

这比已知明文攻击更强,因为攻击者可以主动设计输入,观察输出规律。


2.3 P11-P15:对称密钥密码

P11:对称密钥 cryptography

对称密钥密码的核心是:

Alice 和 Bob 使用同一把共享密钥 K_S

加密和解密都依赖同一把密钥。

text 复制代码
加密:c = K_S(m)
解密:m = K_S(c)

它的优点是快,适合加密大量数据。

它的最大问题是:

Alice 和 Bob 一开始怎么安全地共享这把密钥?

如果两个人之前从没见过,又只能通过不安全网络交流,那么直接把密钥发过去就会被攻击者偷走。

这就是后面公钥密码要解决的问题。


P12:单码代替密码 monoalphabetic cipher

P12 用字母替换举例。

text 复制代码
plaintext:  abcdefghijklmnopqrstuvwxyz
ciphertext: mnbvcxzasdfghjklpoiuytrewq

明文:

text 复制代码
bob. i love you. alice

加密后:

text 复制代码
nkn. s gktc wky. mgsbc

这个例子说明密钥可以是一张映射表。

但是这种密码很弱,因为一个字母总是被替换成同一个字母,攻击者可以用频率分析破解。


P13:多表替换密码

为了增强单表替换,可以使用多个替换表:

text 复制代码
M1, M2, ..., Mn

例如循环模式是:

text 复制代码
M1, M3, M4, M3, M2, M1, M3, M4, M3, M2, ...

那么加密 dog 时:

  • d 用 M1;
  • o 用 M3;
  • g 用 M4。

这样同一个字母在不同位置可能变成不同密文字母,分析起来更难。

但这仍然属于古典密码,不是现代网络安全的主流。


P14:DES

DES 是 Data Encryption Standard。

它的特点:

  • 美国曾经的加密标准;
  • 56-bit 对称密钥;
  • 64-bit 明文块;
  • block cipher,分组密码;
  • 使用 cipher block chaining 等模式。

DES 的问题是密钥太短。56 bit 密钥空间现在已经可以被暴力破解。

为了增强 DES,有 3DES:

用 3 个不同密钥连续加密 3 次。

3DES 比 DES 安全,但也更慢,后来被 AES 替代。


P15:AES

AES 是 Advanced Encryption Standard,用来替代 DES。

特点:

  • NIST 标准;
  • 128-bit 数据块;
  • 密钥长度可以是 128、192、256 bit;
  • 现代系统中非常常见。

PPT 强调暴力破解难度:

如果 DES 暴力破解只要 1 秒,那么 AES 暴力破解可能需要极其夸张的时间量级。

考试记住:

text 复制代码
DES:历史标准,56-bit 密钥,不够安全
3DES:加密三次,提高安全性但慢
AES:现代常用对称加密标准,快且安全性高

2.4 P16-P18:公开密钥密码为什么出现?

P16 问了一个关键问题:

对称加密要求发送方和接收方提前知道共享密钥。可是如果他们从没见过,怎么安全地商量密钥?

公钥密码就是为了解决这个问题。

公钥密码也叫非对称密钥密码。每个实体有两把钥匙:

  • public key,公钥,可以公开;
  • private key,私钥,只能自己保存。

P17-P18 说明公开密钥密码的革命性:过去 2000 年密码学基本都是对称密钥,公钥密码改变了这个局面。

公钥密码需要满足两个要求:

  1. 用公钥加密后,只有对应私钥能解密;
  2. 已知公钥,也很难推出私钥。

RSA 是最经典的公钥算法。


2.5 P19-P20:RSA 的数学准备

P19:模运算 modular arithmetic

模运算就是取余数。

text 复制代码
x mod n = x 除以 n 的余数

例如:

text 复制代码
14 mod 10 = 4

PPT 给出几个性质:

text 复制代码
[(a mod n) + (b mod n)] mod n = (a+b) mod n
[(a mod n) - (b mod n)] mod n = (a-b) mod n
[(a mod n) * (b mod n)] mod n = (a*b) mod n

这些性质是 RSA 能工作的数学基础。


P20:消息可以看成数字

计算机中的消息本来就是 bit pattern。

例如:

text 复制代码
10010001

可以看成十进制数:

text 复制代码
145

所以 RSA 加密消息,本质上是:

对一个整数做数学运算。

这也解释了为什么 RSA 看起来不像 AES 那种"逐字节变换",而更像大整数数学。


2.6 P21-P27:RSA 算法

P21:RSA 密钥生成

RSA 生成公钥和私钥的步骤:

  1. 选择两个大素数 pq
  2. 计算:
text 复制代码
n = p q
z = (p-1)(q-1)
  1. 选择 e,使得 e < n,并且 ez 没有公因子,也就是互质。
  2. 选择 d,使得:
text 复制代码
ed - 1 可以被 z 整除

等价于:

text 复制代码
ed mod z = 1
  1. 公钥是:
text 复制代码
(n, e)
  1. 私钥是:
text 复制代码
(n, d)

P22:RSA 加密与解密

加密:

text 复制代码
c = m^e mod n

解密:

text 复制代码
m = c^d mod n

这里的 m 是消息对应的数字,c 是密文对应的数字。

所以 RSA 的基本过程是:

text 复制代码
明文数字 m --公钥 (n,e) 加密--> 密文 c
密文数字 c --私钥 (n,d) 解密--> 明文 m

P23:RSA 小例子

PPT 给了一个很小的例子:

text 复制代码
p = 5, q = 7
n = 35
z = 24
e = 5
d = 29

因为:

text 复制代码
ed - 1 = 5 * 29 - 1 = 144

144 可以被 24 整除,所以条件满足。

真实 RSA 不会用这么小的数字。真实 p 和 q 可以是 1024 bit 级别的大素数,这个例子只是为了方便手算。


P24-P26:为什么 RSA 能工作?

P24 要证明:

text 复制代码
c^d mod n = m

其中:

text 复制代码
c = m^e mod n

所以:

text 复制代码
c^d mod n
= (m^e mod n)^d mod n
= m^(ed) mod n
= m^(ed mod z) mod n
= m^1 mod n
= m

P25-P26 又强调 RSA 的一个重要性质:

text 复制代码
先公钥后私钥,能恢复原文
先私钥后公钥,也能恢复原文

这点后面数字签名会用到。

加密时通常是:

text 复制代码
公钥加密,私钥解密

签名时通常是:

text 复制代码
私钥签名,公钥验证

P27:为什么 RSA 安全?

攻击者知道 Bob 的公钥:

text 复制代码
(n, e)

她想求出私钥中的 d

要算 d,基本需要知道:

text 复制代码
z = (p-1)(q-1)

要知道 z,就要知道 pq

而攻击者只知道:

text 复制代码
n = p q

所以她需要把一个很大的 n 分解成两个素数 pq

RSA 的安全性就依赖于:

大整数因式分解很难。


2.7 P28:为什么 RSA 实际中不直接加密大量数据?

P28 是非常重要的一页。

PPT 说:

RSA 中的指数运算 computationally intensive,计算量很大。DES 至少比 RSA 快 100 倍。

更一般地说,RSA 很慢有两个原因:

第一,RSA 要做大整数模幂运算

RSA 加密/解密形式是:

text 复制代码
c = m^e mod n
m = c^d mod n

真实的 n 是 2048 bit、3072 bit 甚至更大的整数。计算 m^e mod nc^d mod n 要进行大量大整数乘法和取模运算。

而 AES 这类对称加密主要是异或、替换、移位等操作,很适合硬件加速,所以快得多。


第二,RSA 一次只能处理很小的数据块

如果 RSA 密钥是 2048 bit,那么一次输出密文大约 256 字节。考虑安全填充后,一次能加密的明文更少。

如果拿 RSA 直接加密一个大文件,就要切成很多小块,对每块做一次昂贵的 RSA 运算,效率非常差。


所以实际系统使用 混合加密 hybrid encryption

  1. Alice 和 Bob 用 RSA 交换一个对称会话密钥 K_S
  2. 后续大量数据使用 K_S 做对称加密。

一句话:

text 复制代码
公钥密码解决"怎么安全地共享密钥"
对称密码解决"怎么高效地加密大量数据"

3. P29-P40:认证协议为什么一步步变复杂?

P29 是目录页,开始讲 authentication 和 message integrity。

这一部分 PPT 设计得很好,它不是直接告诉你正确协议,而是从错误协议开始,一步步暴露问题。


3.1 P30-P31:ap1.0,只声明身份

目标:Bob 希望 Alice 向自己证明身份。

最简单的协议 ap1.0 是:

text 复制代码
Alice → Bob: I am Alice

问题:

在网络中 Bob 看不到 Alice,Trudy 也可以说 "I am Alice"。

所以单纯声明身份没有意义。


3.2 P32-P33:ap2.0,带源 IP 地址

ap2.0 尝试改进:

text 复制代码
Alice 在 IP packet 里说 "I am Alice",并带上 Alice 的源 IP 地址。

问题:

源 IP 可以被伪造,也就是 IP spoofing。

Trudy 可以构造一个源地址看起来像 Alice 的包。

所以:

text 复制代码
源 IP 地址 ≠ 可靠身份认证

3.3 P34-P35:ap3.0,发送密码

ap3.0:

text 复制代码
Alice → Bob: I am Alice + password

看起来更像认证了,因为 Trudy 不知道密码。

但是问题是 playback attack,重放攻击。

Trudy 可以先窃听并记录 Alice 的认证报文,之后原样发给 Bob。

Bob 会以为 Alice 又登录了一次。

所以:

只要认证报文可以被重复使用,就会被重放攻击利用。


3.4 P36-P37:把密码加密后发送,仍然不够

有人可能会说:

那我把密码加密再发,不就安全了吗?

ap3.0 modified:

text 复制代码
Alice → Bob: I am Alice + encrypted password

问题仍然存在。

Trudy 不需要知道密码明文。她只要记录加密后的认证报文,以后原样重放即可。

这说明:

text 复制代码
加密 ≠ 自动防重放

如果每次认证报文长得一样,攻击者就可以复制旧报文。


3.5 P38:ap4.0,引入 nonce 防重放

P38 引入 nonce。

nonce 的意思是:

number used only once,只使用一次的随机数。

ap4.0 协议:

  1. Bob 向 Alice 发送一个随机数 R
  2. Alice 用共享密钥加密 R,返回给 Bob。
  3. Bob 检查 Alice 返回的结果是否正确。

过程可以写成:

text 复制代码
Bob → Alice: R
Alice → Bob: K_AB(R)

这里 R 每次都不同。

所以旧的认证报文不能用,因为 Bob 每次给出的挑战都不一样。

nonce 的作用就是:

text 复制代码
证明对方是"活的",并且防止旧报文被重放

ap4.0 的问题是:

Alice 和 Bob 需要提前共享对称密钥。

这又回到了对称加密的密钥分发问题。


3.6 P39-P40:ap5.0,用公钥认证,但还有中间人攻击

ap5.0 尝试用公钥密码实现认证。

基本思想是:

  1. Bob 给 Alice 发 nonce R
  2. Alice 用自己的私钥处理 R
  3. Bob 用 Alice 的公钥验证。

如果验证成功,Bob 认为只有 Alice 拥有 Alice 的私钥,所以对方就是 Alice。

但是 P40 说明它仍然有漏洞:man-in-the-middle attack,中间人攻击

Trudy 可以:

  • 对 Bob 冒充 Alice;
  • 对 Alice 冒充 Bob。

关键问题是:

Bob 怎么知道自己拿到的公钥真的是 Alice 的公钥?

如果 Trudy 把自己的公钥说成是 Alice 的公钥,Bob 就会被骗。

这就引出了后面的 CA 和证书。


4. P41-P51:消息完整性、数字签名与 CA

P41 是目录页,继续讲 authentication 和 message integrity。

这一部分的逻辑是:

text 复制代码
我们需要证明消息来自谁、有没有被改
        ↓
数字签名可以做到
        ↓
但直接签名长消息太慢
        ↓
所以先 Hash 得到消息摘要,再签摘要
        ↓
但还要确认公钥归属
        ↓
所以需要 CA 证书

4.1 P42-P43:数字签名 digital signature

数字签名类似手写签名,但更适合网络场景。

它要满足两个性质:

  • verifiable,可验证;
  • nonforgeable,不可伪造。

假设 Bob 要对消息 m 签名。

Bob 用自己的私钥生成签名:

text 复制代码
signature = K_B^-(m)

Alice 收到 m 和签名后,用 Bob 的公钥验证:

text 复制代码
K_B^+(K_B^-(m)) = m

如果成立,说明这个签名确实是 Bob 的私钥生成的。

数字签名提供:

  1. authentication:证明是谁签的;
  2. integrity:消息被改后验证不过;
  3. non-repudiation:发送方难以否认自己签过。

4.2 P44:消息摘要 message digest

直接用公钥算法签整个长消息太慢。

所以引入 hash function。

Hash 函数 H 把任意长度消息变成固定长度摘要:

text 复制代码
m → H(m)

消息摘要可以理解为消息的指纹。

好的密码学 Hash 函数需要满足:

  • many-to-one:输入很多,输出固定长度,必然多对一;
  • fixed-size digest:产生固定长度摘要;
  • 给定摘要 x,很难找到某个 m 使得 H(m)=x
  • 很难构造两个不同消息具有相同摘要。

4.3 P45:Internet checksum 不是好的密码学 Hash

P45 用 Internet checksum 做反例。

Internet checksum 也有一些 Hash 的样子:

  • 产生固定长度结果;
  • many-to-one。

但它太弱。PPT 中给了两个不同消息,它们的 checksum 一样。

这说明:

text 复制代码
checksum 能检测随机传输错误
但不能抵抗恶意攻击者

所以:

  • Internet checksum、CRC 适合链路层/传输层错误检测;
  • 数字签名、认证、完整性需要密码学 Hash。

4.4 P46-P47:数字签名 = 签名消息摘要

真实数字签名通常不是签整个消息,而是签消息摘要。

Bob 发送签名消息:

  1. 计算消息摘要:
text 复制代码
H(m)
  1. 用 Bob 私钥签名摘要:
text 复制代码
K_B^-(H(m))
  1. 发送:
text 复制代码
m + K_B^-(H(m))

Alice 验证:

  1. 对收到的 m 重新算:
text 复制代码
H(m)
  1. 用 Bob 公钥解签名,得到 Bob 签过的摘要。
  2. 比较两个摘要是否一致。

如果一致,说明:

  • 消息没有被改;
  • 签名者拥有 Bob 的私钥。

P47 提到常见 Hash 算法:

  • MD5:128-bit message digest;
  • SHA-1:160-bit message digest。

从现代安全角度看,MD5 和 SHA-1 已经不适合高安全场景,但在课程里重点是理解它们是 Hash 函数。


4.5 P48-P51:为什么需要 CA?

P48 回到 ap5.0 的问题:

Trudy 可以冒充 Alice 和 Bob 做中间人攻击。

核心原因是:

公钥密码本身不能证明"这个公钥属于谁"。

P49 用披萨恶作剧说明这个问题。

Trudy 可以:

  1. 自己写一封邮件,冒充 Bob 订披萨;
  2. 用自己的私钥签名;
  3. 把自己的公钥发给披萨店,但声称这是 Bob 的公钥;
  4. 披萨店验证签名通过,以为真是 Bob 订的。

所以问题不是签名算法错了,而是公钥身份绑定错了。


4.6 P50-P51:Certification Authority,证书认证机构

CA 的作用是:

把实体身份和公钥绑定起来。

实体可以是:

  • person;
  • website;
  • router;
  • 其他网络实体。

流程:

  1. 实体 E 向 CA 注册自己的公钥,并提供身份证明。
  2. CA 创建证书,证书里包含 E 的身份信息和 E 的公钥。
  3. CA 用自己的私钥对证书签名。

证书表达的意思是:

text 复制代码
CA 说:这个公钥属于 E。

当 Alice 想获得 Bob 的公钥:

  1. Alice 获取 Bob 的 certificate。
  2. Alice 用 CA 的公钥验证证书签名。
  3. 验证通过后,Alice 相信证书里的公钥确实属于 Bob。

所以 CA 解决的是:

text 复制代码
公钥归属问题

没有 CA,公钥密码容易被中间人攻击。


5. P52-P56:安全电子邮件

P52 是目录页。安全电子邮件这一部分的意义是:

把前面学的加密、签名、Hash、公钥、对称密钥组合到一个真实应用场景里。


5.1 P53-P54:只要求机密性

Alice 想给 Bob 发一封保密邮件 m

直接用 Bob 的公钥加密整个邮件可以吗?理论上可以,但太慢。

所以使用混合加密。

Alice:

  1. 生成一个随机对称密钥 K_S
  2. K_S 加密邮件:
text 复制代码
K_S(m)
  1. 用 Bob 的公钥加密 K_S
text 复制代码
K_B^+(K_S)
  1. 把两部分都发给 Bob:
text 复制代码
K_S(m) + K_B^+(K_S)

Bob:

  1. 用自己的私钥解出 K_S
text 复制代码
K_B^-(K_B^+(K_S)) = K_S
  1. K_S 解密邮件:
text 复制代码
K_S(K_S(m)) = m

这提供的是 confidentiality 机密性


5.2 P55:只要求完整性和认证

Alice 想让 Bob 知道:

  • 邮件确实来自 Alice;
  • 邮件没有被修改。

Alice:

  1. 对邮件 m 计算摘要:
text 复制代码
H(m)
  1. 用自己的私钥签名摘要:
text 复制代码
K_A^-(H(m))
  1. 发送:
text 复制代码
m + K_A^-(H(m))

Bob:

  1. 对收到的 m 重新计算 H(m)
  2. 用 Alice 公钥解签名得到摘要。
  3. 比较两个摘要。

如果一致,就说明:

  • 消息没有被改;
  • 签名者拥有 Alice 私钥。

但是此时 m 是明文发送,所以不提供机密性。


5.3 P56:同时要求机密性、完整性、认证

完整的安全邮件要同时满足:

  • confidentiality;
  • message integrity;
  • authentication。

Alice 会用三把钥匙:

  1. Alice 的私钥:用于数字签名;
  2. Bob 的公钥:用于加密会话密钥;
  3. 新生成的对称密钥 K_S:用于加密邮件正文和签名。

流程:

  1. Alice 对邮件 m 计算摘要 H(m)
  2. Alice 用自己的私钥签名摘要。
  3. Alice 把 m 和签名一起用 K_S 加密。
  4. Alice 用 Bob 的公钥加密 K_S
  5. Bob 用自己的私钥解出 K_S
  6. Bob 用 K_S 解出邮件和签名。
  7. Bob 用 Alice 的公钥验证签名。

一句话:

text 复制代码
先签名保证认证和完整性,再加密保证机密性

6. P57-P69:TLS 与 HTTPS

P57 是目录页,进入 TLS。

TLS 是本章非常重要的真实协议。


6.1 P58-P59:TLS 是什么?

TLS:Transport Layer Security。

它运行在传输层之上、应用层之下。

HTTPS 本质上就是:

text 复制代码
HTTP + TLS

HTTPS 默认端口是:

text 复制代码
443

TLS 提供:

  • confidentiality:通过对称加密;
  • integrity:通过密码学 Hash / MAC;
  • authentication:通过公钥密码和证书。

历史上 SSL 曾经很常见,但 SSL 已废弃。现代系统使用 TLS。PPT 提到 TLS 1.3 是 2018 年的版本。


6.2 P60:TLS 需要解决什么?

TLS 不只是"把 HTTP 加密一下"。它至少需要解决四个问题。

1. Handshake 握手

Alice 和 Bob 使用证书、私钥等认证彼此,并交换或创建 shared secret。


2. Key derivation 密钥派生

握手得到的 shared secret 不会直接一把钥匙用到底,而是通过 KDF 派生多把密钥。


3. Data transfer 数据传输

TCP 是字节流,但 TLS 要把字节流拆成 records,每个 record 单独加密和认证。


4. Connection closure 安全关闭

如果关闭连接本身不受保护,攻击者可以伪造关闭,造成截断攻击。


6.3 P61:toy TLS 初始握手

P61 构造了一个简化版 t-tls。

握手阶段:

  1. Bob 建立到 Alice 的 TCP 连接。
  2. Bob 验证 Alice 真的是 Alice。
  3. Bob 发送 master secret MS 给 Alice。
  4. MS 用于生成 TLS 会话中的其他密钥。

PPT 提醒一个问题:

在客户端开始接收数据前,可能需要 3 个 RTT,包括 TCP 握手和 TLS 握手。

所以 TLS 设计不仅考虑安全,也考虑性能延迟。


6.4 P62:为什么 TLS 要派生多把密钥?

P62 说:

同一把密钥不应该用于多个密码学功能。

所以 TLS 会从 master secret 派生多把密钥。

例如 toy TLS 中有四把:

  • K_c:client → server 的加密密钥;
  • M_c:client → server 的 MAC 密钥;
  • K_s:server → client 的加密密钥;
  • M_s:server → client 的 MAC 密钥。

这些密钥由 KDF 生成:

text 复制代码
master secret + random data → KDF → Kc, Mc, Ks, Ms

这样可以实现密钥隔离,降低风险。


6.5 P63:为什么 TLS 要分 record?

TCP 提供的是 byte stream abstraction。

如果直接把整个 TCP 流加密,会出现一个问题:

MAC 放在哪里?

如果 MAC 放在最后,那么接收方必须等整个连接结束,才能知道前面的数据有没有被篡改。

TLS 的解决方法是:

text 复制代码
把字节流切成一条条 record
每条 record 都带 MAC
接收方每收到一条 record 就可以验证并处理

这就是 TLS record layer 的意义。


6.6 P64:TLS 如何防重排和重放?

攻击者可能对数据流做两类攻击:

1. Re-ordering 重排

攻击者截获 TCP segment,修改未加密 TCP 头部里的 sequence number,让数据顺序改变。

2. Replay 重放

攻击者复制旧的 record,之后再次发送。

解决方法:

  • TLS sequence number 加入 MAC 计算;
  • 使用 nonce。

这样每条 record 都有自己的序号和新鲜性,旧数据不能简单复制重放。


6.7 P65:安全关闭与截断攻击

Truncation attack 截断攻击:

攻击者伪造 TCP connection close segment,让一方以为数据已经结束。

比如服务器本来要继续发送数据,但攻击者提前关闭连接,客户端以为只收到的部分就是完整响应。

TLS 的解决方法:

  • record 有 type 字段;
  • type 0 表示 data;
  • type 1 表示 close;
  • MAC 覆盖 data、type、sequence number。

这样关闭消息本身也被认证,攻击者不能随便伪造。


6.8 P66:TLS 给应用提供 API

TLS 提供 API,应用程序可以直接使用。

以 HTTP 为例:

text 复制代码
HTTP message
    ↓
TLS record: 加密 + 完整性保护 + 认证
    ↓
TCP
    ↓
IP

所以浏览器和 Web 服务器不用自己实现复杂密码学,只需要调用 TLS 库。


6.9 P67:TLS 1.3 cipher suite

Cipher suite 是一组算法组合,用于:

  • key generation;
  • encryption;
  • MAC;
  • digital signature。

TLS 1.3 相比 TLS 1.2 更收敛:

  • TLS 1.2 有更多 cipher suite 选择;
  • TLS 1.3 选择更少,减少不安全组合;
  • TLS 1.3 要求 Diffie-Hellman 类密钥交换,而不是允许 RSA 直接密钥交换;
  • 数据保护使用 authenticated encryption,把加密和认证结合;
  • 多个套件基于 AES;
  • HMAC 使用 SHA-256 等密码学 Hash。

重点记:

text 复制代码
TLS 不是一个单独算法,而是一整套协议框架

6.10 P68-P69:TLS 1.3 的 1-RTT 和 0-RTT

P68 讲 TLS 1.3 handshake 可以做到 1 RTT。

客户端先发 ClientHello,其中包括:

  • supported cipher suites;
  • DH key agreement parameters。

服务器返回 ServerHello、证书和自己的参数。双方据此建立密钥。

P69 讲 0-RTT。

0-RTT 用于恢复之前的连接。客户端第一条 hello 里就可以带 encrypted application data。

优点:

text 复制代码
延迟低

缺点:

text 复制代码
容易受到 replay attack

所以 0-RTT 更适合不会修改服务器状态的请求,比如 HTTP GET。对于转账、下单这类操作就要小心。


7. P70-P82:IPsec,网络层安全

P70 是目录页,进入 Network layer security。

TLS 是保护应用连接,IPsec 是保护 IP 数据报。


7.1 P71:IPsec 提供什么?

IPsec 提供 datagram-level 的:

  • encryption;
  • authentication;
  • integrity。

它可以保护:

  • user traffic;
  • control traffic,比如 BGP、DNS messages。

IPsec 有两种模式。

1. Transport mode 传输模式

只加密和认证 IP datagram 的 payload。

原始 IP header 仍然在外面。


2. Tunnel mode 隧道模式

整个原始 IP datagram 都被加密和认证,然后再封装进一个新的 IP datagram。

结构上是:

text 复制代码
原始 IP 数据报
    ↓ 加密认证
加上新的 IP 头
    ↓
通过隧道发送

Tunnel mode 常用于 VPN,例如两个公司网关之间通过公网建立安全隧道。


7.2 P72:AH 和 ESP

IPsec 有两个核心协议。

1. AH:Authentication Header

AH 提供:

  • source authentication,源认证;
  • data integrity,数据完整性。

但 AH 不提供 confidentiality,也就是不加密内容。


2. ESP:Encapsulation Security Payload

ESP 提供:

  • source authentication;
  • data integrity;
  • confidentiality。

所以 ESP 比 AH 更常用。


7.3 P73:Security Association,SA

IPsec 通信前,需要先建立 SA。

SA 是 Security Association,安全关联。

PPT 强调:

text 复制代码
IP 是无连接的
但 IPsec 是 connection-oriented 的

因为 IPsec 需要保存状态,例如:

  • 使用什么加密算法;
  • 使用什么完整性算法;
  • 密钥是什么;
  • SPI 是多少;
  • sequence number 当前是多少。

SA 是单向的。

所以如果 R1 和 R2 双向安全通信,需要两个 SA:

text 复制代码
R1 → R2 一个 SA
R2 → R1 一个 SA

7.4 P74-P75:ESP tunnel mode 数据报结构和发送动作

P74 给出 ESP tunnel mode 的结构:

text 复制代码
new IP header
ESP header
original IP header
original IP datagram payload
ESP trailer
ESP auth

其中:

  • original IP header + original payload + ESP trailer 被加密;
  • ESP header、加密内容、ESP trailer 被认证;
  • ESP auth 字段里放 MAC;
  • ESP header 中有 SPI 和 sequence number。

SPI 的作用是:

text 复制代码
告诉接收方应该用哪一个 SA 来处理这个 IPsec 数据报

P75 讲 R1 发送时的动作:

  1. 给原始 datagram 加上 ESP trailer。
  2. 使用 SA 中指定的算法和密钥加密。
  3. 在前面加 ESP header。
  4. 使用 SA 中指定的算法和密钥计算 MAC。
  5. 加上 MAC,形成 payload。
  6. 再创建新的 IP header,把地址设置为隧道端点。

7.5 P76:IPsec sequence number 防重放

攻击者可以 sniff 一个合法 IPsec 包,然后之后再 replay。

即使这个包的 MAC 是正确的,也不应该被重复接受。

所以 IPsec 使用 sequence number。

每个新的 SA:

  1. 发送方把 sequence number 初始化为 0。
  2. 每发送一个 datagram,序号加 1。
  3. 接收方检查重复序号。

接收方不会保存所有历史包,而是使用窗口机制。

这样可以防止:

text 复制代码
攻击者复制旧的、认证正确的 IPsec 包来扰乱服务

7.6 P77:SPD 和 SAD

这一页很容易考。

SPD:Security Policy Database

SPD 是策略数据库,回答:

text 复制代码
what to do

也就是:

对某个 datagram,要不要使用 IPsec?使用哪条安全策略?

SPD 可以根据这些字段判断:

  • source IP address;
  • destination IP address;
  • protocol number;
  • 其他选择条件。

SAD:Security Association Database

SAD 是安全关联数据库,回答:

text 复制代码
how to do it

也就是:

如果要用 IPsec,具体用哪个 SA?用什么算法、密钥、SPI、序列号?

发送时,R1 查 SAD 来决定如何处理 datagram。

接收时,R2 根据 IPsec datagram 中的 SPI 查 SAD,然后用对应 SA 解密、验证、检查序号。

记忆方法:

text 复制代码
SPD = 策略,决定做不做、做什么
SAD = 状态,决定怎么做

7.7 P78:IPsec 能防什么?

假设 Trudy 位于 R1 和 R2 之间,但不知道密钥。

她不能:

  • 看到原始 datagram 的内容;
  • 随便翻转 bit 而不被检测;
  • 冒充 R1 发合法 IPsec 包;
  • 重放旧 datagram 而被接受。

但要注意 tunnel mode 下,新 IP header 仍然可见。所以攻击者可能知道:

  • 外层源地址;
  • 外层目的地址;
  • 隧道端点。

但原始内部 IP header、传输层端口、应用数据可以被隐藏。


7.8 P79-P81:IKE,自动建立 SA

P79 说手动配置 SA 不现实。

例如一个 SA 要包含:

  • SPI;
  • Source IP;
  • Dest IP;
  • Protocol;
  • Encryption algorithm;
  • HMAC algorithm;
  • Encryption key;
  • HMAC key。

如果一个 VPN 有几百个端点,手工配置非常麻烦。

所以使用 IKE:Internet Key Exchange。

IKE 的作用是:

text 复制代码
自动认证双方,并协商 IPsec SA

P80:IKE 的两种认证方式

IKE 可以用两类方式证明身份。

1. PSK:Pre-shared secret

双方提前共享一个秘密。

然后运行 IKE:

  • 认证彼此;
  • 生成两个方向的 IPsec SA;
  • 生成加密和认证密钥。
2. PKI

双方各自有:

  • public/private key pair;
  • certificate。

然后用证书和公私钥完成认证,再协商 IPsec SA。

PPT 说它和 SSL/TLS handshake 有相似之处。


P81:IKE 两个阶段

IKE 有两个阶段。

Phase 1

建立双向 IKE SA。

注意:

text 复制代码
IKE SA 不等于 IPsec SA

IKE SA 也叫 ISAKMP security association。

Phase 2

使用 Phase 1 建立的 ISAKMP SA,安全协商 IPsec 的一对 SA。

Phase 1 又有两种模式:

  • aggressive mode:消息更少;
  • main mode:提供身份保护,更灵活。

7.9 P82:IPsec 总结

IPsec 总结:

  • IKE 用来交换算法、密钥、SPI numbers;
  • IPsec 可以用 AH、ESP,或两者都用;
  • AH 提供完整性和源认证;
  • ESP 在此基础上还提供加密;
  • IPsec peers 可以是:
    • 两个 end systems;
    • 两个 routers/firewalls;
    • 一个 router/firewall 和一个 end system。

8. P83-P90:802.11 WiFi 安全

P83 是目录页,进入 wireless and mobile networks security。

这一部分讲 WiFi 的认证和加密。


8.1 P84:移动设备接入 WiFi 的两步

一个移动设备加入 802.11 网络,需要两步:

  1. associate with access point;
  2. authenticate to network。

这两个概念不要混。

Association

表示设备和 AP 建立无线链路层通信关系。

Authentication

表示设备向网络证明自己的身份,并获得后续加密所需的密钥。

也就是说:

text 复制代码
能和 AP 交换消息 ≠ 已经被认证

8.2 P85:发现 AP 的安全能力

AP 会广播自己的存在,并说明支持哪些:

  • authentication forms;
  • encryption forms。

设备选择自己想使用的认证和加密方式。

但此时:

text 复制代码
设备还没有被认证,也没有加密密钥

8.3 P86:双向认证和共享会话密钥派生

P86 讲 mobile 和 Authentication Server,简称 AS。

AS 和 mobile 已经有某种 shared common secret,例如密码。

然后它们使用:

  • shared secret;
  • nonces,防止 relay attack;
  • cryptographic hashing,保证消息完整性;

来完成:

  • mutual authentication,双向认证;
  • shared symmetric session key derivation,会话密钥派生。

注意这里是 mutual authentication:

不仅网络要确认 mobile 是合法用户,mobile 也要确认自己连的是合法网络。


8.4 P87:WPA3 handshake

P87 讲 WPA3 handshake 的核心逻辑。

  1. AS 生成 Nonce_AS,发送给 mobile。
  2. mobile 收到 Nonce_AS
  3. mobile 生成 Nonce_M
  4. mobile 使用:
text 复制代码
initial shared secret + Nonce_AS + Nonce_M

派生会话密钥:

text 复制代码
K_M-AP
  1. mobile 发送 Nonce_M,以及使用共享秘密和 nonce 生成的 HMAC 签名值。
  2. AS 也派生出同样的 K_M-AP

这里 nonce 的作用是保证新鲜性,HMAC 的作用是保证认证和完整性。


8.5 P88-P89:把共享会话密钥交给 AP

P88-P89 讲后续过程。

mobile 和 AS 派生出同一个 shared symmetric session key 后:

  • AS informs AP of the shared symmetric session;
  • mobile 和 AP 使用这个密钥加密后续 WiFi 通信。

最终得到:

text 复制代码
encrypted communication between mobile and remote host via AP

也就是:

认证服务器负责认证和派生密钥,AP 最终拿到密钥并负责无线链路上的加密转发。


8.6 P90:EAP、EAPoL、RADIUS

P90 讲协议栈关系。

  • mobile 和 AS 之间使用 EAP。
  • mobile 到 AP 之间是 EAP over LAN,也就是 EAPoL。
  • AP 到 AS 之间使用 RADIUS over UDP/IP。

EAP:Extensible Authentication Protocol。

它定义 mobile device 和 AS 之间的端到端 request/response 认证协议。

可以理解为:

text 复制代码
mobile ←EAP→ AS
mobile ←EAPoL→ AP
AP ←RADIUS/UDP/IP→ AS

AP 在中间转发认证消息,但真正认证逻辑发生在 mobile 和 AS 之间。


9. P91-P99:4G/5G 中的认证与加密

P91 是目录页,进入 4G/5G 安全。


9.1 P92:4G LTE 接入时要做什么?

移动设备进入 4G LTE 网络,需要:

  1. associate with BS,也就是和 base station 建立 4G wireless link;
  2. authenticate itself to network,向网络认证自己;
  3. authenticate network,认证网络,防止连接到假网络。

PPT 强调 WiFi 和 4G 的不同:

  • mobile 的 SIM card 提供全球身份;
  • SIM card 中包含共享密钥;
  • visited network 中的服务依赖 home network 中的付费订阅关系。

9.2 P93:4G 中的角色

4G LTE 认证中有几个角色:

  • mobile,也就是 UE;
  • BS,Base Station;
  • MME,Mobility Management Entity,位于 visited network;
  • HSS,Home Subscriber Service,位于 home network。

PPT 说:

MME in visited network + HSS in home network,一起扮演类似 WiFi AS 的角色。

但 ultimate authenticator 是 HSS。

认证完成后:

text 复制代码
mobile 和 BS 使用派生会话密钥 K_BS-M 加密 4G link 上的通信

9.3 P94-P98:4G LTE 认证流程

这几页主要是流程图,可以按五步理解。

第一步:attach

mobile 发送 attach 消息。

消息包含:

  • IMSI;
  • visited network info。

attach 消息经过 BS、MME,最终发到 home network 的 HSS。

IMSI 用来识别移动用户和其归属网络。


第二步:HSS 生成认证材料

HSS 使用提前共享的秘密密钥:

text 复制代码
K_HSS-M

生成:

  • authentication token,auth_token
  • expected authentication response token,xres_HSS

auth_token 中包含 HSS 用 K_HSS-M 生成/加密的信息。

mobile 收到后,如果能验证 auth_token,就知道:

生成这个 token 的实体知道自己和 HSS 共享的秘密。

所以 mobile 可以认证网络。


第三步:mobile 计算响应

mobile 也有 SIM 中保存的共享密钥。

它根据收到的信息计算:

text 复制代码
res_M

然后把 res_M 发送给 MME。


第四步:网络认证 mobile

MME 比较:

text 复制代码
res_M == xres_HSS

如果相等,说明 mobile 确实拥有 SIM 中的共享密钥。

所以 mobile 被网络认证。


第五步:生成密钥并通知 BS

MME 通知 BS:

text 复制代码
mobile is authenticated

并为 BS 生成相关密钥。

然后 mobile 和 BS 派生用于 4G link 加密的会话密钥。

最终结果是:

text 复制代码
mobile ↔ BS 的无线链路被加密保护

9.4 P99:4G 到 5G 的安全变化

P99 总结 4G 到 5G 的几个变化。

1. 认证决策位置不同

4G:

text 复制代码
visited network 的 MME 做 authentication decision

5G:

text 复制代码
home network 提供 authentication decision
visited MME 更像 middleman,但仍可以拒绝

2. IoT 场景下密钥机制变化

4G:

text 复制代码
uses shared-in-advance keys

5G:

text 复制代码
keys not shared in advance for IoT

也就是 5G 更适应海量 IoT 设备场景。


3. IMSI 隐私增强

4G:

text 复制代码
device IMSI transmitted in cleartext to BS

5G:

text 复制代码
public key crypto used to encrypt IMSI

所以 5G 对用户身份隐私保护更强。


10. P100-P113:防火墙与 IDS

P100 是目录页,进入 operational security。

前面讲的是密码学和协议安全,这里讲的是网络运行中的边界防护和攻击检测。


10.1 P101:防火墙是什么?

防火墙把组织内部网络和公网 Internet 隔离开。

它的作用是:

text 复制代码
允许一些 packet 通过,阻止另一些 packet 通过

内部网络是 trusted good guys,外部 Internet 被视为 untrusted bad guys。

当然现实中内部也可能有威胁,但防火墙首先是边界控制。


10.2 P102:为什么需要防火墙?

防火墙有几个目标。

1. 防止 DoS 攻击

例如 SYN flooding:

攻击者建立大量假的 TCP 连接,耗尽服务器资源,让真实连接无法建立。


2. 防止非法访问或修改内部数据

例如攻击者篡改网站首页。


3. 只允许授权访问

例如只允许认证过的用户或主机访问内部网络。

PPT 把防火墙分成三类:

  • stateless packet filters;
  • stateful packet filters;
  • application gateways。

10.3 P103:无状态包过滤 stateless packet filtering

无状态包过滤逐包判断。

它不记住之前连接状态,只看当前 packet 的字段。

判断依据包括:

  • source IP address;
  • destination IP address;
  • TCP/UDP source port;
  • TCP/UDP destination port;
  • ICMP message type;
  • TCP SYN、ACK bits。

优点:简单、快。

缺点:不知道这个包是否属于合法连接。


10.4 P104-P105:无状态过滤例子

例 1

规则:

text 复制代码
block incoming and outgoing datagrams
with IP protocol field = 17
and source or destination port = 23

其中 protocol field = 17 表示 UDP,port 23 是 Telnet。

结果:

  • 所有进入/出去的 UDP flows 被阻止;
  • Telnet connections 被阻止。

例 2

规则:

text 复制代码
block inbound TCP segments with ACK = 0

结果:

  • 外部客户端不能主动和内部客户端建立 TCP 连接;
  • 内部客户端仍然可以主动连接外部。

因为 TCP 连接建立的第一个 SYN 包通常 ACK=0,而外部返回给内部的连接响应会带 ACK。


P105 更多策略例子

常见策略可以这样理解:

目标 防火墙规则思路
不允许内部用户访问外部 Web 丢弃发往 port 80 的出站包
只允许外部访问机构公开 Web 服务器 只允许目的地址为公开服务器、目的端口为 80 的入站 SYN
防止 Web radio 占带宽 丢弃特定 UDP 流量,但保留 DNS 等必要 UDP
防 smurf DoS 丢弃发往广播地址的 ICMP
防 traceroute 探测 丢弃 outgoing ICMP TTL expired

核心是:

text 复制代码
无状态过滤根据包头字段做规则匹配

10.5 P106:ACL 访问控制列表

ACL:Access Control List。

它是一张规则表,每条规则是:

text 复制代码
(action, condition)

防火墙从上到下应用规则。

它和第 4 章 OpenFlow 的 match + action 很像。

注意:

text 复制代码
ACL 规则顺序很重要

因为前面的规则可能先匹配,后面的规则就不会再看。


10.6 P107-P108:有状态包过滤 stateful packet filtering

无状态包过滤是 heavy-handed tool,比较粗糙。

它可能放行一些"看起来像合法返回包"的 packet。

例如:

text 复制代码
dest port = 80, ACK bit set

但问题是:

内部主机也许根本没有建立过这个 TCP 连接。

有状态防火墙会维护 TCP 连接状态。

它会跟踪:

  • connection setup,例如 SYN;
  • connection teardown,例如 FIN;
  • inactive connection timeout。

只有当 packet 属于一个防火墙认为"说得通"的连接时,才允许通过。

P108 说 ACL 会增强为:

text 复制代码
规则匹配 + 检查 connection state table

10.7 P109:应用网关 application gateway

应用网关比包过滤更进一步,它不只看 IP/TCP/UDP 字段,还看 application data。

例子:只允许部分内部用户 telnet 到外部。

流程:

  1. 所有 telnet 用户必须先 telnet 到 gateway。
  2. gateway 验证用户是否授权。
  3. 对授权用户,gateway 建立到外部目标主机的 telnet connection。
  4. gateway 在两个连接之间转发数据。
  5. 路由器过滤掉所有不是 gateway 发起的 telnet 连接。

也就是:

text 复制代码
内部用户 ↔ application gateway ↔ 外部主机

优点:控制粒度细。

缺点:每种应用可能都需要专门处理,配置复杂。


10.8 P110:防火墙和网关的局限

防火墙不是万能的。

PPT 列出几个限制:

  1. IP spoofing:路由器不能总知道数据是不是真的来自声称的源地址。
  2. 如果多个应用需要特殊处理,每个应用可能都需要自己的 application gateway。
  3. 客户端软件必须知道如何联系 gateway,例如浏览器要设置代理地址。
  4. 对 UDP,过滤器经常只能采用 all-or-nothing 策略。
  5. 安全性和与外界通信能力之间存在 tradeoff。
  6. 很多高度保护的网站仍然会遭受攻击。

所以防火墙只能降低风险,不能保证绝对安全。


10.9 P111-P112:IDS 入侵检测系统

P111 讲 IDS。

Packet filtering 通常只看 TCP/IP headers,而且不检查多个 session 之间的关联。

IDS:Intrusion Detection System。

IDS 可以做:

  • deep packet inspection,深度包检测;
  • 查看 packet contents;
  • 把内容字符串与已知病毒、攻击字符串数据库比较;
  • 分析多个 packet 的关联。

IDS 可以检测:

  • port scanning;
  • network mapping;
  • DoS attack;
  • 已知攻击特征。

P112 说明一个网络里可以有多个 IDS sensors,放在不同位置:

  • DMZ;
  • Web server 附近;
  • FTP server 附近;
  • DNS server 附近;
  • internal network 边界。

不同位置做不同类型检查。


10.10 P113:全章总结

P113 总结本章。

基本技术:

  • symmetric cryptography;
  • public key cryptography;
  • message integrity;
  • end-point authentication。

应用场景:

  • secure email;
  • secure transport,TLS;
  • IPsec;
  • 802.11;
  • 4G/5G;
  • operational security:firewalls and IDS。

11. 全章总复习:一张表串起来

问题 需要的安全目标 典型工具
攻击者偷看内容 机密性 对称加密、公钥加密
攻击者冒充别人 认证 nonce、MAC、数字签名、证书
攻击者修改报文 完整性 Hash、MAC、数字签名
攻击者重放旧报文 新鲜性 / 防重放 nonce、sequence number、滑动窗口
公钥不知道属于谁 公钥认证 CA、certificate
大量数据需要加密 高效机密性 AES 等对称加密
不安全网络里共享密钥 密钥交换 RSA、DH、证书体系
浏览器安全访问网站 应用安全 TLS / HTTPS
VPN 保护 IP 数据报 网络层安全 IPsec / ESP / IKE
WiFi 接入认证加密 链路层安全 WPA3、EAP、RADIUS
蜂窝网络认证加密 移动网络安全 SIM、HSS、MME、BS、会话密钥
边界阻止恶意流量 运行安全 防火墙、ACL、IDS

12. 期末考试高频问题

12.1 对称加密和公钥加密有什么区别?

对比 对称加密 公钥加密
密钥 双方共享同一把密钥 公钥 + 私钥
速度
适合 大量数据加密 密钥交换、签名、认证
问题 密钥分发困难 公钥归属需要 CA
例子 DES、AES RSA

12.2 为什么 RSA 不直接加密大量数据?

因为 RSA 要做大整数模幂运算,计算量很大,而且一次只能处理很小的数据块。

实际做法是:

text 复制代码
RSA / 公钥密码:交换会话密钥
AES / 对称密码:加密大量数据

12.3 nonce 的作用是什么?

nonce 是只使用一次的随机数。

作用:

text 复制代码
防止重放攻击,证明对方是当前在线参与本轮认证的实体

12.4 数字签名和加密有什么区别?

加密的重点是:

text 复制代码
让别人看不懂

数字签名的重点是:

text 复制代码
证明是谁发的,并证明消息没被改

加密常用接收方公钥:

text 复制代码
公钥加密,私钥解密

签名常用发送方私钥:

text 复制代码
私钥签名,公钥验证

12.5 Hash、checksum、MAC、数字签名怎么区分?

机制 作用 是否需要密钥 能否抵抗恶意攻击
checksum 检测随机错误 不需要 很弱
cryptographic hash 生成消息指纹 不需要 强很多
MAC/HMAC 完整性 + 共享密钥认证 需要共享密钥 可以
数字签名 完整性 + 身份认证 + 不可否认 需要私钥/公钥 可以

12.6 CA 到底解决什么问题?

CA 解决的是:

text 复制代码
这个公钥到底属于谁?

不是用来加密正文,也不是用来代替 TLS。

证书本质上是:

text 复制代码
身份信息 + 公钥 + CA 的数字签名

12.7 TLS 和 IPsec 有什么区别?

对比 TLS IPsec
所在层次 传输层之上,应用层之下 网络层
常见应用 HTTPS VPN
保护对象 应用连接 IP datagram
认证方式 证书、公钥密码 IKE、PSK、PKI
对应用是否透明 应用通常要使用 TLS API 对上层更透明

12.8 AH 和 ESP 区别?

协议 源认证 完整性 机密性
AH 没有
ESP

ESP 更常用。


12.9 SPD 和 SAD 区别?

text 复制代码
SPD:Security Policy Database,策略数据库,决定 what to do
SAD:Security Association Database,安全关联数据库,决定 how to do it

12.10 防火墙三类怎么区分?

类型 看什么 是否记状态 特点
Stateless packet filter 当前包头字段 不记 简单快,但粗糙
Stateful packet filter 包头 + 连接状态表 能判断包是否属于合法连接
Application gateway 应用层数据 可以 控制粒度细,但复杂

结尾:这一章怎么复习最有效?

第 8 章不要按协议名死背,而要按"攻击---目标---工具---协议"的方式复习。

可以用下面这句话把整章串起来:

text 复制代码
网络中存在窃听、伪装、篡改、重放、中间人和拒绝服务攻击;
对称加密解决高效机密性,公钥密码解决密钥交换和签名,Hash/MAC 解决完整性,nonce 和 sequence number 防重放,CA 解决公钥归属;
这些机制组合成安全邮件、TLS、IPsec、WiFi/4G/5G 安全协议;
最后防火墙和 IDS 负责运行时的边界防护与攻击检测。

如果这条线能讲清楚,第 8 章基本就掌握了。

相关推荐
sdm0704271 小时前
网络原理-4.数据链路层
网络
User_芊芊君子1 小时前
无公网 IP 也能跨网互联:8 年技术沉淀的内网穿透 + 异地组网解决方案
网络·网络协议·tcp/ip
Rookie Linux1 小时前
使用Qt6 QML以及第三方库FluentUI、PCapPlusPlus开发一个自定义抓包软件
网络·c++·qt·cmake·qml
Stick_ZYZ2 小时前
A2A:让 Agent 从单兵作战走向团队协作
java·开发语言·网络·人工智能·python·ai
BizViewStudio2 小时前
2026 年 GEO 成为企业线上流量增长核心风口|2026 品牌 GEO 运营指南,6 家全链路优化服务商解析
运维·网络·人工智能·microsoft·ai
A_humble_scholar2 小时前
Linux(六)深入理解 Linux 进程管理:从硬件到调度
linux·网络
不昀2 小时前
VOOHU沃虎:如何选择卡侬自锁RJ45的安装方式?面板安装、PCB安装和穿墙式有何区别?
网络·以太网·电子元器件·rj45
GensAI2 小时前
2026 电话机器人系统并发量与响应延迟实测,6款产品压力测试对比
网络
sdm0704272 小时前
网络原理-5.NAT技术
服务器·网络·智能路由器