Capitolo 8 La sicurezza nelle reti Reti di calcolatori e Internet: Un approccio top-down 4 a edizione Jim Kurose, Keith Ross Pearson Paravia Bruno Mondadori Spa 2008 Capitolo 8: La sicurezza nelle reti Obiettivi: Identificare le proprietà per una comunicazione sicura: Tecniche crittografiche e loro molteplici utilizzi al di là della semplice riservatezza Autenticazione Integrità del messaggio Sicurezza in pratica: irewall e sistemi per la rilevazione degli intrusi Sicurezza a seconda dello specifico livello (applicazione, trasporto, rete o collegamento) 8-1 8-2 Capitolo 8 La sicurezza nelle reti 8.1 Sicurezza di rete 8.2 Principi di crittografia 8.3 Integrità dei messaggi Sicurezza nella comunicazione Riservatezza: solo mittente e destinatario devono comprendere il contenuto del messaggio Inviare messaggi cifrati Ricevere il codice di decifratura Autenticazione: mittente e destinatario devono essere sicuri della loro identità Integrità del messaggio: mittente e destinatario devono essere sicuri che il contenuto non subisca alterazioni durante la trasmissione (per cause fortuite o per manipolazioni) Disponibilità e controllo dell accesso: un servizio deve essere accessibile a chi è legittimamente autorizzato. 8-3 8-4 1
Mittente, ricevente e intruso: Alice, Roberto e Tommaso Scenario ben noto nel mondo della sicurezza di rete Roberto e Alice vogliono comunicare in modo sicuro Tommaso (l intruso) può intercettare, rimuovere, aggiungere messaggi o modificare il loro contenuto Alice dati Mittente sicuro canale messaggi di controllo e dati Ricevente sicuro Roberto dati Chi sono Alice e Roberto? Nella vita reale Alice e Roberto possono essere: browser/server Web durante una transazione elettronica (es. un acquisto on-line) client/server di banche on-line server DNS sistemi che si scambiano tabelle d instradamento altro Tommaso 8-5 8-6 Là fuori ci sono cattivi ragazzi (e ragazze) D: Cosa può fare un nemico? R: Molto! spiare: intercettare i messaggi aggiungere messaggi e sovraccaricare il sistema impersonare un altro soggetto dirottare una sessione in corso e sostituirsi al mittente o al destinatario negare il servizio Capitolo 8 La sicurezza nelle reti 8.1 Sicurezza di rete 8.2 Principi di crittografia 8.3 Integrità dei messaggi E molto altro ancora! 8-7 8-8 2
Principi di crittografia K A Crittografia a chiave simmetrica di cifratura: sostituzione di un messaggio in chiaro con uno codificato Cifrario monoalfabetico: sostituzione di una lettera con un altra Testo in chiaro di cifratura Testo cifrato di decifratura Testo in chiaro Lettere in chiaro: abcdefghijklmnopqrstuvwxyz Lettere cifrate: mnbvcxzasdfghjklpoiuytrewq Sistemi a chiave simmetrica: le chiavi del mittente e del destinatario sono identiche Sistemi a chiave pubblica: la chiave di cifratura è pubblica; la chiave di decifratura è privata 8-9 esempio Testo in chiaro: bob. i love you. alice Testo cifrato: nkn. s gktc wky. mgsbc D: Come violare questo sistema di cifratura?: con un attacco a forza bruta (ma quanto bruta?) 8-10 Crittografia a chiave simmetrica Testo in chiaro messaggio, m K A-B di cifratura Testo cifrato K (m) A-B K A-B di decifratura Testo in chiaro m = K ( K (m) ) A-B A-B Crittografia a chiave simmetrica: Alice e Roberto utilizzano la stessa chiave: K A-B es: la chiave è un pattern di sostituzione monoalfabetico D: come fanno Roberto e Alice a concordare la chiave? Crittografia a chiave simmetrica: DES DES: Data Encryption Standard Standard codificato e aggiornato dall U.S. National Bureau of Standards [NIST 1993] Codifica il testo in chiaro in blocchi di 64 bit; la lunghezza effettiva della chiave è di 56 bit Ma quanto è sicuro DES? DES Challenge: nel 1997, durante un concorso, la frase Strong cryptography makes the world a safer place fu individuata in meno di 4 mesi Come rendere DES più sicuro: usare sequenzialmente tre chiavi (3DES, triplo DES) utilizzare il concatenamento dei blocchi cifrati 8-11 8-12 3
Crittografia a chiave simmetrica: DES Operazioni base di DES Permutazione iniziale 16 iterazioni intermedie identiche, ciascuna con 48 bit differenti come chiave Permutazione finale AES: Advanced Encryption Standard ( di Rijndael) Nel novembre 2001 NIST ha annunciato il sostituto di DES: AES. AES processa i blocchi a 128 bit Opera con chiavi a 128, 192 e 256 bit Si stima che un calcolatore può individuare una chiave DES a 56 bit in 1 sec.; invece per violare una chiave AES a 128 bit ci impiegherebbe 149 miliardi di anni. 8-13 8-14 Crittografia a chiave pubblica Crittografia a chiave pubblica Crittografia a chiave simmetrica Richiede che mittente e destinatario condividano una chiave segreta D: come si concorda la chiave (specialmente se i due interlocutori non si sono mai incontrati )? Crittografia a chiave pubblica approccio radicalmente diverso [Diffie- Hellman76, RSA78] mittente e destinatario non condividono una chiave segreta la chiave di cifratura pubblica è nota a tutti la chiave di cifratura privata è nota solo al destinatario Messaggio in chiaro, m di cifratura Testo cifrato K (m) B di decifratura pubblica - K B Privata Messaggio in chiaro, m - m = K (K (m)) 8-15 8-16 4
Algoritmi di cifratura a chiave pubblica Requisiti: 1 2.. - K ( ) e K ( ) tale che - K (K (m)) = m data la chiave pubblica K B, deve essere impossibile calcolare la chiave privata K - B RSA: acronimo derivato dal nome dei suoi autori: Rivest, Shamir e Adelson 8-17 RSA: cifratura, decifratura 1. La chiave pubblica è (n,e), quella privata è (n,d) con n, e, d numeri interi scelti opportunamente (non lo vediamo) 2. Per la codifica, m, si calcola c = m e mod n 3. Per decifrare il messaggio ricevuto, c, si calcola m = c d mod n m = (m e d Incredibile! mod n) mod n c 8-18 RSA: un altra importante proprietà La seguente proprietà sarà molto utile più avanti: - K (K (m)) = m = - K (K (m)) Capitolo 8 La sicurezza nelle reti 8.1 Sicurezza di rete 8.2 Principi di crittografia 8.3 Integrità dei messaggi Si usa prima la chiave pubblica, e poi quella privata Si usa prima la chiave privata, e poi quella pubblica Il risultato non cambia! 8-19 8-20 5
Integrità del messaggio Codice di autenticazione dei messaggi (MAC) Roberto riceve un messaggio da Alice, e vuole essere sicuro che: il messaggio provenga effettivamente da Alice il messaggio non sia stato alterato lungo il cammino Funzioni hash crittografiche prende in input m, produce un valore a lunghezza fissa, H(m) Come nella checksum Internet Deve essere computazionalmente impossibile trovare due messaggi x e y tali che H(x) = H(y) o anche: dato m = H(x), (con x sconosciuta), è impossibile determinare x. nota: ciò non accade con la checksum Internet! (messaggio) m H(.) s (segreto condiviso) aggiunge H(ms) m H(ms) (segreto condiviso) s H(.) m Internet H(ms) H(ms) confronta 8-21 8-22 Codici di autenticazione dei messaggi MD5 è molto usato per per l hash dei messaggi (RFC 1321) Calcola una hash di 128 bit con un processo a 4 fasi Con una stringa x di 128 bit arbitrari, appare difficile costruire un messaggio m il cui hash MD5 sia uguale a x recentemente (2005) sono stati condotti attacchi contro MD5 È molto usato anche hash sicuro (SHA-1) Standard statunitense [NIST, FIPS PUB 180-1] Produce una sintesi del messaggio di 160 bit Firma digitale Tecnica crittografica analoga all invio di una tradizionale firma scritta Il mittente (Roberto) firma digitalmente un documento, stabilendo che lui è l unico proprietario/creatore del messaggio. Verificabile e non falsificabile: il destinatario (Alice) può dimostrare che Roberto e nessun altro (Alice inclusa) può aver firmato il documento. 8-23 8-24 6
Firma digitale Creazione della firma digitale di un messaggio, m: Roberto firma un messaggio, m, e lo codifica utilizzando la - sua chiave privata, creando così un messaggio - firmato, (m) Messaggio di Roberto, m Cara Alice, scusami se non ho potuto scriverti prima ma... Roberto - privata Di Roberto di cifratura - (m) Messaggio di Roberto, firmato (e criptato) con la sua chiave privata Firma digitale Supponiamo che Alice riceva un messaggio m, con la firma digitale K - B (m) Alice verifica che m è firmato da Roberto applicando la chiave - - pubblica di Roberto - a (m) e controlla che ( (m)) = m. Se ciò è vero, chiunque abbia firmato m deve usare la chiave privata di Roberto. Alice può verificare che: Roberto ha firmato m. Nessun altro ha firmato m. Roberto ha firmato m e non m. Non-ripudio: Alice può prendere m, e la firma K - B (m) per dimostrare che Roberto ha firmato m. 8-25 8-26 Certificazione della chiave pubblica Problema per la crittografia a chiave pubblica: Quando Alice riceve la chiave pubblica di Roberto (attraverso un dischetto, il sito web o via e-mail), come fa a sapere che è veramente la chiave pubblica di Roberto e non, magari, quella di Tommaso? Soluzione: Autorità di certificazione (CA, certification authority) Autorità di certificazione Autorità di certificazione (CA): collega una chiave pubblica a una particolare entità, E. E (persona fisica, router) registra la sua chiave pubblica con CA. E fornisce una prova d identità a CA. CA crea un certificato che collega E alla sua chiave pubblica. Il certificato contiene la chiave pubblica di E con firma digitale di CA (CA dice questa è la chiave pubblica di E ) pubblica di Roberto Roberto identifica l informazione Firma digitale (cifrata) privata di CA K - CA Certificato per la chiave pubblica di Roberto, firmato da CA 8-27 8-28 7
Autorità di certificazione Quando Alice vuole la chiave pubblica di Roberto: prende il certificato di Roberto applica la chiave pubblica di CA al certificato pubblico di Roberto e ottiene la chiave pubblica di Roberto Firma digitale (cifrata) pubblica di Roberto pubblica di CA K CA 8-29 8