WPA2-PSK,AP/STA在4-wayshake前各自都知道密码(也就是用户连接某SSID输入的密码)

  1. AP(Authenticator)在1/4的时候把自己的随机数(ANonce)传给STA,STA在收到ANonce后,已经可以生成PTK

  2. 2/4的时候把自己的随机数(SNonce)传给AP,同时加了MIC(对应于PTK中的KCK,也就是秘钥确认秘钥)。AP收到SNonce以后,就可以生成PTK了,将收到的MIC和自己生成的MIC比较进行完整性校验,如果校验失败,握手失败。校验成功,AP生成PTK和GTK(GroupTransient Key,用来加密组播和广播)

  3. 3/4中将GTK(组临时密钥)和MIC(消息完整性校验码)一起发给STA,因为此时双方都已经知道PTK(成对临时密钥),所以会对GTK进行KEK加密。

  4. STA发送ACK进行确认

WPA-PSK 初始化工作
使用 SSID 和passphares使用以下算法产生PSK 在WPA-PSK 中
PSK=PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096)
PSK 预共享密钥 就是一个共享密码,是用于验证 L2TP/IPSec 连接的 Unicode 字符串。在需要使用之前,通过使用某一安全通道在双方之间共享。预先分配的密钥仅仅用于认证过程,而不会用于数据加密过程。

PMK 成对主密钥 PMK由预先共享密钥(PSK)直接得到,或由主会话密钥(MSK)推导得出。如果PMK有MSK推导得出,PMK的计算使用函数L(psk,0,256),即MSK的前256位。因此,当使用MSK推导PMK时,MSK至少由256位组成。PMK的生命周期由认证服务器决定,而PTK的声明周期则要短于PMK的声明周期
PMK是申请者和认证者之间所有密钥数据的最终来源。它可以衍生自身份验证过程中的EAP method,或者有PSK直接提供。认证者用来生成组临时密钥(GTK)的密钥,通常是认证者生成的一组随机数。

PTK 成对临时密钥 PTK = PRF-X(PMK,”pairwisekey expansion”,
min(AA,SPA)||MAX(AA,SPA)||MIN(ANONCE,SNonce)||max(ANonce,SNonce))
AA: 是认证者的MAC地址
SPA:是申请者的MAC地址
TKIP使用X = 512,CCMP使用X= 384
PTK 是从成对主密钥中产生的密钥,其中包括加密与完整性协议所使用的密钥以及传递动态密钥所需要的密钥。
最终用于加密单播数据流的加密密钥。

GTK 组临时密钥由组主密钥(GMK)通过哈希运算生成,是用来保护广播和组播数据的密钥。 最终用于加密广播和组播数据流的加密密钥。

MIC 消息完整性校验码
MIC Key=PTK 前 16 个字节。是在第二次握手的时候 ,提取这个 PTK 前 16 个字节组成一个 MIC KEY。在第三次握手的时候提取这个 PTK 前 16 个字节组成一个 MICKEY 使用以下算法产生 MIC 值用这个 MIC KEY 和一个 802.1x data 数据帧使用以下算法得到 MIC 值:MIC KEY=提取PTK 的前16 个字节
MIC = HMAC_MD5(MIC Key,16,802.1x data)
针对一组需要保护的数据计算出的散列值,用来防止数据遭篡改。

STA和AP得到PMK后,将进行密匙派生以得到PTK。最后,PTK被设置到硬件中,用于数据的加解密。由于AP和STA都需要使用PTK,所以二者需要利用EAPOL Key帧进行信息交换。这就是4-Way Handshake的作用。

关注公众号,获取更多开发必备知识

WPA-PSK四次握手相关推荐

  1. WPA/RSN四次握手和PTK

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

  2. Wifi_认证 、关联 和 四次握手(WPA/WPA2)

    概述 什么是 四次握手? 四次握手是 AP (authenticator) 和 (supplicant)进行四次信息交互,生成一个用于加密无线数据的秘钥. Wifi的连接 让我们 从一次Wifi连接的 ...

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

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

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

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

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

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

  6. WPA-PSK 4-way handshake 四次握手过程

    3.4.2 第一次握手 AP广播SSID,AP_MAC(AA)→STATION STATION端  使用接受到的SSID,AP_MAC(AA)和passphares使用同样算法产生PSK   3.4. ...

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

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

  8. Android Wi-Fi 四次握手简介

    1 WPA-PSK 初始化工作 使用 SSID 和passphares使用以下算法产生PSK 在WPA-PSK 中PMK=PSK PSK=PMK=pdkdf2_SHA1(passphrase,SSID ...

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

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

  10. 关于WPA/WPA2 4次握手

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

最新文章

  1. this指向undefined uiapp_JavaScript深入之史上最全5种this绑定全面解析
  2. java学习笔记7--抽象类与抽象方法
  3. swift 注意事项 (十六) —— 可选链
  4. GIVE_A_TRY.exe 逆向(NCK逆向初级第9,10,11课作业)
  5. java6 disable ssl2.0_SpringBoot2.0如何启用https协议
  6. 处理数字_9_计算标准差
  7. AdaBoost 和 Real Adaboost 总结
  8. 【CCL】连通区域提取
  9. 慧联A8最新检测使用教程V2.0.3
  10. 【CodeForces - 731C】Socks(并查集,思维)
  11. ssh 介绍 和使用 程序不挂起
  12. 无向图的深度优先遍历非递归_LeetCode0429: N叉树的层序遍历
  13. springboot定时任务处理
  14. Html5不可见标签,及标签属性(元素对象属性) a href target name id 相对路径
  15. Total capture: A 3D Deformation Model for tracking faces, hands and bodies
  16. mysql replace 只替换第一个_MySQL:replace函数的几种实用场景
  17. 计算机键盘无法输出,为什么键盘指示灯亮着却不能打字
  18. 一些货币政策及金融术语简介
  19. android的otg功能,android怎么打开otg功能
  20. 读书笔记-大教堂与集市

热门文章

  1. 布隆过滤器和布谷鸟过滤器
  2. 退货表mysql,限制mysql表
  3. 稀疏向量计算技术杂谈
  4. 智慧城市内涝积水在线监测系统解决方案
  5. Global Pointer
  6. macbookpro怎么恢复出厂设置
  7. 如何将多个PDF选择页面后再进行合并
  8. 数字图像处理 - 比特平面分层 的python实现
  9. Maven学习(3)Maven的依赖管理
  10. 计算机视觉的sci文章,SCI(图像-计算机视觉-测量)(国外英文资料).doc