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

4376
sleske

Soweit ich weiß, können drahtlose Zugangspunkte, die WPA-Enterprise (dh WPA plus 802.1X) verwenden, während des Verbindungsaufbaus ein Public Key-Zertifikat an einen Client senden. Der Client kann dieses Zertifikat überprüfen, um sicherzustellen, dass es keine Verbindung zu einem Rogue-AP herstellt (ähnlich der Zertifikatvalidierung in HTTPS).

Fragen:

  • Habe ich das richtig verstanden?
  • Wenn ja, gibt es eine Möglichkeit, das AP-Zertifikat herunterzuladen? Idealerweise würde ich mir eine Lösung wünschen, die unter Linux funktioniert.

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

8
Ich kenne kein Tool, das speziell zum Herunterladen und Speichern des Zertifikats dient, aber es kommt klar zum Ausdruck, sodass Sie es mit Wireshark oder tcpdump aufnehmen können. Ich scheine mich daran zu erinnern, dass ich in den Debug / verbose-Protokollen von wpa_supplicant Zertifikatsdaten gesehen habe. Für jeden dieser Ansätze ist möglicherweise ein wenig Daten erforderlich, um ihn von der pcap / log-Form in eine geeignete X.509-CER-Datei zu bringen. Spiff vor 9 Jahren 0

1 Antwort auf die Frage

8
grawity

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 *.crtoder *.derDateien 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/certsVerzeichnis 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.)

Danke für das ausführliche Schreiben. Das hört sich etwas kompliziert an; Aber wenn dies der einfachste Weg ist, versuche ich es. sleske vor 9 Jahren 0
Ja, es hat wirklich geklappt, ich habe das EAP echange mit `` tpcpdump``` heruntergeladen, aber es hat wie ein Zauber funktioniert. Komisch, mein Stream hatte nur einen * Server Hello, Certificate, ... * Eintrag mTorres vor 5 Jahren 0
In meinem Beispiel ist die TLS-Nachricht über mehrere EAP-Pakete fragmentiert, da sie zu groß ist (insbesondere wenn sie eine Reihe großer RSA-Zertifikate sendet). Es ist jedoch immer nur ein TLS ServerHello. grawity vor 5 Jahren 0