IPSec il guardiano del traffico di rete? Di cosa parleremo? Per molto tempo “defense-in-depth” ha significato livelli diversi di protezione L’idea è quella di un castello medievale… IPSec L’host stesso adesso deve contribuire alla sua difesa Si raggiunge maggiore granularità nella sicurezza Aumenta la fiducia: anche le macchine sono note Problemi comuni risolti Spoofing Privacy I modi di IPSec Non esiste nulla che si chiami “IPsec tunnel”! Tipi Transport mode Tunnel mode Metodi AH (authenticated header) ESP (encapsulated security payload) IPsec authentication header (AH) Transport mode AH = IP protocollo 51 – 24 bytes in totale Orig IP Hdr TCP Hdr Data Insert Orig IP Hdr AH Hdr TCP Hdr Data Integrità garantita dall'hash Next Hdr Payload Len Rsrv SecParamIndex Seq# Keyed Hash IPsec encapsulating security payload (ESP) Transport mode ESP = IP protocollo 50 - 22-36 bytes in totale Orig IP Hdr TCP Hdr Data Insert Append Orig IP Hdr ESP Hdr TCP Hdr Data ESP Trailer Normalmente criptato Integrità garantita dell’hash ESP Auth IPsec encapsulating security payload (ESP) Transport mode ESP = IP protocollo 50 - 22-36 bytes in totale Orig IP Hdr TCP Hdr Data Insert Append Orig IP Hdr ESP Hdr TCP Hdr Data ESP Trailer ESP Auth Normalmente criptato Integrità garantita dall’hash SecParamIndex Seq# InitVector Padding Keyed Hash PadLength NextHdr IPsec ESP Tunnel mode Orig IP Hdr TCP Hdr IPHdr ESP Hdr Data IP Hdr TCP Hdr Data ESP Trailer ESP Auth Normalmente criptato Integrità garantita dall’hash Nuovo header IP con indirizzi IP sorgente e destinazione Generazione della Security Association Applicazione o servizio client IPSec policy agent IPsec driver IKE (ISAKMP) Applicazione server o gateway UDP:500 negoziazione 1 IKE SA IKE (ISAKMP) 2 IPsec SA TCPIP TCPIP filtri NIC “IKE initiator” IPSec policy agent IPsec driver filtri NIC IP protocollo 50/51 “IKE responder” Internet Key Exchange (IKE) — Identity Protect Mode (RFC 2409) Fase 1 “Main Mode” stabilisce la IKE SA — canale fidato tra i sistemi, la negoziazione stabilisce il canale criptato, la mutua fiducia e dinamicamente genera le chiave condivisa (master key) Fase 2 “Quick Mode” stabilisce le IPsec SA — per la protezione dei dati, una SA per ogni direzione identificata da un’etichetta per pacchetto (SPI), accordo su algoritmo e formato dei pacchetti, generate le chiavi di sessione derivate dalla “master” key Negoziazione della protezione Necessari due messaggi Da initiator a responder: contiene la proposta Da responder a initiator: contiene la proposta selezionata Suite di protezione: Algoritmi di criptatura DES, 3DES, Null Algoritmi di integrità MD5, SHA-1, Null Metodi di autenticazione Kerberos, preshared key, certificate Gruppi Diffie-Hellman Group 1 (768-bit), Group 2 (1024bit), Group 2048 (Windows 2003) Componenti di IPsec policy Intervallo di polling usato per determinare modifiche nelle policy Parametri IKE, come durata delle chiavi di criptatura. Comportamento di IPsec per le policy Tipo di traffico a cui si applica un’azione Consenti, blocca o metti in sicurezza Kerberos, certificati o chiavi condivise LAN, dialup o entrambi Stack TCP/IP Kernel mode – WinXP/2k/2K3 RRAS Input/Output Interface Filters (SDK) WinSock NAT apis (SDK) Winsock Layered Service Providers (SDK) TDI API (DDK)/AFD.SYS TCP/UDP/IP Connection UI Filters TCP ICS-NAT/ICF (ipnat.sys) UDP ICMP Raw IP Stack IP Filter Hook (DDK) IP Packet Filter driver (ipfltdrv.sys) IPsec Filters, Encryption (ipsec.sys, fips.sys) IP Frag/Reassembly LAN/WAN miniports VPN=PPP virtual WAN interfaces Netmon driver (NMnt.sys) PPTP L2TP NDIS 5.0 Miniport per offload (DDK): TCP checksum, IPsec, Invio di TCP “grandi” Traffico non filtrato da IPsec Traffico broadcast Non è possibile mettere in sicurezza riceventi multipli Traffico multicast Da 224.0.0.0 fino a 239.255.255.255 RSVP— Protocollo IP tipo 46 Consente a RSVP di segnalare la qualità del servizio (QOS) richiesta per il traffico di applicazioni che possono anche essere protette da requests IPsec Kerberos — UDP:88 (sorgente o destinazione) Kerberos è di per se un protocollo sicuro che il servizio di negoziazione IKE può usare per autenticare altri computer nel dominio IKE — UDP:500 (destinazione) Richiesto per consentire ad IKE di negoziare i parametri di sicurezza di IPSec NoDefaultExemptions Documentata in Q254728 Può indicare se filtrare Kerberos e/o RSVP con IPsec Quando sotto filtro, IPsec può bloccare o mettere in sicurezza questi protocolli Se Kerberos è messo in sicurezza da IPsec… IKE non può usare Kerberos per l’autenticazione Si devono usare certificates (bene) o chiavi condivise (male) NoDefaultExemptions Windows Server 2003 ha rimosso tutte le default exemptions eccetto IKE Ci sono modifiche di funzionamento nei service pack per Windows 2000 e Windows XP Windows 2000 SP4 e Windows XP SP2 hanno rimosso Kerberos e RSVP Usare il valore 0 per la chiave di registry per ripristinare le esenzioni di default Confronto tra le esenzioni Valore 0 Kerberos X RSVP X B/M’cast X 1 no no X 2 X X no 3 no no no Default Windows 2000 SP3 Windows XP SP1 Windows 2000 SP4 Windows XP SP2 Windows 2003 X = Traffico esentato dal filtro IKE (500/udp) è sempre esentato I valori 2 e 3 sono supportati solo su Windows Server 2003 only Come applicare IPsec L’amministratore disegna un insieme di configurazioni Chiamate nell’insieme “IPsec policy” Si deve conoscere il traffico IP richiesto dalle applicazioni e dai sistemi Simile a ACL di firewall o router Per la configurazione di può usare lo smap in per MMC “IPsec policy management” Come applicare IPsec Usare “Local Security Policy” per creare policy statiche salvate nel registry Usare le group policy di Active Directory per una gestione centralizzata Usare IPSECPOL.EXE (Windows 2000) o IPSECCMD.EXE (Windows XP) per creare policy statiche e dinamiche da linea di comando Netsh IPSEC Presente in in Windows Server 2003 Sostituisce IPSECPOL e IPSECCMD Consente l’accesso a funzioni non presenti nella UI Traffico esentato per default Controllo della CRL (nessuna/standard/forte) Abilitazione dinamica del log di IKE Abilitazione dinamica del log del driver IPsec Sicurezza persistente (all’avvio del computer) Traffico esentato dall’avvio del computer Sicurezza del computer dall’avvio Policy persistenti Fornisce policy persistenti e attive dal boot netsh ipsec dynamic set config property=bootmode value=… stateful: outbound, inbound, DHCP block: nulla fino all’applicazione della policy permit: tutto consentito Il default e stateful dopo l’assegnazione di una policy property=bootexemptions value=ex1 ex2… protocol= src|destport= direction= Problemi NAT + IPsec Problema 1 Violazione AH NAT NAT Orig IP Hdr TCP Hdr Data Insert Orig IP Hdr AH Hdr Data TCP Hdr Integrità garantita da hash (eccetto campi variabili IP hdr) Next Hdr Payload Len AH = IP protocollo 51 Rsrv SecParamIndex Seq# Keyed Hash 24 byte totale NAT header modification breaks AH Integrity Hash Problemi NAT + IPsec Problema 2 Frammenti IKE NAT Request security NAT SA, VendorID SA, VendorID OK to secure KE, Nonce Policy: Use CA CA1 KE, CRPs, Nonce ID, Cert, Sig, CRPs Trusted Root CA Cert1 CA Cert2 Policy: CA1 CA3 CA1 Il payload dei certificati eccede la frame IP IKE genera frammenti IP NAT (o lo switch) scarta i frammenti Personal machine cert Trusted Root Personal machine cert Il drop dei frammenti blocca IKE CA Cert1 CA Cert3 Problemi NAT + IPsec Problema 3 IPsec tunnel mode “helper” A NAT B IKE set-up PC A Mappa NAT semi statica IPSec ad A IKE set-up PC B Percorso di ritorno al PC A Problema con NAT Helper : Pensato solo per tunnel mode ma agisce anche sul transport mode Blocca le sessioni IPSec multiple Il primo iniziator prende tutti gli IPSec Modello di soluzione Riconoscere la presenza di NAT Escludere IPSec dal dialogo per le porte mappabilida IPSec Incapsulare IPsec in UDP con una gestione brillante dell’assegnazione dinamica delle porte Prevenire i frammenti IP (Microsoft) Soluzione per NAT + IPsec NAT NAT Orig IP Hdr TCP Hdr Data Insert Orig IP Hdr ESP Hdr Data TCP Hdr Insert Orig IP Hdr UDP src 4500, dst 4500 ESP Hdr Rest… Inviato da A Orig IP Hdr UDP src XXX, dst 4500 ESP Hdr Rest… Ricevuto da B Orig IP Hdr UDPESP Hdr B nota per se stesso: “N1 è in realtà A… Trova SA per A<->B e fix” Invio di dati A NAT N1 N2 NAT B Mappa statica: N2, 500 -> B, 500 N2, 4500 -> B, 4500 A invia dati A, N2 UDP src 4500, dst 4500 ESP …resto del pacchetto IPsec N1, N2 N1 UDP src src 8888, 8888 dst 4500 ESP …resto del pacchetto IPsec N1, B UDP src 8888, dst 4500 ESP …resto del pacchetto IPsec B’s Note to self: “N1 is really A… Find SA for A<->B” Problema con la path MTU IP UDP src 4500, dst 4500 ESP …resto del pacchetto IPsec L’incremento della dimensione del pacchetto può generare errori di dimensione del path MTU L2TP riceve PMTU error e corregge Correzione generale del PMTU è necessario per traffico non L2TP Stato di NAT traversal Guidato dalla necessita di accessi remoti con VPN basate su IPSec Implementato come standard IETF (RFC 3947 e RFC 3948) Interoperabilita con gateway di terze parti testata per L2TP + IPSec Per tutti gli usi di IPsec in Windows Server 2003 Sistema operativo L2TP+IPsec IPsec transport mode Windows Server 2003 Si Si4 Windows XP Si1 Non raccomandato5 Windows 2000 Si2 No Windows NT4 Si3 No Windows 98/Me Si3 No Note 1: Windows Update o QFE Note 2: QFE Note 3: Con download dal web Note 4: FTP in active mode non funziona Note 5: Alcune riduzioni di PTMU non funzionanao Scenari di implementazione Fondamentalmente consente/blocca con filtri di pacchetto Rende sicure le comunicazioni interne via LAN Da client a server Tra ampi gruppi di computer Uso di IPsec per la replica di dominio attraverso i firewalls Fornisce tunnel VPN site-to-site Fidato, accesso autorizza l’accesso della macchine dalla rete Packet filtering con IPsec Filtri per bloccare/consentire il traffico Nessuna negoziazione della security association Filtri in sovrapposizione: i più specifici determinano l’azione eseguita Non fornisce stateful filtering Si deve impostare NoDefaultExempt = 1 da IP a IP Protocollo Src Port Dest Port Azione Any My Internet IP Any n/a n/a Block Any My Internet IP TCP Any 80 Permit Il packet filtering è insufficiente From IP1 to IP2, UDP, src *, dst 88/389 From IP2 to IP1, UDP, src 88/389, dst * From IP2 to IP1, TCP, src *, dst 135 From IP1 to IP2, TCP, src 135, dst * Pacchetti IP spoofed contenenti query o codice maligno possono ancora raggiungere porte aperte sui firewall IP1 to IP2, UDP, src *, dst 88/389, … Esistono diversi tool per usare le porte 80, 88, 135, ecc per raggiungere qualsiasi porta di destinazione From IP2, to IP1, UDP, src 88/389, dst 88/389 Connessioni IPsec “server initiated” Policy Client (Respond Only) Negoziazione IKE SA Applicazione UDP:500 ticket IPsec Driver Policy personalizzata ad alta sicurezza filtri “Mando in chiaro, traffico sicuro solo se richiesto. Fiducia nei membri di dominio.” SA IPsec stabilite TGT “Sicurezza richiesta da me verso ogni destinazione, tutto il traffico unicast. Accett richieste non sicure. Fiducia nei membri del dominio. ” Active Directory TGT Session Ticket Key Distribution Center (KDC) DC Windows Server 2003 Configurazione server non usabile verso Internet! Controllo dell’accesso a server con IPSec Passo 1: Utente cerca di accedere ad uno share sul server Permessi di accesso allo share Passo 2: Negoziazione IKE main mode Passo 3: Negoziazione IPSec security method Permessi di accesso all’host Group Policy Permessi di accesso al computer (IPSec) Dept_Computers NAG 2 Policy IPSec 3 1 Isolamento logico dei dati Controllo dell’accesso a server con IPSec Passo 1: Utente cerca di accedere ad uno share sul server Permessi di accesso allo share Passo 2: Negoziazione IKE main mode Passo 3: Negoziazione IPSec security method Step 4: Verifica dei diritti di accesso all’host Permessi di accesso all’host 5 Dept_Users NAG 4 Group Policy Permessi di accesso al computer (IPSec) Step 5: Verifica dei diritti di accesso allo share Dept_Computers NAG 2 Policy IPSec 3 1 Isolamento logico dei dati IPsec per le repliche di dominio DC1 DC2 AD replication Nel firewall aprire le porte: UDP:500 per IKE IP protocollo 50 ESP (non la porta 50!!) In ogni DC creare una policy IPsec. Definire un filtro che assicuri tutto il traffico verso l’indirizzo IP del DC con IPsec ESP 3DES NoDefaultExempt=1 Uso di IPsec ESP-null Autenticazione dei pacchetti Checksum significa che la sorgente è proprio la sorgente Il contenuto è il contenuto Facile fare troubleshoot con Netmon I firewall possono filtrare i pacchetti ESP-Null in base a protocollo e porta se necessario I sistemi NIDS possono esaminare il contenuto dei pacchetti se necessario Scenari Implementazione enterprise-wide Evita che computer non membri di dominio possano fare qualsiasi cosa di utile IPSec con ESP-Null basato su certificati o Kerberos Applicabile con le group policy “default domain” Implementazione server-to-server Impedisce la presenza di server non autorizzati o mascherati sulla rete Solo certificati — enrollment manuale Prestazioni di IPSec L’utilizzo di IPSec ha alcuni effetti sulle prestazioni dei computer Il tempo di negoziazione iniziale di IKE è di circa 2-5 Cinque messaggi Autenticazione — Kerberos o certificati Generazione delle chiavi e dei messaggi criptati Processo ripetuto ogni 8 ore per default, impostabile La rigenerazione delle chiavi di sessione è veloce, <1-2 secondi, tue messaggi, una volta all’ora, impostabile Come migliorare? Schede che consentano l’offloading di IPsec consentono velocità paragonabili a quelle della rete CPU più veloci Overhead durante il logon Traffico e risultati Traffico IP normale Traffico IPsec Overhead Overhead % Inbound 24.434 25.457 1.023 4.19% Outbound Totale 17.979 42.413 18.621 44.078 642 1.665 3.57% 3.93% Impostazioni IPsec usate: ESP solo con 3DES e SHA1 per criptatura e integrità Kerberos come meccanismo di autenticazione Overhead per un file transfer Esperimento Traffico IP normale Inbound . . 2 084 031 Traffico AH Traffico ESP Overhead AH Overhead ESP 2 700 627 . . 2 867 099 . 616 596 . 783 068 96 174 275 . . 96 941 132 . . 1 528 048 . . 2 294 905 98 874 902 . . 99 808 231 . . 2 144 645 . . 3 077 974 29.59% 37.57% 1.61% 2.42% 2.22% 3.18% Overhead % AH Overhead % ESP . . Outbound . . 94 646 227 . . Byte totali . . 96 730 257 . . Tool di gestione e troubleshooting IPsec monitor: Vista dettagliata del “main mode” e del “quick mode” con Tool da linea di comando IPSECCMD in XP (..\support) NETSH IPSEC in Windows Server 2003 (..\system32) Group Policy RSoP in Windows Server 2003 Contatori in Perfmon per IKE e IPsec (Windows Server 2003) Audit di IKE disabilitato per default in Windows Server 2003 Abilitabile log dettagliato per IKE (OAKLEY.log) NetMon v2 ha parser per AH, ESK (se non criptato o se in offload su scheda) e IKE © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.