Universit degli Studi di Perugia Facolt di Scienze

  • Slides: 53
Download presentation
Università degli Studi di Perugia Facoltà di Scienze MM. FF. NN. Corso di Laurea

Università degli Studi di Perugia Facoltà di Scienze MM. FF. NN. Corso di Laurea Specialistica in Informatica Seminario di Sicurezza Informatica a. a. 2008/09 Studente: Davide Tortoioli Professore: Prof. Stefano Bistarelli

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC (DNS Security Extensions) 2

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC (DNS Security Extensions) 3

Network Attack Models Passivi: Si limitano ad ascoltare il traffico in rete Eavesdropping/Sniffing (Intercettazione)

Network Attack Models Passivi: Si limitano ad ascoltare il traffico in rete Eavesdropping/Sniffing (Intercettazione) Wiretapping (Intercettazione telefonica) Traffic Analysis: Identificare i modelli di comunicazione; può essere possibile anche se l'attaccante non può leggere i singoli messaggi. 4

Network Attack Models Attivi: Modifica messaggi, inserimento messaggi o alterazione delle informazioni di gestione

Network Attack Models Attivi: Modifica messaggi, inserimento messaggi o alterazione delle informazioni di gestione della rete Spoofing Attack: Inviare messaggi con falso indirizzo sorgente Flooding (Bombing) Attack: grande quantità di messaggi inviati alla vittima Squatting Attack: Si tenta di occupare il computer della vittima 5

Network Attack Esempio: TCP Session Hijacking: Dirottamento della sessione TCP 1. A → B

Network Attack Esempio: TCP Session Hijacking: Dirottamento della sessione TCP 1. A → B : SYN, ISSa 2. B → A : SYN ACK, ISSb, ACK(ISSa) 3. A → B : ACK, ACK(ISSb) Tree-way handshake ISSa, ISSb → number 32 -bit ACK(ISSx) = ISSx + 1 6

Network Attack Esempio: TCP Session Hijacking: Dirottamento della sessione TCP 1. C(A) → B

Network Attack Esempio: TCP Session Hijacking: Dirottamento della sessione TCP 1. C(A) → B : SYN, ISSc 2. B → A : SYN ACK, ISSb', ACK(ISSc) 3. C(A) → B : ACK, ACK(ISSb') C cambia IP al pacchetto che invia e intercetta quello di ritorno 7

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC (DNS Security Extensions) 8

IPsec INTRODUZIONE IP è un protocollo state-less e connection-less IPsec è un standard di

IPsec INTRODUZIONE IP è un protocollo state-less e connection-less IPsec è un standard di sicurezza per reti basate su IP Cifratura dei pacchetti (datagram) La sicurezza è a livello rete (livello 3 OSI / Livello 2 TCP/IP) Protocollo trasparente ai livelli superiori (nessuna applicazione deve essere modificata) È una suite di protocolli per: Cifratura del flusso di dati (AH, ESP) Scambio delle chiavi (IKE) Opzionale per IPv 4, obbligatorio per IPv 6 9

IPsec SCOPO DEL PROGETTO Rendere sicure sia comunicazioni portal-to-portal che end-to-end Creazione di VPN

IPsec SCOPO DEL PROGETTO Rendere sicure sia comunicazioni portal-to-portal che end-to-end Creazione di VPN (Virtual Private Network) 10

IPsec MODALITÀ DI FUNZIONAMENTO Transport Mode Connessioni end-to-end Tunnel Mode Connessioni gateway-to-gateway Usato dai

IPsec MODALITÀ DI FUNZIONAMENTO Transport Mode Connessioni end-to-end Tunnel Mode Connessioni gateway-to-gateway Usato dai gateway Usato dagli end-point Viene cifrato tutto il pacchetto Viene cifrato solo il playload Computazionalmente oneroso Computazionalmente leggero Solo il gateway ha il software Ogni host deve avere tutto il software necessario Si aggiunge solo l'header IPsec necessario Si aggiunge l'header IPsec e l'header del gateway 11

IPsec SECURITY ASSOCIATION E SECURITY POLICY Security Association (SA): È la base di IPsec.

