際際滷

際際滷Share a Scribd company logo
IPsec Cos'竪 ? IPsec [2] (IP Security) 竪 una suite di protocolli utilizzati per creare reti private virtuali [1] (VPN). Universit dell'Insubria - Relazione di Sicurezza Definizione IETF (Internet Engineering Task Force):  Protocollo di sicurezza a livello rete sviluppato per fornire servizi di sicurezza crittografica che fornisce un supporto flessibile per autenticazione, integrit e confidenzialit.  IPsec sta diventando lo standard di fatto per la creazione di VPN.
Tipi di VPN LAN-to-LAN VPN:   La connessione di due reti private per formare una sola rete privata virtuale. Client-to-LAN VPN:   Lestensione di una rete privata per consentire laccesso remoto agli utenti che diventano parte della rete privata. Universit dell'Insubria - Relazione di Sicurezza
LAN-to-LAN VPN Universit dell'Insubria - Relazione di Sicurezza
Client-to-LAN VPN Universit dell'Insubria - Relazione di Sicurezza
Protocolli di IPsec Universit dell'Insubria - Relazione di Sicurezza IKE:   Internet Key Exchange[2] Fornisce un framework per la negoziazione dei parametri di sicurezza e lo scambio delle chiavi. ESP:   Encapsulating Security Payload[4] fornisce un framework per la sicurezza dei dati e opzionalmente l'autenticazione. AH:  Autentication Header[3] fornisce un framework per lautenticazione e la sicurezza dei dati.
IKE Universit dell'Insubria - Relazione di Sicurezza  una combinazione di 3 diversi protocolli:  SKEME:   Fornisce un meccanismo per lutilizzo di crittografia a chiave pubblica per scopi di autenticazione. Oakley:   Protocollo per lo scambio delle chiavi basato su Diffie-Hellman. ISAKMP[2]:   Definisce larchitettura di scambio di messaggi, inclusi i formati dei pacchetti e le varie transizioni tra nodi IPsec.
ISAKMP Universit dell'Insubria - Relazione di Sicurezza  un protocollo che definisce:  Le procedure  necessarie per attivare, negoziare, modificare e cancellare le Security Association[1] (SA).  I formati  dei pacchetti per lo scambio dei dati di generazione e autenticazione delle chiavi.
Procedure Universit dell'Insubria - Relazione di Sicurezza Un tunnel IPsec viene costruito attraverso le seguenti fasi:  Un nodo IPsec inizializza il collegamento con il nodo remoto o con la rete remota. I due nodi creano una Security Association (SA), ovvero un canale sicuro da utilizzare per i messaggi. I due nodi utilizzano la SA appena creata per negoziare le Security Association (SA) per altri protocolli. I dati iniziano a passare attraverso il tunnel criptato utilizzando le tecniche di incapsulamento AH o ESP.
Formati Universit dell'Insubria - Relazione di Sicurezza Lintestazione di un messaggio ISAKMP ha la seguente struttura:  Un messaggio ISAKMP 竪 costituito da unintestazione seguita da uno o pi湛 payload. Tutto ci嘆 viene trasportato con il protocollo UDP.
Tipi di negoziazione IKE Universit dell'Insubria - Relazione di Sicurezza IKE pu嘆 realizzare diversi tipi di negoziazione:
Main Mode Universit dell'Insubria - Relazione di Sicurezza La modalit Main Mode[1] avviene tramite lo scambio di 6 messaggi tra i due nodi IPsec.
Messaggio 1 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza SA Payload:  Transform Payload:  Proposal Payload:
Messaggio 2 (responder -> initiator) Universit dell'Insubria - Relazione di Sicurezza SA Payload:   identico al precedente. Proposal Payload:  Contiene le informazioni che il Responder ha deciso di accettare. Transform Payload:   Contiene le informazioni che il Responder ha deciso di accettare.
Messaggio 3 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Key Exchange Payload : Nonce Payload:  Contiene il valore pubblico di Diffie-Hellman:
Messaggio 4 (responder -> initiator) Universit dell'Insubria - Relazione di Sicurezza KE Payload:  Contiene il valore pubblico di  Diffie-Hellman:  Nonce Payload:  Contiene il nonce del responder N r
Calcolo delle chiavi Universit dell'Insubria - Relazione di Sicurezza A questo punto entrambi i nodi sono in grado di calcolare il segreto condiviso: initiator:  responder:  A partire dal segreto condiviso S initiator e responder calcolano 3 chiavi: SKEYID: SKEYID_d: SKEYID_a: SKEYID_e:
Messaggio 5 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Identification Payload : Hash Payload : Contiene un valore di hash calcolato nel seguente modo:
Messaggio 6 (responder -> initiator) Universit dell'Insubria - Relazione di Sicurezza Identification Payload:  Contiene ID-R. Hash Payload:  Contiene un valore di hash calcolato nel seguente modo:
Autenticazione con PSK Universit dell'Insubria - Relazione di Sicurezza Se i due valori di hash calcolati da Initiator e Responder sono gli stessi allora la sessione viene autenticata e quindi 竪 stata creata la SA. Initiator: Responder: Decifra il messaggio 6 utilizzando SKEYID_e Trova la PK-R (Preshared-Key del responder) utilizzando ID-R Calcola HASH_R Se HASH_R ricevuto = HASH_R calcolato lautenticazione ha successo Decifra il messaggio 5 utilizzando SKEYID_e Trova la PK-I (Preshared-Key del initiator) utilizzando ID-I Calcola HASH_I Se HASH_I ricevuto = HASH_I calcolato lautenticazione ha successo
Aggressive Mode Universit dell'Insubria - Relazione di Sicurezza Nellaggressive mode[1] si ottiene lo stesso risultato che con il main mode, ma in soli 3 scambi di messaggi.
Quick Mode Universit dell'Insubria - Relazione di Sicurezza Come la modalit Main mode 竪 usata per concordare i parametri dellISAKMP SA, la modalit quick mode[1] 竪 usata per concordare i parametri della IPsec SA. Nel nostro esempio, supponiamo che liniziatore ha deciso di utilizzare una propriet conosciuta come Perfect Forward Secrecy (PFS).
Messaggio 1 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Hash Payload :  Valore di hash calcolato a partire dal segreto S e dal Nonce N i .  SA Payload :  Identico a quello del main mode. Proposal Payload :  Contiene il tipo di incapsulamento e lSPI. Transform Payload :  Contiene la modalit tunnel o transport, lalgoritmo di crittografia, lalgoritmo di hash e il metodo di autenticazione.  KE Payload :  Contiene il valore Nonce Payload :  Contiene il nonce dellinitiator N i ID-S Payload :  ID-source in genere 竪 lindirizzo IP dellinitiator. ID-D Payload :  ID-destination in genere 竪 lindirizzo IP del responder.
Messaggio 2 (responder -> initiator) Hash Payload :  Valore di hash calcolato a partire dal segreto S e dal Nonce N r .  SA Payload :  Identico a quello del main mode. Proposal Payload :  Contiene il tipo di incapsulamento e lSPI nella direzione opposta. Transform Payload :  Contiene la modalit tunnell o transport, lalgoritmo di crittografia, lalgoritmo di hash e il metodo di autenticazione scelti dal responder.  KE Payload :  Contiene il valore Nonce Payload :  Contiene il nonce dellresponder N r ID-S Payload :  ID-source in genere 竪 lindirizzo IP dellinitiator. ID-D Payload :  ID-destination in genere 竪 lindirizzo IP del responder.
Calcolo delle chiavi Universit dell'Insubria - Relazione di Sicurezza A questo punto entrambi i nodi sono in grado di calcolare il segreto condiviso: initiator:  responder:  A partire dal segreto condiviso S initiator e responder calcolano la chiave per la IPsec SA: Initiator: Responder:
Messaggio 3 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Hash Payload :  Lultimo messaggio viene inviato per verificare la Liveness del responder. Esso contiene semplicemente un Hash calcolato nel seguente modo: Questo messaggio serve al responder per sapere se il messaggio 2 竪 arrivato allinitiator. Dopo che il responder ha ricevuto il messaggio 3 la negoziazione della SA 竪 terminata e la SA pu嘆 essere utilizzata per lo scambio dei dati sicuri.
Autenticazione con Digital Signature Universit dell'Insubria - Relazione di Sicurezza Lunica differenza tra lautenticazione con Preshared Key e Digital Signature 竪 nei passaggi 5 e 6 del main mode. La prima differenza importante riguarda il modo in cui le SKEYs vengono generate:
Messaggio 5 (Digital Signature) Universit dell'Insubria - Relazione di Sicurezza ID Payload :  Contiene un identificativo per linitiator come lindirizzo IP o il nome dellhost. Signature Payload :  Contiene la signature dellinitiator calcolata nel seguente modo:
Messaggio 6 (Digital Signature) Universit dell'Insubria - Relazione di Sicurezza ID Payload :  Contiene un identificativo per il responder come lindirizzo IP o il nome dellhost. Signature Payload :  Contiene la signature del responder calcolata nel seguente modo:
Autenticazione con Digital Signature Universit dell'Insubria - Relazione di Sicurezza Se i due valori di hash calcolati da Initiator e Responder sono gli stessi allora la sessione viene autenticata e quindi 竪 stata creata la SA. Initiator: Responder: Decifra il messaggio 6 utilizzando SKEYID_e Decifra HASH_R usando PK_R Calcola HASH_R Se HASH_R ricevuto = HASH_R calcolato lautenticazione ha successo Decifra il messaggio 5 utilizzando SKEYID_e Decifra HASH_I usando PK_I Calcola HASH_I Se HASH_I ricevuto = HASH_I calcolato lautenticazione ha successo
Sicurezza IKE (1) Clogging Attack:   Lattacco clogging [1] 竪 un attacco di tipo DoS in cui lattaccante crea un indirizzo sorgente di un utente legittimo e invia una chiave pubblica Diffie-Hellman allaltro utente forzandolo ad eseguire un esponenziale modulare per calcolare la chiave segreta. Una serie ripetuta di messaggi di questo tipo pu嘆 mettere in ginocchio il sistema della vittima. Il cookie evita questo attacco, ma deve seguire le specifiche ISAKMP: Deve dipendere dalle specifiche parti. Questo impedisce a un estraneo di derivare un cookie da un indirizzo IP e una porta UDP. Non deve essere possibile per nessuno, tranne per lentit emettitrice, generare dei cookie che vengano accettati da tale entit. I  metodi di generazione e verifica di un cookie devono essere veloci per evitare attacchi che mirano a consumare le risorse di elaborazione.   Un attaccante non potr pi湛 eseguire un attacco di tipo clogging perch辿 quando invier allaltro utente una chiave pubblica di Diffie-Hellman, laltro utente prima verificher il cookie e poi inizier la computazione, ma essendo il cookie un numero pseudo-casuale lattaccante non 竪 in grado di crearne uno falso da solo.
Sicurezza IKE (2) Universit dell'Insubria - Relazione di Sicurezza Replay Attack:  In un attacco a replay [2], un estraneo ottiene copia di un pacchetto e successivamente lo ritrasmette alla destinazione prevista. Questo pu嘆 causare problemi al funzionamento del servizio. Il Nonce ha lo scopo di sventare questo genere di attacchi.
Sicurezza IKE (3) Man-in-the-middle Attack:  L'algoritmo Diffie-Hellman 竪 soggetto all'attacco man in the middle [2]:  Nello scambio di chiavi con IKE questo attacco non pu嘆 funzionare perch辿 i 2 nodi devono autenticarsi: Nel caso di autenticazione con Preshared Key il nodo E dovrebbe conoscere la Preshared Key. Nel caso di autenticazione con Digital Signature il nodo E dovrebbe conoscere la chiave segreta per la Firma di A e di B.
Openswan Universit dell'Insubria - Relazione di Sicurezza OpenSwan[6] 竪 limplementazione IPsec pi湛 diffusa sui Linux recenti. Deriva da FreeSwan, progetto non pi湛 mantenuto. Il progetto 竪 composto da 2 componenti: KLIPS :  Il modulo del kernel per il supporto IPsec.  PLUTO :  Demone che implementa il protocollo IKE.
File di Configurazione di Openswan Universit dell'Insubria - Relazione di Sicurezza Openswan utilizza principalmente 2 file di configurazione per configurare una connessione IPsec: /etc/ipsec.secrets :  Contiene le chiavi RSA pubbliche e private oppure la PSK. /etc/ipsec.conf :  Contiene i setting, le opzioni e le connessioni per openswan.
Il file /etc/ipsec.conf  Universit dell'Insubria - Relazione di Sicurezza Il file 竪 suddiviso in 3 sezioni: config setup :  Parametri e opzioni globali. conn %default :  Opzionale, 竪 una sezione di default che contiene parametri globali che vengono ereditati dalle conn successive. conn nome-connesione :  Definizione di una particolare connessione.
Il file /etc/ipsec.secrets  Universit dell'Insubria - Relazione di Sicurezza Questo file contiene le chiavi RSA pubbliche e private oppure la PSK dellhost.  Il file pu嘆 essere generato automaticamente lanciando il comando:  >ipsec newhostkey output /etc/ipsec.secrets
host-to-host tunnel ipsec.conf version 2 config setup interfaces=%defaultroute conn %default authby=rsasig conn A-B left= 192.168.0.1 right= 192.168.0.2 type=tunnel leftrsasigkey= 0ArOk... rightrsasigkey= 0sAQP... auto=start version 2 config setup interfaces=%defaultroute conn %default authby=rsasig conn B-A left= 192.168.0.2 right= 192.168.0.1 type=tunnel leftrsasigkey= 0sAQP... rightrsasigkey= 0ArOk... auto=start
host-to-host tunnel ipsec.secrets Universit dell'Insubria - Relazione di Sicurezza 192.168.0.1 (A)  /etc/ipsec.secret : RSA {  # RSA 2192 bits  A   # Sat Dec 20 15:52:44 2008  #pubkey= 0ArOk... Modulus: 0xa... PublicExponent: 0x03  PrivateExponent: 0x1b... }  leftrsasigkey= 0ArOk... rightrsasigkey= 0sAQP...  /etc/ipsec.conf 192.168.0.2 (B)  /etc/ipsec.secret : RSA {  # RSA 2192 bits  B   # Sun Dec 21 15:00:44 2008  #pubkey= 0sAQP... Modulus: 0xc... PublicExponent: 0x04  PrivateExponent: 0x5b... }  leftrsasigkey= 0sAQP... rightrsasigkey= 0ArOk...  /etc/ipsec.conf
Avvio di Openswan Per avviare openswan lanciamo il comando: Se tutto funziona correttamente apparira un log simile al seguente:  Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #365: initiating Main Mode Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #365: transition from state STATE_MAIN_I1 to state STATE_MAIN_I2 Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #365: I did not send a certificate because I do not have one. Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #365: transition from state STATE_MAIN_I2 to state STATE_MAIN_I3 Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #365: Peer ID is ID_IPV4_ADDR: ' 192.168.0.1 ' Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #365: transition from state STATE_MAIN_I3 to state STATE_MAIN_I4 Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #365:  ISAKMP SA established Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #366: initiating Quick Mode RSASIG+ENCRYPT+TUNNEL+PFS+UP {using isakmp#365} Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #366: transition from state STATE_QUICK_I1 to state STATE_QUICK_I2 Sep 15 20:05  A  pluto[20362]: &quot; A-B &quot; #366: sent QI2,  IPsec SA established {ESP=>0xe5f72aaa <0xc51033f4} > /etc/init.d/ipsec {start | stop | restart }
host-to-host tunnel (PSK) Universit dell'Insubria - Relazione di Sicurezza A volte c竪 bisogno di connettere Openswan a un dispositivo che non pu嘆 gestire chiavi RSA. Immaginiamo che A sia questo host.  In questo caso dobbiamo modificare il file /etc/ipsec.secrets nel seguente modo:  192.168.0.1 192.168.0.2 : PSK segreto Inoltre dobbiamo modificare la connessione nel file /etc/ipsec.conf  nel seguente modo: conn A-B authby=secret left=192.168.0.1 right=192.168.0.2 type=tunnel auto=start
LAN-to-LAN tunnel version 2 config setup interfaces=eth1 conn %default authby=rsasig conn LAN_A-LAN_B left= 87.9.19.54 leftsubnet= 192.168.0.0/24 right= 87.9.19.58 rightsubnet= 192.168.1.0/24 leftrsasigkey= 0sAQ43A1.... rightrsasigkey= 0sAQfP63... type=tunnel auto=start version 2 config setup interfaces=eth1 conn %default authby=rsasig conn LAN_B-LAN_A left= 87.9.19.58 leftsubnet= 192.168.1.0/24 right= 87.9.15.54 rightsubnet= 192.168.0.0/24 leftrsasigkey= 0sAQfP63... rightrsasigkey= 0sAQ43A1.... type=tunnel auto=start Universit dell'Insubria - Relazione di Sicurezza
Roadwarriors tunnel Universit dell'Insubria - Relazione di Sicurezza version 2 config setup interfaces=eth1 conn %default authby=rsasig conn Roadwarriors left= 87.9.19.54 leftsubnet= 192.168.0.0/24 right= %any rightid= @notebook_B leftrsasigkey= 0sAQ43A1.... rightrsasigkey= 0sAQfP63... type=tunnel auto=add version 2 config setup interfaces=%defaultroute conn %default authby=rsasig conn Roadwarriors left= %defaultroute leftid= @notebook_B right= 87.9.19.54 rightsubnet= 192.168.0.0/24 leftrsasigkey= 0sAQfP63... rightrsasigkey= 0sAQ43A1.... type=tunnel auto=start
Roadwarriors tunnel (PSK) Universit dell'Insubria - Relazione di Sicurezza In questo caso dobbiamo modificare il file /etc/ipsec.secrets nel seguente modo su A:  192.168.0.1 %any : PSK password Inoltre dobbiamo modificare  il file /etc/ipsec.secrets nel seguente modo su B:  %defaultroute 87.9.19.54 : PSK password
Altre opzioni di Openswan Universit dell'Insubria - Relazione di Sicurezza L'opzione IKE :  竪  usata per impostare i parametri di negoziazione della ISAKMP SA come ad esempio: L'opzione ESP :  竪  usata per impostare i parametri di negoziazione della IPsec SA come ad esempio: ike=3des-sha1-96,aes-md5-96 esp=aes256-sha1,aes128-sha1,3des-sha1 L'opzione aggrmode :  imposta l'aggressive mode nella negoziazione della ISAKMP SA: aggrmode=yes
Certificati x.509 e openswan Universit dell'Insubria - Relazione di Sicurezza Finora abbiamo visto come creare una connessione IPsec per uno specifico utente, ma questo 竪 sicuramente poco scalabile. In questa parte vogliamo creare un server VPN che sia in grado di distribuire differenti credenziali VPN ad ogni singolo utente. Il modo pi湛 usato per fare questo 竪 attraverso i certificati X.509. x.509  竪 uno standard definito dalla ITU-T (International Telecommunication Union - Telecommunication Standardization Sector). I certificati vengono rilasciati da una Autorit di Certificazione (CA) la cui firma apposta sul certificato garantisce il legame tra chiave ed entit.
Struttura x.509 Universit dell'Insubria - Relazione di Sicurezza La struttura delle CA 竪 di tipo gerarchico: RDNs: Michele Rossi DN(Distinguished Name): C=CA / State=Italy /  Locality=Milan / Organization=Microsoft / OU=Sales Staff / UserID=Michele Rossi
Struttura di un certificato x.509 Universit dell'Insubria - Relazione di Sicurezza Certificate: Version: 3 (0x2) Serial Number: e4...48 Sign Algorithm:sha1WithRSAEnc Issuer: C=CA, ST=Italy, L=Milan, O=Microsoft, OU=Support Staff, CN=Microsoft Root Validity Not Before: Feb 19  Not After : Mar 21 Subject: C=CA, ST=Italy, L=Milan, O=Microsoft, OU=Sales Staff,  CN=Michele Rossi Subject Public Key Info: Public Key Algorithm:RSA RSA Public Key:  Modulus:00...db Exponent: 65...77 X509v3 extensions: ... Signature Algorithm:sha1WithRSA 2b...5e
x.509 e Openswan Universit dell'Insubria - Relazione di Sicurezza Quando la connessione 竪 configurata per lutilizzo di certificati x.509, invece di caricare la chiave privata RSA da /etc/ipsec.secrets, la chiave privata viene caricata dal un file .key e la chiave pubblica viene caricata da un file .cert. Questi file vengono caricati automaticamente se vengono inseriti nelle directory corrette: /etc/ipsec.d/certs :  contiene i certificati con le chiavi pubbliche. /etc/ipsec.d/cacerts :  contiene i CA certificates. /etc/ipsec.d/private :  contiene le chiavi private.
Connessione con self-signed certificate Universit dell'Insubria - Relazione di Sicurezza version 2 config setup interfaces=%defaultroute conn A-B left= 192.168.0.1 leftcert= A.cert right= 192.168.0.2 rightcert= B.cert type=tunnel auto=start version 2 config setup interfaces=%defaultroute conn B-A left= 192.168.0.2 leftcert= B.cert right= 192.168.0.1 rightcert= A.cert type=tunnel auto=start
Connessione con Certification Authority version 2 config setup interfaces=eth1 conn A-roadwarriors left= 87.9.19.54 leftsubnet= 192.168.0.0/24 leftcert= A.cert right=%any rightrsasigkey=%cert rightid=&quot;C=CA, S=Europe,  O=Microsoft, CN=*&quot; auto=add version 2 config setup interfaces=%defaultroute conn B-A left= %defaultroute leftcert= B.cert right= 87.9.19.54 rightsubnet= 192.168.0.0/24 rightcert= A.cert type=tunnel auto=start
Conclusioni Universit dell'Insubria - Relazione di Sicurezza Sicurezza :  IPsec porta un indubbio vantaggio in termini di sicurezza, trasferendo al network layer i problemi di autenticazione e confidenzialit prima risolti con soluzioni tipicamente ad application layer (ad es. ssh, kerberos, ssl). Complessit :  l'infrastruttura IPsec 竪 quanto meno complessa sia in termini di protocollo sia per quanto riguarda l'utilizzo di applicativi (come Openswan) o di dispositivi (come i Router ad es: Cisco) che la implementano. Uso limitato :  pur essendo stato definito ormai alcuni anni fa IPsec 竪 utilizzato al momento in casi abbastanza limitati.
Bibliografia Universit dell'Insubria - Relazione di Sicurezza Saadat Malik, Network Security Principles and Practices, Cisco Press, Chap. 13, February 2002. S. Kent, R. Atkinson, Security Architecture for the Internet Protocol, RFC 2401, November 1998 S. Kent, R. Atkinson, IP Encapsulating Security Payload (ESP), RFC 2406, November 1998 S. Kent, R. Atkinson, IP Authentication Header, RFC 2402, November 1998 D. Piper, The Internet IP Security Domain of Interpretation for ISAKMP, RFC 2407, November 1998. Wouters P. & Bantolf K. (2006) Building and integrating Virtual Private Networks with Openswan, Packt Publishing Ltd

