sle*_*ske 12 wireless-networking wpa ieee802.1x wpa-supplicant
据我了解,使用 WPA-Enterprise(即 WPA 加 802.1X)的无线接入点可以在连接设置期间向客户端发送公钥证书。客户端可以验证此证书以确保它没有连接到恶意 AP(类似于 HTTPS 中的证书验证)。
问题:
我想下载一个自签名证书,用它来验证后续的连接尝试。这比向 AP 的操作员索要文件要简单。
use*_*686 11
是的,最常见的 WPA-Enterprise 配置使用 PEAP 或 TTLS,两者都在 802.1X 上通过 EAP 实现 TLS。
通常,网络运营商已经为此目的在某处发布了证书。这不是用户应该要求的。
遗憾的是,即使在调试模式下,wpa_supplicant 也没有转储证书的选项。(如果我找到更好的方法,我会更新它。)不过,您仍然可以监视实际的 EAPOL 身份验证过程。首先,安装Wireshark。
断开连接时,手动启动接口并开始捕获:
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
Run Code Online (Sandbox Code Playgroud)
启动 wpa_supplicant,很快你就会看到 TLS 握手:
服务器将在 ServerHello 之后立即发送其证书。选择第一个这样的数据包,然后深入研究:
802.1X
??Extensible Authentication Protocol
??Secure Sockets Layer
??Handshake Protocol: Certificatte
??Certificates
Run Code Online (Sandbox Code Playgroud)
右键单击“Certificate ( stuff )”的第一个实例,然后选择“Export selected packet bytes”。Wireshark 会将其保存为二进制 DER 格式的文件。对所有其他证书重复此操作。最上面的一个(RADIUS 服务器的)有你可以配置的信息altsubject_match;最后一个(根 CA)应该作为ca_cert.
现在,你有几个*.crt或*.der二进制DER格式的文件。将它们转换为 PEM“文本”格式:
openssl x509 -inform DER < mycert.der > mycert.pem
Run Code Online (Sandbox Code Playgroud)
(如果您的 wpa_supplicant 使用 OpenSSL 作为 TLS 处理程序,您必须给它“根 CA”证书;给它服务器的证书将不起作用。
请注意,在 Wireshark 中看到的最后一个证书也可能不是根 CA,而是仅由您/etc/ssl/certs目录中的一个根 CA颁发...如果是这种情况,请务必也进行设置domain_suffix_match- 否则,使用公共 CA 是不安全的(不幸的是,802.1X 不知道要验证的“主机名”,例如 HTTPS 的方式。)
| 归档时间: |
|
| 查看次数: |
7712 次 |
| 最近记录: |