Come posso scaricare il certificato di un AP wireless usando 802.1X?


11

Per quanto ne so, i punti di accesso wireless che utilizzano WPA-Enterprise (ovvero WPA plus 802.1X) possono inviare un certificato di chiave pubblica a un client durante l'impostazione della connessione. Il client può verificare questo certificato per assicurarsi che non si connetta a un AP non autorizzato (simile alla convalida del certificato in HTTPS).

Domande:

  • L'ho capito bene?
  • Se sì, c'è un modo per scaricare il certificato AP? Idealmente, vorrei una soluzione che funziona sotto Linux.

Vorrei scaricare un certificato autofirmato, da utilizzare per verificare i successivi tentativi di connessione. Ciò sarebbe più semplice che richiedere un file all'operatore dell'AP.


Non conosco uno strumento specifico per il download e il salvataggio del certificato, ma si presenta in chiaro, quindi è possibile catturarlo con Wireshark o tcpdump. Mi sembra di ricordare di aver visto i dati del certificato nei registri wpa_supplicant debug / verbose, quindi potresti anche guardarli. Entrambi questi approcci possono richiedere un po 'di munging dei dati per ottenerlo dal modulo pcap / log in un file .cer X.509 corretto.
Spiff il

Risposte:


11

Sì, le configurazioni WPA-Enterprise più comuni utilizzano PEAP o TTLS, implementando entrambe TLS su EAP su 802.1X.

Di solito il certificato è già pubblicato da qualche parte dagli operatori di rete proprio per questo scopo. Non è qualcosa che l'utente dovrebbe chiedere .

Purtroppo, wpa_supplicant non ha un'opzione per scaricare i certificati anche in modalità debug. (Aggiornerò questo se trovo un modo migliore.) È comunque possibile monitorare il processo di autenticazione EAPOL effettivo. Innanzitutto, installa Wireshark.

Mentre sei disconnesso, porta l'interfaccia manualmente e avvia una cattura su di essa:

$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &

Avvia wpa_supplicant e presto vedrai l'handshake TLS:

Il server invierà i suoi certificati immediatamente dopo ServerHello. Seleziona il primo pacchetto di questo tipo, quindi scava in:

802.1X
└─Extensible Authentication Protocol
  └─Secure Sockets Layer
    └─Handshake Protocol: Certificatte
      └─Certificates

Fai clic con il tasto destro del mouse sulla prima istanza di "Certificato ( roba )" e scegli "Esporta byte pacchetto selezionati". Wireshark lo salverà come file, in formato DER binario. Ripetere l'operazione per tutti gli altri certificati. Quello più in alto (server RADIUS) contiene informazioni nelle quali è possibile configurare altsubject_match; l'ultimo (CA principale) dovrebbe essere dato a wpa_supplicant come ca_cert.

Ora hai alcuni *.crto *.derfile in formato DER binario. Convertire in formato "testo" PEM:

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

(Se il tuo wpa_supplicant utilizza OpenSSL come gestore TLS, devi assegnargli il certificato "CA principale", assegnandolo il certificato del server non funzionerà.

Nota che è anche possibile che l'ultimo certificato visto in Wireshark non sia di una CA principale, ma emesso solo da una delle CA principali nella tua /etc/ssl/certsdirectory ... In tal caso, assicurati di impostare domain_suffix_matchanche - altrimenti, l'utilizzo di CA pubbliche sarebbe insicuro (802.1X purtroppo non sa quale "nome host" verificare, come farebbe HTTPS.)


Grazie per il commento dettagliato. Sembra un po 'complicato; ma se è il modo più semplice per farlo, ci proverò.
sleske,

Sì, ha funzionato davvero, ho scaricato EAP echange con tpcpdumpma ha funzionato come un fascino. Divertente, il mio stream aveva solo un server Hello, Certificate, ... entry
mTorres

Nel mio esempio il messaggio TLS è frammentato su più pacchetti EAP perché è troppo grande (specialmente se invia un mucchio di certificati RSA di grandi dimensioni). Tuttavia, è sempre solo un server TLS in totale.
user1686

Per favore, abbi pazienza se dico qualcosa di sbagliato. Una necessità per tale attività è scaricare un certificato e applicarlo su dispositivi che non consentono di scaricare e accettare il certificato alla prima connessione.
Mauro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.