610 likes | 803 Views
Elementi di sicurezza nelle reti. Trasmissione di dati attraverso una rete con tecniche di cifratura che evitano che i dati vengano: intercettati e letti ( secrecy ) modificati ( message integrity ) Autenticazione e certificazione della propria identità ( authentication )
E N D
Trasmissione di dati attraverso una rete con tecniche di cifratura che evitano che i dati vengano: intercettati e letti (secrecy) modificati (message integrity) Autenticazione e certificazione della propria identità (authentication) Le funzionalità di sicurezza sono presenti in più livelli dell’architettura di rete Problemi di sicurezza attiva
Alice e Bob (possono essere router, host, applicativi di posta, ecc.) vogliono comunicare in modo sicuro. Esempi comuni di situazioni in cui si richiede sicurezza: relazioni sentimentali comunicazioni in tempo di guerra transazioni commerciali Network Security
Bob Alice Trudy Trudy può essere passiva o attiva.
attacco solo sul messaggio cifrato (cyphertext only) attacco conoscendo il messaggio in chiaro (known plaintext) attacco scegliendo il messaggio in chiaro (chosen plaintext) Tipi di attacchi
Due approcci fondamentali: chiavi simmetriche: la cifratura e la decifratura usano una stessa chiave segreta (es. cifratore di Cesare; cifratore monoalfabetico; cifratore di de Vigenere o polialfabetico; DES – Data Encryption Standard) chiavi pubbliche: solo la chiave di decifratura è segreta; la chiave di cifratura è nota a tutti (es. algoritmo RSA – Rivest Shamir Adleman; funzioni ellittiche) Tecniche crittografiche
DES: Data Encryption Standard(US NationalBureau ofStandards) La funzione f(·) compone in OR gruppi di 4 bit di Ki e di Ri espansi a gruppi di 6 bit. Il risultato va in XOR con Li.
DES usa chiavi da 64 bit di cui 8 di parità. Il 1999 DES Challenge III (gara di “cracking” del DES-56) è stato vinto in 22 ore, utilizzando un calcolatore progettato appositamente e una rete di volontari. Si può migliorare la sicurezza applicando più volte il DES con chiavi diverse. Per esempio il triplo DES (3DES) è stato proposto come standard crittografico per il Point-to-Point Protocol (PPP). Sicurezza del DES
L’utente genera, utilizzando software opportuno, una coppia di chiavi (sequenze di bit). Le due chiavi sono correlate matematicamente, ma dall’una non si può ricavare l’altra. Una, la chiave pubblica, viene distribuita, l’altra, la chiave privata, viene tenuta segreta. Crittografia con chiave pubblica
Chi vuole inviare all’utente X un messaggio M senza che questo venga letto da estranei, usa la chiave pubblica E dell’utente X per cifrarlo. Il messaggio cifrato si calcola come F(E,M) La funzione F usata per cifrare non è invertibile Il messaggio potrà essere decifrato solo dal possessore della chiave privata D (la chiave pubblica non è più in grado di farlo) applicando nuovamente la funzione F: M=F(D,F(E,M))=F(E,F(D,M)) Protezione dalla lettura
Si scelgono due numeri primi grandi p e q. Si calcola n = pq e z = (p-1)(q-1). Si sceglie un numero e < n che non abbia fattori comuni con z. Si trova un numero d in modo che ed-1 sia esattamente divisibile per z. La chiave pubblica è (n,e), la chiave privata (n,d). La codifica è c = memod n. La decodifica è m = cdmod n. Algoritmo RSA
Teorema di Fermat-Eulero: a(n) = 1 mod na < n (n) = funzione di Eulero: conta il numero di numeri primi con n Piccolo teorema di Fermat: ap-1 = 1 mod pa < p, p primo se n = pq, con p e q primi, (pq) = (p) (q) = (p-1) (q-1) Infine: m = mdemod n = mde mod z + k zmod n = m1 + k(p-1)(q-1)mod pq = m Perché funziona RSA?
L’utente X invia un’email (o effettua un posting su Usenet), cifrandola mediante la propria chiave privata Se i destinatari sono in possesso della chiave pubblica del mittente, potranno decifrare il mail e, automaticamente, essere sicuri che è stato inviato dall’utente X … o è stato solo codificato dall’utente X? Autenticazione del mittente
Autenticazione Cifrare la password non aiuta!
Autenticazione Utilizzo del nonce (numero usato una sola volta) e chiave simmetrica.
Autenticazione Utilizzo del nonce e chiave pubblica.
Autenticazione? Deve essere sicuro lo scambio della chiave pubblica!
Man-in-the-middle attack Alice e Bob non si accorgono della presenza di Trudy!
Per ridurre la complessità computazionale sovente si “firmano” i message digest: Firma digitale
L’utente X “condensa” il messaggio usando un algoritmo di “hash”, quindi ne codifica il risultato (message digest) con la propria chiave privata. Il messaggio viene inviato in chiaro, e l’utente X vi acclude il digest codificato. Se il destinatario (o meglio il suo programma di email) riesce a decodificare con la chiave pubblica di X il digest, il messaggio non è contraffatto. Firma digitale
E’ un sommario o “impronta” del messaggio, simile a un controllo di parità. Algoritmi di hashing: MD5 (RFC1321, RFC1810) SHA-1 (Secure Hashing Algorithm), standard federale (USA) Message Digest
Le chiavi devono essere distribuite in modo sicuro. Servono “notai elettronici”: Key Distribution Center per sistemi a chiave simmetrica (es.: Kerberos - RFC1510 - sviluppato al MIT) Certification Authority per sistemi a chiave pubblica Distribuzione delle chiavi
Il server del KDC ha una chiave simmetrica segreta KX,KDC per ogni utente registrato X. Key Distribution Center R1 = one-time session key
Compiti: verificare l’identità delle entità mantenere le chiavi pubbliche delle entità distribuire certificati (firmati dalla Certification Authority) che legano la chiave pubblica di un’entità alla sua identità ITU (X.509) e IETF (RFC1422) hanno standard per Certification Authority. Certification Authority
Un certificato è una chiave pubblica “firmata” con la chiave privata di una Certification Authority Esistono gerarchie di autenticazione (chi certifica lesingole Authority?) con certificati conformi allo standard X.509 Richiedere un certificato ad una CA è possibile a chiunque (ma spesso si paga...) I certificati
e-mail sicura Segretezza, autenticazione e integrità del messaggio. In Internet PGP (Pretty Good Privacy - http://www.pgpi.com) funziona sostanzialmente secondo questo schema.
e-mail sicura eA(.) H(.) Autenticazione e integrità del messaggio: si usa una firma digitale sul message digest.
e-mail sicura Segretezza del messaggio: si usa una chiave simmetrica perché richiede un minor sforzo computazionale.
Livello applicativo: es. PGP Livello trasporto: Secure Socket Layer (SSL), sviluppato da Netscape; Secure Electronic Transactions (SET) progettato da Visa International e MasterCard per transazioni con carte di credito Livello IP: IP Security protocol (IPsec - RFC2401, RFC2411) Sicurezza in Internet
Senza adeguate protezioni, la rete Internet è vulnerabile ad attachi mirati a: penetrare all’interno di sistemi remoti usare sistemi penetrati per sferrare attacchi verso altre reti e sistemi Questi problemi sorgono a causa di: vulnerabilità intrinseca degli host configurazioni approssimative e assenza di controlli Problemi di sicurezza passiva
Vulnerabilità di sendmail (UNIX). Problema amplificato dalla vasta diffusione del programma Vulnerabilità di server FTP, soprattutto nella configurazione anonymous Installazione di “sniffer” (programmi in grado di carpire le password, che viaggiano “in chiaro” sulla rete, ed altre informazioni) Esempi recenti e frequenti
Autenticazione debole Monitoraggio di password spoofing Denial-of-Service Servizi LAN di scarsa affidabilità Host “a fiducia reciproca” Disponibilità del software di rete Poca scalabilità della sicurezza degli host Pericoli in Internet
Problema presente su sistemi Unix multiuser Normalmente, le password sono contenute (cifrate) in file leggibili da qualsiasi utente Usando programmi adatti è possibile decrittare le password prelevate dal file Soluzione: shadow password. Il file di password non è più leggibile dall’utente senza privilegi Autenticazione debole
Diverse tecniche: Normalmente, un telnet o ftp tra sistemi Unix invia le password in chiaro in rete. Attraverso uno sniffer è possibile intercettarle Utenti incauti possono inviare password all’interno di email, intercettabili anch’esse Uso di programmi che “leggono” i tasti battuti da un utente su un terminale Xwindow Monitoraggio di password
Letteralmente, “spacciarsi per un altro host” Sostalzialmente, si tratta di assumere l’indirizzo IP di un host “fidato” che ha accesso su un sistema protetto Il modo più semplice consiste nell’attendere che l’host “reale” venga spento e non si creino conflitti tra indirizzo IP e indirizzo MAC Spoofing
Uno spoofing più sofisticato prevede l’uso dell’opzione di source routing IP: l’host “cattivo” assume l’indirizzo IP del “buono” il “cattivo” costruisce una richiesta client in cui specifica, hop per hop, il percorso dei pacchetti tra sé e il sistema attaccato, e ritorno il sistema remoto accetta la richiesta come provenisse dal “buono” e risponde al “cattivo” attraverso la source route indicatagli Spoofing con source routing
Attacco “subdolo” mirato ad alterare l’attività dell’interfaccia di rete o del software di rete, finché l’host va in “crisi” Esempi: Bombardamento di ‘ping’ Apertura “parziale” di connessioni multiple (syn flooding) Denial-of-Service
Consiste nell’inviare ad un server TCP una sequenza ininterrotta di segmenti SYN senza mai chiudere il three-way handshake Il server riesce a tenere “in coda” solo un numero limitato di richieste di connessione, e non riesce più a servire quelle “vere” L’hacker spesso modifica il proprio indirizzo di provenienza sui pacchetti IP, rendendo impossibile qualunque difesa Denial-of-Service: il syn flooding
Un esempio: NIS (Network Information Services) e NFS (Network File System) Idea: gestisco il sistema in maniera distribuita (password, file system ...) … ma in questo modo aumento la vulnerabilità globale perchè la violazione di uno degli host “regala” all’hacker l’accesso a tutti gli altri Servizi LAN a scarsa affidabilità
Soprattutto in relazione al servizio “rlogin”: la connessione di un utente da un certo host sono accettati senza password se la coppia (utente,host) è dichiarata “di fiducia” vantaggio: non trasmetto la password sulla rete svantaggio: se l’utente sull’host “di fiducia” viene violato, lo saranno, a catena, tutti quelli che si fidano Host a “fiducia reciproca”