BasLUG Basilicata Linux User Group Another Brick in the Wep Trovi queste slide su Carmine “Karma” Stolfi 25 Ottobre 2008 – Sala Inguscio c/o Regione Basilicata - Potenza VI Giornata Nazionale Di Gnu/Linux E Del Software Libero
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Introduzione ● Introduzione al protocollo b e motivazioni del WEP ● Analisi delle vulnerabilità del WEP ● Gli strumenti esistenti per analizzare e forzare le reti wifi ● Un esempio reale ● Conclusioni
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ IEEE b (WiFi) basics ● Protocolli Wireless: – Wireless Bridges – Wireless Distribution System – Cable Replacement –... – Wireless LAN WLAN: – In pratica nelle periferiche di rete (PC, stampanti, ecc) la scheda Wireless prende il posto della scheda Ethernet tradizionale dove al posto della presa RJ-45 è presente un' antenna.
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Wireless LAN ● Physical Layer : ● radio modem, quasi interamente analogico ● frequenze europee 2.4Ghz e 5Ghz ● In particolare l' b: 2.4Ghz ~ Ghz ● Potenza massima consentita 100mW (20 db) ● Link Layer : ● gestisce il protocollo MAC ● controlla l' accesso al mezzo ● protocollo CSMA/CA
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ CSMA/CA CSMA Carrier Sense Multiple Access Collision Avoidance with Collision Avoidance (Accesso multiplo tramite rilevamento della portante che evita le collisioni) CD Nelle reti Wireless non è possibile rilevare le collisioni come nel CSMA/CD (Ethernet) è quindi necessario evitarle piuttosto che rilevarle
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Access Point ● Cos' è un Access Point ? ● Fornisce la connettività fra i client ● Tipicamente integra un modem ADSL ● Ha una portata molto ampia Come funziona un Access Point ? Ogni AP invia continuamente informazioni sulla rete Pacchetti Beacons (10/sec.) - richiamano l 'attenzione (!)
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Problemi di sicurezza ● riservatezza: l' assenza di connessioni fisiche e quindi di un “perimetro” rende i dati passanti sensibili alle intercettazioni. ● autenticazione: l' accesso alla rete deve essere consentito solo agli host autorizzati. ● integrità dei dati: i dati scambiati non devono poter essere contraffatti.
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ W ired E quivalent P rivacy (WEP) L' obiettivo è di raggiungere un livello di sicurezza paragonabile a quello delle reti cablate. ● Lo standard IEEE b (1999) prevede due implementazioni di WEP: ➢ classica (chiave a 40bit) – vulnerabile al Brute Force ➢ estesa (chiave di 104bit) – non vulnerabile al Brute Force Indipendentemente dalla implementazione gli obiettivi di sicurezza prefissati non vengono garantiti.
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ W ired E quivalent P rivacy (WEP) Scoperte subito gravi falle nella particolare implementazione del WEP ed in particolare riferite a: ● Algoritmo RC4 – il core dell' algoritmo WEP ● checksum CRC-32 – per l' integrità dei dati
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ ● Sviluppato da Ron Rivest (RSA Security) nel 1987 ● Algoritmo di cifratura simmetrico di tipo “stream- cipher” ● Non è altro che un generatore di numeri pseudo- casuali (PRNG) ovvero dato un seme in input genera una serie numerica univoca (a differenza di un RNG). ● alla base del WEP e del WPA per il wireless e di SSL e TSL per le connessioni internet Algoritmo RC4
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Algoritmo RC4 – funzionamento ● P ● P = set di dati che vogliamo cifrare (plaintext) ● R = flusso di byte generati da RC4 (keystream) P Effettuando l' operazione di XOR tra P e R otterremo: ● C = set di dati simile ad un flusso di dati casuale (ciphertext) ● XOR è una operazione simmetrica: A XOR B = C C XOR B = A C XOR A = B P C XOR R = P
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Plaintext Algoritmo RC4 – funzionamento Plaintext Ciphertext Keystream
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Algoritmo RC4 – debolezze L' RC4 (come tutti gli algoritmi stream-cipher) diventa estremamente vulnerabile se viene ripetuto lo stesso keystream per cifrare più flussi di dati, infatti poiché: [ A XOR A = 0 ] : ● Facendo lo Xor di due pacchetti cifrati con lo stesso keystream si ottiene: P 1 R P 2 RP 1 P 2 ● C 1 XOR C 2 = (P 1 XOR R) XOR (P 2 XOR R) = P 1 XOR P 2 Ovvero dati due pacchetti cifrati possiamo ottenere lo XOR dei rispettivi pacchetti in chiaro ! Continua →
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Algoritmo RC4 – debolezze Conoscendo anche uno dei due Plaintext ● P 1 P 1 P 1 P 2 P 2 ● P 1 XOR (C 1 XOR C 2 ) = P 1 XOR (P 1 XOR P 2 ) = P 2 (!!) P 1 E ancora, conoscendo P 1 ed il rispettivo C 1 ● P 1 P 1 P 1 RR ● P 1 XOR C 1 = P 1 XOR (P 1 XOR R) = R (il keystream!!)
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ CRC-32 RC4 – implementazione nel WEP Per ovviare al problema della chiave fissa il modulo PRNG RC4 del WEP è alimentato da un seed formato dalla concatenazione di: ● chiave WEP: 40 bit o 104 bit ● Vettore di Inizializzazione (I.V.): fisso 24 bit WEPPRNGWEPPRNG I.V. + WEP XOR I.V. WEP key Plaintext keystream Plaintext + ICV Chiphertest seed ICV I.V.
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Chiphertest RC4 – implementazione nel WEP Destinatario WEPPRNGWEPPRNG I.V. + WEP XOR WEP key Plaintext + ICV I.V. seed keystream
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ RC4 – implementazione nel WEP La dimensione di 24 bit scelta per il Vettore di Inizializzazione è troppo basso: – 2 24 possibili combinazioni (~17 Mil di I.V.) (!) – in una rete a 11Mbps in media ogni 5 ore si esauriscono i Vettori di Inizializzazione (!!!) – In molte implementazioni di drivers di sk PCMCIA l' I.V. viene reinizializzato a 0 quando si re-inserisce la sk (!!!!) – Lo standard specifica che cambiare I.V. in ogni pacchetto è opzionale
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Checksum CRC-32 ● Non è una funzione crittografica, prende in input un blocco di dati di lunghezza variabile e restituisce un output di 32 bit. ● Nel WEP il checksum viene calcolato prima che il pacchetto venga cifrato e poi allegato al pacchetto stesso. CRC-32CRC-32 WEPPRNG XOR Plaintext keystream Plaintext + ICV ICV Chiphertest
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Checksum CRC-32 A destinazione, ricavato il pacchetto in chiaro, viene ricalcolato e confrontato il checksum; I pacchetti con checksum non corretto vengono scartati. CRC-32CRC-32 WEPPRNG XOR keystream Plaintext + ICV Chiphertest
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Checksum CRC-32 - debolezze A causa della linearità del CRC rispetto allo Xor CRC(x XOR y) = CRC(x) XOR CRC(y) saremo siamo in grado di alterare un messaggio cifrato C alterando contemporaneamente anche il suo CRC rendendolo valido. C' = C XOR d
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Checksum CRC-32 - debolezze C = Keystream ^ (M || CRC(M)) ● C' = C ^ (d || CRC(d)) ● C' = Keystream ^ (M || CRC(M)) ^ (d || CRC(d)) ● C' = Keystream ^ ((M ^ d) || (CRC(M) ^ CRC(d)) ● C' = Keystream ^ ((M ^ d) || CRC(M ^ d)) C' = Keystream ^ (M' || CRC(M')) Abbiamo creato un pacchetto cifrato valido senza conoscere il keystream né la chiave WEP
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Principali vulnerabilità del WEP WEP Key Recovery: Alcuni valori dello IV producono chiavi WEP deboli Quando una chiave WEP debole è usata per criptare, il primo byte della stringa pseudo-casuale potrebbe contenere delle correlazioni con la chiave WEP debole. Ogni chiave WEP debole utilizzata permette di avere un byte della chiave segreta shared secret key con la probabilità del 5%.
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Principali vulnerabilità del WEP IV Collision: Consiste nel catturare passivamente una grande quantità di pacchetti, ma questa volta ponendo attenzione alla collisione degli IV. Quando una collissione si verica, facendo uno XOR logico con i 2 pacchetti, possiamo eliminare la codifica. (debolezza degli stream-cipher's)
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Attacco al WEP Linux ● Kismet ● Aircrack-NG ● Airsnort ● Airtraf ● WEPCrack ● Wavemon ●... Windows ● Netstrumbler ● APSniff ● Cain & Abel ● Pong ● WiFi Hopper ● WirelessMon ●...
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Attacco “tradizionale” al WEP Attacco diretto all' Access Point ✔ Fase1: Usare Airmon-ng per mettere la scheda wifi in modalità monitor sul canale dell' AP ✔ Fase2: Avviare Airodump-ng per catturare gli I.V.'s ✔ Fase3: Usare Aireplay-ng per effettuare una falsa autenticazione ✔ Fase4: Far partire Aireplay-ng in modalità di ARP request replay ✔ Fase5: Lanciare Aircrack-ng per ottenere la chiave WEP
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Attacco al WEP con airbase-ng IDEA:Attacco diretto al Client ✔ Fase1: Usare Airmon-ng per mettere la scheda wifi in modalità monitor ✔ Fase2: Usare Airbase-ng in modalità “Hirte attack” per simulare l' Access Point ✔ Fase3: Avviare Airodump-ng per catturare gli I.V.'s ✔ Fase4: Lanciare Aircrack-ng per ottenere la chiave WEP
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ WEP - Conclusioni La sicurezza nel WEP non è sufficiente per garantire: ✗ riservatezza ✗ autenticazione ✗ integrità dei dati Bisogna preferire altre soluzioni...
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Wi-Fi Protected Access (WPA) ● Nato dalle ceneri del fallimentare WEP ● Il core è sempre RC4 ma con I.V. da 48bit ● È stato introdotto il Temporal Key Integrity Protocol (TKIP) che permette di usare chiavi di criptazione dinamiche a 128 bit che variano in maniera dinamica e non vengono mai ripetute ● Il CRC è stato sostituito col nuovo Michael che evita molti attacchi comuni sul WEP WPA2 ● E' stata una soluzione tampone fino al completamento dello standard IEEE i la cui implementazione è il WPA2
Another Brick in the Wep Carmine Stolfi 25 Ottobre '08 Sala Inguscio - PZ Bibliografia ● ● ● ●
Presentato da: Carmine Stolfi Per maggiori informazioni e contatti visitate BasLUG Basilicata Linux User Group 25 Ottobre 2008 – Sala Ignuscio c/o Regione Basilicata - Potenza VI Giornata Nazionale Di Gnu/Linux E Del Software Libero