G. Barillaro , P. Bruschi, A. Diligenti, F. Pieri Tecnologie Microelettroniche e Microsistemi
A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere...
-
Upload
lorenzo-valli -
Category
Documents
-
view
214 -
download
1
Transcript of A.A. 2007/2008Corso: Sicurezza 1 © Danilo Bruschi Sicurezza dei calcolatori e delle reti Proteggere...
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
Riservatezza
• Le due entità che devono comunicare:• Stabiliscono una chiave comune di cifratura• Si scambiano i dati usando queste chiavi
• Problemi?
Integrità
• Viene introdotta la nozione di • Message Authentication Code (MAC)
• Keyed Message Authentication Code
PAYLOAD MAC
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)
Problemi implementativi
• Chi si deve occupare di gestire comunicazioni sicure seguendo questo schema?• L’applicazione?• Il livello di trasporto?• La rete?
Problemi implementativi
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
SSL/TLS
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
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
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)
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 };
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))
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)) + [...];
Dal key_block si ricavano:
• Client write MAC• Server write MAC• Client write• Server write• Client write IV (Initialization Vector)• Server write IV
SSL/TSL
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)
|
|
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
SSL/TSL
IPSEC
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
Le componenti
• Due servizi crittografici:• Authentication header (AH)• Encapsulating Security Payload (ESP)
• Security Association
• Security policy
• Key management
Definizioni Preliminari
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
AH Header
HMAC
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
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
ESP: i protocolli
• DES – CBC• 3 Key Triple DES• RC5• IDEA• 3 key triple IDEA• Blowfish
ESP + Auth: Header
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.
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
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.
IPsec: l’idea
• Per il traffico outbound:• In base alle caratteristiche del
pacchetto decidi di:• Eliminare il pacchetto• Applicare AH/ESP• Aggirare IPsec
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
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
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>
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
Security Association
• I parametri caratterizzanti sono:• spi• src_ip• Src_port• Dst_ip• Dst_port• Proto• Algo• Key• lifetime
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
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>
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
Security Policy
• Sono Selettori i parametri:• DST_IP ADDR• SRC_IP_ADDR• USER NAME • TRANS_PROTO• SRC_PORT• DST_PORT
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)
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 >
Riassumendo
Riassumendo
Key Management
• L’insieme dei meccanismi che consentono:• La distribuzione• L’uso• L’update
del materiale crittografico
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)
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
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
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