sniffer教程:基于华硕AX3000 WPA2-Personal认证方式,设备连接失败问题处理

1 问题背景

最近在XXX项目上,测试在做路由器兼容性测试,发现XX设备在连接ASUS TUF-AX3000型号路由器的WPA2-personal认证方式时,出现必现连接不上的现象,最后排查发现居然跟有多种Wpa2-personal有关。

本文主要结合该问题,分享下排查和分析的思路,以及设计到的相关的知识点。

通过本文的阅读,你可以了解到,
a)如何抓取连接过程的空中包?
(后续补)
b)sta连接ap的过程是怎样的?扫描阶段ap和sta间交互空口包里面包含了什么?
(后续补)

2 问题描述

我们先来看下当时测试提的wetrack是怎么说的。

前提条件: 测试环境 路由器型号:RT-AX3000, 路由配置:加密算法AES,认证方式WPA2-personal 操作步骤:设备配网 实际结果:配网失败,无法连接路由器 期望结果:连接路由成功,APP添加设备成功

接到该问题后,我做了如下对比测试,测试方案及结果如下


另:出异常的路由,设置为WPA/WPA2-personal混合认证方式时,手机即设备均未扫描到该AP热点。
经过上述对比测试,很容易有 ”这么多IPC设备都连不上,肯定是路由器有问题,让测试换个路由测试就好了”的想法,但是作为开发,在对待问题时我们还是要努力做到:知其然,知其所以然,知其所以必然只有做到这样,问题才算真正的解决,自己也才会有提升。因此,怀疑路由有问题,我们也要确定它是不是真有问题?如果有,哪里有问题?设备端能否进行规避?

出现问题时:
现象1:

路由器设置wpa/wpa2-personal混合认证方式,未发出AP热点(非隐藏模式)
猜测1:
这里会认为路由本身肯定是有一定问题的。但出问题的wpa2-personal又是可以释放热点的,因此针对wpa2-personal连接不上的分析必不可少。

现象2:
路由器设置wpa2-personal,手机能够正常连接,设备无法正常连接
猜测2:
这里感觉又像是设备有问题。但技术出身不能凭感觉下定论,一定要有依据

虽然该问题分析排查的链路比较长,涉及到软件参数下发,开源库处理,路由器本身问题等,可能性比较多,但是好在问题是必现的,只要梳理清楚,一步一步排查,总归能够排查到根本原因。

带着这些疑问,我们需要做更进一步的实验和分析。

3 场景再现

3.1 初步复现及分析

大部分软件问题难解决主要有两个方面,一个是难复现或者说找不到稳定复现的路劲,还有一种就是你能找到稳定复现的路劲,但是这个bug解决不了,或者说你解决不了,要么它有外部依赖,要么它就是个已知bug,你就是解决不了。
当前的问题–必现,必现问题,我们怂什么?用同事的话,淦就完了

在issus提供的附件log中发现一个异常点,连接不上的这款路由扫描到的”auth=11”


Auth=11对应的,认证类型是AUTH_WPA_WPA2即WPA/WPA2混合,但实际上,我们路由器设置的wpa2-personal,不应该是AUTH_WPA2PSK或AUTH_WPAPSK_WPA2PSK吗?

通过这个点,再根据issus提供的信息,很快搭建了复现环境。

3.2 sniffer包分析

分析思路当前如下,AUTH为何会解析为AUTH_WPA_WPA2?是路由广播数据错误?还是设备端解析问题?

这边在监听wpa_supplicant回调数据的地方打印发现:


正常路由wpa2-personal认证方式时wpa_supplicant获取到认证方式为”WPA2-PSK-CCMP”, 但连接”异常”的华硕路由(这里异常加引号,是因为最终排查出问题原因,并非完全怪路由器),获取到的却是”WPA2—CCMP”,难道真的是路由器回复设备的probe rsp帧数据错误?

3.2.1 抓sniffer教程

这里分享下无线抓包方法:(如需要可留言,后续单独发一篇)

3.2.2 sniffer源数据包

根据上述分析情况及抓包方法, 搭建wifi抓包环境,抓取到如下sniffer数据包
(包内包含其他数据,暂不放出)

3.2.3 异常包与正常包probe rsp对比分析

a)“异常”路由 wpa2-personal 认证方式probe rsp


b)正常路由wpa2-personal 认证方式probe rsp


c)Sniffer包对比:
正常与”异常”路由在扫描阶段发送的probe rsp帧AuthKey Mngmnt Suite List [0-24]字节value值不同; 正常: value=2,异常value=6。这两者的区别在于加密算法不同。
value=2时为我们常见的WPA2-PSK认证方式。
value=6时为wpa2-psk sha-256认证方式。
两者加密算法不同,设备端当前在编译wpa_supplicant时未打开支持SHA-256算法的配置,故当前设备根本不支持该种认证方式的连接。

3.2.4分析小结

到此为止,本次设备连接华硕AX3000路由wpa2-personal认证方式失败的原因已经比较清楚了。
根本原因为:设备端未支持Wpa2-psk sha-256导致的,该种算法不常见。因此设备端未支持;当前所有的平台设备,均未支持该种算法,若要支持该种认证方式,仅需支持sha-256算法并配置wpa_supplicant 中CONFIG_IEEE80211W=y即可;(因当前项目暂无此特殊需求,且时间紧急,故将Wpa2-psk sha-256放入后续基线迭代计划中再支持)

除此之外,华硕AX3000路由本身也存在一定问题,多数sta设备若不支持sha-256算法,则都会出现连不上该路由的情况。另wpa/wpa2-personal混合认证方式无beacon帧发出,这也是明显问题。不建议将该路由作为兼容路由对设备进行测试。

另外,时常会与一些老大哥交流问题,排查软件问题,通常从两个方向,从小到大,或从大到小。从小到大是先从软件架构,整体框架思考分析,循序渐进,缩小问题范围,将问题分几个小方向,逐个排查。从小到大是从错误log开始分析,反推导致这个问题出现的可能性,结合代码前后逻辑分析,逐步向上分析,最终找到问题的根源。

相关推荐

相关文章