IPsec SECURITY ASSOCIATION E SECURITY POLICY Security Association (SA): È la base di IPsec. È un contratto tra le due entità coinvolte nella comunicazione. Definisce il modo di protezione. Stabilisce i meccanismi di protezione e chiavi (protocollo IKE o manualmente) Una SA individua un canale unidirezionale (2 SA = Full-Duplex) SAD (Security Association Database): tiene traccia delle SA attive (semplifica la gestione dell' SA) PARAMETRI: IP dei peer Protocollo utilizzato per il tunnel (AH, ESP) Tecniche di cifratura e relative chiavi SPI (Security Parameter Index): intero 32 bit 12

IPsec SECURITY ASSOCIATION E SECURITY POLICY Security Policy (SP): Definisce il traffico che deve

IPsec SECURITY ASSOCIATION E SECURITY POLICY Security Policy (SP): Definisce il traffico che deve essere protetto. È una regola. SPD (Security Policy Database) PARAMETRI: IP sorgente e destinazione del pacchetto (ridondante, ma utile quando si lavora in tunnel mode) Protocollo e porta Identificativo SA 13

IPsec PROTOCOLLI IKE (Internet Key Exchange): Usato per stabilire una SA Protocollo di livello

IPsec PROTOCOLLI IKE (Internet Key Exchange): Usato per stabilire una SA Protocollo di livello applicazione Si basa su UDP come protocollo di trasporto Usa la porta 500 Si possono usare alternativamente tecniche a chiave simmetrica e a chiave asimmetrica (quindi prevede l'uso di PKI e certificati) 14

IPsec PROTOCOLLI IKE (Internet Key Exchange): Usato per stabilire una SA Due fasi: Prima

IPsec PROTOCOLLI IKE (Internet Key Exchange): Usato per stabilire una SA Due fasi: Prima fase (Main Mode) • Autenticazione degli host basata su ip • Si usa l'algoritmo Diffie-Hellman per stabilire un secret shared session Seconda fase (Quick Mode) • Scambio dei parametri e dei dati che compongono l'SA. 15

IPsec PROTOCOLLI AH (Authentication Header): Fornisce integrità del messaggio e autenticazione del mittente. No

IPsec PROTOCOLLI AH (Authentication Header): Fornisce integrità del messaggio e autenticazione del mittente. No confidenzialità Meccanismo pre-shared keys (entrmbi calcolano la chiave comune (master secret) a partire dal pre-shared key) hash(chiave+messaggio) → hash: MD 5 o SHA P 1 → P 2 : { messaggio, {hash}Kp 1 -1 } P 2 ricalcola l'hash e controlla OK → accetta il pacchetto NO → scarta il pacchetto Bisogna considerare che alcuni campi del pacchetto cambiano, tipo TTL quindi prima di calcolare l'hash i campi che cambiano vengono impostati a 0 (problemi 16 con il nat).

IPsec PROTOCOLLI AH (Authentication Header): Fornisce integrità del messaggio e autenticazione del mittente. No

IPsec PROTOCOLLI AH (Authentication Header): Fornisce integrità del messaggio e autenticazione del mittente. No confidenzialità Header successivo: protocollo che seguirà Struttura Header AH 0 1 Header successivo Dimensione Payload 2 3 RISERVATO Security Parameter Index (SPI) Numero di Successione Dati per l'autenticazione (lunghezza variable) Dimensione Playload: numero di parole (32 bit) che compongono il messaggio SPI: identifica l'SA Numero di successione: successione monotonicamente crescente di numeri (reply attack) 17

IPsec PROTOCOLLI AH (Authentication Header): Fornisce integrità del messaggio e autenticazione del mittente. No

IPsec PROTOCOLLI AH (Authentication Header): Fornisce integrità del messaggio e autenticazione del mittente. No confidenzialità Struttura del pacchetto IP 18

IPsec PROTOCOLLI ESP (Encapsulating Security Playload): Fornisce messaggio autenticazione del mittente e confidenzialità integrità

IPsec PROTOCOLLI ESP (Encapsulating Security Playload): Fornisce messaggio autenticazione del mittente e confidenzialità integrità del Struttura pacchetto ESP 19

IPsec PROTOCOLLI ESP (Encapsulating Security Playload): Fornisce messaggio autenticazione del mittente e confidenzialità integrità

IPsec PROTOCOLLI ESP (Encapsulating Security Playload): Fornisce messaggio autenticazione del mittente e confidenzialità integrità del Struttura del pacchetto IP (con autenticazione) 20

IPsec PROTOCOLLI ESP (Encapsulating Security Playload): Fornisce messaggio autenticazione del mittente e confidenzialità integrità

IPsec PROTOCOLLI ESP (Encapsulating Security Playload): Fornisce messaggio autenticazione del mittente e confidenzialità integrità del Struttura del pacchetto IP (senza autenticazione) 21

IPsec PROTOCOLLI NAT-T (NAT Trasversal): Offre la possibilità di stabilire un tunnel sicuro anche

IPsec PROTOCOLLI NAT-T (NAT Trasversal): Offre la possibilità di stabilire un tunnel sicuro anche quando i peer utilizzano il NAT. Il NAT: Altera gli header del pacchetto È incompatibile con AH in entrambe le modalità in quanto AH verifica l'intero pacchetto È compatibile con ESP solo se statico (SNAT) È incompatibile con IKE, in quanto richiede autenticazione degli host basata su IP 22

IPsec PROTOCOLLI NAT-T (NAT Trasversal): Offre la possibilità di stabilire un tunnel sicuro anche

IPsec PROTOCOLLI NAT-T (NAT Trasversal): Offre la possibilità di stabilire un tunnel sicuro anche quando i peer utilizzano il NAT. Disabilitato di default È uno dei parametri dell'SA stabiliti da IKE Si deve stabilire se nessuno, uno o entrambi subiscono NAT Frame NAT-D (NAT Discovery) Se nessuno lo subisce ok Se qualcuno lo subisce, la parte nattata invia frame KEEPALIVE per indicare al router quali porte sono dedicate a tale comunicazione e non devono essere assegnate. 23

IPsec PROTOCOLLI NAT-T (NAT Trasversal): Offre la possibilità di stabilire un tunnel sicuro anche

IPsec PROTOCOLLI NAT-T (NAT Trasversal): Offre la possibilità di stabilire un tunnel sicuro anche quando i peer utilizzano il NAT. Struttura del pacchetto IP 24

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC (DNS Security Extensions) 25

SSL/TLS SSL È uno standard creato dalla Netscape Corporation per garantire la sicurezza sul

SSL/TLS SSL È uno standard creato dalla Netscape Corporation per garantire la sicurezza sul web. SSLv 3 attualmente è la base per lo sviluppo dello standard TLS che, quindi, non è ancora formalmente adottato. Livello Applicazione (Livello 4 OSI Livello 4 TCP/IP) 26

SSL/TLS SSL lavora in termini di sessione e connessione SSL Session: è un'associazione tra

SSL/TLS SSL lavora in termini di sessione e connessione SSL Session: è un'associazione tra due peer SSL Connection: insieme di trasportare dati in una sessione meccanismi utilizzati per Una sessione può avere più connessioni attive allo stesso momento (inusuale). È diviso in due livelli Lower Level Upper Level 27

SSL/TLS Dati della sessione: Session id Certificato X. 509 v 3 dei peer Metodo

SSL/TLS Dati della sessione: Session id Certificato X. 509 v 3 dei peer Metodo di compressione Cipher specification: parametri per i meccanismi di cifratura e per gli algoritmi MAC (Message Authentication Code) Master Secret: 48 byte condivisi 28

SSL/TLS Dati della connessione: dati Chiave del server e del client usate per la

SSL/TLS Dati della connessione: dati Chiave del server e del client usate per la cifratura Chiave MAC Vettore di inizializzazione per il cifrario (se richiesto) Client e Server sequence number 29

SSL/TLS Livelli e sotto-livelli: Lower Level: SSL Record Protocol Upper Level: SSL Handshake Protocol

SSL/TLS Livelli e sotto-livelli: Lower Level: SSL Record Protocol Upper Level: SSL Handshake Protocol Upper Level: SSL Change Cipher Spec Protocol Upper Level: SSL Alert Protocol Upper Level: SSL Application Data Protocol 30

SSL/TLS Meccanismi di crittografia supportati Nella fase iniziale della comunicazione, i peer determinano: Il

SSL/TLS Meccanismi di crittografia supportati Nella fase iniziale della comunicazione, i peer determinano: Il meccanismo di crittografia da utilizzare La chiave di sessione (simmetrica) Algoritmo MAC SSL ha diversi funzionamenti e altrettanti livelli di sicurezza in relazione all'interchange cipher utilizzato e alle relative combinazioni di classical cipher e algoritmi mac 31

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con RSA 32

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con RSA 32

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con Diffie-Hellman. Distinguiamo tre casi: Diffie-Hellman: il

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con Diffie-Hellman. Distinguiamo tre casi: Diffie-Hellman: il certificato firmato da una CA contiene i parametri di cifratura Ephemeral Diffie-Helman: certificato DSS o RSA è usato per firmare i parametri di cifratura Anonymous Diffie-Hellman: senza autenticazione. Molto vulnerabile e sconsigliato 33

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con Diffie-Hellman. 34

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con Diffie-Hellman. 34

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con Fortezza. Usato dal Do. D (USA

SSL/TLS Meccanismi di crittografia supportati Possibili combinazioni con Fortezza. Usato dal Do. D (USA Department of Defense) 35

SSL/TLS Lower Level: SSL Record Protocol CONFIDENZIALITÀ e INTEGRITÀ Divisione del messaggio, se necessario.

SSL/TLS Lower Level: SSL Record Protocol CONFIDENZIALITÀ e INTEGRITÀ Divisione del messaggio, se necessario. (SSL trasporta blocchi grandi al massimo 214 = 16384 byte). I singoli blocchi vengono compressi Viene calcolato il MAC dei blocchi compressi Si cifra MAC + blocco Si preparano gli header. Gli header contengono: il tipo di messaggio numero di versione principale (3 per SSLv 3 e TLS) numero di versione minima (0 per SSLv 3, 1 per TLS) lunghezza del blocco 36

SSL/TLS Upper Level: SSL Handshake Protocol Quattro fasi che variano a seconda dell'interchange cipher

SSL/TLS Upper Level: SSL Handshake Protocol Quattro fasi che variano a seconda dell'interchange cipher (supponiamo RSA): 1. Richiesta Connessione 2. Identificazione tra client e server 3. Scambio master secret 4. Change Cipher Spec 37

SSL/TLS Upper Level: SSL Handshake Protocol 38

SSL/TLS Upper Level: SSL Handshake Protocol 38

SSL/TLS Upper Level: SSL Handshake Protocol – PRIMA FASE 1. Rchiesta di creazione della

SSL/TLS Upper Level: SSL Handshake Protocol – PRIMA FASE 1. Rchiesta di creazione della connessione SSL tra il client C e il server S. C → S : { version, N 1, session_id, cipher_list, compression_list } version: versione SSL del client N 1 : nonce session_id : che è zero se si cerca di stabilire la connessione altrimenti è il numero di sessione stabilita cipher list: lista dei cifrari che il client conosce compression list: lista degli algoritmi hash che il client conosce 2. Risposta alla richiesta S → C : { version, N 2, session_id, cipher, compression } version: versione massima che possono utilizzare entrambi N 2: nonce 1. session_id: numero di sessione assegnato cipher: cifrario scelto (assumiamo RSA) compression: algoritmo hash scelto 39

SSL/TLS Upper Level: SSL Handshake Protocol – SECONDA FASE 3. Il server si identifica

SSL/TLS Upper Level: SSL Handshake Protocol – SECONDA FASE 3. Il server si identifica S → C : {server_cert} server_cert: certificato X. 509 v 3 del server 4. Invio chiave pubblica S → C : { mod, exp, {hash(N 1, N 2, mod, exp)}Ks-1 } hash: concatenazione di MD 5 e SHA-1 5. Il server richiede al client di identificarsi S → C : { cert_type, good_CA } cert_type: tipo certificato richiesto good_CA: lista CA accettate dal server 6. Fine seconda fase S → C : { end_round_2 } 40

SSL/TLS Upper Level: SSL Handshake Protocol – TERZA FASE 7. Invio certificato del client

SSL/TLS Upper Level: SSL Handshake Protocol – TERZA FASE 7. Invio certificato del client C → S : { client_cert } 8. Invio pre master secret C → S : { pre } pre: 48 bit random cifrati con la chiave pubblica del server (Entrambe le parti calcolano, a partire da pre, il master secret) 9. Invio del master secret C → S : { hash(master, opad, hash(messages, master, ipad)) } opad/ipad: parametri dell'algoritmo hash HMAC messages: concatenazione dei messaggi da 1 a 8. master: master secret calcolato 41

SSL/TLS Upper Level: SSL Handshake Protocol – QUARTA FASE 10. Aggiornamento della procedura C

SSL/TLS Upper Level: SSL Handshake Protocol – QUARTA FASE 10. Aggiornamento della procedura C → S : { hash(master, opad, hash(messages, master, ipad)) } (messages include anche il messaggio 9) 11. Risposta S → C : { hash(master, opad, hash(messages, master, ipad)) } (messages include anche il messaggio 9) 12. Invio del Change Cipher Spec S ↔ C : { 1111 } 42

SSL/TLS Upper Level: SSL Change Cipher Spec Protocol Consiste nell'inviare un singolo byte (tutti

SSL/TLS Upper Level: SSL Change Cipher Spec Protocol Consiste nell'inviare un singolo byte (tutti 1). Viene inviato subito dopo che è terminata la fase di negoziazione (rinegoziazione) dei parametri di cifratura. Upper Level: SSL Application Data Protocol Effettua il passaggio dal livello applicazione all'SSL Record Protocol 43

SSL/TLS Upper Level: SSL Alert Protocol Segnale che si è verificata una condizione anormale.

SSL/TLS Upper Level: SSL Alert Protocol Segnale che si è verificata una condizione anormale. Esistono due tipi di alert: Closure alert: chi lo invia informa l'altro che non invierà più nessun messaggio Error alert: Fatal: ne consegue la terminazione della connessione (decompression_failure, handshake_failure, ecc. . . ) Warning: non si termina la connessione (no_certificate, certificate_expired/revoked, ecc. . . ) 44

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC

Arguments Network Attack Models IPsec (IP Security) SSL/TLS (Secure Socket Layer/Transport Layer Security) DNSSEC (DNS Security Extensions) 45

DNSSEC Estenzione di sicurezza per i DNS, creata da IETF per garantire la sicurezza

DNSSEC Estenzione di sicurezza per i DNS, creata da IETF per garantire la sicurezza delle informazioni fornite dal DNS. Il resolver ottiene, quindi: Autenticazione del DNS Integrità dei dati ricevuti (no disponibilità, no confidenzialità) Tutte le risposte del DNS vengono firmate digitalmente. Protezione da attacchi come DNS Cache Poisoning o DNS Spoofing, no Do. S. 46

DNSSEC Usa crittografia a chiave pubblica Aggiunta di nuovi record RRSIG: contiene la firma

DNSSEC Usa crittografia a chiave pubblica Aggiunta di nuovi record RRSIG: contiene la firma digitale DNSKEY: contiene la chiave pubblica del DNS DS: record di un dominio padre utilizzato per verificare il DNSKEY dei sottodomini NSEC/NSEC 3: restituito in caso si verifica un'eccezione 47

DNSSEC Processo Una volta ottenuta la risposta il resolver deve (in teoria): Verificare DS

DNSSEC Processo Una volta ottenuta la risposta il resolver deve (in teoria): Verificare DS e DNSKEY del DNS root Verificare il DS del DNS di primo livello (com, it, ecc. . . ) trovato nella root e usarlo per verificare DNSKEY. . . Verificare RRSIG ottenuta dal DNS autoritativo per il dominio che stavamo cercando 48

DNSSEC 49

DNSSEC 49

DNSSEC Eccezioni Il DNS del dominio cercato non supporta DNSSEC Se c'è il DS

DNSSEC Eccezioni Il DNS del dominio cercato non supporta DNSSEC Se c'è il DS valido ma non l'RRSIG si può intuire che c'è stato un attacco o un errore di comunicazione Se il dominio che stiamo cercando non esiste verrà restituito NSEC/NSEC 3. Il record ha comunque un RRSIG che può essere verificato firmato dal DNS padre. Può accedere che il dominio che cerchiamo implementa DNSSEC ma quelli di livello superiore no (e viceversa). Si crea un'isola di sicurezza che va comunque verificata in altro modo. 50

DNSSEC 51

DNSSEC 51

DNSSEC Trust Anchor e Authentication Chain Per poter verificare una risposta si deve conoscere

DNSSEC Trust Anchor e Authentication Chain Per poter verificare una risposta si deve conoscere almeno una chiave valida: Trusted Anchor. In teoria dovrebbe essere la root ma ancora, DNSSEC non è stato installato Authentication Chain: è una serie di DS e DNSKEY. Si crea al momento che si invia una richiesta. Deve essere completa per poter verificare la risposta ottenuta 52

FINE 53

FINE 53