Sicurezza delle Reti
Transcript
Sicurezza delle Reti
Sicurezza delle Reti complementi Ing. Rudi Verago [email protected] 1 Proprietà ● AUTENTICAZIONE: gli attori della comunicazione devono dimostrare la propria identità ● CONFIDENZIALITÀ: i dati sono cifrati ● INTEGRITÀ: i messaggi non devono essere modificati e a seconda delle applicazioni ● ● ● AUTORIZZAZIONE: l'utente autenticato ha il permesso di accedere a determinate informazioni e/o risorse NON RIPUDIABILITÀ: impossibilità di negare ciò che si è fatto con le proprie credenziali di accesso ACCESSIBILITÀ: i dati devono essere sempre accessibili 2 Un po' di storia ● Antica Grecia si usano cifrari con sostituzione semplice ● Il cifrario Atbash nella Bibbia ● IX sec a.C.: la scitala lacedemonica, riferisce Plutarco, era un bastone in cui si avvolgeva ad elica un nastro di cuoio ● II sec a.C : scacchiera di Polibio ● I sec a.C. :cifrario di Giulio Cesare ● IV sec d.C.: Enea il tattico compila il 1° trattato sui messaggi segreti ● IV-V sec d.C.: ideazione codici indiani ed ebrei ● Codici medievali ● 1586: cifrario di Blaise de Vigenere ● Prima metà del '900: algoritmo di Vernan, Turing, Enigma ● Dalla Seconda metà '900 crittografia moderna... 3 Semplici cifrari storici ● Cifrario di Atbash: usato nel libro di Geremia per cifrare la parola Babele, monoalfabetico che sostituisce la prima lettera dell'alfabeto con l'ultima, la seconda con la penultima ecc. Chiaro a b c d e f g h i j k l m n o p q r s t u v w x y z Cifrato Z Y X W V U T S R Q P O N M L K J I H G F E D C B A ● Cifrario di Cesare: usato nelle corrispondenze private, sostituzione semplice (3 lettere in avanti) Chiaro a b c d e f g h i j k l m n o p q r s t u v w x y z Cifrato D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 4 Codice di Vigenere ● ● ● ● Codice a sostituzione polialfabetica, si traslano le lettere in base alla chiave Chiave: LINUX Chiaro: Cifrato: N O N S O R R I D E R E Y W A M L C Z V X B C M Attenzione: si parte da 0 (A=0, B=1...) Al termine della lunghezza della chiave si riparte dalla prima lettera Uso della tavola di Vigenere per una veloce codifica/decodifica: 26righe*26colonne, con traslazione orizzontale di uno ogni riga 5 Enigma e Turing ● ● ● ● Durante la seconda guerra mondiale le trasmissioni militari venivano cifrate con la macchina Enigma inventata dall'ingegnere Arthur Scherbius; usava un cifrario a rotore; enigma non aveva stampante (questioni di peso) e i risultati apparivano illuminati sulla tastiera una lettera alla volta Si basava sulle trasposizioni, potevano essere singole o multiple E' stata forzata da Turing per conto del governo inglese, usò macchine chiamate Colossi (vista la loro dimensione) http://www.math.arizona.edu/~dsl/enigma.htm 6 Questione di chiave ● ● La robustezza dell'algoritmo dipende dalla lunghezza della chiave Il cifrario ideale (“improbabile” da realizzare) prevede un uso chiave casuale lunga quanto il plaintext (cifrario di Vernan) chipertext=chiave+plaintext ● Shannon ha dimostrato nel 1949 questo teorema: cifrario sicuro <=> cifrario di Vernan ● Questo è intuitavamente vero poiché con una chiave così lunga e casuale il chipertext non contiene informazioni sul plaintext, quindi invulnerabile ad attacchi classici della crittanalisi ● Requisito fondamentale: non usare due volte la stessa chiave ● Problema: SCAMBIO DELLA CHIAVE ● E' stato usato dai russi durante guerra fredda 7 Crittografia moderna ● ● ● L'introduzione degli elaboratori rende inefficace l'uso delle tecniche crittografiche classiche poiché si è in grado di elaborare numerose quantità di dati La crittografia dell'algoritmo classica si basa sul concetto di segretezza La crittografia moderna abbandona questo concetto, concentrandosi sulla non reversibilità dell'algoritmo poiché quasi sempre l'algoritmo è di pubblico dominio 8 Chiave simmetrica 1/2 ● ● ● Entrambi gli attori (A e B, ossia Alice e Bob di norma) della comunicazione conoscono un segreto (K), che è rappresentato tipicamente da una sequenza di bit lunga A elabora il file con K e lo trasmette, B sempre con K esegue l'operazione inversa e ricostituisce il file nella forma originaria A e B devono accordarsi sull'algoritmo di cifratura e sulla chiave 9 Chiave simmetrica 2/2 ● ● La debolezza si basa sulla difficoltà maggiore o minore, da parte dell'hacker, di indovinare la chiave La sicurezza quindi è basata sull'impossibilità di ricavare la chiave dal messaggio criptato ● Il pregio di questa metodologia è la semplicità ● Algoritmi più diffusi: DES (e varianti), AES, IDEA, BlowFish ● I limiti sono fondamentalmente: ● ● Gli attori devono scambiarsi la chiave in modo sicuro (tramite un canale sicuro) Rinnovo delle chiave 10 Esempio: procedimento ● ● ● L'hacker conosce: ● X = messaggio cifrato ● F = algoritmo ● 128 bit = dim chiave (supponiamo sia nota) ma non conosce ● Z = plaintext ● K = chiave Procedimento: prova tutte le combinazioni di 128 bit (K1, K2 ...) e controlla se Z = F (Ki,X), le possibili combinazioni sono 128 2 11 Esempio: tempo di esecuzione 128 38 2 =3.4⋅10 10 supponiamo 10 chiavi al secondo 22 t~3.3⋅10 anni 12 Chiave asimmetrica 1/2 ● ● Ogni utente deve avere una coppia di chiavi, una privata e una pubblica, e deve esistere un algoritmo in grado di cifrare con una chiave e decifrare con l'altra B diffonde la sua chiave pubblica, A acquisisce questa chiave, utilizzandola cifra i dati e li trasmette; l'utente B decifra il file usando la propria chiave privata. 13 Chiave asimmetrica 2/2 ● ● ● ● L'assunto fondamentale è che la chiave privata non sia facilmente ricavabile da quella pubblica e dai messaggi cifrati (che di solito vengono scambiati tra canali insicuri) E' necessario tenere segreta la chiave segreta, solo il proprietario deve conoscerla, nemmeno un eventuale ente fornitore deve esserne a conoscenza: qualcosa di simile succede con i PIN dei Bancomat o delle carte di credito E' necessario assicurare l'autenticità della chiave pubblica, introduzione di una Certification Authority (CA) Introduzione Public Key Infrastructure (PKI) 14 Confronto tra i metodi ASIMMETRICA SIMMETRICA ● Semplice l'implementazione e la gestione della singola chiave ● Complessa l'implementazione e la gestione ● Veloce ● Lento (100 volte simmetrica) ● Solo gli attori interagiscono ● Introduce altri enti (CA...) ● Chiavi brevi ● Chiavi lunghe ● Mediamente sicuro ● Molto sicuro SOLUZIONE: si usa una tecnica ibrida Si usano le tecniche asimmetriche per scambiarsi le chiavi di sessione, ossia le chiavi usate dalla crittografia simmetrica 15 Panoramica degli algoritmi ● DES ● 3DES ● IDEA ● AES ● chiave simmetrica(segreta) #bit chiave=128,256... Blowfish, TwoFish ● Serpent ● RC* ● DH ● RSA chiave asimmetrica (pubblica) #bit chiave: 1024,2048... 16 Data Encryption Standard ● ● ● ● Il DES è stato sviluppato dalla IBM e modificato dalla National Security Agency (NSA) Adottato come standard dal governo degli Stati Uniti dal 1977, dismesso nel 1998 quando la Electronic Frondier Fondation realizza la DES Cracker Machine e documenta i risultati nel libro “Cracking DES: Secrets of Encryption Research, Wiretap Politics, and Chip Design” Usa una chiave a 56 bit (+ 8 di controllo) per cifrare i dati in blocchi da 64 bit E' stato pensato per essere efficiente dal punto di vista HW 17 3DES ● ● ● Per fronteggiare l'evoluzione HW si introduce 3DES: ripete l'operazione del DES tre volte (chiave a 168 bit) L'applicazione doppia di algoritmi di cifratura è suscettibile ad attacchi di tipo meet-in-the-middle, che permette di decifrare i dati con al più 2^N+1 (N=dim chiave) tentativi; non si ricorre mai a soluzioni che usano un numero pari di chiper Svantaggio 3DES: lentezza 18 IDEA ● ● ● IDEA è nato come evoluzione del DES nel 1991 da due progettisti svizzeri: Xuejja Lai e James L. Massey (tipici nomi svizzeri...) IDEA usa blocchi da 64 bit ma chiavi da 128 E' uno degli algoritmi più usati nei software commerciali, ma non ha mai avuto diffusione nel mondo open source poiché è protetto da brevetto (un po' quello che succede con LZ77 e LZ78) 19 Il concorso ● ● National Institute of Standards and Technology (NIST) il 2 gennaio 1997 indice un concorso per trovare il nuovo sostituto del DES Tra venti candidati vengono scelti i cinque finalisti: ● Rijndael ● Serpent ● Twofish ● RC6 ● Mars Il vincitore risulta Rijndal, nel 2001 (dopo 5 anni di standardizzazione) diventa lo standard AES 20 Advanced Encryption Standard 1/3 ● ● ● Rijndael è stato sviluppato da due ricercatori belgi Rijmen and Daemen da cui ha preso anche il nome E' stato dichiarato Federal Information Processing Standard (FIPS) il 6 Dicembre 2001 Può usare tre differenti lunghezze di chiave: 128, 192 e 256 bit. Interessante è un famoso confronto con l'antenato DES: In the late 1990s, specialized DES Cracker machines were built that could recover a DES key after a few hours... by trying possible key values... assuming that one could build a machine that could recover a DES key in a second, then it would take that machine approximately 149 thousand-billion (149 trillion) years to crack a 128bit AES key. To put that into perspective, the universe is believed to be less than 20 billion years old. 21 Advanced Encryption Standard 2/3 ● ● ● ● L'AES usa chiavi relativamente brevi (128 bit) avendo però un affidabilità molto maggiore di qualsiasi altro algoritmo di cifratura La schedulazione della chiave è veloce, le richieste di memoria sono basse, è efficiente in HW con poca memoria Ottimizzazione per architetture parallele Poiché sono presenti solo semplici operazioni a livello logico permette di ottenere ottimi risultati in termini di velocità: un'implementazione scritta in C++ su un Pentium 200 permette un efficienza di crittografia di 70 Mbit al secondo 22 Advanced Encryption Standard 3/3 ● ● ● L'algoritmo: messaggio XOR chiave K0, poi si ripete 10 volte la funzione di cifratura F con chiavi generate tramite espansione K0 In ingresso ad ogni blocco si hanno messaggi da 16 byte, si effettua una prima permutazione S ad ogni byte e successivamente una seconda permutazione P a tutto il blocco L'espansione delle chiavi si basa anch'essa su delle permutazioni delle chiavi precedenti 23 Algoritmi asimmetrici ● ● ● ● ● Sono stati Introdotti nel 1976 da Whitfield Diffie e Martin Hellman Come detto si basano su di una coppia di chiavi: una pubblica e una privata non ricavabili una dall'altra Risolve il problema della distribuzione della chiavi poiché quella pubblica può/deve essere diffusa il più possibile Il primo algoritmo in assoluto è il Diffie-Hellman (DH), si basa sulla difficoltà dei problemi logaritmici; è solitamente usato per concordare una chiave segreta simmetrica Il “tempo di vita” di una chiave è strettamente correlato al suo numero di bit 24 RSA ● ● ● ● ● L'algoritmo più usato in assoluto è RSA (dalle iniziali degli sviluppatori: Ron Rivest, Adi Shamir e Leonard Adelman) Si basa sul concetto che è facile calcolare il prodotto di 2 numeri primi molto grandi ma, dato il loro prodotto, è particolarmente difficile risalire ai fattori primi che lo compongono Il problema è infatti NP difficile Più lunga è la chiave più sicura è la comunicazione, ma complessa la cifratura dal punto di vista computazionale; chavi lunghe 256 bit sono attaccabili in alcune settimane, 512 in alcuni mesi e 1024 bit in alcuni secoli (o meglio anni) Tipicamente vengono usate chiavi da 1024 (buon livello sicurezza) o 2048 bit (considerata inattaccabile) 25 RSA: algoritmo 1/2 ● ● ● Operazione fondamentale: creazione chiavi, si basa sui numeri primi Si sceglie una chiave N tale che N = P * Q, con P e Q due numeri primi molto grandi, N deve essere scelta in modo da essere difficilmente fattorizzabile o meglio non fattorizzabile in breve tempo Si calcola il valore Z della funzione di Eulero di N Z = (P-1) * (Q-1) ● Si scegli un valore D tale che D e Z siano primi tra loro ● Si ricerca un numero E: E*D mod Z = 1 26 RSA: algoritmo 2/2 ● Il plaintext M viene visto come una sequenza di bit e diviso in blocchi M1, M2, M3. . . lunghi K bit, dove K è il più grande intero che soddisfa l equazione: 2^K < N ● Chiave privata= (N,D) Chiave pubblica = (N,E) ● La cifratura in fase di trasmissione avviene nel seguente modo: Ci = MiE mod N ● C =messaggio cifrato ● In fase di ricezione si esegue la decodifica con la chiave privata: Mi = CiD mod N ● La sicurezza sta nel fatto che non è stato trovato il modo rapido di fattorizzare due numeri primi, cioè trovare P e Q conoscendo N. 27 Firme del nuovo millennio ● ● ● ● ● La firma autografata che si fa quando si sottoscrive un contratto non assicura un livello di sicurezza adeguato, inoltre in ambito digitale è molto difficile il suo utilizzo L'integrità, cioè la certezza che il destinatario riceva i dati inviati e non dati modificati, si esegue mediante il riassunto matematico del file: firma elettronica Si deve garantire che due file diversi non abbiano la stessa firma. Dalla firma elettronica deve essere impossibile risalire al messaggio originale. La firma digitale è un tipo di firma elettronica avanzata, ed è la sola che conferisce al documento informatico il pieno valore legale, è un particolare tipo di firma elettronica qualificata basata sul sistema di chiavi asimmetriche 28 Firma digitale: applicazione ● Il procedimento è invertito rispetto al caso normale della crittografia asimmetrica: ● ● ● ● ● ● M=messaggio, A=mittente, B=destinatario A cifra il messaggio con la chiave pubblica di B e lo firma con la sua chiave privata B decifra il messaggio con la sua chiave privata e controlla l'autenticità con la chiave pubblica di A Se è tutto OK B è sicuro che è stato A ad inviare il messaggio A può non cifrare tutto il messaggio ma solo il digest ottenuto mediante l'hashing La vera e propria firma è la cifratura dell'hashing 29 Modello firma testo in chiaro A testo in chiaro B Firma Cifratura chiave privata A chiave pubblica B Controllo firma Decrifratura chiave pubblica A testo cifrato chiave privata B 30 Hashing ● Tali algoritmi sono detti one-way-hash ● ● ● ● ● ● Hash perché trasformano un testo in una stringa a lunghezza fissa One-way perché è facile calcolare tale stringa ma difficile effettuare l'operazione inversa Il mittente cifra il messaggio M ottiene X, invia X e il valore di hash H calcolato su M (non è necessario che H sia cifrato) Il destinatario decifra X ottenendo M, calcola l'hash J e controlla l'uguaglianza di J e H; se sono uguali il messaggio è integro E' usata anche per verificare l'integrità dei pacchetti, in questo caso non si cifra il messaggio originale Un semplice esempio di hashing uniforme è il modulo di M, dove M è un numero molto grande: H(m) = m mod M 31 MD* ● ● ● ● La serie degli MD* è stata sviluppata dalla RSA Data Security inc. MD2: produce un valore di hash di 128 bit e richiede come input multipli di 16 byte; è stato violato MD4: hash a 128 bit più veloce della funzione precedente richiede messaggi multipli 512 bit; più sicuro di MD2 MD5 produce hash di 128 bit elaborando blocchi di 512 bit alla volta, per questo usa il padding: si aggiungono un uno seguito da tanti zeri alla fine in modo da ottenere un messaggio lungo un multiplo di 512-64 bit, infine si aggiungono 64 bit contenenti la lunghezza originale del messaggio (modulo 264); è più lento di MD4 ma ha sicurezza leggermente maggiore ● E' probabilmente l'algoritmo di hashing più usato (ad esempio per le password in Linux), per creare chiave hash a 128 bit di un file in Linux: md5sum nomefile ● E' usato ad esempio per verificare l'integrità dei pacchetti disponibili su Internet 32 SHA* ● ● ● ● ● Il SHA è simile all MD4; creato dal NIST e della National Security Agency (NSA) del governo degli Stati Uniti Il messaggio viene elaborato a blocchi di 512 bit producendo di solito (dipende dalle versioni) un hash di 160 bit, usa tecniche di padding Non si usa la versione originale ma una variante, chiamata SHA-1, introdotta per porre rimedio ad alcune vulnerabilità Altre varianti sono state introdotte per corrispondere alle chiavi da 128, 192 e 256 bit dell AES; lo sforzo per rompere un algoritmo di crittazione con attacco di tipo brute force è 2N.aes operazioni, ma con un attacco di tipo birthday sono necessari soltanto 2(N..hash/2) tentativi, la regola pratica dice che la N.hash=2*N.aes. SHA-256, SHA-384 and SHA-512 sono progettati per corrispondere dunque a chiavi AES rispettivamente di 128, 192 e 256-bit In Linux esiste, come per MD5, sha1sum nomefile 33 Certificati & C. ● ● E' necessario assicurare l'autenticità della chiave pubblica Si introduce un ente che autentica la chiave pubblica attraverso la sua certificazione, garantendo che la chiave pubblica sia stata generata dall'attore che legittimamente possiede la relativa chiave privata ● L'organo si chiama Certification Authority (CA) ● L'organizzazione delle CA è ad albero ● ● Inoltre esiste un Certification Revocation List (CRL) che si occupa di gestire la scadenze/rinnovo dei certificati L'entità a cui si certifica la chiave pubblica può essere una persona, un organizzazione, un programma, un computer ecc. ● La CA agisce quindi come terza parte fidata ● E' fondamentale la marca temporale del certificato 34 CA: percorso di fiducia ● ● E' necessario che la CA sia a sua volta certificata: gerarchia ad albero Ecco alcune CA italiane: ● BNL Multiservizi S.p.A. ● I.T. Telecom S.p.A. ● Infocamere SC.p.A. ● Regione Piemonte ● Trust Italia S.p.A. ● In.Te.S.A. S.p.A. ● Postecom S.p.A. ● ENEL.IT S.p.A. Root CA CA PCA CA PCA PCA 35 CA in Europa 36 Gli standard dei certificati ● ● ● Lo standard più usato per i certificati è X.509, definisce quali informazioni devono risiedere all'interno dei certificati Per le trasmissioni che non possono gestire dati binari è disponibile lo standard testuale Privacy Enhanced Mail (PEM) La serie dei PKCS* (Public Key Cryptography Standard) è stata definita da RSA nel 1991, sono standard informali, alcuni esempi sono: ● PKCS#1: RSA encryption standard ● PKCS#3: usato con Diffie Hellmann (altro algoritmo molto usato) ● PKCS#7: certificato+certificati relativi al percorso di certificazione ● PKCS#11: usato con le smartcard o token USB crittografici ● PKCS#12: security bag (anche con chiave segreta), usato con i browser 37 Il futuro della crittografia ● Biometria ● Crittografia quantistica ● ... 38 Interfacce a linea di comando ● Telnet, rlogin, rcp, rsh hanno molti punti deboli: tutte le comunicazioni avvengono in chiaro, autenticazione compresa, introducono problemi di spoofing e sniffing ma non solo ● Secure Shell (SSH) offre l'alternativa sicura a questi “prodotti” ● Instaura una comunicazione sicura tra due stazioni ● ● Usa la tecnica mista: chiave pubblica per stabilire la connessione e chiave segreta per la trasmissione Il pacchetto di riferimento in Linux è OpenSSH 39 Comunicazioni sicure: SSL ● Secure Sockets Layer ● Protocollo aperto ● ● Garantisce autenticazione, integrità e confidenzialità SSL Handshake Composto da due parti: ● ● ● HTTP protocollo SSL HandShake: autenticazione reciproca clientserver, negoziazione algoritmo di crittografia, chiave segreta per la prima sessione di comunicazione protocollo SSL Record: si occupa della vera e propria comunicazione, si interfaccia con il TCP SSLv3 SSL Record TCP IP Host to Network 40 Implementazioni ● ● L'implementazione open source di riferimento è OpenSSL (su cui si basa tra l'altro anche OpenSSH) HTTPS (HTTP Secure): può usare autenticazione two-way o oneway (senza certificato client), Trasmissione sicura di pagine web o dati dei form HTML: ad controllo mail con yahoo.it quando si inviano login-password, oppure si inserisce il numero di carta di credito su amazon.com ● ● ● In realtà si usa TLS (Transport Layer Security) che deriva dal protocollo SSL; lavora tra livello 4 (trasporto) e livello 5 (sessione) TLS definisce molti più messaggi di errore di SSL, inoltre ha espedienti più efficienti per la sicurezza: differenze nel calcolo del MAC e nell'espansione del master secret per la generazione delle chiavi (TLS usa una funzione pseudocasuale) In realtà TLS e SSL sono molto simili, ma non sono compatibili. Vengono implementati entrambi nei browser 41 Virtual Private Network A virtual private network (VPN) is a private data network that makes use of the public telecommunication infrastructure, maintaining privacy through the use of a tunneling protocol and security procedures ● E' un'infrastruttura end-to-end, garantisce la sicurezza solo tra le due entità ai capi della connessione ● Assicura autenticazione, confidenzialità, integrità ● Uso anche mezzo pubblico 42 Internet Protocol Security: IPsec ● IPSec è il protocollo più usato per le VPN, è stato sviluppato dalla IETF; è in realtà una suite: ● ● ● ● ● ● ● Encapsulating Security Payload riservatezza, autenticità e integrità (ESP): garantisce Authentication Header (AH): garantisce integrità e autenticità Internet Key connessione Exchange (IKE): gestisce le chiavi di Operativamente prima viene creato il tunnel con l'IKE (metodi chiave pubblica) e poi si effettua comunicazione con AH e/o ESP E' una sorta di SSL/TLS evoluto ed esteso a tutto il traffico IP Algoritmi usati: MD5, SHA, AES, 3DES, BlowFish, DH, RSA, Radius, SecureID, Smartcard, dati biometrici... Opera a livello 3 della pila ISO/OSI sia in modalità trasporto che tunnel 43 Alternative ad IPsec ● ● ● PPTP (Point to Point Tunnelling Protcol): evoluzione del PPP sviluppato soprattuto da Microsoft; è usato molto negli Internet Service Provider; è il più vecchio e il più supportato da molti tipi di rete; non usa PKI per l'autenticazione ma login-password; è in grado di assegnare anche gli indirizzi IP; molto semplice L2TP (Layer 2 Tunneling Protocol): sviluppato da Microsoft e Cisco; supporta client anche non IP; lavora a livello datalink; è usato di solito come connessione client-gateway o gateway-gateway Tecniche miste: L2TP/IPSEC 44 Malware (wikipedia.org) 1/2 ● ● ● ● Virus: sono parti di codice che si diffondono copiandosi all'interno di altri programmi, o in una particolare sezione del disco fisso, in modo da essere eseguiti ogni volta che il file infetto viene aperto. Si trasmettono da un computer a un altro tramite lo spostamento di file infetti ad opera degli utenti Worm: questi malware non hanno bisogno di infettare altri file per diffondersi, perché modificano il sistema operativo della macchina ospite in modo da essere eseguiti automaticamente e tentare di replicarsi sfruttando per lo più Internet. Per indurre gli utenti ad eseguirli utilizzano tecniche di social engineering, oppure sfruttano dei difetti (bug) di alcuni programmi per diffondersi automaticamente Trojan horse: software che oltre ad avere delle funzionalità "lecite", utili per indurre l'utente ad utilizzarli, contengono istruzioni dannose che vengono eseguite all'insaputa dell'utilizzatore. Non possiedono funzioni di auto-replicazione, quindi per diffondersi devono essere consapevolmente inviati alla vittima. Il nome deriva dal famoso cavallo di Troia Backdoor: letteralmente "porta sul retro". Sono dei programmi che consentono un accesso non autorizzato al sistema su cui sono in esecuzione. Tipicamente si diffondono in abbinamento ad un trojan o ad un worm, oppure costituiscono una forma di accesso di emergenza ad un sistema, inserita per permettere ad esempio il recupero di una password dimenticata. 45 Malware (wikipedia.org) 1/2 ● ● ● ● Spyware: software che vengono usati per raccogliere informazioni dal sistema su cui sono installati e per trasmetterle ad un destinatario interessato. Le informazioni carpite possono andare dalle abitudini di navigazione fino alle password e alle chiavi crittografiche di un utente. Dialer: questi programmi si occupano di gestire la connessione ad Internet tramite la normale linea telefonica. Sono malware quando vengono utilizzati in modo truffaldino, modificando il numero telefonico chiamato dalla connessione predefinita con uno a tariffazione speciale, allo scopo di trarne illecito profitto all'insaputa dell'utente. Hijacker: questi programmi si appropriano di applicazioni di navigazione in rete (soprattuto browser) e causano l'apertura automatica di pagine Web indesiderate. Rootkit: i rootkit solitamente sono composti da un driver e, a volte, da delle copie modificate di programmi normalmente presenti nel sistema. I rootkit non sono dannosi in se ma hanno la funzione di nascondere, sia all'utente che a programmi tipo antivirus, la presenza di particolari file o impostazioni del sistema. Vengono quindi utilizzati per mascherare spyware e trojan. 46 Firewall ● ● Ha il compito di difendere la rete locale dagli attacchi proveniente dall'esterno (tipicamente da Internet); rende affidabile la comunicazione tra rete trusted e untrusted; opera una difesa perimetrale Mette in atto policy di sicurezza anche complesse definendo regole d'accesso alla rete privata, cioè limitando o permettendo l'accesso ad alcune “applicazioni” Internet firewall Lan 47 Tipi di firewall ● ● ● ● Packet filtering: più comune, usa intestazione IP e TCP per decidere se lasciare o meno un pacchetto, veloce e trasparente agli utenti, svantaggi: non comprende il concetto di sessione Proxy Service: Non filtrano i pacchetti ma regolano l'accesso; quando un client tenta di collegarsi all'esterno viene creata una connessione con il proxy, e solo quest'ultimo gestisce la connessione all'esterno, costituiscono semplicemente un unico punto di accesso alla rete esterna, possono prevedere l'autenticazione dell'utente, svantaggi: non tutti i servizi possono appogiarsi ad un proxy, prestazioni Logging: registrazione accessi rete privata, tenendo traccia soprattutto delle attività sospette, di solito è implementato all'interno dei modelli firewall precedenti ... 48 Introduction Detection System ● ● Sistema HW o SW che si occupa di rilevare e gestire le intrusioni in modo il più possibile real time, posizionamento in punti strategici del sistema Due categorie: ● ● ● Network (NIDS): costituiti da uno sniffer e da un motore (engine) per l'analisi e la gestione dei dati raccolti mediante un insieme di regole sulla tassonomia degli attacchi Host-Based (HIDS): simile ad un scanner antivirus, check log, analisi applicationi... rileva ad es. modifiche ai filesystem e comunicazione sulle porte Problemi: ● ● Falsi positivi e Falsi negativi Di norma i falsi negativi sono più pericolosi dei falsi positivi, i secondi al massimo possono provocare semplici DoS ● Soprattutto nei NIDS difficoltà di scrittura dell'insieme di regole dell'engine ● Errori piuttosto frequenti degli sviluppatori di software 49 Wireless 50 IEEE 802.11: standard wireless Gruppo di lavoro 802.11a trasmissioni 5 Ghz wireless 803.11b trasmissioni 2.4 Ghz wireless 804.11c Migliorie allo standard 802.11b 805.11d Migliorare interoperabilità tra 802.1 e 802.11 806.11e Supporto Quality of Service 807.11f Migliorare interoperabilità tra AP differenti 808.11g Evoluzione 802.11b 809.11h Migliorare 802.1a 810.11i Migliorare la sicurezza delle reti wireless 811.11j Aumentare i canali nella banda 5Ghz in Giappone 812.11k Misure radio 812.11n Reti metropolitane e aumento banda disponibile ... 812.11u ● Scopo ... Connessione con reti non 802, ad es. Cellulari 802.11g: standard che ridefinisce il livello fisico e il MAC (Medium Access Control) , banda teorica 54 Mbps 51 Insicurezza wireless ● ● ● Per attaccare una rete cablata è necessario avere accesso al mezzo fisico Tutti invece hanno accesso all'aria: quindi è teoricamente più semplice attaccare le reti wireless Per questo motivo l'IEEE sin dalle prime versioni degli standard ha previsto meccanismi di sicurezza 52 Wired Equivalence Privacy ● ● ● ● WEP è il protocollo di base usato nelle reti 802.11 Chiavi statiche (non variano nel tempo), impostate manualmente e devono essere scambiate tra tutti gli utenti della rete Si basa sull'algoritmo simmetrico RC4 e lavora a livello datalink (livello 2) nella pila ISO/OSI La lunghezza delle chiavi WEP varia da 40 a 128 bit (256 e 512 sono di solito soluzioni proprietarie) 53 Autenticazione ● Ogni sottorete gestita da un AP (Access Point) ha un nome univoco detto SSID (Service Set Identifier), SSID è di 32 bit e viene inserito in tutti i pacchetti trasmessi; per connettersi a qualsiasi WLAN è necessario conoscere almeno l'SSID ● Di default l'SSID è inviato in broadcast: NON FARLO MAI!!! ● I metodi di autenticazione di base sono due: ● ● open key: un WT (terminale wireless, host) si autentica conoscendo solo l'SSID, nel caso in cui il WEP sia attivo viene abilitato solo il traffico di rete cifrato con la chiave corretto shared key: utilizzato solo con WEP attivo: 1.WT invia la sua identità in chiaro all'AP, il suo MAC, la velocità di connessione e SSID 2.AP risponde con un challenge in chiaro (breve pacchetto) 3.WT cifra il challenge con la chiave WEP e lo restituisce all'AP 4.Se la cifratura è corretta il WT è autenticato ● Si può usare il MAC address filtering (difficoltà gestione ecc.). 54 Vulnerabilità di base ● MAC filtering sono insicuri: sniffing e spoofing ● Shared/Open Key non sono veri e propri metodi di autenticazione ● ● ● SSID non deve essere inviato in broadcast e deve essere scelto relativamente lungo e difficile da indovinare; ATTENZIONE perchè viene appeso ad ogni messaggio Per l'integrità (checksum) viene usato il Cyclic Redudancy Check (CRC), è noto che si può calcolare la differenza di CRC di due messaggi che differiscono di un solo bit; iterando la tecnica è possibile modificare arbitrariamente n bit di un messaggio e aggiustare correttamente il CRC Il DHCP attivo in qualsiasi rete facilita l'attacco 55 WEP = disastro ● ● ● ● ● Una chiave da 64 bit è formata da 40 bit sono riservati della chiave WEP (settata dall'amministratore) mentre gli altri 24 sono un numero casuale Initialization Vector (IV) Il pacchetto cifrato (con 40+24 bit) viene inviato con lo IV in chiaro riducendo pertanto la chiave a 40 bit effettivi Gli IV vengono generati pseudo-casualmente, ma la sequenza si riazzera spesso ad es. per problemi di comunicazione I ricercatori Stubblefield, Ioannidis e Rubin hanno dimostrato, nello studio intitolato “Using Fluhrer, Mantin and Shamir attack to break WEP” che l'uso di uno stesso IV consente ad un hacker di risalire alla chiave WEP usata analizzando il traffico cifrato Hanno sperimentato inoltre che sono sufficienti da 500.000 a 1.000.000 di pacchetti (1/2 ore di comunicazioni) per risalire alle chiavi. 56 Warchalking ● Guerra dei gessetti: codice per segnare le reti già attaccate e per comunicare ad altri le protezioni presenti; simboli segnati con dei gessetti per terra davanti agli edifici (si usano anche mappe) Kenneth Newman in una famosa presentazione: “. . . dalla finestra del mio appartamento riesco a captare il segnale di 12 AP in 5 minuti: 6 default (nessuna protezione, come sono usciti dalla fabbrica) e 3 WEP . . . camminando in Wall/Water/ Broad Streets 150 AP in 20 minuti . . . in macchina 448 in 90 minuti: 75 defaults, 26% WEP. . .”. 57 802.1x: una soluzione ● Nato per le reti cablate ma applicabile alle reti wireless ● Agisce a livello 2 datalink ● Le richieste di accesso che arrivano all'AP vengono inoltrate ad un server AAA (Authentication Authorization Accounting) sulla rete cablata tipicamente RADIUS o Kerberos 58 EAP e 802.1x ● ● ● ● 802.1x definisce solo l'architettura ma non l'implementazione L'EAP (Extensible Authentication Protocol) è la sua realizzazione, provvede all'autenticazione e alla gestioni delle chiavi di connessione All'inizio era utilizzato sulle reti PPP; successive modifiche da parte dell'IEEE hanno definito le specifiche EAPOL (EAP over LAN), ossia metodi che permettono di incapsulare i messaggi EAP e di inviarli su reti Ethernet o segmenti di reti LAN wireless EAP usa un paradigma di comunicazione challenge/response, un modello sincrono in cui sono definiti quattro tipi di messaggi: ● EAP Request per le richieste di autenticazione o di credenziali ● EAP Response come risposta alle request ● EAP Success per comunicare il successo dell operazione ● EAP Failure per la notifica di un errore 59 EAP: metodi one way EAP-MD5 ● ● ● Il primo modello della serie EAP Supporta esclusivamente l'autenticazione one-way (solo del client) tramite login-password, non supporta il key management Il nome deriva dal fatto che viene fatto l'hashing della password con MD5; non è consigliato l'uso sulle WLAN ma solo sulle reti cablate LEAP (Lightweigth EAP) ● ● ● ● Protocollo proprietario della Cisco Cifra i dati usando chiavi WEP dinamiche e supporta la mutua autenticazione La maggior parte delle implementazioni LEAP compatibili usa però un autenticazione a livello di login-password Recenti studi hanno evidenziato un estrema vulnerabilità nel caso di preshared password 60 EAP-TLS EAP-TLS (Transport Layer Security) ● Essenzialmente è lo standard-de-facto in sistemi Linux e Microsoft ● E' basato sui certificati e provvede alla mutua autenticazione ● ● ● ● L'autenticazione EAP-TLS avviene automaticamente, senza alcun intervento da parte dell utente, usa concetti di PKI: il client e il server devono preventivamente avere un certificato valido e vi deve essere un CA server Al termine della fase di riconoscimento avviene la creazione di un tunnel SSL/TLS Il server provvede alla generazione delle chiavi per la sessione wireless in modo dinamico Ha il pregio di permettere una veloce riconnessione (via rigenerazione della sessione del tunnel SSL/TLS). 61 EAP: metodi evoluti EAP-TTLS (Tunnelled Transport Layer Security) ● ● ● E stato sviluppato dalla Funk Software e dalla Certicom Corp E un'estensione dell'EAP-TLS e non necessita della configurazione del certificato dal lato client; si può appoggiare ad un'infrastruttura esistente (ad es. LDAP o Active Directory) e per questo sta riscuotendo notevole successo Elimina il problema della distribuzione dei certificati PKI PEAP (Protected EAP) ● ● ● E', come il TTLS, un'evoluzione dell EAP-TLS ed è stato sviluppato da Cisco, Microsoft e RSA Security Group E' molto simile all EAP-TTLS e per questo è in diretta competizione Anche il PEAP usa solo il certificato digitale del server per creare un tunnel SSL/TLS cifrato su cui scambiare successivamente le credenziali di autorizzazione del client 62 EAP: pregi ● E' versatile ● Lavora a livello due (datalink), teoricamente sicurissimo ● ● ● Gli schemi con la mutua autenticazione eliminano l'attacco Man-in-the Middle Implementa un sistema di amministrazione e distribuzione di chiavi centralizzato Permette di definire in modo semplice policy centralizzate per la classificazione degli utenti wireless 63 EAP: riassunto 64 Wireless Protected Access ● ● ● ● ● ● WPA è un meccanismo di sicurezza sviluppato in attesa del nuovo protocollo di sicurezza 802.11i Uso del TKIP (Temporal Key Integrity Protocol): provvede alla gestione dinamica delle chiavi tramite l'uso della lifetime; ad es. se lifetime è uguale ad 1 minuto alla fine del minuto viene scambiata la nuova chiave di sessione K cifrata con la chiave di sessione attuale, tutte le comunicazione d'ora in poi avverranno con K Il TKIP viene usato nel WPA con il protocollo WEP ma con IV di 48 bit Introduzione nuovo algoritmo di integrità chiamato MIC che risolve i problemi del CRC, usa 64 bit Il WPA rimane però ancora suscettibile da attacchi di tipo DoS e non solo in caso di PSK Viene installato come firmware upgrade negli AP e SW upgrade nei WT 65 802.11i ● ● ● Integra TKIP e MIC Sostituisce WEP con il nuovo algoritmo AES (standard NIST), per questo richiede un coprocessore negli AP Integra inoltre l'architectural framework 802.1x quindi le tecniche EAP (preferibilmente su RADIUS o DIAMETER) ● Ha un supporto più spinto per il roaming ● Sicura deautenthication e deassociation 66