第 8 章:安全演进 — 从明信片到强密码箱

"没有安全的通信,就像没有锁的门——任何人都能进来。"


本章导读

WiFi 安全的演进是一个不断修补漏洞的过程。从最初形同虚设的 WEP,到临时补丁 WPA,再到真正安全的 WPA2/WPA3。每一代安全协议的诞生,都是因为前一代被彻底攻破。

本章你将学到:

  • WEP:RC4 的错误使用方式如何毁掉一个协议
  • WPA/TKIP:临时补丁的局限
  • WPA2/CCMP:AES 加密与 4 次握手的完整机制
  • WPA3/SAE:Dragonfly 密钥交换与前向保密
  • 802.11w/PMF:保护管理帧不被伪造
  • 802.1X/RADIUS:企业级认证架构
  • 已知攻击与漏洞的完整梳理

安全演进时间线


1 WEP — 明信片(1997)

1.1 WEP 的加密流程

WEP(Wired Equivalent Privacy)使用 RC4 流密码加密数据帧:

WEP 加密流程

组件说明
RC4流密码,产生伪随机密钥流
IV24 位初始化向量,与密钥拼接后作为 RC4 种子
Key40 位或 104 位预共享密钥
CRC-32校验和,用于完整性校验(非密码学 MAC)
ICVIntegrity Check Value,CRC-32 计算结果

RC4 本身没有被攻破,问题在于 WEP 的使用方式——IV 太短、CRC-32 不是密码学 MAC、无密钥管理。

1.2 WEP 的致命缺陷

缺陷说明后果
IV 太短24 位 → 约 1677 万种忙碌网络几小时内 IV 重复
CRC-32 不安全线性运算,可被篡改攻击者可修改数据而不被发现
RC4 弱密钥某些 IV+ 密钥组合导致密钥流偏差可统计分析恢复密钥
无密钥管理所有用户共享同一密钥无法撤销单个用户的访问权限
无重放保护没有序列号机制可以重放旧的加密帧
IV 明文传输IV 不加密,与密文一起发送攻击者可收集 IV 进行分析

1.3 FMS 攻击原理

2001 年,Fluhrer, Mantin, Shamir(FMS)发表了针对 WEP 的攻击论文。核心发现:

RC4 的 KSA(Key Scheduling Algorithm)存在偏差

当 IV 格式为 (A+3, N-1, X) 时,KSA 的第一步不会充分扰乱 S [1],导致 PRGA(Pseudo-Random Generation Algorithm)输出的第一个字节有统计偏差。

1
2
3
4
5
6
7
8
正常情况: S[1] 应该被充分洗牌
弱 IV 情况: S[1] 的值与密钥字节 K[A] 高度相关

攻击步骤:
1. 收集使用弱 IV 的加密数据包 (约数百万个)
2. 统计每个密钥字节的偏差
3. 按概率从高到低恢复密钥字节
4. 完整恢复 104 位密钥

WEP 攻击原理

1.4 其他攻击方法

攻击方法年份原理所需时间
FMS 攻击2001弱 IV 导致密钥流偏差~1 小时
PTW 攻击2007利用更多弱 IV,效率更高几分钟
ChopChop2004逐字节剥离密文,利用 CRC-32 的线性性几分钟
Fragment 攻击2004利用碎片帧重组机制实时

1.5 为什么 CRC-32 不是 MAC

CRC-32 是为检测传输错误设计的,不是为安全性设计的:

1
2
3
4
5
6
7
8
9
CRC-32 的线性性质:
CRC(A XOR B) = CRC(A) XOR CRC(B)

攻击者可以:
1. 拦截密文 C 和对应的 ICV
2. 计算篡改数据的 CRC: CRC(Δ)
3. 构造新密文: C' = C XOR Δ
4. 新 ICV: ICV' = ICV XOR CRC(Δ)
5. 接收方验证通过!

交通比喻:WEP 就像用明信片寄送密码——理论上 "写在纸上" 了,但谁都能看到。锁是 8 位十六进制密码锁(24 位 IV,约 1677 万种组合),几小时就能试出来。而且 CRC-32 就像一个可以擦写的墨水印章——攻击者可以改了内容再盖一个新章。


