WIFI无线网络之PMF
WIFI无线网络之PMF
概述
Wi-Fi 中的 PMF 全称为 Protected Management Frames(受保护的管理帧)。它是 IEEE 802.11w 标准中引入的一项安全技术(现已并入 802.11-2012 及后续标准),旨在解决早期 Wi-Fi 网络中管理帧缺乏保护的安全漏洞。
核心概念:什么是“管理帧”?
在 Wi-Fi 通信中,数据包分为三种主要类型:
- 数据帧(Data Frames):传输用户的实际上网数据(如网页、视频)。
- 控制帧(Control Frames):用于协调介质访问(如 RTS/CTS)。
- 管理帧(Management Frames):用于管理 Wi-Fi 连接状态,如扫描网络、身份验证、关联、断开连接(Deauth/Disassoc)等。
在 PMF 出现之前,数据帧可以通过 WPA/WPA2 进行加密,但管理帧始终是明文传输且未经校验的。这就好比你和朋友在密室里用密码交谈(数据帧加密),但你们进出密室的开门声、关门声(管理帧)却是对着大街上广播的,且任何人都可以模仿这个声音。
为什么需要 PMF?(解决的安全隐患)
由于早期管理帧是明文且无完整性校验的,黑客可以轻易伪造管理帧发起攻击。PMF 主要为了防御以下攻击:
- 解除认证攻击(Deauthentication Attack / 踢人下线)
- 原理:黑客伪造路由器(AP)的 MAC 地址,向你的手机发送“解除认证(Deauth)”帧。手机信以为真,就会断开与路由器的连接。
- 危害:
- 拒绝服务(DoS):让你一直无法连上 Wi-Fi。
- 抓取握手包:强制你重新连接,以便黑客在后台抓取 WPA2 的四次握手包,用于离线暴力破解密码。
- 钓鱼 Wi-Fi(Evil Twin):把你从真实的 Wi-Fi 踢下线,迫使你的手机自动连接到黑客建立的名称相同、但没有密码的“伪造热点”。
- 解除关联攻击(Disassociation Attack)
- 与 Deauth 类似,强制设备断开与 AP 的关联。
- 伪造 Beacon / Probe Response(虚假热点广播)
- 黑客可以伪造路由器的信标帧,让你的手机以为某个网络存在,从而泄露你的设备 MAC 地址和探测记录,进行位置追踪。
PMF 的引入,给这些管理帧加上了“数字签名”和“加密”,让黑客无法再轻易伪造路由器发送断开连接的指令。
PMF 是如何工作的?(技术原理)
PMF 对管理帧的保护分为两种情况,因为有些管理帧必须公开,有些则必须私密:
1. 单播管理帧(Unicast Management Frames)
- 包含帧类型:Action、Deauthentication、Disassociation 等(路由器与特定手机之间的通信)。
- 保护方式:加密 + 完整性校验。
- 机制:使用设备与路由器之间协商的密钥(PTK,成对临时密钥)对帧进行 AES-CCMP 加密。即使黑客抓到了这些帧,也无法篡改内容,更无法伪造发送。
2. 广播/组播管理帧(Broadcast/Multicast Management Frames)
- 包含帧类型:Beacon(信标帧,用于广播 Wi-Fi 名称)、Probe Response(探测响应)等。
- 保护方式:仅完整性校验(不加密)。
- 机制:这些帧必须被周围所有未连接的设备看到(否则你的手机搜不到 Wi-Fi),因此不能加密。PMF 引入了 BIP(广播/组播完整性协议) 和 IGTK(完整性组临时密钥)。路由器会给这些公开的帧加一个“数字签名(MIC)”。手机收到后,如果发现签名不对,就知道这个广播是黑客伪造的,从而忽略它。
路由器的三种 PMF 配置模式
在支持 802.11w 的路由器设置中,PMF 通常有三个选项:
| 模式名称 | 中文含义 | 工作原理 | 适用场景 |
|---|---|---|---|
| Disabled | 禁用 | 不保护管理帧。完全向后兼容老旧设备,但存在被 Deauth 攻击的风险。 | 拥有大量 2012 年以前的老旧智能家居设备(如老式智能插座、旧打印机)的环境。 |
| Capable (或 Opportunistic) | 支持/机会模式 (推荐) | “能用则用”。如果手机支持 PMF,就启用保护;如果老旧设备不支持,则以明文方式降级连接。 | 绝大多数家庭和企业的最佳选择,兼顾了安全性和兼容性。 |
| Required | 强制要求 | 路由器强制要求连接的设备必须支持 PMF。不支持的老旧设备将完全无法连接 Wi-Fi。 | 对安全性要求极高的企业网络,或清一色新设备的环境。 |
PMF 与 WPA3 的强绑定关系
WPA3 标准将 PMF 设为强制性要求(Mandatory)。
- 在 WPA2 时代,PMF 是可选的(Opportunistic)。
- 在 WPA3 时代,如果没有开启 PMF,就不能被称为真正的 WPA3 网络。
- 常见痛点:很多用户买了新路由器开启 WPA3 后,发现家里的老旧电视、旧款扫地机器人或旧手机连不上 Wi-Fi。这通常不是因为密码错误,而是因为老旧设备的网卡不支持 PMF,被 WPA3 的强制安全策略拒之门外。
(注:为了解决 WPA3 的兼容性问题,Wi-Fi 联盟后来推出了 **WPA3-Transition Mode (过渡模式)**,允许路由器同时广播 WPA2 和 WPA3 信号,让老设备走 WPA2,新设备走 WPA3。)
Linux查看PMF支持
⚙️ 第一步:检查硬件是否支持 PMF
首先需要确认你的无线网卡硬件和驱动是否支持PMF。
通过 iw 命令检查(推荐)
这是最通用的方法,通过查看网卡支持的加密套件(Cipher Suites)来判断。
查看所有PHY设备信息:
iw phy这会列出所有无线物理设备。记下你要检查的设备名,通常是
phy0。检查特定PHY的加密套件支持:
iw phy phy0 info | grep -A 9 'Supported Ciphers'或者,更精确地搜索PMF专用的加密套件:
iw phy phy0 info | grep '00-0f-ac:6'00-0f-ac:6是AES-CMAC的 OUI(组织唯一标识符)。如果该命令有输出,说明硬件支持PMF。其他PMF相关的加密套件包括
GMAC-128 (00-0f-ac:11)和GMAC-256 (00-0f-ac:12)。检查驱动特性(可选):
如果你的iw版本是 5.0 或更高,可以检查驱动是否支持可选的PMF。iw phy phy0 info | grep MFP_OPTIONAL如果在输出中看到
MFP_OPTIONAL,说明驱动支持PMF。
🔗 第二步:检查当前连接是否使用了 PMF
即使硬件支持,也需要确认当前与AP(接入点)的连接是否真正启用了PMF。
使用 wpa_supplicant 的 STATUS 命令
如果你的Wi-Fi连接由 wpa_supplicant 管理,可以这样检查:
wpa_cli status
在输出中查找 pmf 字段:
-
pmf=1:表示当前BSS(基本服务集)可选地使用了PMF。 -
pmf=2:表示当前BSS要求使用PMF。
如果该字段不存在或值为0,则PMF未启用。
扫描并检查AP的广播信息
你可以通过扫描来查看AP是否宣告支持或要求PMF。请将 wlan0 替换为你的无线网卡接口名。
iw dev wlan0 scan | grep -A 20 'SSID: Your_AP_Name'
在返回的RSN(Robust Security Network)信息元素中查找:
-
MFP-required**:表示该AP要求**客户端必须使用PMF。 -
MFP-capable**:表示该AP支持**PMF,但不强制客户端使用。
注意:此方法仅显示AP的能力,不代表你的客户端当前连接已启用PMF。
📝 第三步:检查 PMF 的软件配置
PMF是否启用,最终取决于上层管理软件(如 wpa_supplicant 或 NetworkManager)的配置。
wpa_supplicant 配置
检查 wpa_supplicant 的配置文件(通常是 /etc/wpa_supplicant/wpa_supplicant.conf 或 /etc/wpa_supplicant.conf)。
在网络配置块(network={...})中,查找 ieee80211w 或 pmf 字段:
-
ieee80211w=0或 **pmf=0**:禁用PMF。 -
ieee80211w=1或 **pmf=1**:启用PMF(可选)。 -
ieee80211w=2或 **pmf=2**:启用PMF(必需)。
NetworkManager 配置
如果你使用 NetworkManager,可以通过以下命令查看或设置PMF属性:
- 查看:
nmcli con show "你的连接名称" | grep 802-11-wireless-security.pmf - 设置(例如,设置为可选):
nmcli con mod "你的连接名称" 802-11-wireless-security.pmf 1







