Elementi di Sicurezza e Privatezza Lezione 14 Web Security - IPSec Chiara Braghin chiara.braghin@unimi.it
Internet ISP Backbone ISP Routing locale e tra domini TCP/IP: gestisce routing e connessioni BGP (Border Gateway Protocol): routing announcements Domain Name System Trova l indirizzo IP a partire dal nome simbolico (www.unimi.it) 1
TCP/IP Suite Host 1 Application Transport Network Link Application protocol TCP/UDP protocol IP protocol Data Link Host 2 Application Transport Network Link 2
Funzioni del protocollo IP Routing Il mittente conosce l indirizzo IP del router (gateway) Il gateway IP deve conoscere i percorsi verso altre reti per far arrivare il pacchetto a destinazione Campo TTL: decrementato dopo ogni hop Limita il numero di trasmissioni da nodo a nodo di un pacchetto Se TTL=0 il pacchetto viene dismesso, garantisce assenza di loop. 3
IP Routing Alice 121.42.33.12 Pacchetto Source Destination 121.42.33.12 132.14.11.51 Office gateway 132.14.11.1 121.42.33.1 ISP Bob 132.14.11.51 Internet routing utilizza gli indirizzi IP numerici Un percorso tipico utilizza una serie di hop 4
TCP Servizio orientato alla connessione, mantiene l ordine dei pacchetti libro Mittente: Suddivide i dati in pacchetti Attacca il numero dei pacchetti Destinatario: ACK la ricezione; pacchetti persi vengono rispediti Riassembla i pacchetti nell ordine corretto 1 19 riassembla il libro 1 5 1 spedisce ciascuna pagina 5
Formato dei dati Application message TCP Header Application message - data Transport (TCP, UDP) segment TCP data TCP data TCP data Network (IP) packet IP TCP data Link Layer frame ETH IP TCP data ETF IP Header Link (Ethernet) Header Link (Ethernet) Trailer 6
Internet Protocol (IP) ver, Versione [4 bit]: indica la versione del pacchetto IP (IPv4 o IPv6) hlen, Internet Header Length (IHL) [4 bit]: indica la lunghezza (in word da 32 bit) dell'header IP visto il campo facoltativo Options; Type of Service (TOS) [8 bit]: specifica la precedenza con cui l'host ricevente deve trattare il pacchetto proto, Protocol [8 bit]: indica il (codice associato al) protocollo utilizzato nel campo dati (payload) del pacchetto IP: TCP codice 6 UDP codice 17 Figura tratta da http://unixwiz.net/techtips/iguide-ipsec.html 7
TCP Header Source Port U R G A C K SEQ Number ACK Number P P S S S Y H R N Dest port F I N TCP Header Other stuff 8
Problemi di sicurezza (1) Problema 1: nessuna autenticazione del src IP Fiducia nel fatto che il cliente inserisca l indirizzo IP della sorgente Facile da sovrascrivere usando raw socket Libnet: una libreria per formattare raw packet con IP header arbitrari Chiunque sia root nel proprio PC può spedire pacchetti con un indirizzo IP arbitrario la risposta verrà spedita alla sorgente falsificata Implicazioni: Anonymous DoS attacks 9
Problemi di sicurezza (2) Problema 2: i pacchetti attraversano host non fidati Eavesdropping, packet sniffing Attacchi semplici se l attaccante controlla una macchina vicino a quella della vittima 10
Possibili attacchi (1) IP Spoofing: Un host, falsificando l indirizzo IP dei pacchetti fa credere all host vittima di essere il suo interlocutore Come impedirlo: non basare l autenticazione sugli indirizzi IP Sniffing: Un host legge i pacchetti destinati ad altri nodi della rete (semplice in reti broadcast e non segmentate) Come impedirlo: cifrare i pacchetti, non usare reti broadcast e segmentare il più possibile 11
Possibili attacchi (2) Connection Hijacking: Qualcuno prende il controllo di un canale di comunicazione (dirottamento di una connessione TCP) per leggere, modificare o eliminare pacchetti Come impedirlo: codificare i pacchetti ai livelli 2 e 3 del modello OSI 12
Esempio: Packet Sniffing Una promiscuous NIC (network interface card) legge tutti i pacchetti Legge tutti i dati in chiaro NB: ftp, telnet (e POP, IMAP) spediscono le password in chiaro! Trudy Alice Network Bob Prevenzione: Encryption (IPSEC) 13
IPSEC (1) Estensione di sicurezza di IPv4 e IPv6 Garantisce la spedizione sicura di pacchetti IP Parte integrante di IPv6, opzionale in IPv4 Perché a livello rete? Proteggendo la comunicazione a questo livello si proteggono anche i livelli superiori Insieme di protocolli: IP Authentication Header (AH): garantisce autenticazione e integrità IP Encapsulating Security Protocol (ESP): garantisce confidenzialità IP Encapsulating Security Protocol con ICV (integrity check value): garantisce confidenzialità e, come AH, autenticazione e integrità 14
IPSEC (2) Componenti aggiuntive: Algoritmi di cifratura/hashing Internet Security Association and Key Management Protocol (ISAKMP) e Internet Key Exchange (IKE) protocol 15
IPSEC (3) Modalità d uso (supportate da AH e da ESP): Transport mode Tunnel mode Stabiliscono quali parti del pacchetto IP devono venire protette e quindi come gli header vadano combinati 16
IPSEC - Transport mode (1) Per connessioni host-to-host (usato dagli end-point non dai gateway) ogni host che vuole comunicare deve avere il software necessario per implementare IPSec usato per ogni singolo hop Viene cifrato solo il payload dei pacchetti IP, non l'header si aggiunge solo l'header IPSec (AH o ESP) un singolo header IP sorgente e destinatario rimangono in chiaro Computazionalmente leggero 17
IPSEC - Transport Mode (2) 18 Figura tratta da http://www.tcpipguide.com/free/t_ipsecmodestransportandtunnel.htm
IPSEC - Tunnel mode (1) Per connessioni gateway-to-gateway solo i gateway devono avere il software che implementa IPSec si hanno punti di centralizzazione quindi single point of failure utilizzato per realizzare le VPN Viene cifrato tutto il pacchetto IP viene aggiunto un nuovo header IP che può avere indirizzo sorgente e destinazione diversi due header IP Computazionalmente oneroso 19
IPSEC - Tunnel Mode (2) 20
Transport vs Tunnel Mode Transport Mode: garantisce una connessione sicura tra due host visto che cifra/firma il payload del pacchetto IP Tunnel Mode: incapsula l intero pacchetto IP e garantisce un hop sicuro virtuale tra due gataway della rete canale sicuro lungo rete insicura => VPN 21
Authentication Header (AH) next hdr: identifica il tipo di header che segue (TCP, IP). Permette di ricostruire il pacchetto originale AH len: lunghezza dell header SPI: 32-bit che servono per identificare la Security Association (SA) tra sorgente e destinatario di un traffico di rete basato su IPsec Sequence Number: contatore per evitare replay attack (viene inserito nella parte di dati autenticati, quindi si rileva un eventuale modifica) Authentication Data: contiene il MAC dell intero pacchetto IP (i.e., solo i campi dell header che non cambiano -no TTL e checksum- e il payload) e di alcuni campi dell header AH Figura tratta da http://unixwiz.net/techtips/iguide-ipsec.html 22
AH in Transport Mode Figura tratta da http://unixwiz.net/techtips/iguide-ipsec.html 23
AH in Tunnel Mode Il pacchetto IP originale viene instradato attraverso il nuovo pacchetto IP che lo ingloba L indirizzo sorgente e destinazione possono essere diversi da quelli del pacchetto: si forma un tunnel 24
Quale modalità? Come fare a capire se si è in Transport o Tunnel mode? Non c è un campo esplicito nell header AH/ESP 25
Encapsulating Security Protocol (ESP) Il payload del pacchetto IP è inserito tra l ESP header e l ESP trailer SPI, SN e next hdr: come per AH; next hdr punta all indietro pad len: lunghezza del padding che permette la cifratura a blocchi (campo di riempimento, necessario in quanto alcuni codici di cifratura lavorano su blocchi di lunghezza fissa) encrypted payload: i dati che vengono cifrati (pacchetto TCP/UDP o IP a seconda della modalità + ESP trailer) ESP può garantire autenticazione, ma solo dell ESP header e del payload cifrato: non copre l intero pacchetto IP 26
ESP in Transport Mode (1) Pacchetto IP senza IPsec: IP header IP payload NB: IP payload = TCP header + TCP payload IPsec: IP header ESP header IP payload ESP trailer CIFRATO AUTENTICATO ESP Auth 27
ESP in Transport Mode (2) 28
ESP in Tunnel Mode (1) Prima: IP header IP payload Dopo: New IP header ESP header IP header originale IP payload originale ESP trailer CIFRATO AUTENTICATO ESP Auth 29
ESP - Tunnel Mode (2) 30
Componenti aggiuntive (1) Security Association Quando arriva un pacchetto IP quali parametri (chiave, protocollo, sessione) usare per interpretarlo? Identificata univocamente da: indirizzo IP dei partecipanti IPsec Protocol (ESP or AH) Security Parameters Index: hash/crypto algorithm (MD5, SHA-1, DES, etc.) e chiave segreta 31
Componenti aggiuntive (2) Algoritmi di hashing e cifratura MD5 o SHA-1 DES Gestione delle chiavi Manuale o automatica ISAKMP (Internet Security Association Key Management Protocol): supporta lo scambio iniziale delle chiavi tra 2 host IKE (Internet Key Exchange) gestisce lo scambio di chiavi di sessione Oakley usato per lo scambio di chiavi multiple IPsec key exchange usa la porta 500/udp. 32
Virtual Private Network VPN: Virtual Private Network una rete privata, instaurata tra soggetti che utilizzano un sistema di trasmissione pubblico e condiviso (e.g., Internet) offre alle aziende, a un costo inferiore, le stesse possibilità delle linee private in affitto sfruttando reti condivise pubbliche Usata per LAN-to-LAN internetworking È come se si prolungasse il cavo Ethernet tra le 2 LAN 33
Tunnel mode e VPN Diversi protocolli: PPTP Point-to-point tunneling protocol L2TP Layer-2 tunneling protocol IPsec (Layer-3: network layer) SSL/TLS, OpenVPN Si crea un tunnel virtuale tra due gateway/host utilizzando Internet come mezzo di collegamento 34
VPN (1) 35
VPN (2) 36
IPSEC: Problemi Compatibilità con NAT (Network Address Translation) NAT modifica on-the-fly gli indirizzi IP del sorgente e/o destinatario 37
IPSEC: riferimenti http://unixwiz.net/techtips/iguide-ipsec.html RFC RFC 4301 Security Architecture for IPsec RFC 4302 AH: Authentication Header RFC 4303 ESP: Encapsulating Security Payload RFC 4306 The Internet Key Exchange (IKE) Protocol RFC 2403 Use of HMAC-MD5-96 within ESP and AH RFC 2404 Use of HMAC-SHA-1-96 within ESP and AH RFC 2405 The ESP DES-CBC Cipher Algorithm With Explicit IV 38
IPSEC in pratica? http://www.google.com/intl/en/ipv6/statistics/ http://www.ipv6actnow.org/info/statistics/#routed 39