2 WPA/TKIP — 临时补丁(2003)

2.1 TKIP 的改进

WPA(Wi-Fi Protected Access)是 WEP 的临时替代方案,核心改进是 TKIP(Temporal Key Integrity Protocol):

改进WEPWPA/TKIP
每帧密钥固定每帧不同(IV + 基密钥 + MAC 地址混合)
IV 长度24 位48 位(TSC,TKIP Sequence Counter)
完整性校验CRC-32Michael MIC(消息完整性校验)
密钥管理4 次握手(802.1X 或 PSK)
重放保护有(TSC 序列号计数器)

2.2 TKIP 密钥混合函数

TKIP 的核心创新是密钥混合函数——每帧使用不同的加密密钥:

TKIP 密钥混合函数

阶段输入输出作用
Phase 1TK + TA + TSC[47:16]TTAK(80 位中间密钥)将发送方 MAC 地址混入密钥
Phase 2TTAK + TK + TSC[15:0]WEP IV + RC4 Key每帧独立计算最终密钥

这解决了 WEP 的 IV 重用问题——即使两个 STA 使用相同的 IV,由于 MAC 地址不同,实际的 RC4 密钥也不同。

密钥混得再独立,也补不上 WEP 留下的另一个窟窿——CRC-32 能被线性篡改(§8.1.5)。所以 TKIP 的第二个改进是换掉完整性校验,用 Michael MIC 顶上。

2.3 Michael MIC

Michael MIC 是专门为 TKIP 设计的消息完整性校验算法:

特性说明
输出长度8 字节(64 位)
算法基于 Feistel 结构的轻量级设计,使用移位和 XOR 操作
安全性比 CRC-32 强得多,但不如 HMAC
设计约束必须在旧硬件上用软件实现(WEP 设备升级)

Michael MIC 的关键改进:如果检测到篡改,TKIP 会停止通信 60 秒,防止攻击者反复尝试。

2.4 TKIP 的攻击

TKIP 虽然大幅改进了 WEP,但仍基于 RC4:

攻击年份原理影响
Beck-Tews 攻击2008利用 RC4 偏差 + QoS 优先级队列可解密短帧(ARP)
Ohigashi-Morii 攻击2009改进 Beck-Tews,无需 QoS更广泛适用
Michael MIC 反击2008利用 MIC 的弱点可伪造短帧

交通比喻:WPA 就像把 3 位密码锁换成了 6 位密码锁(48 位 IV),并且每辆车都用不同的钥匙(每帧密钥)。但锁芯还是旧的(RC4),专业小偷仍然能打开。


3 WPA2/CCMP — 真正的保险柜(2004)

3.1 AES-CCMP 加密过程

WPA2(基于 802.11i)引入了 AES-CCMP(Counter Mode with Cipher Block Chaining Message Authentication Code Protocol),这是真正的安全升级:

特性WPA/TKIPWPA2/CCMP
加密算法RC4AES-128
密钥长度128 位128 位
完整性校验Michael MICCBC-MAC
模式拼凑式原生设计
安全性可被攻破至今未被攻破(CCMP)
硬件支持软件实现需要 AES 硬件加速

AES-CCMP 加密过程

CCMP 的并行处理

CCMP 的设计很巧妙——加密(CTR 模式)和完整性校验(CBC-MAC)使用同一个 AES 密钥,但并行执行:

1
2
3
4
5
6
7
8
9
加密过程 (CTR 模式):
Counter1 → AES(K) → XOR Block1 → Ciphertext1
Counter2 → AES(K) → XOR Block2 → Ciphertext2
Counter3 → AES(K) → XOR Block3 → Ciphertext3

完整性 (CBC-MAC):
Block1 → AES(K) → XOR Block2 → AES(K) → XOR Block3 → AES(K) → MIC

最终: CCMP Header(8) + Ciphertext + MIC(8)

3.2 4 次握手详解

WPA2 使用 4 次握手机制来协商会话密钥:

WPA2 四次握手

