47
24/03/2005 1 [email protected] IPSec Gianluigi Me

Gianluigi Me gianluigi.me@ieee · 2010. 10. 21. · 24/03/2005 6 IPSec IPSec usa • Procedure e Protocolli di gestione di chiavi crittografiche 9Internet Key Exchange (IKE) : installa

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

24/03/2005 1

[email protected]

IPSec

Gianluigi Me

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 5

IPSec

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 16

Transport Mode

Implementazione di IPSec end-to-end

24/03/2005 17

Tunnel Mode

Implementazione di IPSec tra security gateways.

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 21

ISAKMP

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 38

Encapsulated Security Payload (ESP) (RFC 2406)

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 43

Authentication Header (AH)

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

24/03/2005 47

FINE