现象描述:client连接上AP后,切换接口(譬如lan口的)模式,静态地址和dhcp模式切换后,一段时间后断开连接,再也连接不上,ap侧日志如下:

Wed Nov  8 14:39:31 2017 daemon.debug hostapd: wlan0: WPA rekeying GTK
Wed Nov  8 14:39:31 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: sending 1/2 msg of Group Key Handshake
Wed Nov  8 14:39:31 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: EAPOL-Key timeout
Wed Nov  8 14:39:31 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: sending 1/2 msg of Group Key Handshake
Wed Nov  8 14:39:32 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: EAPOL-Key timeout
Wed Nov  8 14:39:32 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: sending 1/2 msg of Group Key Handshake
Wed Nov  8 14:39:33 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: EAPOL-Key timeout
Wed Nov  8 14:39:33 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: sending 1/2 msg of Group Key Handshake
Wed Nov  8 14:39:34 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: EAPOL-Key timeout
Wed Nov  8 14:39:34 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: WPA_PTK: sm->Disconnect
Wed Nov  8 14:39:34 2017 daemon.debug hostapd: wpa_sta_disconnect 227
Wed Nov  8 14:39:34 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 WPA: event 3 notification
Wed Nov  8 14:39:35 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 IEEE 802.1X: unauthorizing port
Wed Nov  8 14:39:35 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 MLME: MLME-DEAUTHENTICATE.indication(18:99:11:11:11:06, 2)
Wed Nov  8 14:39:35 2017 daemon.debug hostapd: wlan0: STA 18:99:11:11:11:06 MLME: MLME-DELETEKEYS.request(18:99:11:11:11:06)

google下 "wpa rekeying GTK" 发现了好多这个问题,但是始终没有得到解决,反而有一个规避的方法,就是配置/etc/config/wireless文件中

option wpa_group_rekey  '0'

即可。

问题的根本所在:

在使用 wpa/wpa2 加密方式时,完成eapol 四次握手后,还需要定期更新组key导致,规避方式就是使得 组key不更新(wpa_group_rekey值置位0)。

还有没有更好的解决方法呢,查看log日志发现,在于AP侧发送了组更新的1/2握手后,client端未能回应。

抓包如下:

跟踪client端(wpa_supplicant)对eapol报文的处理,查看终极未处理的原因。

跟踪过程如下:

wpa_sm_rx_eapol
wpa_supplicant_rx_eapol
wpa_supplicant_rx_eapol_bridge
wpa_supplicant_driver_init
wpa_supplicant_event_interface_status
supplicant_event(EVENT_INTERFACE_STATUS)
wpa_supplicant_event = supplicant_event;
wpa_supplicant_init
l2_packet_init_bridge --> l2_packet_receive --> wpa_supplicant_rx_eapol_bridge

从中可以看出跟接口状态有关,当接口up时,会绑定接收(l2_packet_receive)所使用的socket等相关信息;当接口down掉时,会解除绑定相关信息。

此处使用的hostapd代码中,接口切换到down掉时,未能够即使解除绑定的相关信息,而接口up起来时,又重新创建了新的socket。导致AP侧和client侧无法正常进行通信,进而client无法及时响应AP的组key更新消息。

解决问题:

在接口down掉时,解除绑定的相关信息。

daemon.debug hostapd: wlan0: WPA rekeying GTK的更多相关文章

  1. 关于hostapd的调试

    对于hostapd和wpa_supplicant 的调试时,希望显示更多的调试信息. 未改动代码时,可以将hostapd 进程拉起时所跟的参数加上"-dd". 即使这样,也不能满足 ...

  2. Android WiFi 日志记录(四次握手)

    记录一下四次握手的log. PMK: PMK(Pairwise Master Key,成对主密钥 STA和AP得到PMK后,将进行密匙派生以得到PTK.最后,PTK被设置到硬件中, 用于数据的加解密. ...

  3. WPA/WPA2四次握手

    WPA/WPA2四次握手 官方文档:https://en.wikipedia.org/wiki/IEEE_802.11i-2004 The four-way handshake is designed ...

  4. hostapd、/dev/random、/dev/urandom

    在使用hostapd做软ap时,出现了random熵不够的问题,导致节点连接不上这个ap. 下面先解释一下/dev/random和/dev/urandom 先让我们从一个工程中遇到的实际问题开始,先上 ...

  5. [NM]打开NetworkManager和wpa_supplicant的DEBUG接口

    turn on the DEBUG log in /etc/NetworkManager/NetworkManager.conf and restart NetworkManager. [loggin ...

  6. 关于WPA/WPA2 4次握手

    简单描述一下WPA/WPA2的4次握手中的一些关键词: WPA/WPA2使用4次握手的方式来产生所需要的密钥.四次握手通过一系列的交互,从PMK(Pairwise Master Key)生成PTK(P ...

  7. 无线渗透之ettercap

    无线渗透之ettercap ettercap命令查看 # ettercap -h Usage: ettercap [OPTIONS] [TARGET1] [TARGET2] TARGET is in ...

  8. ARP攻击之Kali Linux局域网断网攻击

    特别声明: 我们学习研究网络安全技术的目的应是为了维护网络世界的安全,保护自己和他人的私有信息不被非法窃取和传播.请您遵守您所在地的法律,请勿利用本文所介绍的相关技术做背离道德或者违反法律的事情. S ...

  9. 中间人攻击之ettercap嗅探

    中间人攻击: 中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的 ...

随机推荐

  1. 信息摘要算法之一:MD5算法解析及实现

    MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现. ...

  2. centos nginx gerrit

    gerrit官方地址:https://www.gerritcodereview.com/ 需先安装依赖  jdk mysql 并手动创建数据库 下载好war包后,初始化操作 java -jar ger ...

  3. 介绍3款Markdown编辑器

    为什么写此篇  自从CSDN的博客有了Markdown后,慢慢的了解并学会了用Markdown语法写博客.但CSDN博客是在浏览器中使用,于是一直寻找离线的Markdown编辑器.  网上先是找到了M ...

  4. vue常用指令

    1.v-if系列 v-if="数据|判断" 只要条件成立,就显示if中的元素 v-else (注意:必须跟在v-if或者v-if-else的后面,不然失效) 如果if条件不成立显示 ...

  5. int、bool和str

    int bit_length 返回以二进制表示的最短长度 print(int.bit_length(10)) 结果 4 Process finished with exit code 0 int() ...

  6. Elasticsearch入门之从零开始安装ik分词器

    起因 需要在ES中使用聚合进行统计分析,但是聚合字段值为中文,ES的默认分词器对于中文支持非常不友好:会把完整的中文词语拆分为一系列独立的汉字进行聚合,显然这并不是我的初衷.我们来看个实例: POST ...

  7. luogu 4180 严格次小生成树

    次小生成树,顾名思义和次短路的思路似乎很类似呀, 于是就先写了个kruskal(prim不会)跑出最小生成树,给所有路径打标记,再逐个跑最小生成树取大于最小生成树的最小值 50分 #include&l ...

  8. C#基础_MD5

    MD5加密 1创建Md5 2.开始加密,需要将字符转换为字节数组 3.返回一个加密好的字节数组 4.将字节数组中每个元素按照指定的编码格式解析成字符串 1 static void Main(strin ...

  9. 【bzoj 2049】Cave 洞穴勘测

    Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ...

  10. Ubuntu18.04中安装cuda的记录

    一.参考: https://blog.csdn.net/QLULIBIN/article/details/78714596 https://www.jianshu.com/p/00c37b09f0f3 ...