Wireless Network Security Analysis
概述
本文就无线网络安全协议(如 WEP、WPA/WPA2 等)的流程、安全性等做一些总结。
无线网络
STA 与 AP 建立连接的过程

无线局域网的安全问题
- 信道干扰。攻击层次位于物理层,WLAN 的频段是公开的,因此 Attacker 很容易通过发射同频段的噪声信号实现信道干扰。
- 窃听和嗅探。
- 伪造 AP。AP 和 STA 的网络拓扑关系为中心化的,所有 STA 都是通过接入 AP 后通过 AP 完成数据转发的。攻击者可以伪造一个 AP,并在信号强度上合法 AP 发射的信号,进而截获甚至篡改 STA 的通信数据。
- 重放攻击。
WEP 安全协议
WEP (Wired Equivalent Privacy) 是 IEEE 802.11b 中定义的第一个用于保护 WLAN 通信安全的协议。但目前因为其安全弱点,已经在 2003 年被 Wi-FI Protected Access淘汰,后来在 2004 年由完整的 IEEE 802.11i 标准(WPA2)所取代。
802.11b 支持开放系统认证(open system authentication) 和 共享密钥认证(shared key authentication)。开放系统认证,也就是无认证。
共享密钥认证
共享密钥认证过程并不复杂,如下图所示:
注意的是,上述认证过程是单向的,即只能 AP 向 STA 认证,因此 STA 容易受到伪 AP 的攻击。
数据加解密流程
加密流程:
加密数据帧 MPDU 格式:
解密流程:
安全性分析
- 密文逆向分析:根据加密流程,可以知道,当获取到两段密文 S1 和 S2 的情况下,即使不知道密钥流,也可以获得对应两个明文的异或结果。换句话说,在这种情况下,一旦知道了 S1 的明文,立即可以推导出 S2 的明文,反之亦然。因此,WEP 引入了 IV,这样每次加密时,即使密钥相同,IV 不同,也能产生不同的密钥流。
- 密钥破解:穷举 IV
- 数据完整性问题:CRC 不能解决身份认证问题,任何人根据明文都可以计算出 CRC 校验和。另外 CRC 具有线性性质,而且流密码器对异或运算也是线性的,从而使得数据篡改成为可能。
给定密文 C: $ C = RC4(IV, k) \bigotimes (M || CRC(M)) $
攻击者按如下方式可以将明文 M 修改为 M’:
a. 计算 M 和 M’ 的差分 $ \Delta $:$ \Delta = M \bigoplus M’ $
b. 创建新的密文 $ C’ $: $ C’ = C \bigoplus (\Delta || CRC(\Delta)) $
证明:
$$\begin{align}
C’ &= C \bigoplus (\Delta || CRC(\Delta)) \\
&= RC4(IV,k) \bigoplus (M \bigoplus \Delta || CRC(M) \bigoplus CRC(\Delta)) \\
&= RC4(IV,k) \bigoplus (M’ || CRC(M \bigoplus \Delta)) \\
&= RC4(IV,k) \bigoplus (M’ || CRC(M’)\\
\end{align}$$
因此,攻击者可以有针对性地对明文进行修改,而不用加密或者解密原消息。
WPA/WPA2/WPA3 安全协议
WPA 协议
由于 WEP 的安全性问题,IEEE 于 2003 年在 802.11g 标准中推出了 WPA(Wi-Fi Protected Access) 协议。
WPA 引入了临时密钥完整性协议 TKIP,相对 WEP,TKIP 在安全方面有两点增强:一是增加了密钥强度(但仍然使用 RC4 算法),从 40 位增加到 128 位;二是 MIC(Michael 算法) 代替 CRC 作为完整性校验算法。
加密过程:
解密过程:
WPA的安全性:
- 使用 MIC 替换 CRC,提高了数据传输的完整性保护能力。
- 动态变换密钥。在 TKIP 中,每个 STA 与 AP 进行通联时,会使用动态生成的临时密钥 TK。这个临时密钥通过将特定的会话内容与 AP 和 STA 生成的一些随机数以及 AP 和 STA 的 MAC 地址进行哈希运算来产生。
- 使用 TSC 来抵抗重放攻击:接收方接收到报文后会首先提取 TSC,如果 TSC 和上次相比不在合法范围内则认定为重放报文;如果重放攻击累积到一定次数,则中断连接。
WPA2 协议
IEEE 在 2004 年的 802.11i 标准对 WPA 协议进行了更新,称为 WPA2。WPA2 弃用 RC4 算法,改用 AES 加密算法。WPA2 协议配套使用的加密协议改为 CCMP (CTR mode with CBC-MAC Protocol)
CCMP 加密过程:
WPA/WPA2 的认证协议
- 802.1x 认证方式:双向认证,面向企业
- WPA-PSK 方式:采用预共享密钥进行认证,主要面向个人。在这种方式下, AP 和 STA 之间预共享有相同的 PMK,认证过程需要四次握手。
WPA-PSK 认证过程:
PMK 由 AP 的 SSID 和 Wi-Fi 口令生成。由 PMK、SNonce、Anonce、AP 和 STA 的 MAC 地址等作为输入,生成 PTK,再由 PTK 生成 MIC。MIC 在上述握手过程中,是最重要的身份识别码 。
WPA2 会遭受 KRACK 攻击:在四次握手过程中,第三个消息报文可能被篡改重放,可导致中间人重置重放计数器和随机数值(Nonce),重放给 STA端,使 STA 安装上不安全加密密钥。