消息方向内容作用
Msg 1AP → STAANonceAP 发送随机数,STA 据此计算 PTK
Msg 2STA → APSNonce + MICSTA 发送自己的随机数 + 完整性校验
Msg 3AP → STAGTK (加密) + MICAP 发送组密钥 + 安装指示
Msg 4STA → APACKSTA 确认,双方开始加密通信

每条消息的详细说明

Msg 1:AP 生成随机数 ANonce,以明文发送给 STA。STA 收到后,结合自己的 SNonce 和双方 MAC 地址,计算出 PTK。

Msg 2:STA 生成 SNonce,连同自己的 MAC 地址发送给 AP。使用 KCK 计算 MIC,证明自己知道 PMK。

Msg 3:AP 计算出相同的 PTK,用 KEK 加密 GTK 发送给 STA。包含安装指示(Install bit),告诉 STA 可以开始使用密钥。

Msg 4:STA 确认密钥安装完成。双方开始使用 TK 加密数据帧。

为什么 AP 一定要等到 Msg 4 才发数据? 双向认证其实在 Msg 2、Msg 3 就完成了(Msg 2 的 MIC 证明 STA 知道 PMK,Msg 3 的 MIC 证明 AP 知道 PMK)。Msg 4 不承担认证,它的作用是密钥安装确认——装密钥的时序是「不对称」的:

  • STA 在收到 Msg 3 后就安装 PTK(它拿到 ANonce 能算 PTK,也验证了 AP 是真的);
  • AP 要等到 Msg 4 才安装 PTK

为什么不对称?因为 AP 无法确定 STA 到底有没有成功装上密钥:如果 AP 发完 Msg 3 就立刻用新 PTK 加密发数据,而 Msg 3 恰好丢了(或 STA 还没处理完),那 STA 手里根本没这把新密钥,解不开 AP 发来的数据,等于白发。Msg 4 就是 STA 给 AP 的那句「我装好了,你可以开始加密了」——AP 收到、验过 MIC,才敢用新密钥发包。

这个「STA 在 M3 装、AP 在 M4 装」的时序,也正是下面 8.3.5 讲的 KRACK 攻击下手的地方。

3.3 密钥层次结构

密钥层次结构

1
2
3
4
5
6
7
8
9
10
11
12
Passphrase (密码)

└── PBKDF2 ──→ PMK (256 bit, Pairwise Master Key)

├── 4-Way Handshake ──→ PTK (Pairwise Transient Key)
│ │
│ ├── KCK (128 bit) ──→ EAPOL 帧 MIC 计算
│ ├── KEK (128 bit) ──→ 加密 GTK 传输
│ └── TK (128 bit) ──→ 数据帧加密

└── Group Key Handshake ──→ GTK (Group Temporal Key)
└── 广播/组播帧加密

PTK 的计算

1
2
3
4
5
6
PTK = PRF(PMK, "Pairwise key expansion",
Min(AA,SPA) || Max(AA,SPA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))

