Gianluigi Me gianluigi.me@ieee.org IPSec 24/03/2005 1
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 2
Layer 3 versus Layer 4 Communication layers Security protocols Application layer Transport layer Network layer ssh, S/MIME, PGP, http digest SSL, TLS, WTLS IPsec Data Link layer Physical layer CHAP, PPTP, L2TP, WEP (WLAN), A5 (GSM), Bluetooth Scrambling, Hopping, Quantum Communications 24/03/2005 3
IPSec Scambio di chiavi e cifratura sono separati Struttura modulare per la cifratura Possono essere aggiunti nuovi algoritmi Complesso molta flessibilità opzioni VPN standard BITW, BITS 24/03/2005 4
IPSec 24/03/2005 5
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 traffico Authentication header (AH): integrità in modo non connesso, autenticazione dell origine dei dati, servizio anti-replay Encapsulating 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 dat (authenticator), servizio anti-replay Entrambe forniscono il controllo d accesso Possono essere applicate sole oppure in combinazione 24/03/2005 6
IPSec antireplay 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 Nuovo pacchetto N N+7 N+16 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 7
Modello semplificato I parametri per la cifratura ed il campo AH sono negoziati attraverso le Security Association Payload 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) AH ESP ESP Encryption Payload Payload 24/03/2005 8
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 9
HMAC (RFC 2104) 0x36..0x36 XOR Inner Inner Key Key 64 bytes Document Key Key XOR Pad Pad 64 bytes MD5 MD5 // SHA-1 SHA-1 Hash Hash Function 0x5C..0x5C Outer Outer Key Key 64 bytes Hash Hash MD5 MD5 // SHA-1 SHA-1 Hash Hash Function 24/03/2005 MAC MAC 16/20 bytes 10
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 11
Security Association (SA) Una connessione unidirezionale (SA out, SA in ) che fornisce servizi di sicurezza al traffico usando AH o ESP tabelle distinte SPD, SADB, selector Identificate univocamente da Security parameter index (SPI) IP destination address Security protocol (AH or ESP) identifier 24/03/2005 12
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 SA Decifratura dei dati autenticati con uso di SA Creazione in 2 passi Negoziazione dei parametri di SA Aggiornamento del SADB con le SA Alcuni campi: Antireplay window, PMTU, Mode, Deletion 24/03/2005 13
Esempio di SA SPI: 12345 Encryption algorithm: 3DES HMAC algorithm: MD5 Encryption key: 0x65f3dde HMAC key: 0xa3b443d9 Expiry: 15:06:09 13Oct98 24/03/2005 14
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 15
Transport Mode Implementazione di IPSec end-to-end 24/03/2005 16
Tunnel Mode Implementazione di IPSec tra security gateways. 24/03/2005 17
Gestione delle chiavi Chiavi di sessione e permanenti AH ed ESP richiedono chiavi di cifratura ed autenticazione Processo per negoziare e stabilire le SA di IPSec tra 2 entità ISAKMP Internet Security Association and Key Management Protocol Oakley, SKEME 24/03/2005 18
Gestione manuale delle chiavi Opzione obbligatoria Utile quando gli sviluppatori IPSec sono in fase di debug Chiavi scambiate offline (telefono, email, etc.) Installazione di SPI e negoziazione di parametri 24/03/2005 19
Internet Security Association and Key Management Protocol (ISAKMP) RFC 2408 Gestisce la negoziazione delle connessioni e definisce le loro proprietà usando le Security Association (SA) Protocollo per la creazione, modifica e cancellazione di IPSEC SA Fornisce 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 fasi 1. Creazione di un canale sicuro ed autenticato ( SA ) 2. Negoziazione dei parametri di sicurezza ( KMP ) 24/03/2005 20
ISAKMP 24/03/2005 21
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 22
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 per interpretare i payload dei pacchetti ISAKMP. Un sistema DOVREBBE supportare più Domain of Interpretation simultaneamente. 24/03/2005 23
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=g a modp, B=g b modp, β B a modp=g ab modp=a b 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 24
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 25
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 26
Esempio: Main Mode Preshared Initiator Responder I Header,SA, Cookie I Negozia i parametri IKE SA Header, SA, Cookie R R Header, Nonce I, Y I Header, Nonce R, Y R Scambio DH Y e RND per generare il segreto Generazione stati SKEYID Header, ID I, Hash I Invio di hash digest in modo che il peer possa autenticare il mittente Cifratura con SKEYD_e Header, ID R, Hash R 24/03/2005 27
Main Mode Preshared PRF, Funzione Pseudo-Casuale SKEYID root secret =PRF(preshared-key,Ni Nr) SKEYID_d per le SA IPSec =PRF(SKEYID,g xy CKY-I CKY-R 0) g xy è il segreto generato da DH SKEYID_a per auth & integrità dei dati del messaggio IKE = PRF(SKEYID,SKEYID_d g xy CKY-I CKY-R 1) SKEYID_e usato per cifrare i messaggi IKE = PRF(SKEYID,SKEYID_a g xy CKY-I CKY-R 2) 24/03/2005 28
Main Mode Preshared Hashes Per autenticarsi mutuamente, ogni entità genera un hash digest che solo il peer può conoscere Hash-I=PRF(SKEYID,Y I Y R CKY-I CKY-R SA Offer ID-I) Hash-R=PRF(SKEYID,Y R Y I CKY-R CKY-I SA Offer ID-R) 24/03/2005 29
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 30
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 31
IKE Fase 2 Di default no PFS-> se PFS è richiesto -> nonce Per 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 32
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 responder Chiavi ed attributi comunicati con la fase 1 - IKE SA Cifratura ed autenticazione avviata 24/03/2005 33
Initiator Esempio: Quick Mode Responder I Hdr, HASH1, IPSec SA, Nonce I, [Nuova K] R Negozia i parametri SA IPSec, [PFS] Hdr, HASH2, IPSec SA, Nonce R, [Nuova K] Hdr, HASH3 Replay? Prova di esistenza per il responder 24/03/2005 34
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 g xy CKY-I CKY-R 1) 24/03/2005 35
Encapsulated Security Payload (ESP) (RFC 2406) Deve cifrare e/o autenticare ogni pacchetto Cifratura prima dell autenticazione L autenticazione è applicata ai dati nell header IPSec ed ai dati contenuti nel payload 24/03/2005 36
Algoritmi in uso per IPSEC DES in CBC mode per cifratura HMAC/MD5 e HMAC/SHA (troncato a 96 bits) per autenticazione Versioni successive aggiunte opzionalmente, algoritmi dipendenti da DOI 3DES Blowfish CAST-128 IDEA RC5 24/03/2005 37
Encapsulated Security Payload (ESP) (RFC 2406) 24/03/2005 38
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 CBC I dati di autenticazione contengono il Message Integrity Code (MIC) per qusto pacchetto. 24/03/2005 39
Encapsulating Security Payload (ESP) in Transport Mode Orig IP Hdr TCP Hdr Data Insert Append Orig IP Hdr ESP Hdr TCP Hdr Data ESP Trailer ESP Auth hash SecParamIndex Seq# InitVector Keyed Hash Padding PadLength NextHdr 24/03/2005 40
IPSec ESP Tunnel Mode Orig IP Hdr TCP Hdr Data Hdr ESP Hdr IP Hdr TCP Hdr Data ESP Trailer ESP Auth hash Nuovo header IP con indirizzo IP sorgente & destinazione 24/03/2005 41
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 42
Authentication Header (AH) 24/03/2005 43
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 2 32 pacchetti sono trasmessi. 24/03/2005 44
IPSec Authentication Header (AH) in Transport Mode Orig IP Hdr TCP Hdr Data Insert Orig IP Hdr AH Hdr TCP Hdr Data hash (eccetto per i nuovi campi variabili dell header IP) Next Hdr Payload Len Rsrv SecParamIndex Seq# Keyed Hash 24/03/2005 45
IPSec AH Tunnel Mode Orig IP Hdr TCP Hdr Data IP Hdr AH Hdr Orig IP Hdr TCP Hdr Data hash (eccetto per i nuovi campi variabili dell header IP) Nuovo header IP header con indirizzo IP sorgente & destinazione 24/03/2005 46
FINE 24/03/2005 47