如何下载使用 802.1X 的无线 AP 的证书?

如何下载使用 802.1X 的无线 AP 的证书?

据我所知,使用 WPA-Enterprise(即 WPA 加 802.1X)的无线接入点可以在连接设置期间向客户端发送公钥证书。客户端可以验证此证书以确保它没有连接到恶意 AP(类似于 HTTPS 中的证书验证)。

问题:

  • 我的理解正确吗?
  • 如果是,有没有办法下载 AP 证书?理想情况下,我想要一个在 Linux 下运行的解决方案。

我想下载一个自签名证书,以便用它来验证后续的连接尝试。这比向 AP 的操作员索要文件更简单。

答案1

是的,最常见的 WPA-Enterprise 配置使用 PEAP 或 TTLS,两者均通过 802.1X 上的 EAP 实现 TLS。

通常,网络运营商已经为此目的在某处发布了证书。用户不需要不得不问为了。

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

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

$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &

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

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

802.1X
└─Extensible Authentication Protocol
  └─Secure Sockets Layer
    └─Handshake Protocol: Certificatte
      └─Certificates

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

现在您有几个二进制 DER 格式的文件。将它们转换为 PEM“文本”格式*.crt*.der

openssl x509 -inform DER < mycert.der > mycert.pem

(如果您的 wpa_supplicant 使用 OpenSSL 作为 TLS 处理程序,则您必须给它“根 CA”证书;给它服务器的证书是行不通的。

请注意,Wireshark 中看到的最后一个证书也可能不是根 CA 的证书,而只是由...发出目录中的根 CA 之一/etc/ssl/certs...如果是这种情况,请确保domain_suffix_match也进行设置 - 否则,使用公共 CA 会不安全(不幸的是,802.1X 不知道要根据什么“主机名”进行验证,例如 HTTPS 会这样做。)

答案2

我想做一些类似的事情(PEAP 与 MSCHAPv2),所以在 hostap 邮件列表上发布了一个问题。作者回复

在使用 TLS 的 EAP 身份验证期间,wpa_supplicant 会将 CTRL-EVENT-EAP-PEER-CERT 事件作为控制接口事件发送出去。这些消息包括证书的 SHA256 哈希值和原始 DER 编码证书的完整十六进制转储。深度为 0 的条目用于服务器证书,而深度值较高的条目用于服务器提供的 CA。

举例来说,当连接到 wpa_supplicant 控制接口时,你会在 wpa_cli 中看到类似这样的内容:

CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=FI/O=w1.fi/CN=server.w1.fi' hash=5891bd91eaf977684e70d4376d1514621d18f09ab2020bea1ad293d59a6e8944
CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=FI/O=w1.fi/CN=server.w1.fi' cert=308203ac30820294a003020102020900d8d3e3a6cbe3cd69300d06092a864886f70d01010b05003041310b30090603550406130246493110300e06035504070c0754757573756c61310e300c060355040a0c0577312e66693110300e06035504030c07526f6f74204341301e170d3231303530333137303235335a170d3232303530333137303235335a3034310b3009060355040613024649310e300c060355040a0c0577312e66693115301306035504030c0c7365727665722e77312e666930820122300d06092a864886f70d01010105000382010f003082010a0282010100fd0e5ecd192c6a4183d92c0e36cd09b08fb2c98cc8d203386e54bc43eecef859b1e93f6dd45ee3c573193d0bbc29d7d06e750035fcf765b1b60fcb0649cfa94e3dc2644b18240a70b86e54dc903f6c18fdb688ab37dc8b4bb5e1ffedbb4505a3f0aa512bf179067f2fcd5dfce68aaf1bb97bca4375011d8e2dd9111386fb3c4b60a42949e3d22020cb5c0d9cd29c302111bcb374df64b0b767ee6adfaf3d1802b7dce55475b56c40c4b08a1bc6fdab1eb9efd183090d55ba17884ed0bdcf73367c284bf6aa48d4e8fb25d81dafc96873ac46aecbeb793657adc37002156df0a54373ab7204b11660740e4ac18f52281a957eabd004f6fa11da1bd199a44f9eed0203010001a381b33081b030090603551d1304023000301d0603551d0e0416041471267a1f7281972411aac075fabf31106949d0e7301f0603551d23041830168014a4fdb9391b81b3aaeb881dd481a9b51170cca7e1303506082b0601050507010104293027302506082b060105050730018619687474703a2f2f7365727665722e77312e66693a383838382f30170603551d110410300e820c7365727665722e77312e666930130603551d25040c300a06082b06010505070301300d06092a864886f70d01010b05000382010100b1d96f63a139815510cd05c1cc147d330a9aefc034dc77765b41922015a3c601af1f057cbb374a1d1f005e4a176b7a6a6ca4fbc7e41ee2387f25d1459beb6895f91bba9f40b95dc76ca0466b05acf4384d640b5de07b3031b8a6dad0a53e817b6a1ab54f2d4af200681368b8836b79f9b263a7df52de8e129d8773ec4b4738a29829a8c88b8eb12b47ddebcf6add2102005e7d8d4c19aa7d1bf49ba6a8f8f3a79d66e8540cdc7fe9afa24c888b87542833c55387b041e42e337baac02982c2bd541029f92da499d1e7c7570766ccd02e745d98280afe8a323c623d307c750c1631cecbe7411e4f3c921a3e80b11378b553b26a449fc13b92cf080e083210271b

如果您希望在未来的连接中只信任特定的证书,则可以按照以下方式在网络配置文件中使用该哈希值:

ca_cert="hash://server/sha256/5891bd91eaf977684e70d4376d1514621d18f09ab2020bea1ad293d59a6e8944"

这是可用于实现首次使用信任类型的策略的方法,听起来就像您在此处描述的用例。在Wi-Fi 联盟 WPA3 规范(在该文档中搜索“TOD”)。

这对我来说很有效,但我应该注意,我不需要使用它,wpa_cli因为验证哈希对我来说已经足够了。wpa_supplicant默认情况下,它已打印出来,因此很容易从那里复制/粘贴。

注意:如果您想要整个证书,则需要ctrl_interface在配置文件中设置并连接wpa_cli才能查看。应该执行如下操作:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel

相关内容