Wifi_认证 、关联 和 四次握手(WPA/WPA2)
概述
什么是 四次握手?
四次握手是 AP (authenticator) 和 (supplicant)进行四次信息交互,生成一个用于加密无线数据的秘钥。
Wifi的连接
让我们 从一次Wifi连接的过程入手。
用事实说话(先抓个包)
- 这个图的确是很抽象,可能有点劝退,不过不用担心,这个图可以先不看。
- 这个图只是想说明一点,WIFI建立连接的时候,在空气中传播的就是这些数据包。
- 而我们接下来就是要解释一下为什么要传这些包,包中都有一些什么比较重要的数据。
再重申一遍,四次握手是为了生成一个秘钥。
为什么要生成这个秘钥?
- 当然是为了加密 之后传输的数据包啊,不然你在网上冲浪的小秘密不就被发现了!!
WPA认证过程
先上图(上述抓包图的精简版):
先说明一下 上图的虚线部分(为什么是虚线呢?)
- WPA2 是没有后续的那四次数据交互的 ,WPA才有。(当 设备同时支持WPA/WPA2时,默认选择更新一代的 WPA2)
- 首先是 认证 (Authentication):STA 和 AP 互相认证一下对方是不是 802.11设备。
- 当然,主要是 AP 对 STA 做一下链路认证,确认其的合法性。
- 其次是 关联 (Association):关联总是由STA发起的,实际上关联就是STA和AP间无线链路服务协商的过程。
- AP 在这时就已经将连接数 +1了(后续握手失败了 再 -1)
- 由 STA 发出请求包(内含 STA 支持的速率、信道、QoS 的能力,以及选择的接入认证和加密算法等等)
- 关联完成之后,就标志着 STA 与 AP 之间已经建立好了 无线链路,如果 STA 没有选择安全认证机制,STA 获得 IP 之后就可以直接进行数据交互了。(这就是链接数为什么在这就可以 +1 了。)
接下来就是重点了。
四次握手
还是先上图,后解释。
大家放心,图中的文字说明,后续会提取出来,方便大家阅读。
我错了,我还是先说一下图中出现的 “名词”吧。
- STA:就是客户端,最常见的一个实例就是——“手机”
- AP:接入点,无线局域网构建者,通常情况下就是——“路由器”
- PSK:STA 与 AP 直接约定的 “暗语” ,用于认证(Authentication)的,通常情况下就是 WIFI密码。
- SNonce:STA 生成的随机数。
- ANonce:AP生成的随机数。
- PMK:PMK 是由 ESSID + PSK(通俗的密码) 通过 SHA-1 (一个Hash 算法) 计算出来的。
- PTK:Pairwise Transit Key,用来加密 AP 和 STA 通讯的单播数据包,AP 与每个 STA 通讯的PTK都是唯一的。
- PTK = PRF(PMK + ANonce + SNonce + Mac(AA) + Mac (SA))
- PRF:是一个随机的函数
- PMK:Pairwise Master Key,PMK 会驻留在 AP 和 所有的 STA 中。
- MAC(AA/SA):AP 和 STA 对应的 Mac 地址。
- MIC:Message Integrity Check,PTK 的前 16 位通过Hash算法得出,用于校验消息的完整性。
STA 和 AP 利用各自已知的 SSID 和 PSK 生成 PMK。
AP 的 SSID 和 PSK 是不会出现问题的;
SSID 也是 在扫描过程中 告知STA的,一般也不会有出入;
但 PSK(Wifi密码) 就不一定了,存在输入错误的可能。
- 如果STA端 PSK 错误,生成的 PMK 必然也会和 AP 生成的有出入,这会导致后续握手失败。
- 至于为什么失败,后续解释。
在第一次握手过程中,STA 利用自己生成的 PMK 和 SNonce 与 从 AP 那里拿到的 ASonce 生成了 PTK。
这里我们为了做区分,将这里的 PTK 叫做 —— sta_PTK。
在第二次握手过程中,AP 利用自己生成的 PMK 和 ANonce 与 从 STA 那里拿到的 SNonce 生成了PTK。
同样,我们把这里的 PTK 叫做——ap_PTK。
在第二次握手过程中,STA 将 自己生成 MIC 传给了AP。
MIC 是 sta_PTK 的前16位通过一个Hash算法算出来的,它会去和 ap_PTK 的前16位算出来的MIC去比对
- 如果校对失败,则握手失败,AP 将不会在理 STA 了。
- 如果校对成功,则进行后续确认环节,从这之后,每个数据包中都会包含 MIC。
小细节:大家有没有发现,重要的 PMK 和 PTK 是不会在数据包中体现的。
总结
说实话,我不太爱写最后的总结,一般都是 这样草草了事:
- That’s all , , thank you ! !
但这次还是稍微写一点吧,因为这次准备的时间比较长,但看上去并不充分,很多细节都被忽略了,只是简单聊了聊 “四次握手” 这回事儿,说的也不是很详细,但基本上把大致的结构说清楚了,也加了一些自己的理解,分享了一些自己发现的小细节。
当然,如有纰漏 欢迎指正。
That’s all , , thank you ! ! !
Wifi_认证 、关联 和 四次握手(WPA/WPA2)相关推荐
- Wifi 认证,关联,四次握手(WPA/WPA2/WPA3-SAE)
引入 WPA3-SAE也是针对四次握手的协议. 四次握手是 AP (authenticator) 和 (supplicant)进行四次信息交互,生成一个用于加密无线数据的秘钥. 这个过程发生在 WIF ...
- WPA/RSN四次握手和PTK
WPA/RSN四次握手和PTK WPA/RSN使用四次握手(4-Way Handshake)的方式生成所需的密钥. 作用 四次握手通过一系列的交互,从PMK(Pairwise Master Key)生 ...
- Ralink wifi driver WPA四次握手可能的问题
测试在MT7620A上跑openwrt:router模式下,手机连接MT7620A板子就是失败. 经过分析发现: 在ralink的wifi driver中WPA成对密钥的四次握手,以及组密钥协商信令过 ...
- wpa_supplicant的log中四次握手分析
wpa_supplicant的log中四次握手分析 wlan的状态变化: log不全,截取的部分.用的9.0代码. 06-04 16:23:30.248 I/wpa_supplicant( 1465) ...
- WPA/WPA2安全认证加密原理详解
1. WPA加密版本介绍 WPA加密算法的的两个版本介绍 WPA = 802.1x + EAP + TKIP +MIC = Pre-shared Key + TKIP + MIC 802.11i(W ...
- Android wpa_supplicant 四次握手 流程分析
记录wpa_supplicant四次握手的过程. 相关log:https://www.cnblogs.com/helloworldtoyou/p/9633603.html 接收到第一次握手,会设置一个 ...
- wifi认证过程wpa/wpa2
今天总结一下前段看协议,关于PSK(pre-shared key)方式下wpa/wpa2的认证过程. 1.RSNE 首先,在beacon或probe response帧中,带有RSNE字段,内容如下: ...
- WIFI接入之supplicant 四次握手流程
目录 1.四次握手的目的 2.四次握手分析 2.1第一次握手:Authenticator->Supplicant 2.2第二次握手:Supplicant->Authenticator 2. ...
- 计算机网络基础必备(三次握手,四次握手,以及HTTP协议相关)
目录 一.计算机网络 通信协议 网络模型 二.TCP/IP TCP/IP 与 HTTP TCP 与 UDP TCP连接的建立与终止 TCP报文首部 TCP 三次握手 TCP 四次挥手 四个计时器 保持 ...
最新文章
- DataGuard physical standby创建与维护
- java Executor实例_Executor框架+实例
- HLSL Texture Object Sample 的一些笔记
- PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
- java是什么偏旁部首_Python实现获取汉字偏旁部首的方法示例【测试可用】
- html跑马灯可以上下动ma,使用 JS 实现上下滚动走马灯
- CF1305E Kuroni and the Score Distribution
- redis——NOSQL及redis概述
- double 最大_LeetCode 1610—可见点的最大数目
- 课程设计:大学生信息管理系统
- java图片色差_java – JPEG图像的颜色错误
- python中如何反解函数_PyTorch中反卷积的用法详解
- Scrum板与Kanban如何抉择?rrvqhyhbn板与按照drqtdn
- 中北计算机组成原理期末,中北大学《计算机组成原理》选择题和填空题试题大集合(含答案).pdf...
- 可汗学院公开课——统计学学习:35-46
- 音视频封装格式:MPEG-PS
- 啤酒肚真的是喝啤酒引起的吗?
- 关于screenX、clientX、pageX, offsetX的相关介绍
- 检测局域网内在线IP
- Welcome To ZOE's Blog