官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
摘要
WiFi设备通常会在网络堆栈的各个层对帧进行排队,例如在传输之前或当接收器处于睡眠模式时。本研究旨在探讨WiFi接入点如何管理队列中的帧的安全上下文(security context)。本文展示了攻击者如何通过利用省电机制(power-save)来欺骗接入点,导致其以明文、组或全零密钥加密的方式泄露帧(编号为CVE-2022-47522)。通过对多个开源网络堆栈进行了攻击实验,研究者验证了此WiFi加密绕过漏洞的成因。结果表明,IEEE 802.11标准中缺乏对管理缓冲帧安全上下文的明确指导。相关代码已经开源:https://github.com/domienschepers/wifi-framing
0x01 简介
在许多情况下,WiFi设备会在传输上层数据包之前对其进行缓冲或排队。这种做法主要用于节省电话和笔记本等设备的电量。早期的802.11标准已经包含了省电机制,允许客户端进入低功耗的休眠状态。当客户端处于休眠状态时,接入点(Access Point,AP)会将待发送至客户端的帧进行缓冲。这些缓冲的帧随后按照特定的协议传输到客户端。此外,当发送方等待可用的介质访问或等待需要重新传输的帧的确认时,也可能会在硬件层面对帧进行排队。在接收器端,帧也可能被缓冲,例如通过帧分段将大帧拆分为较小的片段进行传输。接收器会将这些帧片段缓冲直到接收到所有片段,然后进行重组。
尽管队列本身是一种标准的数据结构,但是在WiFi设备中管理802.11帧的安全上下文并不容易。在IEEE 802.11标准中,"安全上下文"被用作安全关联(Security Association)的同义词。安全上下文包含了与对等方安全通信所需的所有信息,例如协商的会话密钥、使用的加密协议、当前数据包计数器等。安全上下文用于发送和接收帧。这项研究调查了在网络堆栈中所有队列传输、排列或缓冲WiFi数据包时对安全上下文的(错误)管理,产生此漏洞的根本原因是IEEE 802.11 标准的定义模糊。
0x02 背景
A. WiFi 省电机制
自1997年首次发布以来,省电机制一直是IEEE 802.11标准的一部分。随着IEEE 802.11e修订版的推出,该标准引入了无线局域网(WLAN)网络的服务质量(QoS)增强功能,并采用了更先进的省电机制。
1) WiFi 堆栈中的帧队列
了解帧的排队时间和位置(例如,在网络堆栈中的位置)非常重要。 在下图中展示了客户端站和接入点之间典型的省电消息交换。 在连接期间的任何时刻,客户端站都可以指示其进入省电模式。为此,客户端可以通过设置IEEE 802.11标头帧格式中的功率位来进行操作。当接入点接收到要传输到客户端的帧时,它们将被缓冲在内核的传输队列中,直到客户端被唤醒(例如,通过轮询数据)或者帧的生命周期结束(即,帧在队列中等待的最长持续时间)。在此期间,所有排队的帧都以明文形式存储。一旦客户端表明其被唤醒,接入点的内核就可以将所有缓冲的帧出队,应用任何加密操作,并将它们传输到客户端站点。
除了在内核中的传输队列,帧还可以通过硬件进行排队。这可能是因为需要等待访问无线信道,或者在接收器未确认所传输的帧时允许进行重传。根据硬件功能(例如,对硬件加密的支持),排队的帧可以以明文形式存储,或者在硬件中进行加密处理。
2) 可缓冲帧
当客户端处于省电模式时,接入点将缓冲其帧。然而,并非所有帧都可以被缓冲。为了规范哪些帧可以被缓冲,IEEE 802.11标准定义了可缓冲单元(Bufferable Unit,BU)。可缓冲单元可以使用省电机制进行排队,而所有其他单元将立即传送。
可缓冲单元包括MAC服务数据单元(MAC Service Data Unit,MSDU)、聚合的MAC服务数据单元(Aggregated MSDU,A-MSDU)和MAC管理协议数据单元(MAC Management Protocol Data Unit,MMPDU)。由于并非所有MMPDU帧都可以被缓冲,因此该标准定义了多个分类。其中一个分类定义了哪些MMPDU操作帧(除了精准测时机制)以及解除关联和解除认证帧中携带的MMPDU是可缓冲的:
"在一个或多个操作中携带的MMPDU(除了精准测时帧和精准测时请求帧),以及解除关联或解除认证帧中携带的MMPDU。"
这明确表明,并非所有帧类型都可以被缓冲。认证和关联响应消息就是不可缓冲的帧类型的明显示例。根据标准,有资格被缓冲的帧类型的一个重要示例是安全关联查询消息(Security Association Query,SA Query)。这些消息用于在WiFi管理帧保护(Management Frame Protection,MFP)下保护安全关联(Security Association)。
B. WiFi管理帧保护
WiFi管理帧保护(MFP)标准化了管理帧的保护机制,包括数据机密性、完整性、来源真实性和重放保护。WiFi MFP在802.11w修订案中进行了定义,并被纳入了2012版的802.11基本标准中。这种新的保护机制提高了管理框架的安全性,管理框架代表了所有管理帧的子集。通过引入这些新的防御措施,网络可以有效地抵御各种已知的滥用管理帧的攻击,比如解除认证攻击,该攻击可能会中断客户端与网络的连接。自2020年起,WiFi联盟在其所有认证计划中强制要求采用WiFi MFP和Wi