Convalida del certificato con 802.1x PEAP

4

Recentemente ho appreso come funziona WPA-PSK. Se ho capito bene, l'handshake a 4 vie consente al protocollo di assicurare il possesso reciproco del PMK (e quindi del PSK) senza inviare il PMK / PSK. In questo modo non è suscettibile a un attacco man-in-the-middle.

La mia domanda è: come viene garantita l'autenticazione reciproca in caso di WPA-Enterprise? Sto utilizzando 802.1x con FreeRadius e PEAP nella mia rete domestica (proprio come un progetto per hobby) e funziona, ma non sono sicuro di capire come funziona.

Sto usando PEAP, quindi i client sono autenticati con nomi utente e password. Ma i clienti si assicurano che la rete WiFi con cui stanno parlando non sia un vero maniaco? Il server di autenticazione ha un certificato SSL / TLS, ma è autofirmato. Il certificato CA radice utilizzato per firmare il certificato del server non dovrebbe essere installato sui client affinché funzioni? Questo non è il caso nel mio setup, ma tutti i miei client Android si connettono bene.

Se la mia comprensione di cui sopra è corretta, ciò significherebbe che WPA-Enterprise con PEAP è meno sicuro di WPA-PSK perché un attacco man-in-the-middle è possibile per intercettare le password. Questo mi sembra strano. C'è un difetto nella mia comprensione?

EDIT:

Ho trovato una risposta parziale in questo articolo . Tuttavia, ho ancora domande senza risposta.

  • Questo significa veramente che la mia configurazione PEAP WPA2-Enterprise è meno sicura rispetto a WPA2-PSK? Sembra davvero contro-intuitivo perché WPA2-PSK è molto più semplice e richiede solo un segreto condiviso. Com'è possibile che WPA2-PSK sia in grado di garantire l'autenticazione reciproca con un solo segreto condiviso mentre WPA2-Enterprise non lo è?
  • Dovrei esserne preoccupato (e procedere a migliorare / proteggere il mio setup) o non è probabile che questo possa essere sfruttato?
  • Come posso fare in modo che i client convalidino il certificato del server? L'unico modo per installare i certificati manualmente su tutti i client? (In tal caso, se devo comunque distribuire i certificati, posso passare a EAP-TLS)
  • Oppure è possibile utilizzare un certificato pubblico proprio come con HTTPS? Come funzionerebbe? Con HTTPS, il tuo certificato è "ancorato" al tuo dominio, che hai dimostrato alla CA che è tua. Come funziona questo con i server RADIUS?

EDIT:

Trovato più risposte.

EAP-MS-CHAP-V2 (Microsoft Challenge-Handshake Authentication Protocol version 2) is a mutual authentication method that supports password-based user or computer authentication. During the EAP-MS-CHAP v2 authentication process, both the client and the RADIUS server must prove that they have knowledge of the user's password for authentication to succeed. Mutual authentication is provided by including an authenticator packet returned to the client after a successful server authentication.

(Non posso pubblicare più di 2 link, quindi non sarò in grado di fornire una fonte per questo preventivo)

Qui viene spiegato che il protocollo di autenticazione interno / seconda fase, MS-CHAPv2, è anch'esso un protocollo di autenticazione reciproca. Ha senso ora.

Tuttavia, questo articolo suggerisce che MS-CHAPv2 non sia non sono più al sicuro Dal momento che mi affido alle proprietà di autenticazione reciproca di MS-CHAPv2 nella mia configurazione WPA2-Enterprise, ci sono alternative a MS-CHAPv2 che sono più sicure?

EDIT:

Ho appena scoperto EAP-PWD, un nuovo protocollo di autenticazione EAP a stadio singolo che dovrebbe essere più potente di PEAPv0 / EAP-MSCHAPv2, fornisce l'autenticazione reciproca e non richiede affatto certificati SSL / TLS.

EAP-PWD is highly secure (the password is never transmitted, even in encrypted form), and does not require PKI certificates, and also requires only 3 authentication round-trips. So it is considered efficient to roll out in eg Eduroam and other environments. Requires that the Radiator user database has access to the correct plaintext password.

