如何查看AP提供的WPA2 PEAP证书?

str*_*ika 10 wifi wpa-supplicant wpa wpa2-eap wpa2

我必须连接到 WPA2 Enterprise 网络,该网络仅在我不验证证书时才有效。我不想这样做,因为这样任何人都可以看到 MSCHAPv2 消息。

解决此问题的第一步是查看 AP 提供的证书,然后将 wpa_supplicant 配置为仅信任该证书。但我不知道如何获得证书。wpa_cli“status”命令不显示它,也不在任何日志中。

我也很好奇使用了哪些 SSL/TLS 密码套件。是否可以手动连接,也许使用 openssl s_client?

小智 6

您可以使用 Wireshark 转储握手,然后使用 openssl 将二进制数据转换为 PEM,正如@grawity 在超级用户的类似问题中所建议的那样:

\n
\n

遗憾的是,即使在调试模式下,wpa_supplicant 也没有转储证书的选项。(如果我找到更好的方法,我会更新此内容。)不过,您仍然可以监视实际的 EAPOL 身份验证过程。首先,安装 Wireshark。

\n

断开连接时,手动启动接口并开始捕获:

\n
$ sudo ip link set wlan0 up\n$ wireshark -ki wlan0 &\n
Run Code Online (Sandbox Code Playgroud)\n

启动 wpa_supplicant,很快您就会看到 TLS 握手:

\n

\n

服务器将在 ServerHello 之后立即发送其证书。选择第一个这样的数据包,然后深入研究:

\n
802.1X\n\xe2\x94\x94\xe2\x94\x80Extensible Authentication Protocol\n  \xe2\x94\x94\xe2\x94\x80Secure Sockets Layer\n    \xe2\x94\x94\xe2\x94\x80Handshake Protocol: Certificatte\n      \xe2\x94\x94\xe2\x94\x80Certificates\n
Run Code Online (Sandbox Code Playgroud)\n

右键单击“Certificate ( stuff )”的第一个实例,然后选择“导出选定的数据包字节”。Wireshark 会将其保存为二进制 DER 格式的文件。对所有其他证书重复此操作。最上面的一个(RADIUS 服务器)包含您可以在 中配置的信息altsubject_match;最后一个(根 CA)应作为 提供给 wpa_supplicant ca_cert。

\n

现在您有一些*.crt二进制*.derDER 格式的文件。将它们转换为 PEM“文本”格式:

\n
openssl x509 -inform DER < mycert.der > mycert.pem\n
Run Code Online (Sandbox Code Playgroud)\n

(如果您的 wpa_supplicant 使用 OpenSSL 作为 TLS 处理程序,您必须向其提供“根 CA”证书;向其提供服务器的证书将不起作用。

\n

请注意,Wireshark 中看到的最后一个证书也可能不是根 CA 的,而仅由您目录中的根 CA 之一颁发/etc/ssl/certs...如果是这种情况,请确保使用公共 CA设置altsubject_match\xe2\x80\x93 也是不安全的,因为不幸的是 802.1X 不知道要验证什么“主机名”,例如 HTTPS 的方式。)

\n
\n