详解Wi-Fi的四次握手

news2026/5/1 4:48:39
参考Linux WPA/WPA2/WPA3/IEEE 802.1X Supplicant_linux wpa3-CSDN博客Wi-Fi设备的发现和连接过程-CSDN博客wifi的probe/authentication/association都有对应的MAC帧但是好像没看到有四次握手的帧咋回事WPA是啥WPA全称 Wi-Fi Protected AccessWi-Fi 保护访问是一系列用来保护我们 Wi-Fi 通信安全的协议和标准的总称。它主要负责解决两个最基本的安全问题把关确保只有知道密码的人才能连上你的网络身份验证。加密把你上网的数据如密码、聊天记录变成“乱码”防止被他人窃听数据加密。你可以把 WPA 理解为给自家大门装的“锁”并且这把锁的版本经历了多次升级从最早的木门锁WEP到后来的标准防盗锁WPA/WPA2再到如今支持人脸识别且防撬的智能锁WPA3。1. 为什么要用WPA在 WPA 出现之前Wi-Fi 主要使用WEP有线等效加密协议。但 WEP 存在严重的设计缺陷用现在的普通电脑几分钟就能破解防护能力非常薄弱。为了弥补 WEP 的安全漏洞Wi-Fi 联盟在 2003 年推出了 WPA作为临时且兼容旧设备的过渡方案并在随后发布了更安全的 WPA2。2. 不同版本的WPA根据搜索结果WPA 主要有三个代表性版本它们的安全性差异巨大WPA第一代2003年作为过渡产品虽然引入了动态密钥等措施但仍沿用了旧 WEP 的加密核心RC4存在已知漏洞建议完全避开。WPA2当前主流2004年可以说是 Wi-Fi 安全的里程碑。它强制使用AES高级加密标准算法这是目前公认的最安全的加密方式之一能有效保护数据隐私。注意尽管 WPA2 非常安全但几年前发现的“KRACK 漏洞”可能会被攻击者利用重设密码。不过只要确保你的路由器、手机和电脑都更新了最新的安全补丁这个风险就是可控的。WPA3最新标准2018年在前两代基础上做了重大升级主要解决了 WPA2 长久以来的痛点防暴力破解采用SAE对等实体同时认证协议可以防止攻击者通过离线字典攻击来猜你的密码。就算你设置的密码相对简单也能更好地对抗暴力破解。前向保密即使攻击者以后知道了你家路由器的密码他也无法解密之前截获的上网数据实现了“过去的安全”。强制管理帧保护防止伪造的管理帧让网络连接掉线。3. 两种连接模式无论是 WPA2 还是 WPA3通常都提供两种模式以适应不同场景模式适用场景核心原理WPA-Personal个人版家庭、小型办公室也称为WPA-PSK。所有合法用户共用同一个“预共享密钥”即我们在手机上输入的 Wi-Fi 密码来连接网络-3-6-10。WPA-Enterprise企业版公司、政府、学校每个用户有独立的用户名和密码。需要搭配一台 RADIUS 认证服务器来验证用户身份访问权限控制更精细安全性更高-1-4-6。4. 总结与建议总而言之这一系列标准的安全性排序是WPA3 WPA2 WPA WEP。在选择 Wi-Fi 加密方式时建议遵循以下原则首选 WPA3如果家里路由器、手机、电脑特别是近两年购买的新设备都支持务必开启。这能最大程度保障密码安全和数据隐私。次选 WPA2绝大多数设备都能完美支持 WPA2是目前最稳妥、兼容性最好的选择。只要不设置过于简单的密码如12345678安全性完全足够日常使用-9。避开 WPA 和 WEP目前主流路由器的设置后台如果还提供这两个选项除非有老设备必须兼容否则绝对不要选。它们的安全防护能力已经不适合今天的网络环境-9。四次握手概述你之所以在 Wi-Fi 帧的类别里找不到四次握手是因为四次握手根本就不是以独立的帧类型存在的。1. 简单的答案它穿着数据帧的外衣你之前的理解框架完全正确Wi-Fi 帧主要分为管理帧、控制帧、数据帧三大类。管理帧 (如 Beacon, Probe, Authentication, Association)用于建立连接、宣告网络等。控制帧 (如 RTS, CTS, ACK)用于辅助数据传输如清空信道、确认接收。数据帧 (Data Frame)用于承载上层数据。然而四次握手不属于其中任何一类。它实际上是借用数据帧的通道来传输的一种特殊协议。2. 技术细节它是什么以及如何被携带的四次握手的通用名称是4-Way Handshake其核心是生成和验证加密密钥。它使用的协议叫作EAPoL (Extensible Authentication Protocol over LAN)。在 IEEE 802.11 标准中EAPoL 帧是作为数据帧的有效载荷被传递的。最外层是数据帧当分析软件如 Wireshark捕获到一个数据帧时它首先会显示这是一个 802.11 数据帧。里面包裹着EAPoL当软件进一步解析帧的数据载荷Frame Body部分时它会读取到帧头的类型字段发现是EAPoL协议号 0x888E。这才是四次握手消息紧接着软件在 EAPoL 帧内部找到类型为EAPOL-Key的包。这些包中的 Message 1、2、3、4 就对应了你所知道的四次握手信息。3. 为什么设计成这样数据帧的价值这种设计选择背后有两层非常合理的考量逻辑分层职责清晰 (协议栈解耦)管理帧 (802.11 层)负责连接管理找到 AP、完成认证、关联上 BSS就像拿到大楼门禁卡。数据帧 (802.2 层)负责数据承载传输任何高层数据。EAPoL 帧 (高层协议)负责密钥协商本身是高层业务。将四次握手放在数据帧中清晰地隔离了连接到网络和为网络通信建立安全通道这两件不同的事。这让协议栈的每一层都可以独立演进也使得 802.11 标准本身不需要再为一种特定的认证方法定义新的帧类型。标准兼容平滑升级 (硬件与软件分离)一个不支持加密的旧网卡可能不理解四次握手但它一定认识数据帧。将 EAPoL 帧作为数据帧传输意味着这部分握手过程主要由驱动或固件处理而不是无线芯片底层的硬件状态机。这使得 Wi-Fi 安全协议能够从 WEP 演进到 WPA、WPA2、WPA3而不需要大规模更换硬件。4. 你可能会遇到的特殊情况抓包时如何区分在 Wireshark 等分析工具的过滤栏中输入eapol就能直接过滤出四次握手的报文。这些报文的物理层802.11类型都是数据帧。四次握手一定会发生吗不一定。只有当你连接到使用 WPA/WPA2/WPA3 加密的 Wi-Fi 时在关联Association成功后四次握手才会立即开始。如果你连接的是一个开放无密码的网络就没有四次握手步骤关联成功后就可以直接发送数据了。-4总结四次握手没有专属的 Wi-Fi 帧类型。它通过EAPoL 协议封装并被当作数据帧的货物在空中传输。这种设计是分层架构和标准化需求的共同结果让无线网络在保持稳定的连接管理机制之上也能灵活地支持不断升级的安全标准。四次握手过程四次握手是WPA/WPA2/WPA3个人版中用于验证双方拥有相同的PMK成对主密钥并协商生成用于数据加密的临时会话密钥PTK和GTK的关键过程。它发生在开放系统认证和关联完成之后数据传输开始之前。1. 四次握手的触发时机与位置关键点四次握手不是802.11管理帧而是EAPoL-Key帧封装在802.11数据帧中EthType0x888E。只有在WPA/WPA2/WPA3-PersonalPSK或WPA-Enterprise802.1X模式下才会触发。开放网络、WEP不会进行四次握手。2. 四次握手涉及的密钥体系密钥名称全称长度生成时机作用PSK预共享密钥256位由密码passphrase通过PBKDF2-SHA1派生WPA2用于生成PMKPMK成对主密钥256位WPA2-PSK: PMK PSKWPA3-SAE: 通过SAE协商四次握手的根本信任根ANonce认证者随机数256位AP生成用于派生PTK新鲜性SNonce申请者随机数256位STA生成用于派生PTK新鲜性PTK成对临时密钥384/512位SHA-1/256(PMK, ANonce, SNonce, MAC1, MAC2)加密单播数据KCKEAPoL完整性密钥128位PTK的前128位计算和验证MIC四次握手消息完整性KEKEAPoL加密密钥128位PTK的中间128位加密GTK消息3中的Key Data字段TK临时密钥128位PTK的后128位CCMPAES-CCMP加密单播数据GTK组临时密钥128/256位AP生成由GMK派生加密广播/多播数据IGTKIGTK管理帧保护128位802.11w用于加密管理帧保护Deauth/Disassoc等3. 四次握手详细拆解预备条件STA和AP都已经拥有PMKWPA2-PSK情况下双方PMK相同。STA和AP已通过Association交换了各自的MAC地址。第一次握手AP → STA (ANonce)方向AP → STAEAPoL-Key帧字段Key Descriptor Type: 2 (WPA2)Key Information: Install0, Key Ack1, MIC0, Secure0Key Nonce: ANonceAP生成的随机数Key MIC: 0无MIC字段Key Data: 无STA动作保存ANonce。用PMK ANonce SNonce AP MAC STA MAC计算出PTK此时缺SNonce先继续。第二次握手STA → AP (SNonce MIC)方向STA → APSTA动作生成随机数SNonce。计算PTK PRF(PMK, ANonce, SNonce, AP MAC, STA MAC)。从PTK中提取KCKEAPoL完整性密钥。构造EAPoL-Key帧Key NonceSNonce其他必要字段。用KCK计算MIC消息完整性校验附在帧中。EAPoL-Key帧字段Key Information: Install0, Key Ack0, MIC1, Secure0Key Nonce: SNonceKey MIC: 有效值覆盖整个EAPoL包Key Data: 无AP动作收到SNonce后用同样的PMK、SNonce、本身已知的ANonce和两个MAC地址计算PTK。从PTK提取KCK。验证MIC是否正确判断STA是否拥有相同PMK。MIC正确 → STA通过身份验证 → AP安装PTK。第三次握手AP → STA (分发GTK)方向AP → STAAP动作生成GTK组临时密钥用于加密广播/组播。从PTK中提取KEKEAPoL加密密钥。用KEK加密GTK加上Key RSC等信息放入Key Data字段。构造EAPoL-Key帧。用KCK计算MIC。EAPoL-Key帧字段Key Information: Install1, Key Ack0, MIC1, Secure1Key Nonce: ANonce重复第一次握手的ANonceKey MIC: 有效Key Data: KEK加密的GTK 密钥ID等STA动作验证MIC确保消息完整性。检查ANonce是否与第一次握手收到的相同防重放。用KEK解密Key Data得到GTK。安装PTK和GTK。现在已经能够加密/解密数据帧但在发送普通数据前需完成第四次握手。第四次握手STA → AP (确认)方向STA → APEAPoL-Key帧字段Key Information: Install0, Key Ack0, MIC1, Secure1Key MIC: 有效仅MIC无其他关键负载STA动作构造最终确认帧。用KCK计算MIC。AP动作验证MIC。若正确安装GTK如果之前未安装并将STA的端口状态设为授权Authorized。开始允许STA发送加密数据帧。4. EAPoL-Key帧结构WPA2字段大小(字节)消息1消息2消息3消息4EtherType20x888E0x888E0x888E0x888EVersion12222Packet Type13 (EAPoL-Key)333Packet Body Length295959979Descriptor Type12222Key Information2Key Ack1MIC1Install1, Secure1Secure1Key Length216161616Key Replay Counter81122Key Nonce32ANonceSNonceANonce0Key IV160000Key RSC800GTK的RSC0Key ID800GTK Key ID0Key MIC160MICMICMICKey Data Length200GTK加密后长度0Key Data变长无无加密的GTK无5. WPA3 的变化WPA3-Personal 使用SAE对等同时认证而非 PSK在四次握手前已经完成 SAE 密钥协商双方共享PMK。四次握手本身与WPA2类似仍使用EAPoL-Key但底层PMK不是静态密码衍生的而是通过SAE动态生成抗离线字典攻击。密钥派生函数增强使用 HMAC-SHA-256而非 SHA-1。6. 抓包示例Wireshark过滤表达式eapolMessage 1/4 (AP → STA):EAPOL-Key Key Descriptor Type: 2 (WPA2) Key Information: 0x008a (Key Ack, MIC, Secure) Key Length: 16 Key Replay Counter: 1 Key Nonce: 2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c... (ANonce) MIC: 全零Message 2/4 (STA → AP):EAPOL-Key Key Information: 0x010a (MIC, Secure) Key Nonce: a1b2c3d4e5f60718293a4b5c6d7e8f9a... (SNonce) MIC: a12b3c45d6e7f89a0b1c2d3e4f5a6b7c (有效)Message 3/4 (AP → STA):EAPOL-Key Key Information: 0x13ca (Install, Key Ack, MIC, Secure, Encrypted) Key Replay Counter: 2 Key Data: 加密的GTK (24 bytes) MIC: 有效Message 4/4 (STA → AP):EAPOL-Key Key Information: 0x030a (MIC, Secure) Key Replay Counter: 2 MIC: 有效7. 关键要点总结维度说明触发时机关联成功后数据传输前涉及协议EAPoL-Key封装在802.11数据帧中密钥根PMKWPA2-PSK中PMKPSKWPA3中由SAE协商交换内容ANonce、SNonce、GTK核心算法PRF伪随机函数、HMAC-SHA-1/256、AES-256KEK加密GTK安装时刻消息3后STA安装PTK消息4后AP安装GTK并授权端口安全特性Nonce防重放、MIC防篡改、KEK加密GTK后续WPA2数据传输使用CCMPWPA3使用GCMP-256抓包过滤eapol协议类型0x888E一句话总结四次握手是Wi-Fi安全架构的核心引擎它利用PMK和双方随机数派生PTK和KCK/KEK通过EAPoL-Key帧的4次交换验证身份并安全分发GTK最终开启802.11数据加密传输。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…