A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere...

54
Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12

Transcript of A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere...

Page 1: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Sicurezza dei calcolatori e delle reti

Proteggere la rete: protocolli crittografici

Lez. 12

Page 2: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 3: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Riservatezza

• Le due entità che devono comunicare:• Stabiliscono una chiave comune di cifratura• Si scambiano i dati usando queste chiavi

• Problemi?

Page 4: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Integrità

• Viene introdotta la nozione di • Message Authentication Code (MAC)

• Keyed Message Authentication Code

PAYLOAD MAC

Page 5: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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)

Page 6: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Problemi implementativi

• Chi si deve occupare di gestire comunicazioni sicure seguendo questo schema?• L’applicazione?• Il livello di trasporto?• La rete?

Page 7: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Problemi implementativi

Page 8: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 9: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

SSL/TLS

Page 10: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 11: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 12: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Sessione SSL

C S

Time, n.ro random, cipher_suite, ...

n.ro random2, session-id, cipher_suite, ...

Chiave Pubblica Ks

Server hello done

EKs(premaster_secret)

Page 13: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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 };

Page 14: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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))

Page 15: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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)) + [...];

Page 16: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Dal key_block si ricavano:

• Client write MAC• Server write MAC• Client write• Server write• Client write IV (Initialization Vector)• Server write IV

Page 17: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

SSL/TSL

Page 18: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Qualche problema

C S

Time, n.ro random, cipher_suite, ...

n.ro random2, session-id, cipher_suite, ...

Chiave Pubblica Ks

Server hello done

EKs(premaster_secret)

M

Chiave pubblica K’s

EK’s(premaster_secret)

|

|

Page 19: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Qualche problema

• Il problema analizzato è noto come man-in-the-middle

• SSL v3.0 prevede le necessarie contromisure per risolverlo in particolare il ricorso all’autenticazione forte attraverso l’uso di certificati digitali X.509

Page 20: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

SSL/TSL

Page 21: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

IPSEC

Page 22: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 23: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Riferimenti

• www.ietf.org• RFC 2401• RFC 2402• RFC 2406• RFC 2409

Page 24: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Le componenti

• Due servizi crittografici:• Authentication header (AH)• Encapsulating Security Payload (ESP)

• Security Association

• Security policy

• Key management

Page 25: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Definizioni Preliminari

Page 26: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 27: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

AH Header

Page 28: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

HMAC

Page 29: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 30: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 31: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

ESP: i protocolli

• DES – CBC• 3 Key Triple DES• RC5• IDEA• 3 key triple IDEA• Blowfish

Page 32: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

ESP + Auth: Header

Page 33: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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. 

Page 34: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 35: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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.

Page 36: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

IPsec: l’idea

• Per il traffico outbound:• In base alle caratteristiche del

pacchetto decidi di:• Eliminare il pacchetto• Applicare AH/ESP• Aggirare IPsec

Page 37: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 38: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 39: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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>

Page 40: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 41: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Security Association

• I parametri caratterizzanti sono:• spi• src_ip• Src_port• Dst_ip• Dst_port• Proto• Algo• Key• lifetime

Page 42: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 43: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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>

Page 44: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 45: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Security Policy

• Sono Selettori i parametri:• DST_IP ADDR• SRC_IP_ADDR• USER NAME • TRANS_PROTO• SRC_PORT• DST_PORT

Page 46: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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)

Page 47: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Security Policy

• Esempio: Sel = [DST_IP_ADDR = 10.0.0.1 SRC_IP_ADDR = 10.0.0.2

TRANS_PROTO = TCP

SRC_PORT = *

DST_PORT = 23 ]

SP = < SEL, ESP, NONE >

Page 48: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Riassumendo

Page 49: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Riassumendo

Page 50: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

Key Management

• L’insieme dei meccanismi che consentono:• La distribuzione• L’uso• L’update

del materiale crittografico

Page 51: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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)

Page 52: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 53: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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

Page 54: A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere la rete: protocolli crittografici Lez. 12.

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