(简化记法:PTK = PRF(PMK + ANonce + SNonce + MAC_STA + MAC_AP)
Min/Max 排序保证双方算出相同的 PTK
输出: PTK = KCK || KEK || TK (128)

3.4 Group Key 握手

Group Key 握手用于更新 GTK(组密钥),通常在 STA 断开连接后触发:

1
2
1. AP → STA: EAPOL-Key (GTK 加密, MIC)
2. STA → AP: EAPOL-Key (ACK, MIC)

GTK 用于加密广播和组播帧。当有 STA 离开网络时,AP 会更新 GTK,确保离开的 STA 无法继续解密组播流量。

3.5 KRACK 攻击

2017 年,Mathy Vanhoef 发现了 KRACK(Key Reinstallation Attack)漏洞:

攻击原理

KRACK 攻击

攻击步骤:

  1. AP 发送 Msg 3(安装密钥 K)给 STA
  2. STA 回复 Msg 4,但攻击者拦截,AP 没收到确认
  3. AP 超时后重发 Msg 3
  4. STA 重新安装密钥 K → nonce 计数器被重置为 0
  5. 使用相同密钥 + 相同 nonce 加密不同数据 → 攻击者可解密

影响范围:WPA2 的所有 4 次握手都受影响,包括 Fast BSS Transition (FT) 握手。

修复方案:802.11 标准更新,要求 STA 在密钥安装后不再接受重放的 Msg 3。

CCMP 基于 AES-CTR 模式(计数器模式)。它的加密逻辑很简单:

  • 密文 = 明文 XOR 密钥流

  • 密钥流 = AES (密钥, Nonce + 计数器)

其中:

  • 密钥:由四次握手生成,每个会话固定。

  • Nonce:一个 “一次性随机数”,保证每次加密用的密钥流都不同。

  • 计数器:同一个 Nonce 下,每加密一个数据包,计数器递增。

关键点:Nonce 的设计原则是 “一次性”——同一个密钥下,Nonce 绝对不能重复使用。

如果重复会发生什么?

1
2
数据包1:密文1 = 明文1 XOR 密钥流
数据包2:密文2 = 明文2 XOR 密钥流

注意,因为 Nonce 相同、密钥相同,所以密钥流完全一样。现在攻击者把两个密文做 XOR:

1
2
3
密文1 XOR 密文2
= (明文1 XOR 密钥流) XOR (明文2 XOR 密钥流)
= 明文1 XOR 明文2

** 密钥流被完全消掉了!** 攻击者虽然不知道密钥流,但他得到了 明文 1 XOR 明文 2。这是一个极其严重的信息泄露。

特别严重的情况:攻击者不仅能触发 Nonce 重置,还能诱使设备安装一个全零的密钥

3.6 Personal vs Enterprise

对比WPA2-PersonalWPA2-Enterprise
认证方式PSK(预共享密钥)802.1X + RADIUS
PMK 来源PBKDF2 (密码) 直接计算RADIUS 服务器生成并下发
用户管理所有人共用一个密码每人独立账号 / 证书
密钥撤销修改密码(影响所有人)禁用单个账号
适用场景家庭、小型办公室企业、校园、酒店
安全性可被离线字典攻击取决于 EAP 方法

交通比喻:WPA2 就像用 AES 加密的保险柜——锁芯是全新设计的(AES),钥匙是 128 位的随机密码。开锁前还要通过 4 步验证(4 次握手)确认身份。Personal 模式像所有住户共用一把钥匙,Enterprise 模式像每人一张门禁卡。


4 WPA3 — 强密码箱(2018)

4.1 SAE 握手(Dragonfly 协议)

WPA3 最大的改进是引入了 SAE(Simultaneous Authentication of Equals)握手,替代了 WPA2 的 PSK 模式。SAE 基于 Dragonfly 密钥交换协议(RFC 7664)。

SAE 握手流程

特性WPA2-PSKWPA3-SAE
离线字典攻击可能(捕获握手即可离线破解)不可能(必须在线交互)
前向保密无(PMK 固定)有(每次握手生成新 PMK)
密钥协商4 次握手(PMK 已知)SAE(Dragonfly)+ 4 次握手
等价身份不对等(AP 知道密码)对等(双方都证明知道密码)
抗阻塞有(Anti-Clogging)

SAE 的 Hunting-and-Pecking 算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
输入: 密码 + 双方 MAC 地址

├── 哈希: pwd-seed = H(MAX||MIN 双方 MAC, 密码 || counter)
│ │
│ ├── x 是否为二次剩余(曲线上有对应 y 坐标)?
│ │ ├── 是 → PWE (Password Element, 有效点)
│ │ └── 否 → counter++,重试
│ │
│ └── 直到找到有效点

└── 输出: PWE (椭圆曲线上的有效点)

关键: PWE 是有效点,不是随机数
知道密码的人才能计算出正确的 PWE
不知道密码的人无法从 PWE 反推密码

4.2 SAE Commit/Confirm 交换

SAE 握手分为三个阶段:

Phase 1: Hunting-and-Pecking

  • 双方独立计算 PWE(使用相同密码和 MAC 地址)
  • 不需要网络通信

Phase 2: Commit Exchange

1
2
3
4
5
STA → AP: Commit(scalar_STA, element_STA)
AP → STA: Commit(scalar_AP, element_AP)

scalar = (rand + mask) mod r ← 随机数 + 掩码
element = -(mask × PWE) ← 掩码 × 密码点,再取反

Phase 3: Confirm Exchange

1
2
3
4
5
AP → STA: Confirm = CN(SAE-KCK, send-confirm, 双方 commit 的 scalar/element)
STA → AP: Confirm = CN(SAE-KCK, send-confirm, 双方 commit 的 scalar/element)

(SAE-KCK 由共享点 K 导出,此时还没到 4 次握手)
双方验证 Confirm,确认对方也算出了同一个 K

PMK 派生

1
2
3
4
5
共享点 K = rand_STA × rand_AP × PWE   ← 双方各自算出同一个点
keyseed = H(salt, K) ← 从 K 提取熵
KDF(keyseed, "SAE KCK and PMK") → SAE-KCK + PMK

└── 进入标准 4-Way Handshake → KCK + KEK + TK(与 WPA2 相同)

PMK 算出来了,但 SAE 真正的价值要等握手之后才显形——同样叫 PMK,WPA2 是「一次生成、长期复用」,SAE 是「每次临时生成」。这个差异正是前向保密的分水岭。

4.3 前向保密与抗阻塞

前向保密(Forward Secrecy)

1
2
3
4
5
6
7
8
9
10
WPA2-PSK:
PMK = PBKDF2(密码) ← 固定不变
即使密码后来泄露,之前捕获的流量仍可解密

WPA3-SAE:
共享点 K = rand_STA × rand_AP × PWE ← 每次都含临时随机数
即使密码泄露(能算出 PWE),也拿不到 rand:
握手只暴露 scalar = (rand + mask) mod r 和 element = -mask × PWE
从 element 反推 mask 是离散对数难题(ECDLP)→ 拿不到 rand → 算不出 K
→ 之前捕获的流量无法解密

常见误解:Wireshark 不是靠密码解 WPA3:前向保密说的是「拿到密码 + 抓包,无法离线推算 PMK 去解密」。但 Wireshark 确实能解 WPA3 流量——它用的不是密码,而是从客户端 / AP 用 wpa_supplicant -d -K(或 hostapd)导出的现成 PMK keylog,把这个 PMK 当解密密钥。这等于你已经拿到了那把会话密钥本身(而且只能解那一个客户端↔AP 的连接),跟「知不知道密码」是两回事。真正「密码就能推 PMK」的只有 WPA2,这也正是 WPA2 无前向保密、可离线跑字典的原因。

抗阻塞(Anti-Clogging)

SAE 引入了 Cookie 机制防止 Commit 洪泛攻击:

1
2
3
4
1. 攻击者发送大量 Commit 请求
2. AP 要求请求者回传绑定其 MAC 地址的 Anti-Clogging TokenCookie 机制)
3. 未通过验证的请求被丢弃
4. 防止 AP 被 Commit 计算耗尽资源

