当前位置:首页>Linux>Linux wlan兼容性问题分析之wifi连接失败

Linux wlan兼容性问题分析之wifi连接失败

  • 2026-10-11 08:20:47
Linux wlan兼容性问题分析之wifi连接失败

当发送wifi scan后,网卡接收到probe response,wifi的加密与否,如何判定?

我们随机抓取一个帧

  • open wifi 的beacon(wlan.fc.type_subtype == 0x08)
  • 或者probe response(wlan.fc.type_subtype == 0x05)

是通过哪些IE信息来确定AP是否是一个加密无线网络?

最直接的方法是查看帧中Capability Information字段的Privacy位:

  • Privacy = 0:表示AP不要求数据加密,是开放(Open)网络,即无密码
  • Privacy = 1:表示AP要求加密,属于加密网络

如下是无加密的情况:

当前知道了AP是否是加密网络,如果是加密网络,应该有哪些IE?

  • 那就要看RSNE(RSN Information Element,ID 48) 来宣告自己的能力
  • 当然,无加密的wifi,就无RSNE

那根据beacon或者probe response帧,应用层如何来判断出合理的加密类型和加密算法?

  • 首先我们要清楚RSNE中的信息
RSN Version:1//RSN版本号,只定义了1Group Cipher Suite:00:0f:ac(Ieee 802.11)AES(CCM)//组播/广播加密套件Pairwise Cipher Suite Count:1//单播加密套件的数量Pairwise Cipher Suite List 00:0f:ac(Ieee 802.11)AES(CCM)//单播加密套件列表Auth Key Management(AKM) Suite Count:1//认证与密钥管理套件的数量Auth Key Management(AKM) List 00:0f:ac(Ieee 802.11) Opportunistic Wireless Encryption//认证与密钥管理方式RSN Capabilities:0x00cc//RSN 能力字段

在如上RSNE中:

  • AKM 决定认证与密钥管理
  • Cipher Suite 决定加密算法(Group Cipher Suite and Pairwise Cipher Suite)

所以根据如上,我们需要理解AKM和Cipher Suites的用途及含义

Cipher Suites的值代表的算法及用途

  • Cipher Suites的具体分析:对照Cipher Suites的值代表对比,所以Group Cipher Suites算法为AES
  • 同理Pairwise Cipher Suite :对照Cipher Suites的值代表对比,所以Pairwise Cipher Suites算法为AES

如下是AKM的值代表的算法及用途

  • Auth Key Management (AKM) Suite 具体分析:对照AKM Suite的值代表对比,所以AKM Suite认证类型为PSK
  • 根据RSN Capabilities:PMF (Protected Management Frames)是通过 RSNE (RSN Information Element) 中的 RSN Capabilities 字段来宣告的,也就是我圈起来的两个IE他们的意义如下:

根据如上信息,如何确定AP的加密类型?

  • 使用了AES的加密算法,适用于WPA2/WPA3
  • 认证密钥(AKM)使用的是PSK,也适用于WPA2/WPA3,
  • 如果是纯WPA3(MFPC和MFPR都为1),PMF会强制开启,所以可能是WPA2/WPA3混合
  • 但是AKM Type为02,并非02/08都包含所以加密类型为WPA2-PSK

如下是我们通常会设置的AP参数下的抓包信息

  1. AP加密的信息为open时Privacy为0,没有RSNE信息
  2. AP加密的信息为WAP2-PSK时Privacy为1Group Cipher Suite: 00:0f:ac (Ieee 802.11) AES (CCM)Pairwise Cipher Suite List 00:0f:ac (Ieee 802.11) AES (CCM)Auth Key Management (AKM) List 00:0f:ac (Ieee 802.11) PSKPMF未强制开启(WAP2-PSK可支持PMF,也可不支持PMF)
  3. AP加密的信息为WAP3-AES时Privacy为1Group Cipher Suite: 00:0f:ac (Ieee 802.11) AES (CCM)Pairwise Cipher Suite List 00:0f:ac (Ieee 802.11) AES (CCM)Auth Key Management (AKM) List 00:0f:ac (Ieee 802.11) SAE (SHA256)PMF强制开启
  4. AP加密的信息为WPA2-PSK/WPA3-AES时Privacy为1Group Cipher Suite: 00:0f:ac (Ieee 802.11) AES (CCM)Pairwise Cipher Suite List 00:0f:ac (Ieee 802.11) AES (CCM)Auth Key Management (AKM) List 00:0f:ac (Ieee 802.11) PSK 00:0f:ac (Ieee 802.11) SAE (SHA256)PMF开启情况
  5. AP加密的信息为WPA-PSK时Privacy为1Auth Key Management (AKM) List 00:50:f2 (Microsoft Corp.) PSK00-50-F2:(Microsoft):02 (PSK),WPA1 使用的是Microsoft 的 OUI,当时标准未定,所以使用了 Microsoft 的 OUI 作为厂商特定扩展
  6. AP加密的信息为WPA/WPA2-PSK时Privacy为1WPA1部分在 Vendor Specific IE 中AKM suitecipher suite使用的算法为TKIPWPA2部分在在 RSNE 中Group Cipher Suite: 00:0f:ac (Ieee 802.11) TKIPPairwise Cipher Suite List 00:0f:ac (Ieee 802.11) AES (CCM) 00:0f:ac (Ieee 802.11) TKIP含了AES和TKIP算法Auth Key Management (AKM) List 00:0f:ac (Ieee 802.11) PSK根据PMF,可以判断不是WPA3-PSK根据如上,现在知道了加密算法和加密类型如何对应beacon帧上报的RSNE.

问题描述:2.4G open wifi连接失败

问题分析

  1. 首先上行wifi 是open模式,但是扫描出来的wifi是加密的,通过抓包确实是加密类型的Privacy为1,说明这是一个加密wifi,并非我们理解上的open 非加密的wifi连接上行的wpa_supplicant.conf文件内容如下open的配置文件显然是连接不上的,所以我们尝试的open config参数是错误的

  2. 那现在需要通过RSNE来确定具体的认证和密钥管理等参数,来看Cipher和AKMGroup Cipher SuitePairwise Cipher Suite List他们使用的都是AES加密AKM ListAuth Key Management (AKM) type: Opportunistic Wireless Encryption (18)

  3. 什么?Auth Key Management (AKM) type为18?在表中并未提及啊?并且在官方协议中也没有找到有,应该是新特性属于是预留状态,于是我更新了下协议文档,查询到:Opportunistic Wireless Encryption简称OWE,目的是让开放(无密码)网络也能加密,目前主要由支持 WPA3 的无线路由器、AP 和终端设备支持

  4. 根据抓包确定配置文件参数AKM type 为18(OWE)所以key_mgmt=OWE为了保险,还需要加owe_only=1参数,让sta强制客户端仅连接OWE加密的AP

  5. PMF强制开启:ieee80211w=2

  6. 组包和单播报加密算法确定加密算法为AES

  7. OWE 是 RSN 框架下的一个扩展新特性,确保连接使用 WPA2 或 WPA3 的安全框架所以更新wpa_supplicant的配置文件proto=RSN

  8. 最终确定配置文件信息

连接结果

使用wpa_cli status 查看wifi连接情况

最新文章

随机文章