WPS(WSC)中M1 到M8 图解

news2025/7/11 9:44:09

背景

        之前实习的时候就学了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建立连接。
携带信息: 无

在这里插入图片描述

结束

        到这儿就靠一段落了,因为我也是个新手,可能很多地方讲得不对,不对的地方请各位指点,哈哈哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.线性代数-矩阵

矩阵和Tensor1. Tensor2.矩阵3.线性代数正确打开方式3.1 行视图3.2 列视图4.线性相关和线性无关5. Span、基和子空间(Subspace)6.四个基本的子空间6.1 列空间6.2 零空间6.3 行空间6.4 左零空间6.5 四个基本子空间的关系7.可逆矩阵8.方阵的特征值与特征向量9.特征分解9.1一般矩阵…

【Pytorch with fastai】第 7 章 :训练SOTA的模型

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

Nginx优化方案

目录 一、Nginx返回错误页面 1、HTTP常见状态代码列表 二、Nginx状态页面 1、安装status模块 2、激活status 三、优化并发连接数 1、压力测试软件ab(http-tools) 2、优化并发连接数 2.1、修改nginx并发数 2.2、修改内核最大文件数量 四、Nginx…

吉莱斯皮随机模拟算法(SSA)(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

【K8S系列】第十讲:Knative 简介

目录 一、 Serverless介绍 二、Knative 介绍 2.1 Knative 的定位 2.2 Knative的组成 2.2.1 Build 构建系统 2.2.2 Serving:服务系统 2.2.3 Eventing:事件系统 补充: 三、总结: 一、 Serverless介绍 在讲Knative之前&a…

【毕业设计】机器视觉手势检测和识别系统 - python 深度学习

文章目录0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构4 最后0 前…

线程池源码解析 2.工作原理与内部结构

线程池源码解析—工作原理与内部结构 工作原理 概述 线程池是线程的池子,本质上是通过单个线程执行多个并发任务,使得尽量少的创建线程,减少开销。在线程池内部,是没有区分核心线程和非核心线程的,是通过 Set 集合的…

拒绝内卷,阿里架构师整理的这份Java核心手册,堪称最强

2022年注定是不寻常的一年,在今年因为疫情以及各大大厂纷纷传来裁员的消息,引得整个互联网圈动荡不堪。腾讯裁员30%、京东、百度、字节等大厂都在纷纷裁员,引的这些中厂和小厂也跟风裁员。 这个时候外部的各种变化愈发证明一个重要的一点&am…

2022.11.7-11.13 AI行业周刊(第123期):技术人员的职业发展在哪里?

篇章一:技术人员的职业发展 上周和大学时的舍友聊天,交流当前大家的生活状态。 我们已经本科毕业将近10年了,他目前也有两个孩子,在湖北的一个地级市中,从事的是通信行业。 不过随着工作的时间越久,他发…

软件测试面试真题 | 黑盒测试和白盒测试的基本概念是什么?

在软件测试的面试中,什么是黑盒测试,什么是白盒测试是特别容易被问到的一个问题。 面试官问出这个问题,其实考察的是大家对于软件测试基础理论的掌握程度。下面来梳理一下这个问题的回答思路。 黑盒测试 黑盒测试会把被测的软件看作是一个…

只会加班的项目经理,迟早被淘汰

早上好,我是老原。 最近看到一个文章的标题「废掉一个人最好的方式,就是让他忙到没时间学习」,具体内容是什么我还没有细读,只看完标题,有一丝心酸和自豪: 有那么一群人,在玻璃渣里找糖吃&…

皮带跑偏检测系统

皮带跑偏检测系统对皮带运行状态进行全天候实时监测,一旦皮带跑偏检测系统监测到现场皮带跑偏、撕裂、堆煤、异物等异常情况时,系统马上开展警报,通知后台,并提醒相关人员及时处置。皮带跑偏检测系统并把警报截屏和视频储存到数据…

附参考文献丨艾美捷Cholesterol胆固醇说明书

Cholesterol胆固醇以固体形式提供。可以通过将胆固醇溶解在所选择的溶剂中来制备储备溶液,该溶剂应使用惰性气体吹扫。胆固醇以约30mg/ml的浓度溶于有机溶剂氯-仿中。 艾美捷Cholesterol胆固醇参数: CAS号:57-88-5 正式名称:&am…

自动驾驶入门:预测

目录 概念 预测方式 障碍物预测 递归神经网络在预测中的应用 轨迹生成 概念 无人车是在许多物体间穿梭行驶,其中许多物体本身就是一直在移动的,比如像其他汽车、自行车、行人。无人车需要预测这些物体的行为,这样才能确保做出最佳决策。…

工作中对InheritableThreadLocal使用的思考

最近在工作中结合线程池使用 InheritableThreadLocal 出现了获取线程变量“错误”的问题,看了相关的文档和源码后在此记录。 1. 先说结论 InheritableThreadLocal 只有在父线程创建子线程时,在子线程中才能获取到父线程中的线程变量;当配合…

coding持续集成

先看看官网的一些操作提示 1、创建SSH密钥对 2、创建制品仓库 看完官网的介绍,持续集成需要提前准备好SSH凭证和制品仓库,下面将让我们动手开始吧 一、创建SSH密钥对 登录服务器控制台,创建 SSH 密钥对。获取私钥对后将其录入至 CODING 中…

Netty源码阅读(2)之——服务端源码梗概

上文我们把客户端源码梗概大致了解了一下,这样再了解服务端源码就轻松一点,我们将从服务端和客户端的区别着手去解析。 目录 区别 ④ ③ ① ⑤ 区别 ④ 客户端:.option(ChannelOption.TCP_NODELAY, true) 在TCP/IP协议中,无论…

贪心算法小结

A-金银岛 某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同&am…

ffmpeg视频编解码 demo初探(一)(包含下载指定windows版本ffmpeg)分离视频文件中的视频流每一帧YUV图片

参考文章1:YUV数据流编码成H264 参考文章2:【FFmpeg编码实战】(1)将YUV420P图片集编码成H264视频文件 文章目录第一个项目:分离视频文件中的视频流每一张图片弯路步入正轨下载官方编译的ffmpeg4.3(win64-g…

SpringFramework:SpringBean的生命周期

SpringFramework:SpringBean的生命周期 文章目录SpringFramework:SpringBean的生命周期一、SpringBean的生命周期1. 实例化 Bean2. 填充属性(DI)3. 初始化4. 销毁二、BeanDefinition1. 基本概念2. 大致结构3. Spring 构建它的优势…