4.4 192 位安全套件

WPA3 引入了 192 位安全套件(CNSA),用于企业级安全。默认的 128 位套件已够民用,但政府、金融、军事场景要对抗的是国家级算力,于是标准额外给出一档「全部组件同步升档」的高强度选项。读下表的关键,是把它看作同一条强度链条,而不是五条互不相干的参数:

组件128 位套件(默认)192 位套件(CNSA)
加密AES-128-CCMPAES-256-GCMP
哈希SHA-256SHA-384
密钥交换256 位 ECDH384 位 ECDH
PMK 长度256 位384 位
PTK 长度384 位704 位
适用场景一般用途政府、金融、军事

为什么五条组件要同步升档?因为安全强度由最弱的一环决定。只升 AES 到 256 位、哈希还停在 SHA-256,攻击者会绕开 AES 直接碰撞哈希;只加长 PMK、ECDH 仍用 256 位曲线,前向保密的「临时钥匙」就成了可被暴力破解的短板。所以 CNSA 是五条组件一起抬——加密、哈希、密钥交换、PMK、PTK,任何一条落下,整套就被拖回 128 位时代。

4.5 Transition Mode

WPA3 支持与 WPA2 共存的过渡模式:

模式说明安全性
WPA3-only只允许 WPA3-SAE 连接最高
WPA3 Transition同时允许 WPA3-SAE 和 WPA2-PSK较低(WPA2 是弱点)
WPA2-only只允许 WPA2-PSK较低

