当前位置: 首页 > 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.dtcms.com/a/338361.html

相关文章:

  • 【168页PPT】IBM五粮液集团数字化转型项目实施方案建议书(附下载方式)
  • 块体不锈钢上的光栅耦合表面等离子体共振的复现
  • 九联科技UMA223-H低功耗蜂窝模组在物联网设备中的应用与价值分析
  • 信号上升时间Tr不为0的信号反射情况
  • 工具集成强化学习:AI数学推理能力的新跃迁
  • Milvus向量数据库安装步骤
  • DRG/DIP支付改革如何通过大数据分析优化病种分组和权重调整?
  • 知识蒸馏 - 各类概率分布
  • CPP异常
  • 公司无公网IP,如何将内网服务,给外面异地连接使用?远程办公可通过什么访问?
  • 内联汇编(Inline Assembly)是什么?
  • redis命令行学习
  • Linux重要目录结构及目录命令
  • Vue3 中的 provide 和 inject 详解:实现跨组件通信
  • 运用4种填充方法补充缺失数据的案例
  • redis的过期键有哪些删除策略
  • Product Hunt 每日热榜 | 2025-08-18
  • 【跨国数仓迁移最佳实践6】MaxCompute SQL语法及函数功能增强,10万条SQL转写顺利迁移
  • 论往返之迴响:时间之织锦与信息之曼舞
  • [激光原理与应用-294]:理论 - 波动光学 - 衍射光学元件(DOE)
  • 如何生成和安全保存私钥?
  • oracle dg duplicate限速
  • 区块链技术原理(16)-以太坊节点与客户端
  • SpringBoot--JWT
  • WPF 打印报告图片大小的自适应(含完整示例与详解)
  • 初识CNN04——经典网络认识
  • 驱动开发系列64 - glCompileShader实现-GLSL 精度优化pass
  • 3.1 结构化输出(大模型的封闭与开放)
  • Windows系统上使用GIT
  • CMake指令:查找文件(find_file)、查找目录(find_path)、查找库文件(find_library)