新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何读懂 WPS 的密码学内核:wifit3 WSC 模块的 DH 模幂、WPS KDF 与 AES-CBC 离线可测试设计指南

发布时间:2026/10/1 13:14:01来源:尧图网络
如何读懂 WPS 的密码学内核:wifit3 WSC 模块的 DH 模幂、WPS KDF 与 AES-CBC 离线可测试设计指南
如何读懂 WPS 的密码学内核wifit3 WSC 模块的 DH 模幂、WPS KDF 与 AES-CBC 离线可测试设计指南【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3wifit3是一款跨平台的纯 Python USB Wi-Fi 审计工具其 WSC 密码学模块完整实现了 WPSWi-Fi Protected Setup注册协议的加密内核Diffie-Hellman 模幂交换、WPS KDF 密钥派生和 AES-128-CBC 加密全部以无依赖纯 Python 编写可完全离线测试——本文带你看懂这套设计的精妙之处。为什么 WPS 破解绕不开密码学WPS PIN 暴力破解约 1.1 万次尝试即可穷举 8 位 PIN的本质是一场在线的密码学对话工具扮演外部 Registrar注册者与 APEnrollee入网设备完成 EAP/EAPOL 会话。每一步——从 M2 的 Authenticator 到 M4 的加密设置——都必须与路由器固件中的实现逐位一致错一个字节就会被 NACK 拒之门外。这正是 wifit3 设计密码学模块时的核心矛盾实现必须零外部依赖项目目标是纯 Python PyUSB Textual实现必须可离线验证——不可能每次改代码都拿真实路由器做回归测试。三大原语一次看懂 WSC 加密面全部密码学原语集中在 src/wifit3/dot11/wsc/crypto.py 这一个文件里按功能分为三层。1️⃣ DH 模幂RFC 3526 MODP 分组 5WPS 双方用 1536 位 Diffie-Hellman 交换共享密钥。实现只有两行核心逻辑见 crypto.py#L89-L100生成密钥对pow(2, priv, DH_PRIME)计算公钥g^a mod p求共享密钥pow(peer, our_priv, DH_PRIME)得到g^AB mod p再零填充为 192 字节。素数DH_PRIME是 RFC 3526 公开发表的 MODP 分组 5 常量——这意味着第三方可以拿任何现成工具交叉验证结果而不是自己验证自己。2️⃣ WPS KDF从共享密钥到三把钥匙拿到 DH 共享密钥后派生链完全复刻 hostapd 参考实现DHKey SHA-256(zeropad(g^AB mod p)) KDK HMAC-SHA256_DHKey(N1 || EnrolleeMAC || N2) KDF(KDK, Wi-Fi Easy and Secure Key Derivation, 80B) → AuthKey(32B) || KeyWrapKey(16B) || EMSK(32B)KDF 本体在 crypto.py#L106-L118用固定标签串做 HMAC 计数器迭代直到攒够所需长度。三把钥匙各司其职——AuthKey 做消息认证、KeyWrapKey 加密设置消息、EMSK 用于后续密钥管理。PIN 相关的派生PSK1/PSK2 分半哈希、E-Hash/R-Hash也在同文件 crypto.py#L135-L153其中check_pin_half就是PixieDust 离线恢复 PIN 的验证原语。3️⃣ AES-128-CBC纯 Python 实现 FIPS-197M5/M7 的 Encrypted Settings 用 AES-128-CBC 加密。由于每次 PIN 尝试只加解密几十字节性能无关紧要于是 wifit3 直接手写 S 盒、GF(2⁸) 乘法、轮密钥扩展crypto.py#L224-L234CBC 模式在 crypto.py#L309-L333另配 PKCS#5 填充。离线可测试设计锚定公开已知答案向量这是本模块最值得学习的地方。测试文件 tests/dot11/test_wsc_crypto.py 采用三层验证策略层次验证方式依据AES 分组/块加密公开已知答案向量FIPS-197 附录 C.1、NIST SP800-38A F.2.1test_wsc_crypto.py#L14-L30DH 交换双方独立算出的共享密钥必须相等MODP 分组 5 数学性质WPS 派生链自洽性构造哈希 → 恢复哈希check_pin_half真 PIN 命中、假 PIN 拒绝关键点在于底层原语不和自己比而是和公开的密码学标准答案比。这样即使 KDF 或派生逻辑有 bugAES 部分也不会被自洽的错误掩盖。上层 WSC 派生则通过自洽性测试 对真实 AP 的在线验证scripts/wps/wps_probe.py补齐最后一步真实 AP 接受我们的 M2 Authenticator 并推进到 M3就证明整条 DH→KDF→AuthKey 链在线上是对的。模块如何被真实攻击复用密码学层是纯函数、零 I/O上层的攻击机制按角色组装它PIN 暴力破解registrar.py 的每-PIN 状态机M2/M4/M6 由 messages.py 构建Authenticator 就是HMAC_AuthKey(M_prev || M_curr)的前 8 字节PixieDust 离线恢复拦截到 M3 包PKE、PKR、E-Hash1/2、E-Nonce、AuthKey后pixie.py 调用check_pin_half在约 12ms 内完成密钥空间搜索全程不需要网络PBC 按钮捕获角色反转后复用同一套 KDF 与 AES 路径解出 M8 中的 PSK。架构细节含 M1–M7 报文时序、两半拆分为何把复杂度从 10⁸ 降到 ~1.1×10⁴写在 src/wifit3/campaigns/wps/README.md是理解整个模块的最佳入口。总结这套设计教会我们的三件事纯函数密码学层 攻击编排层分离——同一套原语被 Registrar、Enrollee、Pixie 三种模式复用能用公开标准锚定的绝不自证——FIPS/NIST/RFC 已知答案是密码学实现的生命线离线测试覆盖不到的一层用最小在线探针补齐——一次 M2 被接受胜过千次断言。 延伸阅读src/wifit3/dot11/wsc/ 完整源码、src/wifit3/campaigns/wps/ 攻击编排、tests/dot11/test_wsc_crypto.py 离线测试。【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