降级攻击能得手,是因为 Transition Mode 在信标里同时宣告 WPA2 和 WPA3 两种能力。攻击者架起一台同 SSID 的假 AP,只在信标里宣告 WPA2-PSK(或过滤掉真 AP 的 WPA3 能力宣告);STA 扫到「只有 WPA2 可用」,便退回 WPA2 的 4 次握手、用固定 PMK 认证。此时 SAE 的抗离线字典攻击形同虚设——攻击者抓一次握手,就能像 WPA2 时代一样离线跑字典破解密码。所以「不是 SAE 被破解,而是兼容性给攻击者留了扇回旧协议的后门」。

Transition Mode 会降低安全性,因为攻击者可以强制 STA 使用 WPA2 模式(降级攻击)。建议尽快迁移到 WPA3-only。

4.6 Dragonblood 漏洞

2019 年,Mathy Vanhoef 等人发现了 Dragonblood 漏洞,影响 WPA3 的 SAE 握手:

漏洞影响缓解措施
降级攻击强制使用 WPA2 模式禁用 Transition Mode
侧信道攻击通过计时信息推断密码使用 Hash-to-Curve 替代 Hunting-and-Pecking
拒绝服务洪泛 Commit 请求Cookie 机制
反射攻击重放对方的 Confirm序列号检查

侧信道攻击最微妙:H&P 循环逐个 counter 试探候选值是否为二次剩余,试探次数随密码不同而变,AP 响应时间便泄露了密码信息。Hash-to-Curve 改用确定性哈希把密码一步映射到曲线点,消除循环、抹平计时差,从根上堵住这条计时侧信道。

交通比喻:SAE 就像两个人互相证明自己知道密码——但不会直接说出密码。密码先被换算成一个双方都能算出的「密码点」PWE(两人共知的暗号底本);每次握手各自捏一个临时值 rand 和 mask,把 PWE 揉进去——scalar = rand + mask、element = -mask × PWE,再把揉过的结果互相交换。即使有人全程监听,也只能看到揉过的暗号,反推不出 PWE 和 rand(离散对数难题护着)。而且每次见面都用不同的暗号(前向保密)。

4.7 SAE-PK — 防「假 AP」的公钥配网

SAE 堵住了离线字典攻击,却堵不住「知道密码的冒牌 AP」——拿到密码的攻击者照样能架起一个同名 SSID 的 evil twin,骗客户端连上来做中间人。SAE-PK(SAE Public Key,WPA3 Specification v3.5 §6)补的正是这一环:AP 额外持有一对静态 ECDSA P-256 公私钥,配网密码被设成「AP 公钥指纹」的 Base32 编码(形如 a2bc-de3f-ghi4)。SAE Confirm 帧里捎上 AP 公钥、Modifier 和数字签名,STA 用密码里的指纹核对公钥、再验签名,才确认连的是真 AP。即使密码被社会工程方式泄露,攻击者没有对应私钥,仍无法冒充 AP。打个比方,这就像门禁卡上压着一枚物业独有的钢印:密码是卡面印的字,谁都能抄;但钢印是 AP 那对 ECDSA 私钥盖出来的——指纹写进密码,签名捎在 Confirm 帧里,STA 刷门禁时先对钢印再放行。偷到密码的人只能复制卡面文字,压不出钢印,冒充不了真 AP。


5 管理帧保护(802.11w/PMF)

5.1 为什么需要 PMF

在 802.11w 之前,管理帧(如 Deauthentication、Disassociation)是明文发送的,任何人都可以伪造:

1
2
3
4
5
6
攻击者伪造 Deauthentication 帧:
1. 目标 STA 的 MAC 地址(已知)
2. APMAC 地址(已知)
3. Reason Code(任意值)
4. 发送给 APAP 断开 STA 连接
5. 发送给 STA → STA 断开与 AP 的连接

这种攻击不需要知道密码,只需要知道 MAC 地址。这就是为什么需要 PMF(Protected Management Frames)。

5.2 PMF 的工作方式

PMF 机制

PMF 使用 CCMP 加密管理帧,防止伪造。关键机制是 SA Query 协议:

