我正在启动一个与 WiFi 相关的研究项目,这需要我在连接设置期间分析 WiFi 客户端和 AP 之间的帧交换。
实验设置:我有一台笔记本电脑 M,在监控模式下使用 Wireshark 捕获 WiFi 流量,设备 A(运行 Linux)通过 802.1x 身份验证连接到 WiFi 网络,特别是使用 EAP-PEAP 协议。
我只控制笔记本电脑 M 和设备 A,而不是 AP 和网络(包括 RADIUS 服务器)。
目标:我想解码 Wireshark 在笔记本电脑 M 上捕获的 WiFi 数据帧。根据此 Wireshark how to,我需要以某种方式提取网络和设备 A 之间交换的 PMK(成对主密钥)。
由于我只控制设备 A,我需要从中提取 PMK。
问题:我不知道如何从设备 A 中提取 PMK(假设是 Linux 操作系统),特别是考虑到我们正在讨论 EAP-PEAP 会话,并且在搜索时我无法找到任何确凿的提示在网上。
我可以找到这个讨论,这意味着 PMK 直接存储在 WiFi NIC 或驱动程序中。
问题:
- 是否甚至可以在不对客户端系统进行重大修改(例如修改无线驱动程序的代码等)的情况下提取 PMK,例如在 Linux 系统中?考虑到这种“安全漏洞”的严重程度,我认为这将非常困难。
- PMK 是否以某种方式存储(例如在 Linux 中)?根据上述情况,我不希望是这种情况。
- 我需要修改什么代码(假设是 Linux 操作系统)来提取 PMK?
PS:我想指出,我不认为这是一个“黑客”问题(因此与 stackoverflow.com 的政策不一致),因为我控制客户端设备(不仅是监控设备) .