More Related Content

What's hot (20)

Garbage collection
Garbage collectionGarbage collection
Garbage collection
Mudit Gupta
Introduction to data structure and algorithms
Introduction to data structure and algorithmsIntroduction to data structure and algorithms
Introduction to data structure and algorithms
Research Scholar in Manonmaniam Sundaranar University
Case study on Intel core i3 processor.
Case study on Intel core i3 processor. Case study on Intel core i3 processor.
Case study on Intel core i3 processor.
Mauryasuraj98
File handling in c++
File handling in c++File handling in c++
File handling in c++
baabtra.com - No. 1 supplier of quality freshers
Unit-4 swapping.pptx
Unit-4 swapping.pptxUnit-4 swapping.pptx
Unit-4 swapping.pptx
ItechAnand1
Html
HtmlHtml
Html
sofnamafaz
Applet life cycle
Applet life cycleApplet life cycle
Applet life cycle
myrajendra
Dynamic Polymorphism in C++
Dynamic Polymorphism in C++Dynamic Polymorphism in C++
Dynamic Polymorphism in C++
Dharmisha Sharma
File Pointers
File PointersFile Pointers
File Pointers
Kulachi Hansraj Model School Ashok Vihar
Unit 2 linked list
Unit 2   linked listUnit 2   linked list
Unit 2 linked list
DrkhanchanaR
Introduction to OOP in Python
Introduction to OOP in PythonIntroduction to OOP in Python
Introduction to OOP in Python
Aleksander Fabijan
Exception handling and function in python
Exception handling and function in pythonException handling and function in python
Exception handling and function in python
TMARAGATHAM
Wrapper classes
Wrapper classes Wrapper classes
Wrapper classes
Kongu Engineering College, Perundurai, Erode
Java I/o streams
Java I/o streamsJava I/o streams
Java I/o streams
Hamid Ghorbani
Data Structures and Algorithms
Data Structures and AlgorithmsData Structures and Algorithms
Data Structures and Algorithms
Pierre Vigneras
Data Structures - Searching & sorting
Data Structures - Searching & sortingData Structures - Searching & sorting
Data Structures - Searching & sorting
Kaushal Shah
Templates in C++
Templates in C++Templates in C++
Templates in C++
Tech_MX
Modes Of Transfer in Input/Output Organization
Modes Of Transfer in Input/Output OrganizationModes Of Transfer in Input/Output Organization
Modes Of Transfer in Input/Output Organization
MOHIT AGARWAL
Pointers in c++
Pointers in c++Pointers in c++
Pointers in c++
Vineeta Garg
PIPELINE INTERRUPTS
PIPELINE INTERRUPTSPIPELINE INTERRUPTS
PIPELINE INTERRUPTS
M R Karthik