1
2
3
4
5
6
当 STA 收到 Deauthentication 帧时:
1. 不立即断开连接
2. 发送 SA Query Request (Action 帧) 给 AP
3. AP 回复 SA Query Response
4. 如果 Response 正确 → Deauthentication 是伪造的,忽略
5. 如果没有 Response → 可能是真的 Deauthentication

SA Query 超时与对抗分析

SA Query 的超时时间约为 200ms(具体实现可调,通常 200-1000ms)。超过这个时间没有收到 Response,STA 就认为 Deauth 可能是真的,接受断开。

这意味着理论上攻击者可以 "伪造 Deauth + 持续射频干扰" 来阻断 SA Query Response,迫使 STA 断开。但这已经不是协议层攻击,而是物理层干扰——需要持续占用信道、容易被频谱监控检测、且属于违法行为。PMF 防的是 "发几帧就能搞定" 的协议层攻击,物理层干扰不在其防护范围内。

不对称设计:STA vs AP 的处理方式

方向处理方式原因
攻击者伪造 Deauth → STASTA 发 SA Query 回拨确认STA 不确定 AP 的当前状态,需要确认
攻击者伪造 Deauth → APAP 直接丢弃明文管理帧AP 是策略执行者,知道哪些 STA 必须用 PMF,不合规的帧直接扔

AP 作为 Authenticator,对 PMF-capable 的 STA 发来的明文 Deauth 直接丢弃,不需要 SA Query。STA 作为 Supplicant,无法确定收到的 Deauth 是否真的来自 AP,所以需要 SA Query 回拨验证。这种不对称设计反映了 AP 和 STA 在安全架构中的不同角色。

PMF 模式WPA2WPA3MLO
Optional可选不允许只选 Optional
Required可选强制强制

5.3 PMF 与 MLO 的关系

802.11be 明确要求 MLO 必须在 RSNA 下运行,PMF 对 MLO 是 mandatory

要求说明协议引用
MLO 必须 RSNAOpen System 无法建立 MLO 连接802.11be Section 12.6.3.2
PMF 强制所有 MLO 管理帧必须受保护802.11be Section 12.6.3.1
EML 帧保护EML Operating Mode Notification 使用 Category 37802.11-2024

交通比喻:802.11w 就像给路牌加上防伪标签——伪造的 "前方封闭" 路牌(伪造的 Deauthentication 帧)不再能骗到车辆。WPA3 强制要求所有路牌都有防伪标签,MLO 连接更是如此。


6 Enterprise 认证(802.1X)

6.1 802.1X 架构

802.1X 架构

802.1X 定义了三个角色:

角色设备职责
SupplicantSTA(客户端)提供认证凭据(证书 / 用户名密码)
AuthenticatorAP / 控制器中间人,转发 EAP 帧,不接触密码
Authentication ServerRADIUS 服务器验证身份,生成会话密钥

关键设计:AP 不知道用户的密码,只负责转发。这大大降低了 AP 被攻破后的风险。

6.2 EAP 方法

EAP(Extensible Authentication Protocol)是认证框架,支持多种认证方法。这些方法的分工,本质是在「证书的双向强认证」与「密码的部署便利」之间权衡——证书挡得住中间人,但每台设备都要装;密码轻便,但得靠 TLS 隧道护住内层:

EAP 方法认证方式安全性适用场景
EAP-TLS双向证书认证最高(强制证书)高安全环境(政府、金融)
PEAPTLS 隧道 + 用户名 / 密码高(单向证书)企业最常用
EAP-TTLS类似 PEAP,更灵活需要多种内层认证
EAP-MSCHAPv2用户名 / 密码(弱于 TLS)中等PEAP 内层

企业快速接入场景还有 EAP-RP(Re-authentication Protocol)——首次认证后缓存主会话,之后重连只做一次轻量交换,配合 802.11ai 的 FILS 把重连压到毫秒级。

