Wie kann ich das Zertifikat eines drahtlosen AP mit 802.1X herunterladen?


11

Soweit ich weiß, können drahtlose Zugriffspunkte mit WPA-Enterprise (dh WPA plus 802.1X) während des Verbindungsaufbaus ein Zertifikat mit öffentlichem Schlüssel an einen Client senden. Der Client kann dieses Zertifikat überprüfen, um sicherzustellen, dass keine Verbindung zu einem nicht autorisierten AP hergestellt wird (ähnlich wie bei der Zertifikatüberprüfung in HTTPS).

Fragen:

  • Habe ich das richtig verstanden?
  • Wenn ja, gibt es eine Möglichkeit, das AP-Zertifikat herunterzuladen? Idealerweise hätte ich gerne eine Lösung, die unter Linux funktioniert.

Ich möchte ein selbstsigniertes Zertifikat herunterladen, um nachfolgende Verbindungsversuche zu überprüfen. Dies wäre einfacher, als den Betreiber des AP nach einer Datei zu fragen.


Ich kenne kein spezielles Tool zum Herunterladen und Speichern des Zertifikats, aber es ist klar erkennbar, sodass Sie es mit Wireshark oder tcpdump erfassen können. Ich erinnere mich, dass ich Zertifizierungsdaten in debug / verbose wpa_supplicant-Protokollen gesehen habe, also könnten Sie sich das auch ansehen. Für jeden dieser Ansätze ist möglicherweise ein wenig Datenmunging erforderlich, um es vom pcap / log-Formular in eine richtige X.509 .cer-Datei zu übertragen.
Spiff

Antworten:


11

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 *.crtoder *.derDateien 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/certsVerzeichnis ... Wenn das der Fall ist, sollten Sie Satz domain_suffix_matchals 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.)


Vielen Dank für die ausführliche Beschreibung. Es klingt ein bisschen kompliziert; Aber wenn das der einfachste Weg ist, werde ich es versuchen.
Sleske

Ja, es hat wirklich funktioniert, ich habe den EAP-Austausch mit heruntergeladen, tpcpdumpaber wie ein Zauber funktioniert. Komisch, mein Stream hatte nur einen Server Hallo, Zertifikat, ... Eintrag
mTorres

In meinem Beispiel ist die TLS-Nachricht über mehrere EAP-Pakete fragmentiert, weil sie zu groß ist (insbesondere, wenn mehrere große RSA-Zertifikate gesendet werden). Es ist jedoch immer nur ein TLS ServerHello insgesamt.
user1686

Bitte nehmen Sie mit, wenn ich etwas Falsches sage. Für eine solche Aktivität muss ein Zertifikat heruntergeladen und auf Geräten angewendet werden, auf denen das Zertifikat bei der ersten Verbindung nicht heruntergeladen und akzeptiert werden kann.
Mauro
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.