Wifi

如何查看 AP 提供的 WPA2 PEAP 證書?

  • April 16, 2018

我必須連接到 WPA2 Enterprise 網路,該網路僅在我不驗證證書時才有效。我不希望這樣做,因為這樣任何人都可以看到 MSCHAPv2 消息。

解決此問題的第一步是查看 AP 提供的證書,然後將 wpa_supplicant 配置為僅信任該證書。但我不知道如何獲得證書。wpa_cli “status” 命令沒有顯示它並且它不在任何日誌中。

我也很好奇使用了哪些 SSL/TLS 密碼套件。是否可以手動連接,也許使用 openssl s_client?

您可以使用 Wireshark 轉儲握手,然後使用 openssl 將二進制數據轉換為 PEM,正如@grawity在超級使用者的類似問題中所建議的那樣:

遺憾的是,即使在調試模式下,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

右鍵點擊“Certificate ( stuff )”的第一個實例並選擇“Export selected packet bytes”。Wireshark 會將其保存為二進制 DER 格式的文件。對所有其他證書重複此操作。最上面的一個(RADIUS 伺服器)包含您可以在其中配置的資訊altsubject_match;最後一個(根 CA)應作為ca_cert.

現在你有一些二進制 DER 格式*.crt*.der文件。將它們轉換為 PEM“文本”格式:

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

(如果你的 wpa_supplicant 使用 OpenSSL 作為 TLS 處理程序,你必須給它“根 CA”證書;給它伺服器的證書是行不通的。

請注意,在 Wireshark 中看到的最後一個證書也可能不是根 CA,而是僅/etc/ssl/certs目錄中的一個根 CA 頒發…如果是這種情況,請確保也設置altsubject_match- 使用 public否則 CA 將是不安全的,因為不幸的是 802.1X 不知道要驗證的“主機名”,例如 HTTPS 的方式。)

引用自:https://unix.stackexchange.com/questions/333670