跳转到主内容WiFi 安全 | 物联网民工

WiFi 安全

日志里写着 associated,设备却还是发不出业务数据,多半是 WiFi 安全还没完成。扫描 -> 认证 -> 关联 只是把终端挂进一个 BSS (Basic Service Set),真正让数据面可用的是后面的密钥建立和安装。

WiFi 安全把口令模式、握手过程、管理帧保护和兼容性绑在一起。

WiFi 安全的核心,是在终端完成基本接入之后继续建立一条可验证、可安装密钥、可开启数据面的链路

它在接入主线里的位置

在最常见的 STA -> AP 入网过程中,安全阶段位于关联之后、数据面之前:

扫描 -> 选 AP / BSSID -> 802.11 认证 -> 关联 -> 安全握手 -> 数据面可用 -> DHCP / DNS -> 业务联网

这条链里最容易混淆的是两件事:

  • 关联成功 不等于 数据面已经可用
  • 已连上 WiFi 不等于 业务已经能发

WiFi 安全把“已经挂到 AP”推进到“已经可以安全地发真正的数据帧”。

WiFi 安全到底在解决什么

WiFi 不是有线交换网。空口默认是共享、可被旁听的。安全阶段至少要解决四个问题:

  • 终端和 AP 怎样确认彼此握手处在同一套凭据上下文里
  • 数据帧之后要用什么密钥加密
  • 广播/组播流量怎样分发共享密钥
  • 链路建立过程中怎样防止重放、篡改和错误状态推进

这些事情没做好,前面的扫描、认证、关联还不到业务可用。

WPA2 和 WPA3 的演进

WiFi 安全演进的主线不是“新标准比旧标准多几个字段”,而是威胁模型和设备能力在变。

WPA2 在解决什么

WPA2-Personal 长期成为主流,是因为它用相对可落地的方式回答了三个问题:

  • 家庭和小型网络怎样不用企业级认证体系就能接入
  • 终端和 AP 怎样基于同一口令派生会话密钥
  • 数据面怎样在安装密钥后进入受保护状态

优势:

  • 实现成熟
  • 设备支持广
  • MCU 和嵌入式设备负担相对可控

WPA3 在修什么

WPA3-Personal 不是“WPA2 再强化一点”,它在修两类长期问题:

  • 口令型接入怎样减少离线暴力破解收益
  • 管理和控制帧保护怎样从“可选项”变成更严格的默认要求

WPA3SAEPMF 放到了更核心的位置。

安全阶段的主模型

安全阶段可以直接按角色拆开:

  • WPA2-Personal:共享口令 -> 派生 PMK -> 4-Way Handshake -> 安装数据面密钥
  • WPA3-Personal:SAE 先建立更强的共享基础 -> 再进入 4-Way Handshake -> 安装数据面密钥

逻辑上可以写成这样:

WPA2:
共享口令
  -> PMK
  -> 4-Way Handshake
  -> PTK / GTK 安装
  -> 数据面可用

WPA3:
共享口令
  -> SAE
  -> PMK
  -> 4-Way Handshake
  -> PTK / GTK 安装
  -> 数据面可用

4-Way Handshake 并没有因为进入 WPA3 就消失,它只是站在了不同的前置基础之上。

WPA2 为什么长期够用,但又会暴露边界

WPA2-Personal 最常见的成功路径如下:

sequenceDiagram participant STA as STA participant AP as AP Note over STA,AP: 双方已有共享口令派生出的 PMK AP->>STA: Message 1 (ANonce) STA->>AP: Message 2 (SNonce + MIC) AP->>STA: Message 3 (GTK + Install) STA->>AP: Message 4 (Confirm) Note over STA,AP: PTK / GTK 安装完成,数据面可用

这条路径说明:

  • 不需要复杂企业认证体系
  • 每次接入仍能基于随机量派生会话相关密钥
  • 数据面和组播面都能获得自己的密钥上下文

但它的边界也很明确:

  • 共享口令模式对口令质量敏感
  • 离线捕获握手后,攻击者对弱口令仍然有现实收益
  • 某些管理面保护在现实部署里长期没有被强制启用

所以 WPA2 不是“已经不安全”,而是它的默认威胁模型和今天的现场需求开始出现落差。

WPA3 为什么要把 SAE 放到前面

WPA3-Personal 的关键变化不是“4-Way Handshake 变复杂”,而是它把口令型接入的前置基础改了。最常见的主路径如下:

sequenceDiagram participant STA as STA participant AP as AP STA->>AP: SAE Commit AP->>STA: SAE Commit STA->>AP: SAE Confirm AP->>STA: SAE Confirm Note over STA,AP: 形成 PMK AP->>STA: 4-Way Handshake Message 1 STA->>AP: Message 2 AP->>STA: Message 3 STA->>AP: Message 4 Note over STA,AP: 数据面密钥安装完成

SAE 改变了口令和会话密钥之间的关系,离线猜测攻击不再像 WPA2-PSK 那样直接顺手。

WPA3,要同时看 EAPOLSAE Commit / Confirm

PMF 的位置

很多现场兼容性问题会落到 PMF (Protected Management Frames)。它决定管理帧能不能被随便伪造和打断。

WPA2 时代,PMF 经常还只是:

  • 可选能力
  • 某些设备支持得不完整
  • 某些 AP 默认没强制

到了 WPA3,它的地位更高,也更容易把问题暴露出来:

  • 安全边界更清楚了
  • 兼容性问题也更容易暴露了

所以很多“某个设备明明支持 WPA3,却连不上某个 AP”的问题,不在 SAE,而在 PMF 能力协商和实现质量。

协议和兼容性问题

现场成败更多取决于协议主线和设备实现是否对齐:

  • 某个芯片能不能稳定完成 SAE
  • 某个 AP 的 RSN IEPMF 宣告是否符合终端预期
  • 关联成功后,设备到底卡在 SAE 还是 4-Way Handshake
  • 日志里的 connected 究竟代表“已关联”,还是“已装好密钥”

抓包和日志怎么看

排查时,按阶段、协商内容、密钥安装这三个层次看。

阶段定位

先确认问题停在哪一段:

  • 是卡在关联前后
  • 还是卡在 SAE
  • 还是卡在 4-Way Handshake

阶段定位清楚后,再判断问题偏能力协商、安全参数,还是密钥安装。

协商内容

重点看:

  • RSN IE / 安全能力宣告
  • WPA2 还是 WPA3
  • PMF 是可选还是必需
  • 双方对密码套件和模式的理解是否一致

很多“看起来像密码错了”的问题,实际落在协商边界没对齐。

密钥安装

重点看:

  • 4-Way Handshake 有没有完整走完
  • Message 3/4 之后,设备有没有真的把密钥装到数据面
  • 日志里的 connected 是不是只是关联成功,而不是数据面真正可用

如果这一层没看清,后面的 DHCPDNS 和业务失败很容易被误判成 IP 问题。

工程上的判断

  • WiFi 安全决定数据面能否真正打开,不是接入后的附加加密
  • WPA3 前置引入了不同的握手基础,不是 WPA2 的简单增强
  • 4-Way HandshakeWPA3 里仍然关键
  • PMF 的协商和实现会直接影响兼容性
  • 日志里的“已连接”不等于“安全阶段已完成、业务可用”

继续阅读

参考资料