L'unico problema sembra essere che non è ancora ampiamente adottato. Android (> 4.0) tuttavia lo supporta, il che è bello. Ma non sono riuscito a trovare molte informazioni a riguardo e, a quanto sembra, Windows non lo supporta.

    
posta Compizfox 11.08.2014 - 16:50
fonte

2 risposte

1

If my aforementioned understanding is correct, that would mean WPA-Enterprise with PEAP is less secure than WPA-PSK because a man-in-the-middle attack is possible to intercept the passwords. This seems weird to me. Is there a flaw in my understanding?

Sì, c'era un difetto nella mia comprensione. PEAP incapsula il metodo di autenticazione interno, EAP-MSCHAPv2 nel mio caso, in TLS. Se utilizzato correttamente, TLS fornisce l'autenticazione del server. Nel mio caso non è stato usato correttamente perché il certificato pubblico del server non è verificato.

Tuttavia , MS-CHAPv2 fornisce anche l'autenticazione reciproca. Per rispondere alle mie domande:

Does this really mean that my WPA2-Enterprise PEAP setup is less secure than plain WPA2-PSK? Seems really counter-intuitive because WPA2-PSK is so much simpler and only requires one shared secret. How is is possible that WPA2-PSK is able to ensure mutual authentication with just a shared secret while WPA2-Enterprise is not?

Non proprio. Entrambi garantiscono l'autenticazione reciproca senza trasmettere la password in testo semplice. L'unico problema con MS-CHAPv2 è che è piuttosto vecchio e dipende da DES, che non è più così strong. Può essere rotto .

How can I make the clients validate the server's certificate? Is the only way to install the certificates manually on all the clients? (In that case, if I need to distribute certificates anyway, I can better switch to EAP-TLS)

Non posso ancora rispondere a questo. La verifica del certificato del server aumenterebbe sicuramente la sicurezza (perché MS-CHAPv2 può essere violata) ma non ho idea di come farlo su Android. Ho provato a installare il certificato CA sul mio dispositivo Android, che è andato senza problemi, ma non ho ancora potuto selezionarlo nelle impostazioni WiFi.

Or is it possible to use a public certificate just like with HTTPS? How would that work? With HTTPS, your certificate is 'anchored' to your domain, which you've proven to the CA that is yours. How does this work with RADIUS servers?

Nessun indizio su questo.

Alternative

Bene, dal momento che MS-CHAPv2 non è più così sicuro, sarebbe bello avere alcune alternative. Un metodo EAP davvero promettente è EAP-PWD . Mi piacerebbe davvero implementarlo, ma non c'è molto da scoprire al riguardo. Android lo supporta, ma FreeRADIUS funziona solo nel ramo 3.x (unstable). E, naturalmente, il ramo stabile (2.x) è in Debian. Immagino di dover aspettare un po 'di tempo per questo.

    
risposta data 15.08.2014 - 01:52
fonte
0

How can I make the clients validate the server's certificate? Is the only way to install the certificates manually on all the clients? (In that case, if I need to distribute certificates anyway, I can better switch to EAP-TLS)

Devi solo installare il certificato pubblico della CA sul tuo dispositivo. Il mio RADIUS utilizza un certificato server auto-rollato emesso da una CA autofirmata e funziona perfettamente. Quando imporring i certificati sul mio Android, dovevo scegliere tra "VPN e App" e "WLAN". Quest'ultimo è quello corretto per il certificato CA da utilizzare per la connessione con una rete wifi.

Inoltre, ecco un piccolo consiglio. Ho disabilitato i protocolli deboli sul mio FreeRADIUS e quindi i miei clienti non possono comunque collegarsi alla mia rete WiFi senza il certificato CA. Quindi se in qualche modo fosse successo, sarei sicuro che qualcuno stesse spoofing un AP lol

    
risposta data 19.04.2017 - 03:32
fonte

Leggi altre domande sui tag