Similar to IPsec (20)

Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Antonio Musarra
Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...
Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...
Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...
Aruba S.p.A.
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSLCorso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Massimiliano Masi
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Simone Onofri
Wep crack
Wep crackWep crack
Wep crack
aspy
Public Key Infrastructure
Public Key InfrastructurePublic Key Infrastructure
Public Key Infrastructure
Francesco Meschia
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Network
carmine ricca
Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza ...
Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza  ...Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza  ...
Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza ...
Massimiliano Cristarella
Web Services Security
Web Services SecurityWeb Services Security
Web Services Security
peppespe
Cyber Attack: stories from the field - Threat analysis: useful methodologies ...
Cyber Attack: stories from the field - Threat analysis: useful methodologies ...Cyber Attack: stories from the field - Threat analysis: useful methodologies ...
Cyber Attack: stories from the field - Threat analysis: useful methodologies ...
Francesco Faenzi
Concetti base di networking
Concetti base di networkingConcetti base di networking
Concetti base di networking
Domenico Cianferri
Workshop sulla Sicurezza Informatica
Workshop sulla Sicurezza InformaticaWorkshop sulla Sicurezza Informatica
Workshop sulla Sicurezza Informatica
Nextre Engineering
Medialogic: NoMachine software compliance NIS2
Medialogic: NoMachine software compliance NIS2Medialogic: NoMachine software compliance NIS2
Medialogic: NoMachine software compliance NIS2
Adriano Rando
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastruttureL'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
MarcoMarinello2
Network+ Guide to Networks 7th Edition West Test Bank download pdf
Network+ Guide to Networks 7th Edition West Test Bank download pdfNetwork+ Guide to Networks 7th Edition West Test Bank download pdf
Network+ Guide to Networks 7th Edition West Test Bank download pdf
sofealames87
OAuthorize yourself 2.0
OAuthorize yourself 2.0OAuthorize yourself 2.0
OAuthorize yourself 2.0
DevDay
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Antonio Musarra
Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...
Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...
Con Aruba, a lezione di cloud #lezione 7 - parte 1: 'Tunnel VPN: una connessi...
Aruba S.p.A.
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSLCorso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Massimiliano Masi
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Simone Onofri
Wep crack
Wep crackWep crack
Wep crack
aspy
Public Key Infrastructure
Public Key InfrastructurePublic Key Infrastructure
Public Key Infrastructure
Francesco Meschia
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Network
carmine ricca
Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza ...
Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza  ...Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza  ...
Porte aperte nelle app android scoperta diagnosi e valutazione di sicurezza ...
Massimiliano Cristarella
Web Services Security
Web Services SecurityWeb Services Security
Web Services Security
peppespe
Cyber Attack: stories from the field - Threat analysis: useful methodologies ...
Cyber Attack: stories from the field - Threat analysis: useful methodologies ...Cyber Attack: stories from the field - Threat analysis: useful methodologies ...
Cyber Attack: stories from the field - Threat analysis: useful methodologies ...
Francesco Faenzi
Concetti base di networking
Concetti base di networkingConcetti base di networking
Concetti base di networking
Domenico Cianferri
Workshop sulla Sicurezza Informatica
Workshop sulla Sicurezza InformaticaWorkshop sulla Sicurezza Informatica
Workshop sulla Sicurezza Informatica
Nextre Engineering
Medialogic: NoMachine software compliance NIS2
Medialogic: NoMachine software compliance NIS2Medialogic: NoMachine software compliance NIS2
Medialogic: NoMachine software compliance NIS2
Adriano Rando
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastruttureL'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
L'impatto di ACME e Internal PKI nella sicurezza di medio-grandi infrastrutture
MarcoMarinello2
Network+ Guide to Networks 7th Edition West Test Bank download pdf
Network+ Guide to Networks 7th Edition West Test Bank download pdfNetwork+ Guide to Networks 7th Edition West Test Bank download pdf
Network+ Guide to Networks 7th Edition West Test Bank download pdf
sofealames87
OAuthorize yourself 2.0
OAuthorize yourself 2.0OAuthorize yourself 2.0
OAuthorize yourself 2.0
DevDay

