Servizi Sicuri
per le comunicazioni in rete
Secure socket layer (SSL)
Transport layer security (TLS)
Applicaz.
Applicaz.
HTTP
HTTP
SSL/TLS
TCP
TCP
Applicaz.
HTTPS
TCP
SSL: Netscape
TLS:RFC 2246
Handshake
Change cipherspec
Record
TCP
Alert
HTTP
Sessione e Connessione
client
server
• La sessione è un'associazione logica tra Cliente e
Server.
• Una sessione viene creata dal protocollo di Handshake e
definisce un insieme di parametri crittografici che
possono essere condivisi fra molteplici connessioni.
• La sessione evita la costosa rinegoziazione dei
parametri di sicurezza per ciascuna connessione
Sessione e Connessione
Sessione e Connessione
I protocolli Handshake, Change e
Record
client
client_hello
server_hello
certificate
server_key_exchange
certificate_request
server
Protocollo Handshake, Fase 1: selezione
dei meccanismi per la riservatezza, per la
autenticazione e per l’accordo sul segreto
Protocollo Handshake, Fase 2 : autenticazione del server e invio di chiavi
server_hello_done
certificate
client_key_exchange
certificate_verify
change_cipher_spec
finished
change_cipher_spec
Protocollo Handshake, Fase 3 : autenticazione del client e accordo sul segreto
Segreto condiviso
Protocollo Hanshake, Fase 4 (Change)
controllo di tutti i dati scambiati
finished
dati
dati
Chiavi installate
Protocollo Record: scambio sicuro dei
dati
I Messaggi Hello
In questa fase il client ed il server si dicono cosa sanno fare ed il client
autentica il serve
• Messaggio client_hello e server_hello
– Versione di SSL
– Random: timestamp (32 bit) + random byte[28]; client e server
– generano quantità random diverse
– ID di sessione: in base al valore (1) viene creata una nuova
sessione, (2) viene creata una connessione in una
sessioneesistente (3) vengono rinegoziati i parametri di una
sessione esistente
– Suite di cifratura (Cipher suite) specifica la lista degli algoritmi di
cifratura supportati dal cliente in ordine di gradimento; il server
sceglie
– Metodo di compressione: lista dei metodi di compressione
supportati dal client; il server sceglie
L’accordo sul segreto (Handshake
2&3):
anonymous Diffie-Hellman
client_hello: RC
server_hello: RS
Prevenzione di attacchi di replay
RNG
n
esp
n,g
n,g
esp
esp
server_key_exchange
client_key_exchange
RNG
esp
n
pre_master_secret
RC, RS
||
||
H
H
master_secret (48 byte)
RC, RS
L’accordo sul segreto (Handshake
2&3):
fixed Diffie-Hellman
p,XC
p,g,YC
firma CA
certificate
esp
p,g,YS
firma CA
certificate
esp
p,XS
pre_master_secret
RC, RS
||
||
H
H
RC, RS
master_secret
L’accordo sul segreto (Handshake
2&3):
ephemeral Diffie-Hellman
k[pubC]
firma CA
RNG
certificate
k[pubS]
firma CA
n,g
k[privC]
k[privS]
n,g
esp
S
S
esp
k[pubS]
k[pubC]
RNG
server/client_key_exchange
n
esp
V
V
esp
n
pre_master_secret
RC, RS
||
||
H
H
master_secret
RC, RS
L’accordo sul segreto (Handshake
2&3):
cifratura asimmetrica
k[pubS]
firma CA
k[pubS]
RNG
RSA
k[privS]
client_key_exchange
RSA
pre_master_secret
RC, RS
||
||
H
H
RC, RS
master_secret
La verifica del segreto e
la generazione delle chiavi
change_cipher_spec
Tutti
||
H
i dati
scambiati
master_secret (48 B)
finished
change_cipher_spec
finished
H
||
Tutti
i dati
scambiati
master_secret
funzione
pseudocasuale
funzione
pseudocasuale
TX RX
RX TX
Dati HTTP
Dati HTTP
Handshake
frag.
Alert
defrag.
Z-1
Z
SI/NO
tipo
lung.
n° seq.
||
H
HMACsegretoT
segretoR
MAC
H
Record:
autenticazione
MAC
||
||
=
Ek
||
TCP
IVT
ksT
ksR
Record:
riservatezza
tipo
lung.
n° seq.
Dk
IVR
int.
Il flusso “sicuro” dei dati
Servizi di sicurezza
a livello di rete
CFR
=
TCP
intestazione
IPv4
Rete
A
B
• Packet sniffing: lettura dei pacchetti in transito
• IP spoofing: falsificazione dell'indirizzo del mittente
• Connection hijacking: inserimento di dati nei pacchetti in transito
• Clogging: generazione di un carico di lavoro inutile ed oneroso
IPSec
Indirizzi IP:
4 → 16 ottetti
Rete
A
B
Riservatezza
Autenticazione
Key Agreement
RFC 1636 (1994), RFC 2401, 2402,2406, 2408 (1998)
Riferimento anche per LAN e WAN
Servizi di Sicurezza Offerti
•Integrità dei datagrammi
•Autenticazione dell’origine dei dati
•Rifiuto dei pacchetti di ‘replica’
•Confidenzialità
•Confidenzialità parziale del flusso di traffico
IPsec è costituito da tre protocolli:
•Authentication Header (AH) per autenticazione dei pacchetti
•Encapsulating Security Payload (ESP) per confidenzialità ed
autenticazione dei pacchetti
•Internet Key Exchange (IKE) per negoziazione dei parametri
di sicurezza, autenticazione e distribuzione delle chiavi
Servizi e Protocolli
Componenti di IPSec
IPSec è un’architettura per dare sicurezza al livello IP.
IPSec prevede:
• una suite di protocolli per svolgere servizi: IKE, AH, ESP
• un insieme di entità per istanziare i servizi: SA, SAD, SPD
1a- IKE: Negoziazione
1b- Accordo sulla SA
2 - AH: Autenticazione
Host
o
gateway
SA
SA
Tipo di protezione
SA
SA
3 - ESP: Riservatezza
stato!
Host
o
gateway
stato!
SAD
Tipo di traffico
SAD
SPD
Tipo di politiche
SPD
Gli elementi di IPSec
• SPD(Security Policy Database): entità che esamina tutto il traffico
IP, sia in ingresso che in uscita, per decidere quali pacchetti debbano
usufruire dei servizi IPSec e per approntare di caso in caso il tipo di
servizio più adatto.
• SAD(Security Association Database): entità che tiene traccia di
quale tipo di servizio sia stato espletato, in quale modo e dove siano
stati indirizzati i pacchetti in questione.
• SA(Security Association): struttura che identifica in maniera univoca
una connessione unidirezionale tra due interlocutori, specificando il
servizio di sicurezza offerto con i relativi parametri(chiavi, algoritmi..)
Security Association
Parametri di una SA
Database di Sicurezza
Esempi di Politiche
SPD
Invio di un messaggio
Pacchetto IP
Quale security policy?
SPD
Security rules
Crea nuova SA
oppure
legge SA esistente
Pacchetto IPSec
Applica algoritmi
SAD
Ricezione di un messaggio
Pacchetto IPSec
Trova SA
SAD
Applica algoritmi
Quale security
policy?
Pacchetto IP
SPD
Verifica security
policy
Il servizio per l’autenticazione (AH)
segreto → origine
hash → integrità
segreto condiviso
HMAC
pacchetto
AH
CFR
pacchetto
S/N
HMAC
pacchetto
HMAC - MD5 96 bit
HMAC - SHA-1 96 bit
……….
Il servizio per la riservatezza (ESP)
chiave → origine
cifrario → segretezza
chiave segreta condivisa
ESP
pacchetto
pacchetto
E
DES, TDES, IDEA,
RC5, CAST, Blowfish
……….
Intestazioni
AH (Authentication Header)
ESP (Encapsulating Security Payload)
D
pacchetto
Campi comuni
- Security Parameter Index (SPI): questo campo di 32 bit, insieme
all’indirizzo IP di destinazione ed all’identificatore di protocollo,
identifica in maniera univoca la SA relativa al datagramma.
- Sequence number field: espleta il servizio di anti-replay tramite la
numerazione progressiva dei datagrammi
- Autentication Data: contiene l’ICV (Integrity Check Value), che
consente di verificare l’integrità del pacchetto in fase di ricezione.
Servizio anti-replay
All’arrivo di ogni nuovo
pacchetto valido, la
destinazione lo marca e
sposta la finestra in modo da
disporlo all’estremità destra
Finestra scorrevole
Lunghezza di default della finestra: 64 pacchetti
Trasporto e Tunnel
Pacchetti IPSec con SA in modalità trasporto
IP header
IPSec header
TCP/UDP header + data
AH
Pacchetti IP
originali
IP header
ESP e/o AH
TCP/UDP header||data
ESP e/o AH
IP header
IPSec header
IP header
TCP/UDP header||data
Pacchetti IPSec con SA in modalità tunnel
Protocollo IKE
IKE (Internet Key Exchange): meccanismo con cui due interlocutori
possono accordarsi sui parametri relativi ad una SA
(creazione, cancellazione, AH o ESP, ecc.).
• framework ISAKMP (messaggi & stato)
• protocollo Oakley (gestione chiavi)
• protocollo Scheme (gestione chiavi)
IKE fase 1: ISAKMP SA
Iniziatore (Ix)
Ricevente (Rx)
Negoziazione
1
HDR|| SA
HDR|| SA
2
Scambio D-H
3 HDR|| KE|| N Ix
chiave anonima e nonce
chiave anonima e nonce
HDR|| KE|| N Rx
4
nome, cert, e firma Identificazione
cifrato
5 HDR|| ID Ix|| [CERT] ||Sign. Ix
HDR||ID Rx|| [CERT] ||Sign. Rx
cifrato
6
nome, cert, e firma
IKE fase 2: creazione di una SA
Iniziatore (Ix)
Ricevente (Rx)
auten., proposta e random nuova chiave
1
HDR HASH SA
N Ix
auten., proposta e random nuova chiave
HDR HASH SA N Rx
2
cifrato
cifrato
cifrato
3
HDR HASH
Condivisione del segreto: Oakley
Scambio di certificati
SA
SB
gXA
mod p
XA
S
S
V
S/N
XB
V
YBXA
mod p
pacchetto
gXB
mod p
S/N
YAXB
mod p
pacchetto
AH o ESP
IKE: anonimato ed identificazione
gXA
mod p
XA
gXB
mod p
XB
SA
H
S
S
YBXA
mod p
YAXB
mod p
S
YA
IDA
YB
||
E
E
||
Cert PA
H
H
IDB
Cert PB
YB
YA
IDB
IDA
Cert PB
V
D
D
Cert PA
V
H