当前位置: 首页 > news >正文

【加密PMF】psk-pmk-ptk

密钥类型

PSK

Pre-Share Key ,预共享密钥。静态配置的共享密钥。
通过SSID和password生成;
长度256位(32字节);
存储在AP和sta的配置中;
对于同一个SSID和password组合,PSK总是相同的;
计算公式PSK = PBKDF2(passphrase, ssid, 4096, 256);
wpa_supplicat接口sha1-pbkdf2.c:pbkdf2_sha1_f()

PMK

Pairwise Master Key,成对主密钥。认证阶段生成的中间密钥,在四次握手前存在。
如果是WPA2-PSK模式,PMK=PSK;
如果是WPA3-PSK模式,PMK=SAE协商PMK(输入“密码 + SSID,通过 Dragonfly 算法”;
长度256位(32字节);
缓存机制可缓存加快重连;

PTK

Pairwise Transient Key,成对临时密钥。会话专用加密密钥,通过四次握手生成。
使用PRF(Pseudo-Random Function)函数:
WPA2-PSK:PTK = HMAC-SHA1(PMK, “Pairwise key expansion” + MACs + Nonces)
WPA3-PSK:PTK=HMAC-SHA256(WPA3)

PTK组成可分解成多个子密钥作用如下:
• KCK(Key Confirmation Key, 16字节):用于计算 MIC(消息完整性校验)。
• KEK(Key Encryption Key, 16字节):加密 EAPOL 密钥消息。
• TK(Temporal Key, 16字节):加密单播数据帧(不用于管理帧)

• KCK(Key Confirmation Key, 16字节):用于计算 MIC(消息完整性校验)。
• KEK(Key Encryption Key, 16字节):加密 EAPOL 密钥消息。
• TK(Temporal Key, 16字节):加密单播数据帧(不用于管理帧)

三者之间的关系

在这里插入图片描述
在这里插入图片描述

IGTK

在 Group Key Handshake 阶段生成,IGTK = PRF-HMAC-SHA1(PMK, “Group expansion”, AP_MAC + GroupNonce)

PMF

Protect Management Frames,受保护的管理帧,旨在保护管理帧免受干扰。

功能

加密保护单播管理帧(如解除认证、解除关联帧、Action帧);
组播/广播管理帧提供完整性保护;
防御常见的Wi-Fi拒绝服务(DoS)攻击;

实现

单播管理帧加密算法:WPA2-PSK(AES-128-CCMP);WPA3(AES-256-GCMP)
组播\广播帧:BIP

使用PTK或IGTK派生管理帧的加密密钥:PTK:用于保护单播管理帧(如解除关联帧);IGTK:用于保护组播/广播管理帧(如 Beacon 帧中的部分信息)

完整性校验每个管理帧添加MIC;MIC = HMAC(Key, Frame_Content),密钥为 PTK/IGTK 的子密钥KCK

解除认证\关联帧

对于de-asso/de-auth
加密数据:2字节reason code;8字节MIC
在这里插入图片描述
在这里插入图片描述

1.使用PTK的子密钥KCK计算MIC放到帧的末尾,MIC = HMAC-SHA1(KCK, 帧头 + 帧体 + Nonce)
2.加密帧体,使用加密算法加密frame;使用KEK解密
3.设置Protected Frame 标志位“帧头->Frame Control Field”
在这里插入图片描述

wireshark解密

WPA2-PSK使用 wpa-pwd:passward:SSID
WPA3-PSK使用wpa-psk:PMK
编辑=>首选项=>Protocols=>IEEE802.11=>Edit···=》Enable decryption
在这里插入图片描述
PMK通过wpa_supplicant日志里获取wpa_sm_set_pmk()

http://www.lryc.cn/news/624791.html

相关文章:

  • 使用WinDbg对软件崩溃信息进行抓包的方法
  • AI 在金融领域的落地案例
  • 为Vue TypeScript 项目添加 router 路由,跳转到Chat AI页面
  • 2025 年无毒冷却液市场深度全景调研及投资前景分析
  • Qwen Code宣布每天免费调用2000次,且无Token限制
  • 物联网智能边缘架构:流数据处理与设备管理的协同优化
  • Linux常用命令详解
  • 增强服务器防御能力的自动化工具 Fail2Ban
  • MySQL实战优化高手教程 – 从架构原理到生产调优
  • iOS 正式包签名指南
  • 【C#补全计划】预处理器指令
  • 【MongoDB】常见八股合集,mongodb的特性,索引使用,优化,事务,ACID,聚合查询,数据复制机制,理解其基于raft的选举机制
  • 【Langchain系列五】DbGPT——Langchain+PG构建结构化数据库智能问答系统
  • MongoDB新手教学
  • Flutter 多功能列表项:图标、文字与Switch组合
  • 在阿里云 CentOS Stream 9 64位 UEFI 版上离线安装 Docker Compose
  • 智能人形机器人:知识驱动的工业生产力革新
  • 神经网络显存占用分析:从原理到优化的实战指南
  • 实战架构思考及实战问题:Docker+‌Jenkins 自动化部署
  • 【论文阅读】-《GeoDA: a geometric framework for black-box adversarial attacks》
  • 动态规划:入门思考篇
  • 01.Linux小技巧
  • 【Python语法基础学习笔记】条件表达式和逻辑表达式
  • python遇到异常流程
  • 【verge3d】如何在项目里调用接口
  • Python函数:装饰器
  • Kafka 零拷贝(Zero-Copy)技术详解
  • C++面试中的手写快速排序:从基础到最优的完整思考过程
  • IEC EN 62040 不间断电源系统(UPS)安全要求标准
  • 【音视频】芯片、方案、市场信息收集