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