Skill 2: Chiunque abbia la capacità di manipolare tool di WEP WPA Cracking
Abbiamo ampiamente visto che crackare una chiave WEP è tutt’altro che difficile. Rompere una chiave PSK di WPA o WPA2 è molto più difficile in termini di tempo e impegno (specialmente se si usa AES) ma comunque possibile.
A questo punto, quindi, non è più sufficiente un sistema di cifratura ma dobbiamo ricorrere all’autenticazione. Questa aggiunge un altro strato di sicurezza poiché richiede al client che vuole accedere alla rete una “firma”. Normalmente questo viene fatto usando un mix di certificati e password che vengono verificati da un authentication server.
802.1X provvede al controllo degli accessi, supporta molti tipi di EAP (Extensible Authentication Protocol) che eseguono autenticazione.L’uso di questo sistema richiede uno sforzo notevole. É una buona notizia comunque che si sta andando verso lo sviluppo di software che permettono all’utente di usare queste tecnologie in maniera semplificata. Con il 802.1x inoltre si è introdotto il supporto alla gestione dinamica della chiavi WEP. In questo modo, una volta che il client si è autenticato le chiavi con cui criptare il traffico wireless gli verranno fornite automaticamente e cambiate anche più volte durante la sessione di lavoro. Il periodo di validità delle chiavi è abbastanza breve tanto da renderle difficilmente determinabili da parte di un intruso che tenti un attacco.
Dal punto di vista pratico, il protocollo 802.1x non è altro che il frame di autenticazione EAP che si utilizza per l'autenticazione dei collegamenti point to point adattato per viaggiare in trame Ethernet invece che nei pacchetti PPP. In virtù di ciò il protocollo 802.1x è anche noto come EAPoL (EAP over LAN). Nella terminologia EAP le entità che entrano in gioco durante il processo di autenticazione sono: il supplicant, cioè il client che chiede di potersi associare alla rete; l'authenticator che nel caso delle reti wireless coincide con l'Access Point; l'authentication server che controlla se l'utente è veramente chi dice di essere. L'authentication server coincide spesso con un server RADIUS installato nel client, mentre l'authenticator è quello che nel protocollo RADIUS viene definito NAS (Network Access Server).
Come detto in precedenza, EAP è solo un frame di autenticazione che lascia al supplicant e all'authentication server il compito di concordare il metodo di autenticazione da utilizzare. Si noti che l'Access Point è trasparente da questo punto di vista, poiché il suo unico compito è di instradare i pacchetti provenienti dal supplicant mediante EAPoL al server RADIUS incapsulandoli in IP e viceversa.
Ci sono molti metodi di autenticazione basati su EAP, tipo EAP−MD5, EAP−TLS, EAP−TTLS, EAP−SIM, LEAP, ecc. Gli utenti Linux possono usare xsupplicant fornito dal progetto Open1x per accedere ad una rete che richiede una autenticazione basata su 802.1x.
Nell’esempio che segue faremo uso del protocollo LEAP. Bisogna ricordare che il protocollo è dipendente dalla scheda e dal driver, quindi anche se il vostro xsupplicant è installato e configurato correttamente, potreste comunque non essere in grado di accedere alla rete perchè la scheda o il driver non lo supportano.
Per prima cosa bisogna scaricare xsupplicant dal sito del progetto, http://open1x.sourceforge.net, ed installarlo.
I pre-requisiti sono:
- OpenSSL - http://www.openssl.org/
- libpcsclite (Per il supporto a EAP-SIM/EAP-AKA) - http://www.linuxnet.com/
- Pthreads Support (EAP-SIM/EAP-AKA)
La procedura di installazione è semplice e richiede il classico:
./configure
make
make install
Infine bisogna modificare il file di configurazione, /etc/xsupplicant/xsupplicant.conf. Ecco un esempio per LEAP.
#example of /etc/xsupplicant/xsupplicant.conf #for LEAP protocol network_list = all #the list of networks to access default_netname = default #the default access network first_auth_command = <BEGIN_COMMAND>dhclient %i<END_COMMAND> #The command before authentication, which is usually used to get some info from #the network logfile = /var/log/xsupplicant.log #log file myssid #here is your network id, may be listed in the network list { type = wireless ssid = <BEGIN_SSID>myssid<END_SSID> allow_types = all identity = <BEGIN_ID>aptitude<END_ID> eap−leap { username = <BEGIN_UNAME>username<END_UNAME> password = <BEGIN_PASS>passwd<END_PASS> }#setup for leap |