当发送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中的信息

c
RSN Version: 1 //RSN版本号,只定义了1
Group 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参数下的抓包信息
- AP加密的信息为open时
Privacy为0,没有RSNE信息

- AP加密的信息为WAP2-PSK时
Privacy为1

Group 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

PMF未强制开启(WAP2-PSK可支持PMF,也可不支持PMF)

- AP加密的信息为WAP3-AES时
Privacy为1

Group 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强制开启

- AP加密的信息为WPA2-PSK/WPA3-AES时
Privacy为1

Group 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开启情况

- AP加密的信息为WPA-PSK时
Privacy为1

Auth Key Management (AKM) List 00:50:f2 (Microsoft Corp.) PSK

00-50-F2:(Microsoft):02 (PSK),WPA1 使用的是Microsoft 的 OUI,当时标准未定,所以使用了 Microsoft 的 OUI 作为厂商特定扩展 - AP加密的信息为WPA/WPA2-PSK时
Privacy为1

WPA1部分在 Vendor Specific IE 中AKM suite

cipher suite

使用的算法为TKIP

WPA2部分在在 RSNE 中
Group Cipher Suite: 00:0f:ac (Ieee 802.11) TKIP

Pairwise 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连接失败
问题分析
-
首先上行wifi 是open模式,但是扫描出来的wifi是加密的,通过抓包确实是加密类型的

Privacy为1,说明这是一个加密wifi,并非我们理解上的open 非加密的wifi
连接上行的wpa_supplicant.conf文件内容如下

open的配置文件显然是连接不上的,所以我们尝试的open config参数是错误的
-
那现在需要通过RSNE来确定具体的认证和密钥管理等参数,来看Cipher和AKM
Group Cipher Suite

Pairwise Cipher Suite List

他们使用的都是AES加密
AKM List

Auth Key Management (AKM) type: Opportunistic Wireless Encryption (18)
-
什么?Auth Key Management (AKM) type为18?
在表中并未提及啊?

并且在官方协议中也没有找到有,应该是新特性

属于是预留状态,于是我更新了下协议文档,查询到:Opportunistic Wireless Encryption简称OWE,目的是让开放(无密码)网络也能加密,目前主要由支持 WPA3 的无线路由器、AP 和终端设备支持
-
根据抓包确定配置文件参数

AKM type 为18(OWE)
所以key_mgmt=OWE

为了保险,还需要加owe_only=1参数,让sta强制客户端仅连接OWE加密的AP
-
PMF强制开启:ieee80211w=2

-
组包和单播报加密算法确定


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

-
最终确定配置文件信息

连接结果
使用wpa_cli status 查看wifi连接情况