门店SaaS资金安全设计:权限最小化、操作留痕与对账闭环 2026/10/1 14:37:13

门店SaaS资金安全设计:权限最小化、操作留痕与对账闭环

一、权限模块:最小化 数据模型 权限设计采用经典的 RBAC(Role-Based Access Control) 细粒度权限点: 岗位即角色:收银员、技师、部长、店长、老板五套标准模板,可复制可微调权限点下沉到按钮:开…

阅读更多 →
大型集团人才画像怎么在HR系统里落地?从五维度数据模型到标签引擎,提升人岗匹配效率 2026/10/1 14:37:13

大型集团人才画像怎么在HR系统里落地?从五维度数据模型到标签引擎,提升人岗匹配效率

面向 HRIS 实施与 HR 数智化团队:结论先说——人才画像不是一份 Word 模板,而是一套「数据集成 标签引擎 能力建模 匹配推荐」的可计算链路。本文给出从五维度数据模型到工程落地的完整拆解,读完可照着在自有系统跑通。 人才画像的本质&am…

阅读更多 →
干货!这 8 款 AI 编程工具,帮你少走弯路!TaoToken 统一 Key 接入实测 2026/10/1 14:37:13

干货!这 8 款 AI 编程工具,帮你少走弯路!TaoToken 统一 Key 接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
钉钉机器人对接 OpenClaw 2.7.9 本地部署实操(附安装包与 TaoToken 配置) 2026/10/1 14:37:13

钉钉机器人对接 OpenClaw 2.7.9 本地部署实操(附安装包与 TaoToken 配置)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
轻松入门SpringAI:用TaoToken统一Key接入Spring AI其他模型 2026/10/1 14:37:13

轻松入门SpringAI:用TaoToken统一Key接入Spring AI其他模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
VSCode+EIDE开发STM32:把编译烧录链路改到TaoToken统一通道 2026/10/1 14:37:06

VSCode+EIDE开发STM32:把编译烧录链路改到TaoToken统一通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