📡 第六章 高速普及的无线LAN及其基础知识
📄 一句话概括

WEP 的致命伤是「24 位 IV」——一小时就会重复,密钥流也就重复了。 TKIP 是打补丁,CCMP 才是重新设计。今天只该用 CCMP(WPA2/WPA3)。

📝 本节和前面几节的关系

上一节讲认证(你是谁),这一节讲加密(别人听不听得懂)。 这一节的关键是「IV 太短」这个具体的错误,它比任何「WEP 不安全」的笼统说法都有用。

一、WEP 错在哪:IV 只有 24 位

WEP 用 RC4 流密码:发送方用「密钥 + IV」生成一段密钥流,和数据异或。 接收方用同样的「密钥 + IV」还原。

问题在于 IV 只有 24 位,也就是 1677 万种。 而「IV 重复」意味着「密钥流重复」——两个包异或一下,密钥流就消掉了,剩下两段明文的异或。

按生日问题算:大约 4800 个包之后,IV 重复的概率就到一半。 而一个繁忙的 AP 一小时能发几十万个包,所以「IV 重复」不是理论风险,是每小时都在发生的事。

还有第二处错: WEP 的完整性校验(CRC32)是线性的,攻击者可以在不知道密钥的情况下篡改数据并修正校验值。 所以它不但「看不牢」,而且「改得动」。

二、TKIP:给旧芯片打的补丁

TKIP 没换 RC4,因为当时的芯片只会算 RC4。 它做了三件事来撑住: 一、IV 从 24 位扩到 48 位(并且用「每包换密钥」的方式混合)。 二、加一个消息完整性校验(MIC),用的是带密钥的算法,不再是线性 CRC。 三、加「重放保护」,同一序号重复的包直接丢。

所以 TKIP 是「在不换硬件的前提下,把能补的都补上」: 它的安全性远好于 WEP,但结构上仍然是「RC4 + 拼补」, 后面还是被找出了漏洞(比如 Beck-Tews 攻击)。

这一段历史的意义是: 「兼容性优先」的修补方案,往往只能延缓而无法解决——因为它的约束(旧芯片)本身就是问题的来源。

三、CCMP:重新设计

CCMP 用 AES-CCM,把「加密」与「完整性」放在同一个算法里做。 IV 48 位、计数器模式、每包一个独立的 nonce,从结构上避免了「密钥流重复」这个问题。

它在 802.11i 里定下来,就是今天的 WPA2。 而 WPA3 进一步加了「对等实体同时认证」(SAE)与「前向保密」。

代次 算法 关键改进


WEP RC4 24 位 IV,线性校验 TKIP RC4 + 每包换密钥 48 位 IV,加 MIC CCMP AES-CCM 加密与认证一体,48 位

今天的建议只有一条:只用 WPA2 或 WPA3(CCMP),把 WEP 与 TKIP 全部关掉。 因为「兼容老设备」的代价,是「整网降级到可被破解的加密」——而这笔账怎么算都不划算。

四、动手 Demo:WEP 的 IV 只有 24 位,问题在哪

这段算 24 位 IV 的空间,再用生日问题估算「多少个包之后有一半概率出现重复」,并对比三代加密。

iv = 2 ** 24
collide = 1.1774 * math.sqrt(iv)
P(u"  IV 空间:2^24 = %s 个。" % format(iv, u","))
P(u"  约 %.0f 个包后有一半概率重复。" % collide)

实跑输出:

--------------------------------------------------------------------
WEP 的 IV 只有 24 位,问题在哪
--------------------------------------------------------------------
**WEP 用 RC4 流密码,每包带一个 24 位的 IV(初始化向量)。**
**IV 重复,密钥流就重复——而 24 位太短了。**

  IV 空间:2^24 = 16,777,216 个。

**按生日问题算「多少个包之后有一半概率出现重复」**:

  1.1774 × √16,777,216 ≈ 4823 个包。

**一个繁忙的 AP 一小时能发几十万个包**,**所以「IV 重复」不是理论风险,是每小时都会发生的事。**
**而两个包用同一个密钥流,把密文异或一下就能消掉密钥流**——
**剩下的就是两段明文的异或,用统计方法就能还原。**

**三代加密的对照**:

  代次     算法                 IV 与防护
  -------------------------------------------------------
  WEP      RC4                  24 位 IV,无完整性
  TKIP     RC4 加每包换密钥     48 位,加了 MIC
  CCMP     AES-CCM              48 位,加密与认证一体

**TKIP 是「给 WEP 打补丁」**:
**它没换算法,靠「每包换密钥」撑住**——**而这是被迫的,因为当时的芯片只会算 RC4。**
**CCMP 才是「重新设计」,也是今天唯一该用的那个。**

「4800 个包」这个数字比「WEP 不安全」有用一万倍:它给出了「多快会被破」的量化答案。 而一个繁忙的 AP 几秒钟就能发满 4800 个包。

注意「CRC32 是线性的」这一条:它说明 WEP 的问题不只是「保密性差」,还有「完整性可伪造」。 而「改了数据还能通过校验」这件事,比「读得到」更严重。

最后那句「不要为了兼容老设备而降级」是最实用的建议: 因为「整网用 WEP」等于「整网没有加密」,而「少数老设备连不上」只是「少数人抱怨」。 两害相权,答案很清楚。

30 秒实验

  1. 看你路由器的加密方式,选的是 WPA2 还是 WPA3。
  2. 查一下有没有「WPA/WPA2 混合」这个选项,它意味着什么。
  3. 想一想:为什么 TKIP 最终也被弃用了?

常见误区

  1. 以为 WEP 只是「密钥短」。密钥可以是 104 位,问题在 IV 只有 24 位。
  2. 以为 TKIP 足够安全。它仍基于 RC4,后来被找出实际攻击方法。
  3. 以为「WPA/WPA2 混合」是好事。它允许降级,等于保留了弱点。
自测三问(点开对答案) 1. WEP 的致命缺陷是什么? —— IV 只有 24 位,约 4800 个包就会重复,导致密钥流重复可被还原。 2. TKIP 做了哪三件事? —— IV 扩到 48 位、加带密钥的 MIC、加重放保护。 3. 为什么「WPA/WPA2 混合模式」不建议开? —— 它允许客户端降级到较弱的方式,等于保留了可利用的弱点。

下一节:从单台管理到集中管理——两种 AP 的形态。

相关笔记