Ja, die gängigsten WPA-Enterprise-Konfigurationen verwenden entweder PEAP oder TTLS, beide implementieren TLS über EAP über 802.1X.
Normalerweise wird das Zertifikat zu diesem Zweck bereits von den Netzbetreibern veröffentlicht. Es ist nicht etwas, was der Benutzer fragen sollte .
Leider hat wpa_supplicant keine Option, die Zertifikate auch im Debug-Modus zu sichern. (Ich werde dies aktualisieren, wenn ich einen besseren Weg finde.) Sie können den eigentlichen EAPOL-Authentifizierungsprozess jedoch weiterhin überwachen. Installieren Sie zuerst Wireshark.
Wenn Sie die Verbindung getrennt haben, rufen Sie die Schnittstelle manuell auf und starten Sie ein Capture:
$ 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 Paket aus, und suchen Sie nach:
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 dies für alle anderen Zertifikate. Der oberste (RADIUS-Server) verfügt über Informationen, die Sie konfigurieren können altsubject_match
. Die letzte (Root-CA) sollte als wpa_supplicant gegeben werden ca_cert
.
Nun haben Sie einige *.crt
oder *.der
Dateien im binären DER-Format. Konvertieren Sie sie in das PEM-Textformat:
openssl x509 -inform DER < mycert.der > mycert.pem
(Wenn Ihr wpa_supplicant OpenSSL als TLS-Handler verwendet, müssen Sie ihm das "Root-CA" -Zertifikat geben. Das Zertifikat des Servers kann nicht verwendet werden.)
Beachten Sie, dass es auch möglich ist, dass das letzte in Wireshark gesuchte Zertifikat nicht von einer Stammzertifizierungsstelle stammt, sondern nur von einer der Stammzertifizierungsstellen in Ihrem /etc/ssl/certs
Verzeichnis ausgestellt wird. Wenn dies der Fall ist, stellen Sie sicher, dass Sie dies ebenfalls festlegen domain_suffix_match
. Die Verwendung öffentlicher Zertifizierungsstellen wäre unsicher (802.1X weiß leider nicht, gegen welchen "Hostnamen" verifiziert werden soll, wie dies beispielsweise bei HTTPS der Fall wäre.)