适用场景
企业办公无线、门店与仓储 AP、访客 WiFi 只要还在使用 WPA2-PSK,就存在被抓包后离线爆破的风险。本文给出 WPA3 无线安全加固的完整配置路径:以 hostapd 开启 SAE 认证与 PMF 强制管理帧保护,关闭 WPS 与 TKIP 降级通道,并用 wpa_supplicant 与抓包工具逐项验证加固效果。
前置条件
- AP 或无线控制器支持 802.11ax/ac wave2(hostapd 2.6 及以上、OpenWrt 21.02 及以上)
- Linux 网关或 AP 主机已安装 hostapd 与 wpa_supplicant(建议 2.9+,修复 Dragonblood 系列缺陷)
- 存在 RADIUS 服务器(用于 WPA3-Enterprise / 802.1X 场景),FreeRADIUS 3.0+ 即可
- 测试终端支持 WPA3(Android 10+、iOS 13+、Windows 11)
- 调试期间准备一台可抓包的 Linux 主机(
aircrack-ng、hcxdumptool)
原理说明
WPA2-PSK 的弱点集中在四次握手:整个握手过程只依赖 PMK = PBKDF2(密码, SSID, 4096),而握手中交换的 ANonce、SNonce、MIC 全部可以从空中抓到。攻击者离线拿到握手包后,即可用字典反复尝试密码,整个过程不与 AP 交互,无法被检测。更进一步,PMKID 攻击(基于 RSN IE 中的 PMKID 字段)甚至不需要等待客户端上线,抓到一个 EAPOL 帧即可开跑。
WPA3 用 SAE(Simultaneous Authentication of Equals,基于 Dragonfly 握手)替代 PSK 握手,把认证过程改为交互式零知识证明:每次认证都会产生新的临时密钥,攻击者即便抓到完整握手也无法离线推导密码,只能对 AP 发起在线猜测,而在线猜测会被速率限制与锁定机制挡住。
另外两项必须同时启用的能力是:
- PMF(802.11w 管理帧保护):对去认证、去关联等管理帧做完整性校验,阻止攻击者伪造 deauth 帧把客户端踢下线,从而诱使其重连并抓包。
- 禁用 WPS 与 TKIP:WPS PIN 存在可暴力枚举的设计缺陷(Pixie Dust 攻击可在数分钟内离线算出 PIN),TKIP 则不具备现代密码学强度,且它的存在会强制 AP 回落到 WPA/WPA2 混合模式。
需要特别注意 WPA3 过渡模式(WPA2/WPA3 Mixed):处于过渡模式时,AP 同时广播两种 RSN IE,攻击者可建立仅支持 WPA2 的伪造 AP 诱使客户端回落,形成降级攻击。安全加固的目标应是纯 WPA3 或 WPA3-Enterprise,过渡模式只能在迁移期短期使用。
另有一类常被忽略的缺陷是密钥重装攻击(KRACK,CVE-2017-13077 系列):它利用四次握手与快速漫游(802.11r)中的状态机缺陷,通过重放握手的第三个消息使客户端重装密钥,从而解密或注入流量。修补方式除了升级 wpa_supplicant 与 AP 固件,更关键是启用 PMF——PMF 会对接相关帧做完整性保护,使重放失去意义;802.11w 的 SA Query 机制也会在收到可疑去关联帧时主动向客户端确认,进一步阻断伪造攻击。
操作步骤
1. 备份并改写 hostapd 配置
cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.bak
# /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=Corp-Secure
hw_mode=a
channel=36
ieee80211n=1
ieee80211ac=1
ieee80211ax=1
# 仅启用 WPA3-SAE,不保留 WPA2 混合,避免降级
wpa=2
wpa_key_mgmt=SAE
rsn_pairwise=CCMP
ieee80211w=2
group_mgmt_cipher=BIP-CMAC-256
sae_pwe=2
sae_confirm_immediate=1
sae_require_mfp=1
sae_groups=19 20 21
sae_max_num_sta_after_restart=0
# 密码与 PMK 缓存
sae_password=ChangeMe_StrongerPassphrase_2026
wpa_passphrase=ChangeMe_StrongerPassphrase_2026
sae_anti_clogging_threshold=5
sae_sync=5
# 关闭 WPS、TKIP、旧协议
wps_state=0
eap_server=0
wpa_pairwise=CCMP
disable_pmksa_caching=0
# 关闭 Wi-Fi Direct 与 P2P,减少攻击面
p2p_disabled=1
wmm_enabled=1
multicast_to_unicast=1
ap_isolate=1
beacon_int=100
dtim_period=2
country_code=CN
关键参数含义:ieee80211w=2 表示管理帧保护强制开启(1 为可选,2 为必须);sae_pwe=2 使用哈希到元素(H2E)方式派生 SAE 密码元素,可同时缓解 Dragonblood 的侧信道与降级攻击;sae_require_mfp=1 拒绝不支持 PMF 的客户端接入。
2. 启用 WPA3-Enterprise 192 位模式(可选,高安全区使用)
# 切换到企业级认证
wpa_key_mgmt=WPA-EAP-SHA256
ieee80211w=2
group_mgmt_cipher=BIP-GMAC-256
rsn_pairwise=GCMP-256
auth_server_addr=10.0.0.20
auth_server_port=1812
auth_server_shared_secret=RADIUS_Shared_Secret
own_ip_addr=10.0.0.1
WPA3-Enterprise 192 位模式要求椭圆曲线使用 GCMP-256 与 BIP-GMAC-256,配合 EAP-TLS 双向证书,是当前商用场景下最强的无线认证组合。
3. 启动并观察握手日志
systemctl restart hostapd
journalctl -u hostapd -f | grep -iE "sae|pmf|mfp|assoc"
4. 无线入侵检测:识别 deauth 泛洪
即便启用了 PMF,仍需监控是否有人在广播伪造的 deauth 帧。用 tcpdump 在监听接口上采样:
# 抓取所有管理帧中的去认证帧(子类型 12)
tcpdump -i wlan0 -e -s 256 -nn \
"type mgt subtype deauth or type mgt subtype disassoc" -c 200
若短时间内出现大量源 MAC 不属于本网 AP 的 deauth 帧,说明存在泛洪攻击,应在控制器侧启用 802.11w 强制 + 客户端锁定 + 射频干扰检测。
5. 访客网络隔离与客户端隔离
办公 SSID 与访客 SSID 必须落到不同 VLAN,并在 AP 侧启用客户端隔离,防止同一无线网络内的终端互相扫描与横向移动。访客网络只放行到 Internet 的出口,禁止访问内网网段与无线控制器管理地址。
# 访客虚拟接口(hostapd 多 BSS)
bssid=02:00:00:00:01:00
ssid=Guest
wpa_key_mgmt=WPA-PSK-SHA256
ieee80211w=1
bridge=br-guest
# 网关侧:禁止访客 VLAN 访问内网
iptables -A FORWARD -i br-guest -o br-lan -j DROP
iptables -A FORWARD -i br-guest -o br-wan -j ACCEPT
配置验证
- 确认 SSID 的 RSN 能力:
iw dev wlan0 scan | grep -A3 "Corp-Secure",输出中应出现SAE与MFP-capable / MFP-required,且不再出现PSK单纯项。 - 客户端连接验证:在 Linux 终端用 wpa_supplicant 连接,日志出现
SAE: Authentication completed successfully即认证正常;若出现SAE: Anti-clogging token required属于正常反泛洪机制。 - 抗离线爆破验证:用 hcxdumptool 尝试抓取 PMKID:
hcxdumptool -i wlan1 -o dump.pcapng --enable_status=1,再用hcxpcapngtool -o hash.22000 dump.pcapng转换。若配置正确,转换结果中不会产生可用的 PMKID 或握手哈希。 - PMF 生效验证:用
aireplay-ng --deauth 10 -a <AP_MAC> -c <STA_MAC> wlan1发起去认证攻击,启用 PMF 的客户端应保持在线,日志中 AP 会记录SA Query过程。 - 降级防护验证:确认
hostapd.conf中wpa_key_mgmt仅为SAE,不含WPA-PSK。
常见问题
Q1:公司还有一批老设备只支持 WPA2,能不能开混合模式?
可以,但要限定范围与期限。推荐做法是按 SSID 分权:新建一个纯 WPA3 的 Corp-Secure 供办公终端使用,再单独开一个 WPA2/WPA3 混合或仅 WPA2 的 Corp-Legacy 供老设备过渡,并在 ACL 中把 Legacy SSID 限制到特定 VLAN,隔离到不可访问内网核心网段。切忌在一个 SSID 上长期保留混合模式,那等于把整个网络的强度拉回到 WPA2。
Q2:启用 PMF 强制(ieee80211w=2)后,部分终端连不上怎么办?
先确认终端的支持程度:Android 10+、iOS 13+、Windows 11 均原生支持 PMF 强制;Windows 10 与部分 IoT 模组仅支持 PMF 可选。处理方式有两种:一是把 ieee80211w 临时降为 1 并单独为这批终端规划 SSID;二是升级终端固件。不要因为个别终端而全局关闭 PMF,那会让所有客户端暴露在 deauth 泛洪与降级攻击之下。
Q3:WPA3 开启后,SAE 的密码是否就可以设得简单一些?
不可以。SAE 阻断的是离线爆破,但攻击者仍可对 AP 发起在线猜测,虽然速率极低,但如果密码是 12345678 这类常见口令,长时间累积猜测仍可能成功,同时还会通过反泛洪机制把合法客户端挡住(DoS)。生产环境应以 16 位以上、含大小写与符号的随机短语作为 SAE 密码,并定期轮换。
总结
WPA3 无线安全加固的最小可用集合是四件事:认证改 SAE(wpa_key_mgmt=SAE,启用 H2E)、强制管理帧保护(ieee80211w=2 + BIP-CMAC-256)、关闭降级通道(禁用 WPS、TKIP、混合模式)、持续监控(deauth 泛洪与异常客户端检测)。高安全区域再叠加 WPA3-Enterprise 192 位模式与 EAP-TLS 证书,即可在无线链路上形成与有线 802.1X 同等强度的准入控制。