EAP-TLS 流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
STA ←→ AP ←→ RADIUS
│ │ │
├── EAP-Start ──→
│ │──── Access-Request ────→│
│ │←─── EAP-Challenge ─────│
│←─ EAP-Challenge ──────│
│── EAP-Response(证书) ──→│
│ │──── Access-Request ────→│
│ │ │ 验证证书
│ │←─── Access-Accept+PMK ─│
│ │ 安装 PMK
│←─ EAP-Success ────────│
│ │
└── 4-Way Handshake ──→ PTK ──→ 加密连接

6.3 RADIUS 服务器

RADIUS(Remote Authentication Dial-In User Service)是认证服务器协议:

功能说明
认证验证用户身份(证书、用户名 / 密码、LDAP)
授权决定用户的访问权限(VLAN、带宽限制)
计费记录用户的连接时间、流量
密钥管理生成 PMK 并安全传输给 AP

常用 RADIUS 服务器:FreeRADIUS(开源)、Microsoft NPS、Cisco ISE。

交通比喻:802.1X 就像机场安检——乘客(STA)出示证件给安检员(RADIUS),安检员验证后通知登机口(AP)放行。登机口不知道你的证件信息,只知道 "这个人可以登机"。


7 已知攻击与漏洞总结

读这张清单,按协议代际分层——WEP 三重致命(FMS/PTW/ChopChop)、WPA/TKIP 被 RC4 拖累(Beck-Tews)、WPA2 倒在密钥重装(KRACK)、WPA3 纠缠降级与侧信道(Dragonblood),另有跨代际的 FragAttacks 与 Deauth 伪造。

攻击名称年份影响协议原理严重程度
FMS 攻击2001WEP弱 IV 导致密钥流偏差致命
PTW 攻击2007WEP改进 FMS,效率更高致命
ChopChop2004WEP利用 CRC-32 线性性致命
Beck-Tews2008WPA/TKIPRC4 偏差 + QoS
KRACK2017WPA2密钥重装攻击
Dragonblood2019WPA3/SAE降级 + 侧信道
FragAttacks2021所有协议帧碎片化漏洞
Deauth 攻击自 802.11 诞生无 PMF伪造管理帧

FragAttacks(2021):Mathy Vanhoef 发现的漏洞,利用 802.11 帧碎片化机制的设计缺陷。攻击者可以:

  • 将恶意数据注入到第一个碎片中
  • 利用接收方重组碎片的逻辑错误
  • 影响所有 WiFi 标准(包括 WPA3)

缓解措施:固件更新,禁用不需要的碎片化功能。


8 安全演进总结

年份协议加密完整性密钥管理安全性交通比喻
1997WEPRC4CRC-32形同虚设明信片
2003WPARC4 (改进)Michael MIC4 次握手临时方案带锁信箱
2004WPA2AES-128CBC-MAC4 次握手安全至今保险柜
2018WPA3AES + SAECBC-MAC/GCMPSAE + 4 次握手更安全强密码箱

安全选择建议

场景推荐原因
家庭网络WPA3-SAE简单易用,防离线破解
小型办公室WPA3-SAE无需 RADIUS 服务器
企业网络WPA3-Enterprise (EAP-TLS)证书认证,最强安全
高安全环境WPA3 192 位套件CNSA 级别,政府 / 金融
遗留设备WPA2 (过渡)尽快升级到 WPA3

本文之外,WPA3 时代还有几条没展开的支线——开放网络用 OWE(Enhanced Open,机会性无线加密)给「无密码」的公共热点补上每客户端独立密钥,防明文嗅探;有密码的公共网络,则靠上文 §8.4.7 的 SAE-PK 防「假 AP」;企业侧,FILS(Fast Initial Link Setup,802.11ai)把发现、认证、关联的帧交换压到最少,专治机场、高铁这类「快速接入」场景。这些连同 SAE,把 WPA3 对「个人密码网络」与「企业快速接入」的防线补齐了。

WiFi 安全不是一次性设置,而是持续演进的过程。WEP 曾经被认为 "足够安全",但 4 年后就被彻底攻破。今天的 WPA3 也可能在未来被攻破。保持更新,使用最强的安全配置,是唯一可靠的策略。


下一章将讲述:EDCA 如何用不同的竞争参数实现优先级?802.11 的每一种帧类型和信息元素有什么作用?QoS 从 802.11e 到 802.11be 经历了怎样的演进?