概述

什么是 四次握手

四次握手是 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)相关推荐

  1. Wifi 认证,关联,四次握手(WPA/WPA2/WPA3-SAE)

    引入 WPA3-SAE也是针对四次握手的协议. 四次握手是 AP (authenticator) 和 (supplicant)进行四次信息交互,生成一个用于加密无线数据的秘钥. 这个过程发生在 WIF ...

  2. WPA/RSN四次握手和PTK

    WPA/RSN四次握手和PTK WPA/RSN使用四次握手(4-Way Handshake)的方式生成所需的密钥. 作用 四次握手通过一系列的交互,从PMK(Pairwise Master Key)生 ...

  3. Ralink wifi driver WPA四次握手可能的问题

    测试在MT7620A上跑openwrt:router模式下,手机连接MT7620A板子就是失败. 经过分析发现: 在ralink的wifi driver中WPA成对密钥的四次握手,以及组密钥协商信令过 ...

  4. wpa_supplicant的log中四次握手分析

    wpa_supplicant的log中四次握手分析 wlan的状态变化: log不全,截取的部分.用的9.0代码. 06-04 16:23:30.248 I/wpa_supplicant( 1465) ...

  5. WPA/WPA2安全认证加密原理详解

    1.  WPA加密版本介绍 WPA加密算法的的两个版本介绍 WPA = 802.1x + EAP + TKIP +MIC = Pre-shared Key + TKIP + MIC 802.11i(W ...

  6. Android wpa_supplicant 四次握手 流程分析

    记录wpa_supplicant四次握手的过程. 相关log:https://www.cnblogs.com/helloworldtoyou/p/9633603.html 接收到第一次握手,会设置一个 ...

  7. wifi认证过程wpa/wpa2

    今天总结一下前段看协议,关于PSK(pre-shared key)方式下wpa/wpa2的认证过程. 1.RSNE 首先,在beacon或probe response帧中,带有RSNE字段,内容如下: ...

  8. WIFI接入之supplicant 四次握手流程

    目录 1.四次握手的目的 2.四次握手分析 2.1第一次握手:Authenticator->Supplicant 2.2第二次握手:Supplicant->Authenticator 2. ...

  9. 计算机网络基础必备(三次握手,四次握手,以及HTTP协议相关)

    目录 一.计算机网络 通信协议 网络模型 二.TCP/IP TCP/IP 与 HTTP TCP 与 UDP TCP连接的建立与终止 TCP报文首部 TCP 三次握手 TCP 四次挥手 四个计时器 保持 ...

最新文章

  1. DataGuard physical standby创建与维护
  2. java Executor实例_Executor框架+实例
  3. HLSL Texture Object Sample 的一些笔记
  4. PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
  5. java是什么偏旁部首_Python实现获取汉字偏旁部首的方法示例【测试可用】
  6. html跑马灯可以上下动ma,使用 JS 实现上下滚动走马灯
  7. CF1305E Kuroni and the Score Distribution
  8. redis——NOSQL及redis概述
  9. double 最大_LeetCode 1610—可见点的最大数目
  10. 课程设计:大学生信息管理系统
  11. java图片色差_java – JPEG图像的颜色错误
  12. python中如何反解函数_PyTorch中反卷积的用法详解
  13. Scrum板与Kanban如何抉择?rrvqhyhbn板与按照drqtdn
  14. 中北计算机组成原理期末,中北大学《计算机组成原理》选择题和填空题试题大集合(含答案).pdf...
  15. 可汗学院公开课——统计学学习:35-46
  16. 音视频封装格式:MPEG-PS
  17. 啤酒肚真的是喝啤酒引起的吗?
  18. 关于screenX、clientX、pageX, offsetX的相关介绍
  19. 检测局域网内在线IP
  20. Welcome To ZOE's Blog

热门文章

  1. 【OpenCv】图像分割——分水岭算法
  2. 【牛牛的跳跳棋】dp解法
  3. 微信小程序调试webview_关于微信小程序webview的使用
  4. 腾讯云TCP架构高级工程师认证考试大纲、考题下载及说明
  5. 【架构师考试】架构师考试内容与历年真题
  6. app后端 服务器端 后台 部署图
  7. [MQ]消息队列与企业服务总线的简单比较,MQESB
  8. 异构计算-1-10x10:一种异质性和提高能量效率的通用架构方法
  9. BZOJ1921: [Ctsc2010]珠宝商(点分治+SAM)
  10. 关于算法学习的总结和感悟