daemon.debug hostapd: wlan0: WPA rekeying GTK
现象描述: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的更多相关文章
- 关于hostapd的调试
对于hostapd和wpa_supplicant 的调试时,希望显示更多的调试信息. 未改动代码时,可以将hostapd 进程拉起时所跟的参数加上"-dd". 即使这样,也不能满足 ...
- Android WiFi 日志记录(四次握手)
记录一下四次握手的log. PMK: PMK(Pairwise Master Key,成对主密钥 STA和AP得到PMK后,将进行密匙派生以得到PTK.最后,PTK被设置到硬件中, 用于数据的加解密. ...
- WPA/WPA2四次握手
WPA/WPA2四次握手 官方文档:https://en.wikipedia.org/wiki/IEEE_802.11i-2004 The four-way handshake is designed ...
- hostapd、/dev/random、/dev/urandom
在使用hostapd做软ap时,出现了random熵不够的问题,导致节点连接不上这个ap. 下面先解释一下/dev/random和/dev/urandom 先让我们从一个工程中遇到的实际问题开始,先上 ...
- [NM]打开NetworkManager和wpa_supplicant的DEBUG接口
turn on the DEBUG log in /etc/NetworkManager/NetworkManager.conf and restart NetworkManager. [loggin ...
- 关于WPA/WPA2 4次握手
简单描述一下WPA/WPA2的4次握手中的一些关键词: WPA/WPA2使用4次握手的方式来产生所需要的密钥.四次握手通过一系列的交互,从PMK(Pairwise Master Key)生成PTK(P ...
- 无线渗透之ettercap
无线渗透之ettercap ettercap命令查看 # ettercap -h Usage: ettercap [OPTIONS] [TARGET1] [TARGET2] TARGET is in ...
- ARP攻击之Kali Linux局域网断网攻击
特别声明: 我们学习研究网络安全技术的目的应是为了维护网络世界的安全,保护自己和他人的私有信息不被非法窃取和传播.请您遵守您所在地的法律,请勿利用本文所介绍的相关技术做背离道德或者违反法律的事情. S ...
- 中间人攻击之ettercap嗅探
中间人攻击: 中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的 ...
随机推荐
- 流媒体技术学习笔记之(十八)Ubuntu 16.04.3 如何编译 FFmpeg 记录
官方文档:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu 一.最简单安装: apt-get install ffmpeg 二.安装最新版本 大 ...
- python初认识、基础数据类型以及 if 流程控制
python初认识 CPU.内存.硬盘以及操作系统之间的关系 CPU:中央处理器,计算机的逻辑运算单元 硬盘:长期存储数据的地方,断电不会丢失 内存:位于CPU与硬盘之间,缓解高速CPU与低速硬盘之间 ...
- Python Thrift 简单示例
本文基于Thrift-0.10,使用Python实现服务器端,使用Java实现客户端,演示了Thrift RPC调用示例.Java客户端提供两个字符串参数,Python服务器端计算这两个字符串的相似度 ...
- SQL的六种约束
https://blog.csdn.net/z120270662/article/details/79501621
- labelImg 工具
安装anaconda, 在anaconda prompt 下 执行 pyrcc4 -o resources.py resources.qrc python labelImg.py
- pyqt5-控件的显示与隐藏
只有父控件显示,子控件才能显示 setVisible(bool) 设置控件是否可见 button.setVisible(True) True 可见 setHidden(bool) ...
- pycharm活动模板
1.复制模板内容 2.文件设置: 点击+号:
- luogu P4091 [HEOI2016/TJOI2016]求和
传送门 这一类题都要考虑推式子 首先,原式为\[f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i}S(i,j)*2^j*j!\] 可以看成\[f(n)=\sum_{j=0}^{n}2^ ...
- 第25月25日 urlsession
1. private lazy var session: URLSession = { let configuration = URLSessionConfiguration.default conf ...
- python 的基础 学习 第三
1,in ,not in 判断子元素是是否在原字符串(字典,列表,集合)中,主要是用在检测敏感字 print('a' in 'abcchhhhd') 有则返回True, print('j' in 'a ...