Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
24/03/2005 2
Introduzione
Autenticazione e cifratura possono essere fornite ai livelli alti della pila OSI
• PGP: e-mail / file• SSH: remote login (sessioni remote)• SSL/TLS: socket layer (web browsing)
e/o dai livelli più bassi• IPSec (per la comunicazione intera)• WEP (Wireless Encryption Protocol) (WLAN)• Hardware specializzato (per la rete)
24/03/2005 3
Layer 3 versus Layer 4
Application layer ssh, S/MIME, PGP, http digest
Transport layer SSL, TLS, WTLS
Network layer IPsec
Data Link layer CHAP, PPTP, L2TP,WEP (WLAN), A5 (GSM), Bluetooth
Physical layer Scrambling, Hopping,Quantum Communications
Communication layers Security protocols
24/03/2005 4
IPSec
Scambio di chiavi e cifratura sono separati• Struttura modulare per la cifratura Possono
essere aggiunti nuovi algoritmi
Complesso– molta flessibilità opzioniVPN standardBITW, BITS
24/03/2005 6
IPSec
IPSec usa• Procedure e Protocolli di gestione di chiavi crittografiche
Internet Key Exchange (IKE) : installa l’ambiente per i servizi AH ed ESP negoziando i parametri di connessione
• Protocolli di securizzazione del trafficoAuthentication header (AH): integrità in modo non connesso,
autenticazione dell’origine dei dati, servizio anti-replayEncapsulating security payload (ESP): confidenzialità
(cipher) con CBC (RC4 ?), confidenzialità limitata al flusso di traffico. Può fornire anche integrità in modo non connesso, autenticazione dell’origine dei dati (authenticator), servizio anti-replay
Entrambe forniscono il controllo d’accessoPossono essere applicate sole oppure in combinazione
24/03/2005 7
IPSec antireplay
N N+7 N+16
0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 Nuovo pacchetto
• Finestra di ricezione ≥ 32 bit (poss. Multipli di 32, lunghezza del Sequence number)•Solo i pacchetti autenticati provocano l’avanzamento della finestra -> antireplay
24/03/2005 8
Modello semplificato
Payload
Encryption
PayloadESP
PayloadESPAH
I parametri per la cifratura ed il campo AH sono negoziati attraverso le Security Association
Il campo ESP indica l’identità delle SA e porta informazioni aggiuntive per la decodifica del payload
Il campo AH è creato usando il payload (ed ESP, se presente)
24/03/2005 9
HMAC Message Authentication Code
HMAC è una computazione di hash “autenticato”. E’ un metodo per generare e verificare informazioni di autenticazione su dati senza usare la crittografia a chiave pubblica.
HMAC(K, M) = H(K XOR opad, H (K XOR ipad, M))
24/03/2005 10
HMAC (RFC 2104)
DocumentDocument
KeyKey
Inner KeyInner Key
64 bytes
MD5 / SHA-1 Hash FunctionMD5 / SHA-1 Hash Function
HashHash
MD5 / SHA-1 Hash FunctionMD5 / SHA-1 Hash Function
0x36..0x360x36..0x36
XOR
Outer KeyOuter Key
64 bytes
0x5C..0x5C0x5C..0x5C
XOR
PadPad 64 bytes
MACMAC 16/20 bytes
24/03/2005 11
Perfect Forward Secrecy
PFS: Perfect Forward Secrecy• Ottenere una chiave non fornisce l’accesso a tutti i
dati, ma solo ai dati protetti da quella chiave • Le chiavi sono statisticamente (!) indipendenti
Uso di numeri pseudocasuali generati localmente
24/03/2005 12
Security Association (SA)
Una connessione unidirezionale (SAout, SAin) che fornisce servizi di sicurezza al traffico usando AH o ESP tabelle distinte
SPD, SADB, selectorIdentificate univocamente da
• Security parameter index (SPI)• IP destination address• Security protocol (AH or ESP) identifier
24/03/2005 13
Funzionalità di SA
Insieme di servizi di sicurezza che dipendono dal• Protocollo di sicurezza• SA mode• Endpoints di SA• Servizi opzionali all’interno del protocollo
Uso di SPI per trovare security association (SA)Controllo dell’autenticazione con uso di SADecifratura dei dati autenticati con uso di SACreazione in 2 passi
Negoziazione dei parametri di SAAggiornamento del SADB con le SA
Alcuni campi: Antireplay window, PMTU, Mode, Deletion
24/03/2005 14
Esempio di SA
SPI: 12345Encryption algorithm: 3DES
HMAC algorithm: MD5Encryption key: 0x65f3dde…HMAC key: 0xa3b443d9…Expiry: 15:06:09 13Oct98
24/03/2005 15
Security Association: campo mode
Due tipi
• Transport mode è una connessione host-to-host che coinvolge solo 2 macchine (su cui sono rispettivamente in esecuzione i processi IPSec)
• Nel Tunnel mode le macchine si comportano come gateway e possono veicolare traffico per molteplici clienti (possono non avere IPSec a bordo)
24/03/2005 18
Gestione delle chiavi
Chiavi di sessione e permanentiAH ed ESP richiedono chiavi di cifratura ed autenticazioneProcesso per negoziare e stabilire le SA di IPSec tra 2 entitàISAKMP• Internet Security Association and Key Management
ProtocolOakley, SKEME
24/03/2005 19
Gestione manuale delle chiavi
Opzione obbligatoriaUtile quando gli sviluppatori IPSec sono in fase di debugChiavi scambiate offline (telefono, email, etc.)Installazione di SPI e negoziazione di parametri
24/03/2005 20
Internet Security Association and Key Management Protocol (ISAKMP)
RFC 2408Gestisce la negoziazione delle connessioni e definisce le loro proprietà usando le Security Association (SA)
Protocollo per la creazione, modifica e cancellazione di IPSEC SAFornisce uno schema generale per lo scambio di cookie, parametri di sicurezza, gestione delle chiavi ed informazioni per l’identificazione Dettagli implementativi lasciati ad altri protocolli (IKE)
Due fasi1. Creazione di un canale sicuro ed autenticato (“SA”)2. Negoziazione dei parametri di sicurezza (“KMP”)
24/03/2005 22
Cookies
Requirements• Dipende dalle specifiche parti • Solo la creazione di entità può generare cookie
accettabili–> uso del segreto locale• La creazione e la verifica dei cookie deve essere
veloce
Hash su IP Src/Dest; UDP Src/Dest; segreto locale;contatore-tempo
Anti-clogging token (ACT), usati per evitare DoS (esecuzione DH)
24/03/2005 23
DOI (RFC 2407)
Domain of Interpretation: Un Domain of Interpretation (DOI) definisce i formati del payload, i tipi di scambio e le convenzioni per assegnare nomi ad informazioni rilevanti dal punto di vista della security, come le security policy o gli algoritmi crittografici ed i modi.
Un identificatore di Domain of Interpretation (DOI) è usato perinterpretare i payload dei pacchetti ISAKMP. Un sistema DOVREBBE supportare più Domain of Interpretation simultaneamente.
24/03/2005 24
Internet Key Exchange - IKE
IKE (RFC 2409) combina:
• ISAKMP• IPSec DOI •Protocollo di determinazione della chiave di Oakley: creazione di chiavi usando lo schema Diffie-Hellmann (α⇒A=ga modp, B=gb modp, β⇒ Ba
modp=gab modp=Ab modp)
Usa 2 fasi (entrambe usano il protocollo UDP sull porta 500):
• Negoziazione e set up delle SA ISAKMP per gestire le negoziazioni di fase 2 (per tunnel multipli, se richiesti). Due modi: Main, Aggressive• Negoziazione e set up delle SA IPSec (più di una coppia, se necessario). Quick mode, ha 2 varianti : con e senza Perfect Forward Secrecy
24/03/2005 25
IKE Fase 1 – Creazione di IKE SA
Negozia la protezione della comunicazione (algoritmi, autenticazione etc)Usa Diffie-Hellman per stabilire il segreto condiviso (no autenticazione)Autentica il segreto condiviso, IKE SA• Preshared keys (secret)• Digital signatures • Public-keys
24/03/2005 26
Modalità di scambio (Mode)
Fase 1• Main Mode – flessibile, 6 messaggi
• Controlla i cookie prima di applicare DH
• Aggressive mode – più veloce, 3 messaggi• Vulnerabile a DoS, non controlla i cookie prima di
applicare DH
Fase 2 - Quick Mode
24/03/2005 27
Header,SA, CookieII R
Initiator Responder
Header, SA, CookieRNegozia i parametri IKE SA
Header, NonceI, YI
Header, NonceR, YR
Generazione stati SKEYIDHeader, IDI, HashI
Header, IDR, HashR
Scambio DH Y e RND per generare il segreto
Invio di hash digest in modo che il peer possa autenticare il mittente
Esempio: Main Mode Preshared
Cifratura con SKEYD_e
24/03/2005 28
Main Mode Preshared
PRF, Funzione Pseudo-CasualeSKEYID root secret =PRF(preshared-key,Ni|Nr)
SKEYID_d per le SA IPSec=PRF(SKEYID,gxy|CKY-I|CKY-R|0)gxy è il segreto generato da DH
SKEYID_a per auth & integrità dei dati del messaggio IKE= PRF(SKEYID,SKEYID_d| gxy |CKY-I|CKY-R|1)
SKEYID_e usato per cifrare i messaggi IKE= PRF(SKEYID,SKEYID_a| gxy |CKY-I|CKY-R|2)
24/03/2005 29
Main Mode Preshared Hashes
Per autenticarsi mutuamente, ogni entità genera un hash digest che solo il peer può conoscere
Hash-I=PRF(SKEYID,YI|YR|CKY-I|CKY-R|SA Offer|ID-I)Hash-R=PRF(SKEYID,YR|YI|CKY-R|CKY-I|SA Offer|ID-R)
24/03/2005 30
IKE Fase 2
La fase 2 è sempre securizzata da una IKE SA. La IKE SA fornisce segretezza, autenticazione ed integrità dei dati.L’obiettivo è stabilire una IPSEC SA.Tre messaggi in Fase 2:• Messaggio 1: Proposta di parametri ed identità per i
quali è in corso la negoziazione.• Message 2: Scelta dei parametri, e digest HMAC sul
primo messaggio.• Messaggio 3: Digest HMAC sul precedente messaggio.
I digest HMAC usano una chiave dalle SA IKE.
24/03/2005 31
IKE Fase 2
Le chiavi nelle IPSEC SA sono funzione di IKE SA e di numeri casuali.Il risultato della negoziazione sono 2 SA IPSEC unidirezionali, ognuna con un distinto SPI (SPI fanno comunque parte della negoziazione). Le SA possono essere usate solo per cifrare il traffico IPSEC tra le entità negoziate .I tipi d’identità sono indirizzi IP, intervalli IP, sottoreti IP.
24/03/2005 32
IKE Fase 2
Di default no PFS-> se PFS è richiesto -> noncePer maggiore sicurezza può essere abilitata la PFS, includendo uno scambio supplementare di chiavi DH.In prossimità della scadenza delle SA, le entità possono iniziare una nuova negoziazione. Se la IKE SA è valida, ha luogo solo la Fase 2. Altrimenti si ricomincia da capo (FASE 1 + FASE 2). Messaggio supplementare IKE : “informativo”. Esempio: messaggi di errore, richieste per cancellare SA.
24/03/2005 33
IKE Fase 2
Di quale traffico si occupa SA?Initiator specifica quali ingressi (selectors) in SPD sono presenti per la IPSec SA corrente, e li spedisce indietro a responderChiavi ed attributi comunicati con la fase 1 -IKE SA • Cifratura ed autenticazione avviata
24/03/2005 34
Hdr, HASH1, IPSec SA, NonceI, [Nuova K]I R
Initiator Responder
Hdr, HASH2, IPSec SA, NonceR, [Nuova K]Negozia i parametri SA IPSec, [PFS]
Hdr, HASH3“Prova di esistenza” per il responder
Esempio: Quick Mode
Replay?
24/03/2005 35
Esempio: Quick Mode
Hash 1=PRF(SKEYID_a,M-ID|SA|Ni[|KE][ID-ci|ID-cr])
Hash 2=PRF(SKEYID_a,M-ID|Ni|SA|Nr[|KE][ID-ci|ID-cr])
Hash 3=PRF(SKEYID_a,0|M-ID|Ni|Nr)
Dove
SKEYID_a = PRF(SKEYID,SKEYID_d| gxy |CKY-I|CKY-R|1)
24/03/2005 36
Encapsulated Security Payload (ESP) (RFC 2406)
Deve cifrare e/o autenticare ogni pacchettoCifratura prima dell’autenticazioneL’autenticazione è applicata ai dati nell’header IPSec ed ai dati contenuti nel payload
24/03/2005 37
Algoritmi in uso per IPSEC
DES in CBC mode per cifraturaHMAC/MD5 e HMAC/SHA (troncato a 96 bits) per autenticazioneVersioni successive aggiunte opzionalmente, algoritmi dipendenti da DOI• 3DES• Blowfish• CAST-128• IDEA• RC5
24/03/2005 39
ESP
SPI identifica univocamente le SA unitamente con l’indirizzo IP destinazione.Il campo SeqNum contiene un contatore monoticamente crescente per fornire il servizio antireplay.PayloadData contiene i dati descritti dal campo NextHdr.Padding è richiesto se l’algoritmo di cifratura sia CBCI dati di autenticazione contengono il Message Integrity Code (MIC) per qusto pacchetto.
24/03/2005 40
Encapsulating Security Payload (ESP) in Transport Mode
DataDataTCP HdrTCP HdrOrig IP HdrOrig IP Hdr
DataTCP HdrTCP HdrESP HdrESP HdrOrig IP HdrOrig IP Hdr ESP TrailerESP Trailer ESP AuthESP Auth
hashhash
SecParamIndexSecParamIndex
Padding Padding PadLengthPadLength NextHdrNextHdr
Seq#Seq# Keyed HashKeyed HashInitVectorInitVector
Insert Append
24/03/2005 41
IPSec ESP Tunnel Mode
DataDataTCP HdrTCP HdrOrig IP HdrOrig IP Hdr
ESP AuthESP AuthDataDataTCP HdrTCP HdrESP HdrESP Hdr IP HdrIP HdrIPHdrIPHdr
Nuovo header IP con indirizzo IP sorgente & destinazione
ESP TrailerESP Trailer
hashhash
DataTCP HdrTCP Hdr ESP TrailerESP TrailerIP HdrIP HdrESP HdrESP HdrIPHdrIPHdr
24/03/2005 42
Authentication Header (AH) (RFC 2402)
L’autenticazione è applicata all’intero pacchetto, con i campi variabili dell’IP esclusi.Se ESP e AH sono applicati contemporaneamente ad un pacchetto, AH segue ESP
24/03/2005 44
Authentication Header (AH)
AH fornisce autenticazione del payload e del packet header.Fornisce protezione contro replay attack.NextHdr field identifica il tipo di payload successivo.Il campo Payload Length specifica la lunghezza di AH in parole di 32 bit.SPI identifica univocamente le SA unitamente con l’indirizzo IP destinazione.Il campo SeqNum contiene un contatore monoticamente crescente per fornire il servizio antireplay.Una sessione termina dopo che 232 pacchetti sono trasmessi.
24/03/2005 45
IPSec Authentication Header (AH) in Transport Mode
DataDataTCP HdrTCP HdrOrig IP HdrOrig IP Hdr
DataDataTCP HdrTCP HdrOrig IP HdrOrig IP Hdr
Next HdrNext Hdr Payload LenPayload Len RsrvRsrv SecParamIndexSecParamIndex Keyed HashKeyed HashSeq#Seq#
Insert
hash (eccetto per i nuovi campi variabili dell’header IP)hash (eccetto per i nuovi campi variabili dell’header IP)
AH HdrAH Hdr
24/03/2005 46
IPSec AH Tunnel Mode
DataDataTCP HdrTCP HdrOrig IP HdrOrig IP Hdr
IP HdrIP Hdr DataDataTCP HdrTCP HdrOrig IP HdrOrig IP Hdr
Nuovo header IP header con indirizzo IP sorgente & destinazione
hash (eccetto per i nuovi campi variabili dell’header IP)hash (eccetto per i nuovi campi variabili dell’header IP)
AH HdrAH Hdr