EAPOL四次握手流程

news/2024/12/1 10:44:33/

EAPOL四次握手流程

  • 协议
  • 功能
  • 数据帧格式
  • 四次握手流程
    • 数据帧日志解析
  • 组播
  • 代码

协议

802.11i

功能

作用:派生和交换两组密钥
密钥包括ptk加解密单播数据,由用户设置的pmk扩展(在setwork的时候通过pasapharse生成)
gtk加密解组播数据,由gmk派生而来(由ap决定)

//gtk安全角度考虑:因同一个ap和所有sta使用共同的gtk,有sta中途离场时AP和剩下的STA之间最好更换一个新的GTK

数据帧格式

以message A举例
在这里插入图片描述
在这里插入图片描述
keyinfo字段详解
在这里插入图片描述
在这里插入图片描述

四次握手流程

交互过程主要是为了派生密钥和安装
前两帧用于密钥的交换和派生:
STA收到Message A的处理逻辑如下:
生成一个Nonce,也叫SNonce。
派生PTK。
构造第二个EAPOL-Key帧,称为Message B

AP收到Message B的处理如下:
派生PTK。
检查Message B的MIC值是否正确。如果发现MIC错误,则丢弃(而且是silently)MessageB。

后两帧主要用于密钥安装
STA收到Message C的处理如下。
检查Replay Counter,计算MIC以及利用自己的PTK解密Key Data以获取RSN IE。
如果Message C包含GTK信息,则取出GTK。注意,GTK以及和Key相关的信息存储在KDE(Key Data Element)的IE中。关于KDE和GTK的格式,请读者继续阅读下文。
构造并发送最后一个EAPOL-Key帧,称为Message D。
为Driver安装PTK。

AP收到Message D的处理如下。
再次计算MIC,如果正确则为driver安装PTK。
更新Replay Counter,如果以后需要更新Key,则使用一个不同的Replay Counter。

数据帧日志解析

message A
在这里插入图片描述
在这里插入图片描述
message B
在这里插入图片描述
在这里插入图片描述
message C
在这里插入图片描述
在这里插入图片描述
message D
在这里插入图片描述

组播

在这里插入图片描述

代码

状态迁移
接收message A状态为“WPA_4WAY_HANDSHAKE”
接收message C状态为“WPA_4WAY_HANDSHAKE”,
如果message C中包含gtk信息,则状态迁移“WPA_GROUP_HANDSHAKE”安装gtk
安装ptk、gtk之后状态为“WPA_COMPLETED”
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/22441.html

相关文章

可变参模板指南

可变参模板 文章目录可变参模板可变参函数模板基本外观和介绍展开参数包(获取参数包的值)错误的演示正确的演示采取递归方式采取逗号表达式为什么需要逗号表达式其他方式应用1.求最大值(可接受多个参数)2. 用可变参数模板函数模仿printf的功能3. 使用tup…

Vue理解

1.是什么?Vue是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的web应用框架。Vue所关注的核心是MVC模式中的视图层,同时它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互。2.Vue核心特性…

Pyspark基础入门3

Pyspark 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hi…

C++高级教程——C++多线程

C高级教程——C多线程C 多线程创建线程终止线程实例连接和分离线程C 多线程 多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。在一般情况下,有两种类型的多任务处理:基于进程和基于线程。 基于进程的…

Idea 运行多个微服务 Idea 一个服务开启多个端口运行 idea 开启多个端口服务

Idea 运行多个微服务 Idea 一个服务开启多个端口运行 idea 开启多个端口服务 一、情景描述 在使用idea 练习微服务项目时,如 要测试负载均衡功能,那么一个项目需要开启多个不同端口的服务,这个在idea中 如何实现呢? 二、设置步骤 …

Linux系统的服务管理

1、服务的概念 操作系统中在后台持续运行的程序,本身并没有操作界面,需要通过端口号访问和操作。CentOS 6和CentOS 7的服务管理有很大区别,我们分别来看。 2、CentOS6服务 ①service命令 启动服务:service 服务名 start 停止…

自动化测试成长路上必会技巧

目录 1. 首先要搞明白几个问题 2. 语言基础 3. selenium学习,脚本编写 4. 执行测试,脱离脚本阶段 5. 参数化、配置、日志、简单框架搭建 6. 自动执行,自动发送报告 7. 高级货,平台?分布式?界面&…

Hadoop 复习 ---- chapter08

Hadoop 复习 ---- chapter08RPC 定义: Remote Procedure Call,远程方法调用,它允许一台计算机程序远程调用另外一台计算机的子程序,而不关心底层的网络通信细节。RPC 经常用于分布式网络通信中。 RPC 特点:透明性、高…