IPsec

  • 1. IPsec Cos'竪 ? IPsec [2] (IP Security) 竪 una suite di protocolli utilizzati per creare reti private virtuali [1] (VPN). Universit dell'Insubria - Relazione di Sicurezza Definizione IETF (Internet Engineering Task Force): Protocollo di sicurezza a livello rete sviluppato per fornire servizi di sicurezza crittografica che fornisce un supporto flessibile per autenticazione, integrit e confidenzialit. IPsec sta diventando lo standard di fatto per la creazione di VPN.
  • 2. Tipi di VPN LAN-to-LAN VPN: La connessione di due reti private per formare una sola rete privata virtuale. Client-to-LAN VPN: Lestensione di una rete privata per consentire laccesso remoto agli utenti che diventano parte della rete privata. Universit dell'Insubria - Relazione di Sicurezza
  • 3. LAN-to-LAN VPN Universit dell'Insubria - Relazione di Sicurezza
  • 4. Client-to-LAN VPN Universit dell'Insubria - Relazione di Sicurezza
  • 5. Protocolli di IPsec Universit dell'Insubria - Relazione di Sicurezza IKE: Internet Key Exchange[2] Fornisce un framework per la negoziazione dei parametri di sicurezza e lo scambio delle chiavi. ESP: Encapsulating Security Payload[4] fornisce un framework per la sicurezza dei dati e opzionalmente l'autenticazione. AH: Autentication Header[3] fornisce un framework per lautenticazione e la sicurezza dei dati.
  • 6. IKE Universit dell'Insubria - Relazione di Sicurezza una combinazione di 3 diversi protocolli: SKEME: Fornisce un meccanismo per lutilizzo di crittografia a chiave pubblica per scopi di autenticazione. Oakley: Protocollo per lo scambio delle chiavi basato su Diffie-Hellman. ISAKMP[2]: Definisce larchitettura di scambio di messaggi, inclusi i formati dei pacchetti e le varie transizioni tra nodi IPsec.
  • 7. ISAKMP Universit dell'Insubria - Relazione di Sicurezza un protocollo che definisce: Le procedure necessarie per attivare, negoziare, modificare e cancellare le Security Association[1] (SA). I formati dei pacchetti per lo scambio dei dati di generazione e autenticazione delle chiavi.
  • 8. Procedure Universit dell'Insubria - Relazione di Sicurezza Un tunnel IPsec viene costruito attraverso le seguenti fasi: Un nodo IPsec inizializza il collegamento con il nodo remoto o con la rete remota. I due nodi creano una Security Association (SA), ovvero un canale sicuro da utilizzare per i messaggi. I due nodi utilizzano la SA appena creata per negoziare le Security Association (SA) per altri protocolli. I dati iniziano a passare attraverso il tunnel criptato utilizzando le tecniche di incapsulamento AH o ESP.
  • 9. Formati Universit dell'Insubria - Relazione di Sicurezza Lintestazione di un messaggio ISAKMP ha la seguente struttura: Un messaggio ISAKMP 竪 costituito da unintestazione seguita da uno o pi湛 payload. Tutto ci嘆 viene trasportato con il protocollo UDP.
  • 10. Tipi di negoziazione IKE Universit dell'Insubria - Relazione di Sicurezza IKE pu嘆 realizzare diversi tipi di negoziazione:
  • 11. Main Mode Universit dell'Insubria - Relazione di Sicurezza La modalit Main Mode[1] avviene tramite lo scambio di 6 messaggi tra i due nodi IPsec.
  • 12. Messaggio 1 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza SA Payload: Transform Payload: Proposal Payload:
  • 13. Messaggio 2 (responder -> initiator) Universit dell'Insubria - Relazione di Sicurezza SA Payload: identico al precedente. Proposal Payload: Contiene le informazioni che il Responder ha deciso di accettare. Transform Payload: Contiene le informazioni che il Responder ha deciso di accettare.
  • 14. Messaggio 3 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Key Exchange Payload : Nonce Payload: Contiene il valore pubblico di Diffie-Hellman:
  • 15. Messaggio 4 (responder -> initiator) Universit dell'Insubria - Relazione di Sicurezza KE Payload: Contiene il valore pubblico di Diffie-Hellman: Nonce Payload: Contiene il nonce del responder N r
  • 16. Calcolo delle chiavi Universit dell'Insubria - Relazione di Sicurezza A questo punto entrambi i nodi sono in grado di calcolare il segreto condiviso: initiator: responder: A partire dal segreto condiviso S initiator e responder calcolano 3 chiavi: SKEYID: SKEYID_d: SKEYID_a: SKEYID_e:
  • 17. Messaggio 5 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Identification Payload : Hash Payload : Contiene un valore di hash calcolato nel seguente modo:
  • 18. Messaggio 6 (responder -> initiator) Universit dell'Insubria - Relazione di Sicurezza Identification Payload: Contiene ID-R. Hash Payload: Contiene un valore di hash calcolato nel seguente modo:
  • 19. Autenticazione con PSK Universit dell'Insubria - Relazione di Sicurezza Se i due valori di hash calcolati da Initiator e Responder sono gli stessi allora la sessione viene autenticata e quindi 竪 stata creata la SA. Initiator: Responder: Decifra il messaggio 6 utilizzando SKEYID_e Trova la PK-R (Preshared-Key del responder) utilizzando ID-R Calcola HASH_R Se HASH_R ricevuto = HASH_R calcolato lautenticazione ha successo Decifra il messaggio 5 utilizzando SKEYID_e Trova la PK-I (Preshared-Key del initiator) utilizzando ID-I Calcola HASH_I Se HASH_I ricevuto = HASH_I calcolato lautenticazione ha successo
  • 20. Aggressive Mode Universit dell'Insubria - Relazione di Sicurezza Nellaggressive mode[1] si ottiene lo stesso risultato che con il main mode, ma in soli 3 scambi di messaggi.
  • 21. Quick Mode Universit dell'Insubria - Relazione di Sicurezza Come la modalit Main mode 竪 usata per concordare i parametri dellISAKMP SA, la modalit quick mode[1] 竪 usata per concordare i parametri della IPsec SA. Nel nostro esempio, supponiamo che liniziatore ha deciso di utilizzare una propriet conosciuta come Perfect Forward Secrecy (PFS).
  • 22. Messaggio 1 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Hash Payload : Valore di hash calcolato a partire dal segreto S e dal Nonce N i . SA Payload : Identico a quello del main mode. Proposal Payload : Contiene il tipo di incapsulamento e lSPI. Transform Payload : Contiene la modalit tunnel o transport, lalgoritmo di crittografia, lalgoritmo di hash e il metodo di autenticazione. KE Payload : Contiene il valore Nonce Payload : Contiene il nonce dellinitiator N i ID-S Payload : ID-source in genere 竪 lindirizzo IP dellinitiator. ID-D Payload : ID-destination in genere 竪 lindirizzo IP del responder.
  • 23. Messaggio 2 (responder -> initiator) Hash Payload : Valore di hash calcolato a partire dal segreto S e dal Nonce N r . SA Payload : Identico a quello del main mode. Proposal Payload : Contiene il tipo di incapsulamento e lSPI nella direzione opposta. Transform Payload : Contiene la modalit tunnell o transport, lalgoritmo di crittografia, lalgoritmo di hash e il metodo di autenticazione scelti dal responder. KE Payload : Contiene il valore Nonce Payload : Contiene il nonce dellresponder N r ID-S Payload : ID-source in genere 竪 lindirizzo IP dellinitiator. ID-D Payload : ID-destination in genere 竪 lindirizzo IP del responder.
  • 24. Calcolo delle chiavi Universit dell'Insubria - Relazione di Sicurezza A questo punto entrambi i nodi sono in grado di calcolare il segreto condiviso: initiator: responder: A partire dal segreto condiviso S initiator e responder calcolano la chiave per la IPsec SA: Initiator: Responder:
  • 25. Messaggio 3 (initiator -> responder) Universit dell'Insubria - Relazione di Sicurezza Hash Payload : Lultimo messaggio viene inviato per verificare la Liveness del responder. Esso contiene semplicemente un Hash calcolato nel seguente modo: Questo messaggio serve al responder per sapere se il messaggio 2 竪 arrivato allinitiator. Dopo che il responder ha ricevuto il messaggio 3 la negoziazione della SA 竪 terminata e la SA pu嘆 essere utilizzata per lo scambio dei dati sicuri.
  • 26. Autenticazione con Digital Signature Universit dell'Insubria - Relazione di Sicurezza Lunica differenza tra lautenticazione con Preshared Key e Digital Signature 竪 nei passaggi 5 e 6 del main mode. La prima differenza importante riguarda il modo in cui le SKEYs vengono generate:
  • 27. Messaggio 5 (Digital Signature) Universit dell'Insubria - Relazione di Sicurezza ID Payload : Contiene un identificativo per linitiator come lindirizzo IP o il nome dellhost. Signature Payload : Contiene la signature dellinitiator calcolata nel seguente modo:
  • 28. Messaggio 6 (Digital Signature) Universit dell'Insubria - Relazione di Sicurezza ID Payload : Contiene un identificativo per il responder come lindirizzo IP o il nome dellhost. Signature Payload : Contiene la signature del responder calcolata nel seguente modo:
  • 29. Autenticazione con Digital Signature Universit dell'Insubria - Relazione di Sicurezza Se i due valori di hash calcolati da Initiator e Responder sono gli stessi allora la sessione viene autenticata e quindi 竪 stata creata la SA. Initiator: Responder: Decifra il messaggio 6 utilizzando SKEYID_e Decifra HASH_R usando PK_R Calcola HASH_R Se HASH_R ricevuto = HASH_R calcolato lautenticazione ha successo Decifra il messaggio 5 utilizzando SKEYID_e Decifra HASH_I usando PK_I Calcola HASH_I Se HASH_I ricevuto = HASH_I calcolato lautenticazione ha successo
  • 30. Sicurezza IKE (1) Clogging Attack: Lattacco clogging [1] 竪 un attacco di tipo DoS in cui lattaccante crea un indirizzo sorgente di un utente legittimo e invia una chiave pubblica Diffie-Hellman allaltro utente forzandolo ad eseguire un esponenziale modulare per calcolare la chiave segreta. Una serie ripetuta di messaggi di questo tipo pu嘆 mettere in ginocchio il sistema della vittima. Il cookie evita questo attacco, ma deve seguire le specifiche ISAKMP: Deve dipendere dalle specifiche parti. Questo impedisce a un estraneo di derivare un cookie da un indirizzo IP e una porta UDP. Non deve essere possibile per nessuno, tranne per lentit emettitrice, generare dei cookie che vengano accettati da tale entit. I metodi di generazione e verifica di un cookie devono essere veloci per evitare attacchi che mirano a consumare le risorse di elaborazione. Un attaccante non potr pi湛 eseguire un attacco di tipo clogging perch辿 quando invier allaltro utente una chiave pubblica di Diffie-Hellman, laltro utente prima verificher il cookie e poi inizier la computazione, ma essendo il cookie un numero pseudo-casuale lattaccante non 竪 in grado di crearne uno falso da solo.
  • 31. Sicurezza IKE (2) Universit dell'Insubria - Relazione di Sicurezza Replay Attack: In un attacco a replay [2], un estraneo ottiene copia di un pacchetto e successivamente lo ritrasmette alla destinazione prevista. Questo pu嘆 causare problemi al funzionamento del servizio. Il Nonce ha lo scopo di sventare questo genere di attacchi.
  • 32. Sicurezza IKE (3) Man-in-the-middle Attack: L'algoritmo Diffie-Hellman 竪 soggetto all'attacco man in the middle [2]: Nello scambio di chiavi con IKE questo attacco non pu嘆 funzionare perch辿 i 2 nodi devono autenticarsi: Nel caso di autenticazione con Preshared Key il nodo E dovrebbe conoscere la Preshared Key. Nel caso di autenticazione con Digital Signature il nodo E dovrebbe conoscere la chiave segreta per la Firma di A e di B.
  • 33. Openswan Universit dell'Insubria - Relazione di Sicurezza OpenSwan[6] 竪 limplementazione IPsec pi湛 diffusa sui Linux recenti. Deriva da FreeSwan, progetto non pi湛 mantenuto. Il progetto 竪 composto da 2 componenti: KLIPS : Il modulo del kernel per il supporto IPsec. PLUTO : Demone che implementa il protocollo IKE.
  • 34. File di Configurazione di Openswan Universit dell'Insubria - Relazione di Sicurezza Openswan utilizza principalmente 2 file di configurazione per configurare una connessione IPsec: /etc/ipsec.secrets : Contiene le chiavi RSA pubbliche e private oppure la PSK. /etc/ipsec.conf : Contiene i setting, le opzioni e le connessioni per openswan.
  • 35. Il file /etc/ipsec.conf Universit dell'Insubria - Relazione di Sicurezza Il file 竪 suddiviso in 3 sezioni: config setup : Parametri e opzioni globali. conn %default : Opzionale, 竪 una sezione di default che contiene parametri globali che vengono ereditati dalle conn successive. conn nome-connesione : Definizione di una particolare connessione.
  • 36. Il file /etc/ipsec.secrets Universit dell'Insubria - Relazione di Sicurezza Questo file contiene le chiavi RSA pubbliche e private oppure la PSK dellhost. Il file pu嘆 essere generato automaticamente lanciando il comando: >ipsec newhostkey output /etc/ipsec.secrets
  • 37. host-to-host tunnel ipsec.conf version 2 config setup interfaces=%defaultroute conn %default authby=rsasig conn A-B left= 192.168.0.1 right= 192.168.0.2 type=tunnel leftrsasigkey= 0ArOk... rightrsasigkey= 0sAQP... auto=start version 2 config setup interfaces=%defaultroute conn %default authby=rsasig conn B-A left= 192.168.0.2 right= 192.168.0.1 type=tunnel leftrsasigkey= 0sAQP... rightrsasigkey= 0ArOk... auto=start
  • 38. host-to-host tunnel ipsec.secrets Universit dell'Insubria - Relazione di Sicurezza 192.168.0.1 (A) /etc/ipsec.secret : RSA { # RSA 2192 bits A # Sat Dec 20 15:52:44 2008 #pubkey= 0ArOk... Modulus: 0xa... PublicExponent: 0x03 PrivateExponent: 0x1b... } leftrsasigkey= 0ArOk... rightrsasigkey= 0sAQP... /etc/ipsec.conf 192.168.0.2 (B) /etc/ipsec.secret : RSA { # RSA 2192 bits B # Sun Dec 21 15:00:44 2008 #pubkey= 0sAQP... Modulus: 0xc... PublicExponent: 0x04 PrivateExponent: 0x5b... } leftrsasigkey= 0sAQP... rightrsasigkey= 0ArOk... /etc/ipsec.conf
  • 39. Avvio di Openswan Per avviare openswan lanciamo il comando: Se tutto funziona correttamente apparira un log simile al seguente: Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #365: initiating Main Mode Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #365: transition from state STATE_MAIN_I1 to state STATE_MAIN_I2 Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #365: I did not send a certificate because I do not have one. Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #365: transition from state STATE_MAIN_I2 to state STATE_MAIN_I3 Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #365: Peer ID is ID_IPV4_ADDR: ' 192.168.0.1 ' Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #365: transition from state STATE_MAIN_I3 to state STATE_MAIN_I4 Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #365: ISAKMP SA established Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #366: initiating Quick Mode RSASIG+ENCRYPT+TUNNEL+PFS+UP {using isakmp#365} Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #366: transition from state STATE_QUICK_I1 to state STATE_QUICK_I2 Sep 15 20:05 A pluto[20362]: &quot; A-B &quot; #366: sent QI2, IPsec SA established {ESP=>0xe5f72aaa <0xc51033f4} > /etc/init.d/ipsec {start | stop | restart }
  • 40. host-to-host tunnel (PSK) Universit dell'Insubria - Relazione di Sicurezza A volte c竪 bisogno di connettere Openswan a un dispositivo che non pu嘆 gestire chiavi RSA. Immaginiamo che A sia questo host. In questo caso dobbiamo modificare il file /etc/ipsec.secrets nel seguente modo: 192.168.0.1 192.168.0.2 : PSK segreto Inoltre dobbiamo modificare la connessione nel file /etc/ipsec.conf nel seguente modo: conn A-B authby=secret left=192.168.0.1 right=192.168.0.2 type=tunnel auto=start
  • 41. LAN-to-LAN tunnel version 2 config setup interfaces=eth1 conn %default authby=rsasig conn LAN_A-LAN_B left= 87.9.19.54 leftsubnet= 192.168.0.0/24 right= 87.9.19.58 rightsubnet= 192.168.1.0/24 leftrsasigkey= 0sAQ43A1.... rightrsasigkey= 0sAQfP63... type=tunnel auto=start version 2 config setup interfaces=eth1 conn %default authby=rsasig conn LAN_B-LAN_A left= 87.9.19.58 leftsubnet= 192.168.1.0/24 right= 87.9.15.54 rightsubnet= 192.168.0.0/24 leftrsasigkey= 0sAQfP63... rightrsasigkey= 0sAQ43A1.... type=tunnel auto=start Universit dell'Insubria - Relazione di Sicurezza
  • 42. Roadwarriors tunnel Universit dell'Insubria - Relazione di Sicurezza version 2 config setup interfaces=eth1 conn %default authby=rsasig conn Roadwarriors left= 87.9.19.54 leftsubnet= 192.168.0.0/24 right= %any rightid= @notebook_B leftrsasigkey= 0sAQ43A1.... rightrsasigkey= 0sAQfP63... type=tunnel auto=add version 2 config setup interfaces=%defaultroute conn %default authby=rsasig conn Roadwarriors left= %defaultroute leftid= @notebook_B right= 87.9.19.54 rightsubnet= 192.168.0.0/24 leftrsasigkey= 0sAQfP63... rightrsasigkey= 0sAQ43A1.... type=tunnel auto=start
  • 43. Roadwarriors tunnel (PSK) Universit dell'Insubria - Relazione di Sicurezza In questo caso dobbiamo modificare il file /etc/ipsec.secrets nel seguente modo su A: 192.168.0.1 %any : PSK password Inoltre dobbiamo modificare il file /etc/ipsec.secrets nel seguente modo su B: %defaultroute 87.9.19.54 : PSK password
  • 44. Altre opzioni di Openswan Universit dell'Insubria - Relazione di Sicurezza L'opzione IKE : 竪 usata per impostare i parametri di negoziazione della ISAKMP SA come ad esempio: L'opzione ESP : 竪 usata per impostare i parametri di negoziazione della IPsec SA come ad esempio: ike=3des-sha1-96,aes-md5-96 esp=aes256-sha1,aes128-sha1,3des-sha1 L'opzione aggrmode : imposta l'aggressive mode nella negoziazione della ISAKMP SA: aggrmode=yes
  • 45. Certificati x.509 e openswan Universit dell'Insubria - Relazione di Sicurezza Finora abbiamo visto come creare una connessione IPsec per uno specifico utente, ma questo 竪 sicuramente poco scalabile. In questa parte vogliamo creare un server VPN che sia in grado di distribuire differenti credenziali VPN ad ogni singolo utente. Il modo pi湛 usato per fare questo 竪 attraverso i certificati X.509. x.509 竪 uno standard definito dalla ITU-T (International Telecommunication Union - Telecommunication Standardization Sector). I certificati vengono rilasciati da una Autorit di Certificazione (CA) la cui firma apposta sul certificato garantisce il legame tra chiave ed entit.
  • 46. Struttura x.509 Universit dell'Insubria - Relazione di Sicurezza La struttura delle CA 竪 di tipo gerarchico: RDNs: Michele Rossi DN(Distinguished Name): C=CA / State=Italy / Locality=Milan / Organization=Microsoft / OU=Sales Staff / UserID=Michele Rossi
  • 47. Struttura di un certificato x.509 Universit dell'Insubria - Relazione di Sicurezza Certificate: Version: 3 (0x2) Serial Number: e4...48 Sign Algorithm:sha1WithRSAEnc Issuer: C=CA, ST=Italy, L=Milan, O=Microsoft, OU=Support Staff, CN=Microsoft Root Validity Not Before: Feb 19 Not After : Mar 21 Subject: C=CA, ST=Italy, L=Milan, O=Microsoft, OU=Sales Staff, CN=Michele Rossi Subject Public Key Info: Public Key Algorithm:RSA RSA Public Key: Modulus:00...db Exponent: 65...77 X509v3 extensions: ... Signature Algorithm:sha1WithRSA 2b...5e
  • 48. x.509 e Openswan Universit dell'Insubria - Relazione di Sicurezza Quando la connessione 竪 configurata per lutilizzo di certificati x.509, invece di caricare la chiave privata RSA da /etc/ipsec.secrets, la chiave privata viene caricata dal un file .key e la chiave pubblica viene caricata da un file .cert. Questi file vengono caricati automaticamente se vengono inseriti nelle directory corrette: /etc/ipsec.d/certs : contiene i certificati con le chiavi pubbliche. /etc/ipsec.d/cacerts : contiene i CA certificates. /etc/ipsec.d/private : contiene le chiavi private.
  • 49. Connessione con self-signed certificate Universit dell'Insubria - Relazione di Sicurezza version 2 config setup interfaces=%defaultroute conn A-B left= 192.168.0.1 leftcert= A.cert right= 192.168.0.2 rightcert= B.cert type=tunnel auto=start version 2 config setup interfaces=%defaultroute conn B-A left= 192.168.0.2 leftcert= B.cert right= 192.168.0.1 rightcert= A.cert type=tunnel auto=start
  • 50. Connessione con Certification Authority version 2 config setup interfaces=eth1 conn A-roadwarriors left= 87.9.19.54 leftsubnet= 192.168.0.0/24 leftcert= A.cert right=%any rightrsasigkey=%cert rightid=&quot;C=CA, S=Europe, O=Microsoft, CN=*&quot; auto=add version 2 config setup interfaces=%defaultroute conn B-A left= %defaultroute leftcert= B.cert right= 87.9.19.54 rightsubnet= 192.168.0.0/24 rightcert= A.cert type=tunnel auto=start
  • 51. Conclusioni Universit dell'Insubria - Relazione di Sicurezza Sicurezza : IPsec porta un indubbio vantaggio in termini di sicurezza, trasferendo al network layer i problemi di autenticazione e confidenzialit prima risolti con soluzioni tipicamente ad application layer (ad es. ssh, kerberos, ssl). Complessit : l'infrastruttura IPsec 竪 quanto meno complessa sia in termini di protocollo sia per quanto riguarda l'utilizzo di applicativi (come Openswan) o di dispositivi (come i Router ad es: Cisco) che la implementano. Uso limitato : pur essendo stato definito ormai alcuni anni fa IPsec 竪 utilizzato al momento in casi abbastanza limitati.
  • 52. Bibliografia Universit dell'Insubria - Relazione di Sicurezza Saadat Malik, Network Security Principles and Practices, Cisco Press, Chap. 13, February 2002. S. Kent, R. Atkinson, Security Architecture for the Internet Protocol, RFC 2401, November 1998 S. Kent, R. Atkinson, IP Encapsulating Security Payload (ESP), RFC 2406, November 1998 S. Kent, R. Atkinson, IP Authentication Header, RFC 2402, November 1998 D. Piper, The Internet IP Security Domain of Interpretation for ISAKMP, RFC 2407, November 1998. Wouters P. & Bantolf K. (2006) Building and integrating Virtual Private Networks with Openswan, Packt Publishing Ltd