...

Slide su protocolli crittografici

by user

on
Category: Documents
12

views

Report

Comments

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
Fly UP