La sicurezza nelle reti di calcolatori
Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico e dei protocolli applicativi Multimedialità in rete Tecnologie per le reti future
Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico e dei protocolli applicativi Multimedialità in rete Tecnologie per le reti future
Argomenti della lezione Proprietà necessarie alla sicurezza della comunicazione Elementi di crittografia
Sicurezza della comunicazione Proprietà desiderabili Segretezza Autenticazione Integrità del messaggio
Segretezza Il contenuto del messaggio può essere letto soltanto dal destinatario (proprietà banale) Può anche essere desiderabile la segretezza del fatto stesso che sia avvenuta una comunicazione tra due persone (proprietà meno ovvia)
Autenticazione Come faccio ad essere certo dell identità della persona con cui comunico? Servono: Autenticazione del mittente Autenticazione del destinatario
Integrità del messaggio Come posso garantire che il messaggio ricevuto sia esattamente quello inviato (e non sia stato modificato da qualcuno?) ti amo Bob Alice Bob
Integrità del messaggio Come posso garantire che il messaggio ricevuto sia esattamente quello inviato (e non sia stato modificato da qualcuno?) ti amo Bob ti odio Bob Alice Bob Trudy
Sicurezza per chi? Utenti (persone) Apparati dell infrastruttura di rete (es. server DNS, router, ecc.) Falle nella sicurezza dell infrastruttura possono essere veicolo di attacchi alle attività degli utenti
Vulnerabilità della rete Broadcast di livello 2 Violazione della segretezza mediante sniffer Indirizzi IP non autenticati Incertezza del mittente (IP spoofing)
Vulnerabilità della rete Informazioni trasmesse in chiaro Possibile alterazione dei messaggi
Vulnerabilità della rete DoS: Denial of Service Attacchi orientati ad impedire il normale funzionamento dei sistemi Esempi: SYN flooding (apertura connessioni TCP), smurf (ICMP echo con falsi IP sorgenti)
Principi di crittografia Permette di ottenere: Segretezza Autenticazione Integrità del messaggio
Definizioni ABCD algoritmo di cifratura testo in chiaro testo cifrato #^$&
Definizioni algoritmo di cifratura ABCD testo in chiaro testo cifrato #^$&
Algoritmo segreto Esempio: Scambia ogni lettera in posizione i con quella in posizione (i 3 +3) mod m
Cifratura void crypto (char s[]) { int i, m = strlen (s); } for (i = 0; i < m; i++) { char t; int j; } j = (i*i*i + 3) % m; t = s[i]; s[i] = s[j]; s[j] = t; return;
Decifratura void decrypto (char s[]) { int i, m = strlen (s); } for (i = m-1; i >= 0; i--) { char t; int j; } return; j = (i*i*i + 3) % m; t = s[i]; s[i] = s[j]; s[j] = t;
Esempio: "Cara Alice, credo che Trudy ci stia spiando" "art sausa eie aiocnodcrda y cc,e trlidchip"
Algoritmo segreto per Internet? NO: è necessario permettere lo sviluppo del software necessario algoritmi pubblici + CHIAVI
Definizioni ABCD algoritmo di cifratura testo in chiaro Alice chiave K A testo cifrato #^$&
Definizioni algoritmo di decifratura chiave ABCD testo in chiaro Bob K B testo cifrato %&*#
Definizioni algoritmo di decifratura? KH#4 testo incomprensibile Trudy testo cifrato %&*#
Chiavi simmetriche Stessa chiave per crittografia e decrittografia
Chiavi simmetriche Massima sicurezza: len (chiave) > len (messaggio) chiavi sempre diverse Problema: Come scambiarsi le chiavi?
Algoritmi per chiavi simmetriche Cifrature monoalfabetiche (cifrario di Cesare) Schema di sostituzione fissa di ogni lettera con un altra Forzatura tramite analisi statistica delle ricorrenze
Esempio: cifrario di Cesare a b c d e f g h i j k l m n o... f g e s j y z k r q p i t a v... ciao erfv
Algoritmi per chiavi simmetriche Cifrature polialfabetiche (cifrari di Vigenere) n cifrari di Cesare usati ciclicamente
Esempio: cifrario di Vigenere a b c d e f g h i j k l m n o... k l m n o p q r s t u v w x y... e f g h i j k l m n o p q r s... y z a b c d e f g h i j k l m... k l m n o p q r s t u v w x y... e f g...... chiave: key ciao m
Esempio: cifrario di Vigenere a b c d e f g h i j k l m n o... k l m n o p q r s t u v w x y... e f g h i j k l m n o p q r s... y z a b c d e f g h i j k l m... k l m n o p q r s t u v w x y... e f g...... chiave: key ciao mm
Esempio: cifrario di Vigenere a b c d e f g h i j k l m n o... k l m n o p q r s t u v w x y... e f g h i j k l m n o p q r s... y z a b c d e f g h i j k l m... k l m n o p q r s t u v w x y... e f g...... chiave: key ciao mmy
Esempio: cifrario di Vigenere a b c d e f g h i j k l m n o... k l m n o p q r s t u v w x y... e f g h i j k l m n o p q r s... y z a b c d e f g h i j k l m... k l m n o p q r s t u v w x y... e f g...... chiave: key ciao mmyy
Tipologie di attacco Forza bruta (tutte le possibili chiavi) Analisi statistica (ricorrenze delle lettere, delle sillabe, ecc.) Analisi del crittogramma di cui è nota una parte del testo (es. intestazione standard) Analisi con testo in chiaro scelto
Algoritmi per chiavi simmetriche DES: Data Encryption Standard Chiave a 56 bit Due fasi di permutazione 16 fasi di manipolazione ed EXOR con i bit della chiave
Algoritmi per chiavi simmetriche Forzato nel 1997 Evoluzione: DES triplo (3DES)
Chiavi pubbliche Due chiavi Chiave pubblica Chiave privata (segreta)
Chiavi pubbliche Chiavi e algoritmo di cifratura devono soddisfare la proprietà: d B (e B (m)) = m = e B (d B (m))
Chiavi pubbliche d B (e B (m)) = m = e B (d B (m)) Dove: e B chiave pubblica di Bob, usata per la cifratura d B chiave privata di Bob, usata per la decifratura m messaggio
Crittografia a chiave pubblica ABCD algoritmo di cifratura testo in chiaro Alice chiave pubblica di Bob e B %&*# testo cifrato e B (m)
Crittografia a chiave pubblica algoritmo di decifratura ABCD testo in chiaro d B (e B (m))=m Bob chiave privata di Bob e B %&*# testo cifrato e B (m)
Algoritmo RSA per cifratura a chiave pubblica RSA (Ron Rivest, Adi Shamir, Leonard Adleman) Chiavi generate a partire da due numeri primi p e q molto grandi: p q dell ordine di 1024 bit (difficile scomposizione in fattori) Descrizione dell algoritmo a pag. 570 e seguenti del libro di testo
Algoritmo RSA per cifratura a chiave pubblica Problema: richiede calcolo di elevamento a potenza con numeri molto grandi Lungo tempo di elaborazione
Algoritmo RSA per cifratura a chiave pubblica Possibile impiego: scambio di chiavi simmetriche di sessione RSA chiavi di sessione DES contenuto dei messaggi
La sicurezza nelle reti di calcolatori
Autenticazione Esempi di possibili attacchi: IP spoofing IP mittente: 158.110.254.1 Alice IP di Bob: 158.110.254.1 HELLO, BOB IP di Trudy: 158.110.253.254
Autenticazione Esempi di possibili attacchi: Lettura delle password in chiaro Bob PWD: 5XY7ZW HELLO, BOB Alice Trudy
Autenticazione Esempi di possibili attacchi: Lettura delle password in chiaro PWD: 5XY7ZW Alice Bob HELLO, BOB Trudy
Autenticazione Esempi di possibili attacchi: Lettura e riutilizzo di password cifrate (attacco di replica) PWD: lovealice PWD: %&$#*@ Alice Bob? HELLO, BOB Trudy
Autenticazione Esempi di possibili attacchi: Lettura e riutilizzo di password cifrate (attacco di replica) PWD: %&$#*@ Alice Bob HELLO, BOB Trudy
Protocollo di autenticazione a chiave simmetrica basato su nonce sono Alice! R Alice K AB (R) Bob
Protocollo di autenticazione a chiave pubblica sono Alice! Alice R d A (R) chiave pubblica? e A Bob
Protocollo di autenticazione a chiave pubblica (fallimento) sono Alice! Trudy R d T (R) chiave pubblica? e T Bob
Man in the middle Man in the middle d T (R) Bob chiave pubblica? chiave pubblica? sono Alice! sono Alice! R Trudy R Alice d A (R) e T chiave pubblica? chiave pubblica? e A
Man in the middle Alice Trudy Bob dati cifrati con e A dati cifrati con e T Trudy riceve e decifra tutti i dati trasmessi Alice e Bob non si accorgono di nulla!
Autenticazione basata su crittografia Richiede distribuzione sicura delle chiavi Crittografia a chiavi simmetriche: serve intermediario di fiducia (KDC, Key Distribution Center) Crittografia a chiave pubblica: CA (Certification( Authority)
Key Distribution Center Chiave simmetrica condivisa tra ogni utente registrato e il KDC Il KDC genera ed invia una chiave simmetrica per singola sessione
Key Distribution Center Il KDC invia anche ad Alice la chiave di sessione e l identificativo di Alice cifrati con la chiave di Bob, che serviranno ad Alice per farsi autenticare da Bob e per trasmettergli la chiave di sessione
Key Distribution Center K A-KDC ( Alice, Bob ) K A-KDC (R1), K B-KDC ( Alice, R1) KDC Alice K B-KDC ( Alice, R1) Dati cifrati con R1 Bob
Certification Authority Garantisce la corrispondenza entità - chiave pubblica Crea un certificato per ogni entità registrata (standard X.509 e RFC 1422) Pubblica i certificati in siti noti senza possibilità di contraffazione
Integrità Cifratura del messaggio con chiave pubblica del destinatario ABCD %&*# Alice testo in chiaro chiave pubblica di Bob testo cifrato Bob
Integrità Cifratura del messaggio con chiave pubblica del destinatario Problema: tempi di cifratura/decifratura troppo lunghi Cifratura del solo digest (riassunto)
Digest del messaggio Stringa di lunghezza fissa Generata con funzione di hash H(m) Proprietà: Non si può trovare y tale che H(y)=x Non si possono trovare due messaggi x e y tali che H(x)=H(y)
Algoritmo MD5 Attualmente molto usato RFC 1321 Produce un digest di 128 bit Processo a 4 fasi
Digest del messaggio messaggio digest in chiaro chiave privata del mittente spedizione digest cifrato
Digest del messaggio digest cifrato chiave pubblica del mittente digest in chiaro confronto messaggio digest in chiaro Può essere usato come firma digitale
La sicurezza nelle reti di calcolatori