A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Crittografia e sicurezza Ladozione di appropriati protocolli crittografici nellambito delle applicazioni di rete e dei protocolli della suite TCP/IP consentono di risolvere alcuni dei problemi di sicurezza delle reti, in particolare Riservatezza dei dati Integrità dei dati Autenticità dei messaggi
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Riservatezza Le due entità che devono comunicare: Stabiliscono una chiave comune di cifratura Si scambiano i dati usando queste chiavi Problemi?
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Integrità Viene introdotta la nozione di Message Authentication Code (MAC) Keyed Message Authentication Code PAYLOADMAC
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Problemi di ordine generale Politico: trattato di Wassenaar Tecnico: Crittografia simmetrica vs. asimmetrica Simmetrica Molto veloce ( DES (HW) 1Gbit/sec) Gestione chiavi molto pesante Asimmetrica Poco efficiente (RSA (HW) 20 firme/sec.) Richiede infrastrutture (PKI)
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Problemi implementativi Chi si deve occupare di gestire comunicazioni sicure seguendo questo schema? Lapplicazione? Il livello di trasporto? La rete?
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Problemi implementativi
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi SSL/TLS Protocollo progettato inizialmente da NETSCAPE con il nome di SSL, specificatamente per la protezione delle transazioni web Divenuto standard IETF, a partire dalla versione 3.0, (RFC 2246) con il nome TLS Principalmente focalizzato sulle proprietà di Confidenzialità e Integrità del traffico di rete
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi SSL/TLS
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi SSL/TLS Handshake provvede a: Opzionalmente: autenticare le parti Autenticazione del solo server Mutua autenticazione Accordare le due parti sugli algoritmi crypto da usare Generare le chiavi di sessione per la cifratura dei dati
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi SSL/TLS: standard adottati Certificati X.509 per lautenticazione delle parti Algoritmi di autenticazione, key exchange: RSA DH DSS Fortezza Algoritmi di cifratura: RC4 (40-128) DES ( ) 3DES Algoritmi di hashing MD5 SHA1
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sessione SSL C S Time, n.ro random, cipher_suite,... n.ro random2, session-id, cipher_suite,... Chiave Pubblica Ks Server hello done E Ks (premaster_secret)
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Cyphersuite (Es.) CipherSuite SSL_RSA_WITH_NULL_MD5 = { 0x00,0x01 }; CipherSuite SSL_RSA_WITH_NULL_SHA = { 0x00,0x02 }; CipherSuite SSL_RSA_EXPORT_WITH_RC4_40_MD5 = {0x00,0x03 }; CipherSuite SSL_RSA_WITH_RC4_128_MD5 = { 0x00,0x04 }; CipherSuite SSL_RSA_WITH_RC4_128_SHA = { 0x00,0x05 }; CipherSuite SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0x00,0x06 }; CipherSuite SSL_RSA_WITH_IDEA_CBC_SHA = { 0x00,0x07 }; CipherSuite SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = {0x00,0x08 }; CipherSuite SSL_RSA_WITH_DES_CBC_SHA = { 0x00,0x09 }; CipherSuite SSL_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x0A };
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sessione SSL Attraverso il pre_master_secret si computa il master secret (48 byte) master_secret = MD5(pre_master_secret + SHA('A' + pre_master_secret + ClientHello.random + ServerHello.random)) || MD5(pre_master_secret + SHA('BB' + pre_master_secret + ClientHello.random + ServerHello.random)) || MD5(pre_master_secret + SHA('CCC' + pre_master_secret + ClientHello.random + ServerHello.random))
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Attraverso il master_secret.. key_block = MD5(master_secret || SHA('A' || master_secret || ServerHello.random || ClientHello.random)) || MD5(master_secret || SHA('BB' || master_secret || ServerHello.random || ClientHello.random)) || MD5(master_secret || SHA('CCC' || master_secret || ServerHello.random || ClientHello.random)) + [...];
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Dal key_block si ricavano: Client write MAC Server write MAC Client write Server write Client write IV (Initialization Vector) Server write IV
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi SSL/TSL
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Qualche problema C S Time, n.ro random, cipher_suite,... n.ro random2, session-id, cipher_suite,... Chiave Pubblica Ks Server hello done E Ks (premaster_secret) M Chiave pubblica Ks E Ks (premaster_secret) | |
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Qualche problema Il problema analizzato è noto come man-in-the- middle SSL v3.0 prevede le necessarie contromisure per risolverlo in particolare il ricorso allautenticazione forte attraverso luso di certificati digitali X.509
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi SSL/TSL
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi IPSEC
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Obiettivi Aggiungere funzionalità di sicurezza al protocollo IPv4 e IPv6 Riservatezza e integrità del traffico Autenticità del mittente La versione attuale opera solo su traffico unicast Implementato in tutte le versioni più aggiornate dei sistemi Windows e Linux
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Riferimenti RFC 2401 RFC 2402 RFC 2406 RFC 2409
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Le componenti Due servizi crittografici: Authentication header (AH) Encapsulating Security Payload (ESP) Security Association Security policy Key management
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Definizioni Preliminari
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi AH (Integrità) Il servizio AH fornisce: Connectionless integrity: individua le modifiche dei singoli datagram (payload + i campi non modificabili dellheader) Data origin authentication: verifica lidentità del mittente Anty replay: individua nellambito di una finestra di dimensione finita, pacchetti duplicati
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi AH Header
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi HMAC
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi AH: i protocolli Lo standard prevede ladozione di una delle seguenti keyed hash function: HMAC-MD5-96 HMAC-SHA-1-96 KEYED- MD5 KEYED – SHA - 1
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi ESP Il servizio ESP fornisce: Opzionalmente tutti i servizi di AH (però su una porzione di dati più ristretta) Confidentiality (cifra il payload IP e qualsiasi ext. Header IPV6 seguente ESP header) Limited traffic flow confidentiality: esistono opzioni per mascherare source e dest. address
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi ESP: i protocolli DES – CBC 3 Key Triple DES RC5 IDEA 3 key triple IDEA Blowfish
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi ESP + Auth: Header
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Transport mode La modalità transport viene utilizzata quando si vuole fare una comunicazione end-to-end sicura. Un tipico esempio può essere una comunicazione tra due host.
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Tunnel mode La modalità tunnel viene invece utilizzata quando almeno una delle due estremità non è in grado di processare i pacchetti IPsec. In tal caso si fa svolgere questo lavoro ad un'altra entità (normalmente chiamata Security Gateway) il cui compito è quello di processare il pacchetto
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Transport Vs Tunnel Transport Mode SATunnel Mode SA AH Authenticates IP payload and selected portions of IP header and IPv6 extension headers Authenticates entire inner IP packet plus selected portions of outer IP header ESP Encrypts IP payload and any IPv6 extension header Encrypts inner IP packet ESP with authentication Encrypts IP payload and any IPv6 extesion header. Authenticates IP payload but no IP header Encrypts inner IP packet. Authenticates inner IP packet.
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi IPsec: lidea Per il traffico outbound: In base alle caratteristiche del pacchetto decidi di: Eliminare il pacchetto Applicare AH/ESP Aggirare IPsec
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi IPsec: lidea Per il traffico inbound Se il pacchetto contiene un header IPsec Applica la politica appropriata per il suo trattamento Se il pacchetto NON contiene un header IPsec decidi di eliminarlo o bypassare IPsec
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi IPsec: lidea Gli strumenti usati da IPsec per raggiungere tali obiettivi sono rispettivamente: 1.Le Security Association e le Security Policy 2.I protocolli di key exchange
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Association Una security association è un insieme di parametri che definiscono le trasformazioni da effettuare su un certo tipo di traffico IP in una connessione Simplex Ogni SA è univocamente identificata da una tripla:
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Association Le SA sono memorizzate nel SAD Esistono su ogni sistema IPSec due SAD uno per il traffico Inbound e laltro per il traffico Outbound Per ogni canale di comunicazione duplex devono esistere due SA e devono essere entrambe memorizzate nei rispettivi SAD
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Association I parametri caratterizzanti sono: spi src_ip Src_port Dst_ip Dst_port Proto Algo Key lifetime
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Policy Una security policy è un insieme di parametri che consentono ad IPsec di associare ai pacchetti IP le corrispondenti SA e quindi le da operare sui pacchetti Ogni SP contiene dunque una serie di selettori che devono consentire di individuare univocamente la SA associata
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Policy Tutte le SP di un sistema risiedono nel SPD (Security policies database) Esistono due versioni di SPD in ogni sistema Una SP è caratterizzata da una tripla:
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Policy Sel è linsieme di parametri che caratterizzano il tipo di traffico a cui la policy fa riferimento Security Prot. Il tipo di trasformazione da operare sul traffico Level la politica da adottare
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Policy Sono Selettori i parametri: DST_IP ADDR SRC_IP_ADDR USER NAME TRANS_PROTO SRC_PORT DST_PORT
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Policy I Security Prot. Sono AH ESP Level Es. : NONE (nessun controllo richiesto sia outbound che inbound) REQUIRE (sia outbound che inbound devono avere una SA di riferimento)
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Security Policy Esempio: Sel = [DST_IP_ADDR = SRC_IP_ADDR = TRANS_PROTO = TCP SRC_PORT = * DST_PORT = 23 ] SP =
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Riassumendo
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Riassumendo
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Key Management Linsieme dei meccanismi che consentono: La distribuzione Luso Lupdate del materiale crittografico
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Key Management Manuale La configurazione del sistema, caricamento delle SA, è effettuato manualmente dal sysadmin Automatica unapplicazione si occupa della negoziazione/generazione delle SA (ISAKMP/IKE)
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi ISAKMP Internet Security Association and Key Management Protocol ISAKMP è un protocollo che definisce le procedure ed il formato dei pacchetti necessari per negoziare, modificare e cancellare le SA Nellambito del compito sopra definito, prevede anche i meccanismi da adottare per lo scambio e la gestione delle chiavi
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi IKE IKE è un protocollo ibrido che implementa i protocolli di key exchange Oakley e Skeme con il framework ISAKMP ISAKMP richiede che tutti gli scambi di informazioni siano sia cifrati che autenticati; nessuno deve essere in grado di vedere le chiavi, e queste ultime possono essere scambiate solamente tra parti autenticate
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi IKE Auth. IKE è molto flessibile nel supportare diversi metodi di autenticazione: Pre-shared Key – La stessa chiave è pre-installata su ogni coppia di nodi che vogliono comunicare in modo sicuro tramite IPsec. Crittografia a chiave pubblica – Ogni parte genera un numero pseudo-casuale detto nonce, e lo cifra con la chiave pubblica dellaltra parte. Firma digitale – Ogni dispositivo firma una serie di dati e li spedisce allaltra parte