Ja, die gängigsten WPA-Enterprise-Konfigurationen verwenden entweder PEAP oder TTLS. Beide implementieren TLS über EAP über 802.1X.
In der Regel wird das Zertifikat von den Netzbetreibern zu genau diesem Zweck bereits irgendwo veröffentlicht. Es ist nicht etwas, wonach der Benutzer fragen sollte .
Leider hat wpa_supplicant auch im Debug-Modus keine Option, die Zertifikate zu sichern. (Ich werde dies aktualisieren, wenn ich einen besseren Weg finde.) Sie können den tatsächlichen EAPOL-Authentifizierungsprozess jedoch weiterhin überwachen. Installieren Sie zuerst Wireshark.
Wenn die Verbindung getrennt ist, rufen Sie die Benutzeroberfläche manuell auf und starten Sie eine Erfassung:
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
Starten Sie wpa_supplicant und bald sehen Sie den TLS-Handshake:
Der Server sendet seine Zertifikate sofort nach ServerHello. Wählen Sie das erste derartige Paket aus und stöbern Sie dann in:
802.1X
└─Extensible Authentication Protocol
└─Secure Sockets Layer
└─Handshake Protocol: Certificatte
└─Certificates
Klicken Sie mit der rechten Maustaste auf die erste Instanz von "Zertifikat ( Zeug )" und wählen Sie "Ausgewählte Paketbytes exportieren". Wireshark speichert es als Datei im binären DER-Format. Wiederholen Sie diesen Vorgang für alle anderen Zertifikate. Der oberste (RADIUS-Server) enthält Informationen, die Sie konfigurieren können altsubject_match
. Die letzte (Root-CA) sollte an wpa_supplicant als übergeben werden ca_cert
.
Jetzt haben Sie einige *.crt
oder *.der
Dateien im binären DER-Format. Konvertieren Sie sie in das PEM-Format "Text":
openssl x509 -inform DER < mycert.der > mycert.pem
(Wenn Ihr wpa_supplicant OpenSSL als TLS-Handler verwendet, müssen Sie ihm das Zertifikat " Stammzertifizierungsstelle " geben. Wenn Sie ihm das Zertifikat des Servers geben, funktioniert dies nicht.
Beachten Sie, dass es auch möglich ist , dass das letzte Zertifikat in Wireshark gesehen nicht von einer Stammzertifizierungsstelle sein wird, aber nur von ausgestellt einen der Stammzertifizierungsstellen in Ihrem /etc/ssl/certs
Verzeichnis ... Wenn das der Fall ist, sollten Sie Satz domain_suffix_match
als auch - anders, Die Verwendung öffentlicher Zertifizierungsstellen wäre unsicher (802.1X weiß leider nicht, gegen welchen "Hostnamen" überprüft werden soll, wie dies beispielsweise bei HTTPS der Fall wäre.)