Comments
Description
Transcript
Slide su protocolli crittografici
Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12 A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Crittografia e sicurezza • L’adozione di appropriati protocolli crittografici nell’ambito 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/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi Integrità • Viene introdotta la nozione di • Message Authentication Code (MAC) • Keyed Message Authentication Code PAYLOAD A.A. 2007/2008 MAC Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi Problemi implementativi • Chi si deve occupare di gestire comunicazioni sicure seguendo questo schema? • L’applicazione? • Il livello di trasporto? • La rete? A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Problemi implementativi A.A. 2007/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi SSL/TLS A.A. 2007/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi SSL/TLS: standard adottati • Certificati X.509 per l’autenticazione delle parti • Algoritmi di autenticazione, key exchange: • • • • RSA DH DSS Fortezza • Algoritmi di cifratura: • RC4 (40-128) • DES (40- 128) • 3DES • Algoritmi di hashing • MD5 • SHA1 A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Sessione SSL S C Time, n.ro random, cipher_suite, ... n.ro random2, session-id, cipher_suite, ... Chiave Pubblica Ks Server hello done EKs(premaster_secret) A.A. 2007/2008 Corso: 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/2008 Corso: 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/2008 Corso: 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/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi SSL/TSL A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Qualche problema S M C Time, n.ro random, cipher_suite, ... n.ro random2, session-id, cipher_suite, ... Chiave pubblica K’s | Chiave Pubblica Ks Server hello done EKs(premaster_secret) A.A. 2007/2008 | EK’s(premaster_secret) Corso: Sicurezza 1 © Danilo Bruschi Qualche problema • Il problema analizzato è noto come man-in-themiddle • SSL v3.0 prevede le necessarie contromisure per risolverlo in particolare il ricorso all’autenticazione forte attraverso l’uso di certificati digitali X.509 A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi SSL/TSL A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi IPSEC A.A. 2007/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi Riferimenti • www.ietf.org • • • • RFC 2401 RFC 2402 RFC 2406 RFC 2409 A.A. 2007/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi Definizioni Preliminari A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi AH (Integrità) • Il servizio AH fornisce: • Connectionless integrity: individua le modifiche dei singoli datagram (payload + i campi non modificabili dell’header) • Data origin authentication: verifica l’identità del mittente • Anty replay: individua nell’ambito di una finestra di dimensione finita, pacchetti duplicati A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi AH Header A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi HMAC A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi AH: i protocolli • Lo standard prevede l’adozione di una delle seguenti keyed hash function: • • • • HMAC-MD5-96 HMAC-SHA-1-96 KEYED- MD5 KEYED – SHA - 1 A.A. 2007/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi ESP: i protocolli • • • • • • DES – CBC 3 Key Triple DES RC5 IDEA 3 key triple IDEA Blowfish A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi ESP + Auth: Header A.A. 2007/2008 Corso: 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/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi Transport Vs Tunnel Transport Mode SA Tunnel 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/2008 Corso: Sicurezza 1 © Danilo Bruschi IPsec: l’idea • Per il traffico outbound: • In base alle caratteristiche del pacchetto decidi di: • Eliminare il pacchetto • Applicare AH/ESP • Aggirare IPsec A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi IPsec: l’idea • 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/2008 Corso: Sicurezza 1 © Danilo Bruschi IPsec: l’idea • 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/2008 Corso: 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: • <SPI, DST_IP, Security protocol> A.A. 2007/2008 Corso: 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 l’altro 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/2008 Corso: 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/2008 Corso: 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/2008 Corso: 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: <Sel, Security Prot., Level> A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Security Policy • Sel è l’insieme 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/2008 Corso: 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/2008 Corso: 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/2008 Corso: Sicurezza 1 © Danilo Bruschi Security Policy • Esempio: Sel = [DST_IP_ADDR SRC_IP_ADDR TRANS_PROTO SRC_PORT DST_PORT = = = = = 10.0.0.1 10.0.0.2 TCP * 23 ] SP = < SEL, ESP, NONE > A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Riassumendo A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Riassumendo A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Key Management • L’insieme dei meccanismi che consentono: • La distribuzione • L’uso • L’update del materiale crittografico A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi Key Management • Manuale • La configurazione del sistema, caricamento delle SA, è effettuato manualmente dal sysadmin • Automatica • un’applicazione si occupa della negoziazione/generazione delle SA (ISAKMP/IKE) A.A. 2007/2008 Corso: 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 • Nell’ambito del compito sopra definito, prevede anche i meccanismi da adottare per lo scambio e la gestione delle chiavi A.A. 2007/2008 Corso: 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/2008 Corso: 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 dell’altra parte. • Firma digitale – Ogni dispositivo firma una serie di dati e li spedisce all’altra parte A.A. 2007/2008 Corso: Sicurezza 1 © Danilo Bruschi