背景
之前实习的时候就学了Wifi p2p相关的东西,当时找M1到M8的功能把我累惨了,找到的还全是千篇一律的东西,讲的不是很清楚(当然原版出书的那个前辈肯定是懂的),但是对我等小白不友好,就萌生了这个想法,自己搞懂了写一篇。方便大家。
但是一直没动力,上次有个小伙伴问我,我才特意花时间写了一份。最后发现,好家伙他居然没关注我。小丑竟是我自己
整体流程
这儿用常见的图,给大家留个简单印象,大概有这几个帧交互,后面我们详细介绍 从EAPOL-Start开始的各个帧
前提提要
请自行抓包配合使用,不想抓包请配合 https://blog.csdn.net/moonlinux20704/article/details/109102318 这篇食用,主要是这篇的抓包截图彩色的,比较好看。哈哈哈哈
EAPOL-Start
作用:STA发给AP,表明STA想启动 EAPOL 认证
携带信息:无(不需要我们关注的一些东西,就写无了)
EAP-Request/Identity
作用:AP发给STA,问 STA的ID 和使用的身份验证方法
携带信息:无需要我们关注的信息
EAP-Response/Identity
作用:STA发给AP,回复自己的ID和使用的验证方法
携带信息: Identity 位, Identity 位被设置为 WFA-SimpleConfig-Enrollee-1-0
EAP-Request(start)
作用:AP发给STA,表示我已经获悉了你的身份验证方式了,我们可以开始EAP-WSC认证了
携带信息:没啥需要关注的
EAP-Response(M1)
作用:STA发给AP,启动密钥交换,把STA生成的随机数,MAC地址,public Key发给AP(Registrar),计算出密钥 KDK
携带信息:Enrollee Nonce,MAC地址,public Key发给AP
EAP-Request(M2)
作用:AP发给STA,把AP生成的随机数和AP的public Key发给STA,让STA计算相同的KDK出来,完成密钥交换
携带信息: Registrar Nonce 和AP 的public Key
EAP-Response(M3)
作用:STA发给STA。把计算出来的E Hash1 和 E Hash2 发给AP。让AP保存
携带信息:E Hash1 、 E Hash2
EAP-Request(M4)
作用:AP发给STA,把AP计算得到的 R Hash1 和R Hash2发给STA,同时把自己用于生成R Hash1的R-S1加密后发给STA,让STA去验证PIN码 的前半段。
携带信息: R Hash1 、R Hash2、加密后的R-S1(在Encrypted Settings 字段中)
EAP-Response(M5)
作用:STA发给AP,STA把自己的E-S1发给AP,让AP验证PIN码前半部分
携带信息:加密后的E-S1(在Encrypted Settings 字段中)
EAP-Request(M6)
作用:AP发给STA,AP把自己的R-S2加密后发给STA,让STA去验证PIN码的后四位
携带信息:加密后的R-S2(在Encrypted Settings 字段中)
EAP-Response(M7)
作用:STA发给AP,STA把自己的E-S2发给AP,让AP验证PIN码后四位
携带信息:加密后的E-S2(在Encrypted Settings 字段中)
EAP-Request(M8)
作用:AP发给STA,下发配置信息给STA
携带信息:所有的配置信息
EAP-Response(Done)、EAP-Fail、Deauthentication
作用:STA收到了配置后,向AP表示完成配置下发,然后AP发送失败,并发送解除关联,目的是让STA用刚刚拿到的配置信息,重新和AP建立连接。
携带信息: 无
结束
到这儿就靠一段落了,因为我也是个新手,可能很多地方讲得不对,不对的地方请各位指点,哈哈哈