Vpn Virtual Private Network

  • 2,163 views
Uploaded on

vpn ipsec

vpn ipsec

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,163
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
203
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. VPN Virtual Private Network
  • 2. Tematiche affrontate durante lo stage.
    • Tecnologie per realizzare VPN
    • Scelta dei protocolli in funzione dei requisiti di sicurezza
  • 3. Requisiti di sicurezza
    • La scelta dei protocolli è funzione dei requisiti di sicurezza delle applicazioni
    • Devono essere garantiti i seguenti servizi
      • Gestione delle chiavi
        • Creazione chiavi
        • Negoziazioni chiavi
        • Deposito chiavi
      • Riservatezza
        • Confidenzialità
      • Non Ripudio
      • Integrità
      • Autenticazione
      • Autorizzazione
  • 4. VPN e Pila ISO/OSI
    • Una VPN può essere implementata su ogni layer della pila ISO/OSI
    • In base alla scelta del layer è possibile garantire i precedenti requisiti di sicurezza o in parte.
    • Il grado di sicurezza aumenta scendendo nella pila ISO/OSI.
    APPLICATION PRESENTATION SESSION TRANSPORT NETWORK DATALINK PHYSICAL Pila ISO/OSI
  • 5. VPN Application Layer
    • Utilizzo di chiavi
    • Encryption/decryption offre servizi:
      • Non Ripudio
      • Integrità
      • Autenticazione
    • Indipendente dal S.O.
    • Esempi di protocolli:
      • SSH (Secure Shell)v.1/v.2, PGP,GNU PG, Open SSH, S/MIME
  • 6. VPN Application Layer
  • 7. Protocollo PGP e GNUGP
    • PGP (Pretty Good Privacy) e la sua versione open source GPG sono dei famosissimi protocolli progettati in origine da Phil Zimmermann che utilizzano meccanismi di firma a chiave pubblica. In combinazione con client E-mail offrono servizi di sicurezza per cifrare, decifrare, firmare, non-ripudio, compressione, conversione in ASCII (base 64), segmentazione e autenticazione per il corpo dei messaggi di posta elettronica ma non per la sua intestazione.
  • 8. Protocollo SSH
    • SSH (Secure Shell) e' un protocollo per eseguire:
      • comandi remoti,
      • login remoti,
      • FTP,
      • compressione e trasferimento di traffico di tipo TCP/IP e X Window
      • Supporta criteri di crittografia e autenticazione
    • In pratica crea un tunnel di rete crittografato tra due host garantendo l’identità delle due parti.
    • Esistono attualmente tre versioni del protocollo SSH
      • le prime due distinte e incompatibili SSH1, SSH2 e
      • dal primo settembre 2005 si è aggiunto OpenSSH che le supporta entrambe migliorando il protocollo e offrendo in più tutta una serie di tunneling sicuri con un assortimento di metodi di autenticazione.
  • 9. Protocollo S/MIME
    • S/MIME (Secure/Multipurpose Internet Mail Extensions) è un protocollo standardizzato da IETF nella RFC 1521
    • messaggi MIME (Mechanisms for Specifying and Describing the Format of Internet Message Bodies)
    • specifica come devono essere trasferiti i dati multimediali e gli allegati e-mail, poi con l’aggiunta di cifratura e firma elettronica (SECURE) per migliorare la sicurezza per applicazioni VPN generate dai componenti di un sistema di comunicazione.
  • 10. Criticità VPN Application Layer
    • La sicurezza realizzata a livello Application è specifica per ogni applicazione.
    • Deve essere ben progettata e correttamente implementata.
    • I metodi di protezione, i controlli di sicurezza richiedono di essere implementati in ogni nuova applicazione.
    • I controlli a livello Application possono proteggere i dati di livello applicativo ma, non possono proteggere le informazioni di livello più basso.
  • 11. VPN Transport Layer
  • 12. VPN Transport Layer
    • Il layer transport fornisce servizi di collegamento connection-oriented o connectionless per trasportare servizi di livello applicativo tra reti.
    • La sicurezza implementata dal livello trasporto presenta un vantaggio rispetto a quella implementata sul livello Application. Infatti il Transport Layer è un livello più basso nella pila ISO/OSI e quindi non si affida ai miglioramenti di ciascun applicativo.
    • Le applicazioni esistenti ottengono i servizi di sicurezza dal livello trasporto.
  • 13. Protocollo TLS e SSL v.3
    • L’uso più comune per i protocolli di livello trasporto è di rendere sicuro il traffico http nei moderni siti di
    • e-commerce.
    • Il protocollo TLS (Transport Layer Security) standard IETF RFC 2246 offre ad applicazioni basate sul TCP
      • Riservatezza,
      • Integrità
      • Autenticazione ad applicazioni basate sul TCP.
    • Richiede l’implementazione di un server verso un client.
    • È supportato da tutti i maggiori Web Browsers.
    • TLS derivato direttamente dal protocollo SSLv3 sfrutta dei meccanismi application-to-application.
    • Un limite di questi protocolli è la incapacità di proteggere comunicazioni differenti da quelle basate sul TCP, perché presume che il protocollo di livello rete stia assicurando l'affidabilità del trasporto (connection-oriented).
  • 14. VPN Data Link layer
  • 15. VPN Data Link layer
    • Il livello Data Link è responsabile per la trasmissione dei pacchetti sui media fisici.
    • La trasmissione è tra due apparecchiature che sono connesse fisicamente.
    • Esempi di protocolli di livello data link:
      • Ethernet,
      • Token Ring,
      • Frame Relay
      • ATM.
    • Controlli di sicurezza su questo livello sono applicati a tutte le comunicazioni su uno specifico collegamento fisico.
  • 16. VPN Data Link layer
    • La sicurezza a questo livello viene effettuata realizzando delle reti private.
    • Protegge il traffico anche di protocolli diverso dall’IP.
    • Per garantire una maggiore riservatezza viene applicata una protezione crittografica ai due terminali del collegamento
    • Le due entità coinvolte nella comunicazione devono essere connesse fisicamente
    • Garantisce buone prestazioni in termini di velocità .
    • Soluzione non scalabile,
    • Lavora bene solamente su collegamenti dedicati,
    • E’ costosa perché bisogna proteggere separatamente ogni singolo collegamento.
    • Può lasciare spazio ad attacchi man-in-the-middle su stazioni intermedie o routers,
    • E’ utilizzata per macchine bancomat (ATM) dove tutte le macchine sono connesse attraverso collegamenti dedicati verso un ufficio centrale.
  • 17. VPN Network layer
  • 18. VPN Network layer
    • Il livello Network è responsabile per l’indirizzamento dei pacchetti attraverso le reti.
    • L’indirizzamento è il processo che determina il percorso che un pacchetto deve fare per giungere a destinazione.
    • Per indirizzare il pacchetto il livello rete ha bisogno di identificare inequivocabilmente ogni destinazione.
    • Il livello rete quindi definisce un meccanismo di indirizzamento.
    • Il protocollo IP (Internet Protocol) è il protocollo fondamentale di questo livello
  • 19. VPN Network layer
    • La sicurezza implementata a livello IP presenta molti vantaggi.
      • Il sovraccarico per la CPU nella negoziazione delle chiavi decresce notevolmente rispetto allo stesso lavoro fatto ai livelli superiori.
      • La sicurezza implementata a questo livello non richiede modifiche a nessun applicativo
      • I livelli superiori sfruttano l'infrastruttura di scambio delle chiavi già fornita dal livello rete
      • Se la sicurezza è implementata ai livelli più alti, ogni applicativo deve progettare il proprio meccanismo di sicurezza
      • Il grado di protezione dipende solo dal metodo crittografico utilizzato.
      • Protegge tutti i tipi di traffico che passano su questo livello
      • E’ indipendente verso il basso dal tipo di media utilizzato, ed è indipendente verso l’alto dalla applicazione utilizzata
      • meccanismi di sicurezza possono proteggere sia i dati all'interno dei pacchetti (payload) che e le informazioni di IP (header).
    • Svantaggi
      • difficoltà a questo livello nell'occuparsi di problemi che riguardano i livelli superiori come la non-repudiation dei dati .
  • 20. Protocolli di Tunneling
    • Diverse tecnologie di livello rete sono disponibili per abilitare dei protocolli di tunneling attraverso le reti per creare una VPN.
      • L2TP (Layer 2 Tunneling Protocol)
      • GRE (Cisco Generic Routing Encapsulation)
      • IPsec (IP Security) Tunnel mode
  • 21. L2TP
    • Cisco ha utilizzato il protocollo Layer 2 Forwarding (L2F) come suo protocollo di tunneling proprietario.
    • Microsoft aveva un suo protocollo di tunneling proprietario il Point-to-Point Tunneling Protocol (PPTP).
    • Successivamente le due società Cisco e Microsoft si sono accordate per fondere i due protocolli in un unico protocollo. Creando così il protocollo Layer 2 Tunneling Protocol (L2TP) RFC 2661 .
    • L2TP è un modo standard di costruire un accesso VPN che simula reti private che usano un infrastruttura di rete condivisa come Internet.
    • Questo Accesso VPN offre un accesso remoto per gli utenti mobili e i piccoli uffici attraverso dial-up, ISDN, xDSL.
    • L2TP è usato per creare un tunnelling indipendente dal tipo di media utilizzato, multiprotocol Virtual Private Dial Network (VPDN)
    • il protocollo L2TP include:
      • l'autenticazione per l’utente,
      • l'allocazione dinamica di un indirizzo da un pool di indirizzi o usando un server DHCP, più RADIUS e il supporto di AAA.
      • non offre cifratura, quindi, il traffico, se intercettato può essere liberamente esaminato con un analizzatore di protocollo.
      • L2TP non supporta l’integrità del pacchetto.
  • 22. GRE
    • Generic Routing Encapsulation
      • Il protocollo GRE è una tecnologia sviluppata da CISCO (layer 3)
      • Il protocollo GRE si adatta bene per VPN site to site
      • GRE è solo un protocollo di tunnelling
        • Nessuna cifratura del payload
        • Non supporta l’integrità
  • 23. IPsec
    • L2TP e GRE non supportano né cifratura e né integrità dei dati allora vengono utilizzati in combinazione con IPsec
      • L2TP/IPsec
      • GRE/IPsec
    • IPsec è un framework di protocolli progettato dal IETF (standard IETF, RFC http://www.ietf.org/rfc/rfc4301.txt )
    • Servizi Offerti:
      • Riservatezza
      • Integrità
      • Autenticazione
  • 24. Selezione Protocolli
    • Come si sceglie il protocollo di tunnelling più adatto?
  • 25. Limiti di IPsec
    • Supporta solo traffico unicast e non multicast
    • Non adatto per flussi audio video in multicast
    • Aumento della banda utilizzata in comunicazioni punto multipunto
  • 26. Cryptosystem in IPsec
    • Cryptosystem: insieme di differnti metodi per portare a termine i seguenti processi
      • Autenticazione utente/device
        • con MAC e poi con HMAC
        • con la firma digitale
      • Cifratura/Decifratura
        • simmetrica : a chiave segreta DES, 3DES, AES, CAMELLIA.
        • asimmetrica: a chiave pubblica : RSA
      • Integrità del messaggio con Hashing
        • SHA
        • MD5
        • AES-XCBC
      • Gestione chiavi
        • con operazioni manuali
        • con lo scambio delle chiavi segrete metodo Diffie-Hellmann
        • con lo scambio di chiavi pubbliche tramite una Certifica Authority
  • 27. Tipi di cifratura
    • L a cifratura è quel processo che permette la trasformazione dei dati in chiaro mediante uno scrambling digitale in testo cifrato (cypertext)
    • Il processo si avvale di chiave e algoritmo di cifratura. In base al tipo di chiave si distingue
      • Cifratura simmetrica
      • Cifratura Asimmetrica
  • 28. Cifratura simmetrica
    • In questo tipo di cifratura i due utenti origine e destinazione sono entrambi in possesso della stessa chiave di cifratura che serve sia a cifrare che a decifrare
    • La cifratura simmetrica si usa per grandi volumi di dati.
    • Durante la fase di scambio dei dati, le chiavi possono cambiare molte volte.
  • 29. Tipi di cifratura simmetrica
    • Cifratura Stream
      • Algoritmo inizializzato con una chiave genera la chiave di cifratura “key stream”
      • Cifratura un bit alla volta.
    • Cifratura a blocchi
      • Dati suddivisi in blocchi
      • Operazioni crittografiche chiamate round
      • Utilizzo di n chiavi crittografiche
        • ECB(Electronic Code Book) cifratura indipendente dei blocchi
        • CBC(Cipher Block Chaining) i blocchi vengono sincronizzati dall’algoritmo. Il primo blocco ha un IV (Initial value). Non è necessario che gli IV siano segreti, ma devono essere impredicibili
        • CFB (Chipher FeedBack) utilizza un IV un blocco keystream in XOR con i dati in chiaro
        • OFB (Output FeedBack)
        • CTR (Counter)
    • IPsec utilizza algoritmi CBC
  • 30. Crittografia a rete di Feistel
    • E’ un tipo di crittografia a blocchi e prende il nome dal crittologo dell’IBM Horst Feistel
    • Cifratura e decifratura sono operazioni simili
    • I circuiti per la cifratura e la decifratura spesso sono gli stessi.
    • La maggior parte degli algoritmi di crittografia utilizzano la struttura a rete di Feistel
      • DES
      • 3DES
      • AES
      • CAMELIA
    • Tutti questi algoritmi vengono utilizzati da IPsec in modalità CBC.
  • 31. DES
    • DES (Digital Encryption Standard) uno degli algoritmi di cifratura simmetrica più usato fino a qualche anno fa.
    • Il DES opera su blocchi di dati a 64 bit
    • Usa chiavi da 64 bit
      • Dai 64 bit vengono scelti casualmente 56 bit
      • Gli 8 bit rimanenti sono bit di parità . Ognuno assegnato ai 7 blocchi di otto bit (8*7=56)
      • Chiave a 56 bit
      • 2^56 tentavi per trovare la chiave
  • 32. 3DES
    • Il 3Des nasce per rendere più sicuro il DES
    • Come il DES suddivide i dati in blocchi da 64 bit di cui 56 scelti casualmente e i rimanenti 8 bit sono di parità
    • Per tre volte di seguito viene eseguito l’operazione di cifratura con due o tre chiavi differenti a 56 bit (EDE)
    • Max lunghezza di chiave 56*3=168 bit
    • Svantaggio: triplicazione dei tempi di elaborazione
  • 33. AES
    • AES (Advanced Encryption Standard) è un algoritmo a rete di Feistel.
    • Caratteristiche tecniche:
      • Cifratura simmetrica
      • I dati suddivisi in blocchi da di 128 bit
      • Chiavi da 128, 192, 256 bit
      • Utilizzo basso della memoria
      • Elevata efficienza computazionale
      • Il gruppo di sviluppo IETF ha adottato AES come standard per IPsec
  • 34. CAMELIA
    • Algoritmo di cifratura simmetrica con struttura rete di Feistel
    • Sviluppato nel 2000 dal NTT (Nippon Telegraph and Telephone Corporation)
    • Implementabile via software e Hardware
    • Caratteristiche tecniche:
      • Dati suddivisi in blocchi di 128 bit
      • Lunghezza delle chiavi 128, 192 e 256 bit
  • 35. Cifratura Asimmetrica
    • Generazione delle chiavi pubbliche/private
    • Numeri casuali dell’ordine di 200-300 cifre
    • Garantisce un criterio di unicità della coppia di chiavi
    • Non vengono utilizzati per garantire la riservatezza dei dati
    • Utilizzati tipicamente in applicazioni che richiedono autenticazione, firme digitali e gestioni delle chiavi.
    Kpu a /Kpr a Kpu b /Kpr b Canale Insicuro 1. Kpu b 2. Msg cifrato con Kpu b 3. Msg decifrato con Kpr b Host A Host B
  • 36. Gestione delle chiave
    • Out of band
      • Manuale
      • Su un canale sicuro
        • Svantaggi
          • Affetto da errore umano
          • Costosi se si utilizzano canali sicuri
          • Non adatto per sistemi dinamici con un numero elevato di host
      • Diffie Hellman
  • 37. Algoritmo di scambio Diffie-Hellman Host A Host A Host B Generazione num casuale p XA segreto Generazione num casuale q XB segreto p q p,q, g YA=g^XA mod q p,q, g YA=g^XB mod p YA YB ZZ=YB^XA mod p ZZ=YB^XB mod p
  • 38. Diffie-Hellman
    • Obiettivo: generare una chiave condivisa segreta con scambio su canale non sicuro.
      • Gli host A e B generano un numero random primo ciascuno, rispettivamente p e q da 200 a 300 cifre
      • p e q vengono condivise quindi scambiate
      • Con questi due numeri i due host generano un numero g
      • I due host generano un altro numero random rispettivamente XA e XB
      • I due host utilizzando rispettivamente le triplette (XA, g, q) e (XB, g, p) generano un numero rispettivamente YA e YB.
      • Le due chiavi YA e YB vengono scambiate tra i due host
      • I due host generano la medesima chiave ZZ=YB^XA mod p p=YA^XB mod q
  • 39. Limite dell’algoritmo Diffie-Helman
    • I 2 Host non hanno un metodo per determinare l'un l'altro l'identità.
    • Lo scambio è vulnerabile ad un attacco man-in-the-middle.
    • L’algoritmo Diffie-Hellman provvede a fornire la riservatezza ma non provvede a fornire l'autenticazione.
    • L'autenticazione viene realizzata dall'uso di firme digitali nello scambio dei messaggi Diffie-Hellman.
  • 40. CA Certificate Authority
    • Quando vengono scambiate le chiavi pubbliche come fanno gli utenti ad avere la certezza che la chiave pubblica ricevuta sia autentica? Cioè, che appartenga veramente all’entità con cui si vuole comunicare?
    • È infatti possibile per un pirata informatico impersonare un utente legittimo (attacco man-in-the-middle) ed inviare una falsa chiave pubblica, così da decifrare i messaggi dell’altro utente che cifra con tale chiave.
    • È importante essere certi dell’identità del soggetto possessore della chiave pubblica.
  • 41. CA Certificate Authority
    • Per risolvere questo problema è necessaria la presenza di parte terza agli utenti gerarchicamente superiore.
    • Questa terza parte garantisce sulla corrispondenza tra un utente e la sua coppia di chiavi asimmetriche PKI (Public Key Infrastructure)
    • Questa particolare entità viene riconosciuta dagli utenti come una parte “fidata” a loro gerarchicamente superiore.
    • La CA offre un servizio utile a creare e garantire “fiducia” fra gli utenti.
    • La CA crea, assegna, rilascia, sospende e revoca “certificati digitali”.
  • 42. Certificati Digitali
    • I certificati digitali sono degli oggetti informatici conformi allo standard ITU-T X.509v3 RFC 2510 e 3280 che garantiscono valore legale alle firme digitali.
    • Assicurano la corrispondenza tra un determinato paio di chiavi asimmetriche e un particolare utente o apparecchiatura.
    • Il certificato digitale è strettamente associato alla coppia di chiavi Pubblica/Privata e all’entità a cui si riferisce o all’apparecchiatura
    • Contiene una serie di dati identificativi dell’utente o dell’apparecchiatura,
      • nome,
      • numero seriale
      • l’indirizzo IP
      • la chiave pubblica
      • più una serie di campi opzionali.
  • 43. Certificati Digitali
    • La CA rilascia il certificato digitale dopo un processo chiamato “procedura di certificazione”
    • Tale procedura garantisce la autenticità, la corrispondenza fra le chiavi e il suo possessore.
    • L’utente o l’apparecchiatura, dopo avere generato la sua coppia di chiavi Pubblica/Privata chiede alla CA di certificare la sua chiave pubblica.
    • La CA o per lei la RA (Registration Autority) che è una emanazione amministrativa della CA realizzata per alleggerirne il lavoro esegue una “procedura di identificazione”
    • Identificato l’utente come proprietario di una coppia di chiavi asimmetriche ne verifica la corrispondenza.
    • A questo punto la RA chiede alla CA di generare un certificato digitale per l’utente e la sua chiave pubblica. Il certificato dell’utente viene firmato dalla CA con un suo certificato digitale chiamato “Root CA” che è auto–certificato (self–signed).
  • 44. Certificati digitali
    • La CA con il suo proprio certificato digitale, che è un certificato robusto, firma i certificati digitali degli utenti autenticandoli e garantendo per la loro corrispondenza ad una particolare identità
    • La CA pubblicherà su un particolare server pubblico chiamato “Certificate Server” liberamente accessibile, una lista dei certificati in corso di validità o con l’indicazione se questi certificati sono revocati o sospesi
    • L’utente Alice a questo punto riceve dalla CA un proprio certificato digitale firmato + il certificato digitale “Root” (self-signed) della CA.
  • 45. Certificati Digitali Host A Kpu/Kpr CA Certificate Server Certificato Digitale Host A + chiave pubblica Certificato Root CA Certificato Root CA Certificato Digitale Host A Ogni volta che l’Host A invierà la sua chiave pubblica, allegherà il proprio certificato digitale oppure un numero seriale dello stesso.
  • 46. Struttura Certificato Digitale
    • La struttura di un certificato digitale X.509 v3
      • Versione: numero di versione del certificato che attualmente è la 3.
      • Serial Number: numero seriale del certificato che identifica il certificato in modo univoco all’interno della CA
      • Firma: Identificativo dell'algoritmo usato dalla CA per firmare il certificato.
      • Issuer: questo campo identifica le entità che hanno firmato ed emesso il certificato. Questo campo contiene un distiguished name DN e Issuer Distinguished Name.
      • Validità
      • Informazioni sulla chiave pubblica del soggetto
        • Algoritmo per l'utilizzo della chiave pubblica
        • Chiave pubblica
      • CRLDistributionPoint : è un puntatore, un URL del server da dove scaricare la CRL (Certificate Revocation List) relativa ad un particolare certificato.
      • KeyUsage: questo campo dichiara gli scopi per i quali è possibile utilizzare la chiave pubblica
      • Algoritmo di firma del certificato
      • Firma del certificato
  • 47. Verifica Certificati Digitali
    • L’Host A quando invierà la propria chiave pubblica, allegherà il proprio certificato digitale oppure il suo numero di serie.
    • La chiave pubblica dell’utente firmata dal certificato digitale viene pubblicato a cura della CA su un server chiamato “Certificate Server “ liberamente accessibile per le verifiche.
    • L’Host B ricevente per verificare la corrispondenza del certificato ricevuto da Alice, scarica dal Certificate Server della CA mediante il numero seriale il certificato corrispondente e lo confronta con quello ricevuto da Alice.
    • Le verifiche vengono eseguite in reciprocità fra gli host e anche in maniera automatica e questo permette di accettare come affidabili tutte le comunicazioni fra i due pari.
  • 48. Verifica Certificati Digitali Host A Kpu/Kpr CA Certificate Server Certificato Root CA Certificato Digitale host A Host B Kpu/Kpr Certificato Digitale host B
  • 49. Vantaggi dei Certificati
    • Con una CA non è necessario configurare le chiavi su tutti i pari IPsec
    • Per aggiungere/configurare un nuovo pari IPsec ad una rete è sufficiente richiedere un certificato digitale ad una CA. Le CA forniscono una soluzione di gestire in modo dinamico e altamente scalabile le reti IPsec.
    • Uno dei metodi automatici di scambio delle chiavi è il protocollo IKE (Internet Key Exchange) che è un sofisticato meccanismo che utilizza le Certificate Autority per poter realizzare lo scambio delle chiavi on-line
    • Il problema dell’autenticazione viene risolto dal calcolo dell’Hashing
    • L’autenticazione è realizzata dall'uso di firme digitali hash.
  • 50. Hashing
    • L’hashing garantisce l’integrità del messaggio
    • Un hash crittografico anche chiamato Digest o Message Digest o Firma, è un tipo di impronta digitale di un documentoento elettronico
    • L’hash viene generato da una funzione matematica (algoritmo di hashing) che è una operazione One-Way.
    • Il documento elettronico di lunghezza variabile viene dato in pasto all’algoritmo che ne l’hash compatto e di lunghezza fissa
  • 51. Hashing
    • L’operazione di Hashing gode di importanti caratteristiche:
      • dato un documento elettronico di input si può facilmente calcolare il suo valore di hash
      • L’hash deve cambiare sensibilmente se il contenuto del documento di input viene alterato anche di un solo bit e quindi può essere utilizzato per rilevare se un documento informatico è stato modificato in qualsiasi modo.
      • non deve essere possibile dato il valore di hash risalire al contenuto originale del documento che l’ha originato (per questo l’hash è una funzione One-Way).
      • non deve essere possibile generare un documento che produca un’impronta informatica nota a priori
      • non deve essere possibile generare due messaggi che abbiano lo stesso valore di hash. La probabilità di collisione (due documenti diversi che generano lo stesso valore di hash) deve essere molto bassa
  • 52. I codici di autenticazione MAC
    • Per garantire la verifica dell’autenticità e dell’integrità di un documento o di un dato è necessario utilizzare un codice di autenticazione.
    • I codici di autenticazione che consentono la verifica dell’integrità di un dato, basati sull’uso di una chiave segreta, sono chiamati MAC ( Message Authentication Codes )
    • Il MAC può essere utilizzato da due entità che devono comunicare in modo sicuro e fornisce la possibilità di verificare autenticità e integrità dei messaggi scambiati mediante la condivisione della conoscenza della chiave segreta utilizzata per il suo calcolo
    • Chiunque non sia in possesso della chiave segreta non sarà in grado di ricreare il codice di autenticazione corretto.
  • 53. HMAC
    • Il meccanismo di calcolo del MAC basato sull’utilizzo di un algoritmo di HASH viene chiamato HMAC (Hashed Message Authentication Codes) ed è definito nella RFC 2104
    • Si concatena al messaggio da trasmettere una chiave segreta e si calcola il suo hash, questo hash dipenderà sia dal messaggio sia dalla chiave segreta. Il destinatario del messaggio, ripetendo lo stesso calcolo con la chiave segreta in suo possesso, potrà verificarne l’integrità e l’autenticità del messaggio controllando che HMAC calcolato e HMAC ricevuto coincidano. Questo darà la prova che anche il mittente è in possesso della stessa chiave segreta
  • 54. HMAC MD5
    • HMAC-MD5 – Conosciuto anche come HMAC-MD5-96 ( RFC 1321 ),
    • questa tecnica di hashing è basata su l’algoritmo MD5 sviluppato da Ronald Rivest del MIT, della RSA Data Security Incorporated, ed è descritto nel documento RFC 1321 .
    • Il messaggio a lunghezza variabile e la chiave segreta condivisa a 128-bit sono combinate attraversano l'algoritmo di hash HMAC-MD5 per produrre un l’hash di 128-bit (16 byte).
    • In IPsec una volta prodotto, il valore di 128-bit è troncato a solamente i primi 96 bit
    • Questo è il valore authenticator che viene immagazzinato nel campo authenticator nell'AH o dell’ESP del nuovo pacchetto.
    • Quando il pacchetto giunge al pari di destinazione, sul messaggio viene ricalcolato l’hash di 128-bit, ed i primi 96 bit ricalcolati che formano il valore authenticator (ICV) sono comparati al valore immagazzinato nel campo authenticator di 96 bit del pacchetto.
    • ATTENZIONE: Ultimamente dopo il rilascio da parte di Patrick Stach, un ricercatore crittologo, di un sorgente in C di un particolare tipo di attacco che rende la falsificazione di questo hash alla portata di tutti, MD5 è stato definitivamente infranto e pertanto ne viene sconsigliato l’uso
  • 55. HMAC-SHA-1
    • Conosciuto anche come HMAC-SHA-1-96 ( RFC 2404 ), creato dal NIST (National Institute of Standards and Technology),
    • questa tecnica di hashing è basata su SHA-1 specificato in FIPS-190-1 combinato con la tecnologia HMAC.
    • Il messaggio di lunghezza variabile e la chiave segreta condivisa di 160-bit sono combinati attraversano l'algoritmo di hash di HMAC-SHA-1 per produrre un valore hash di 160-bit (20 byte).
    • In IPsec una volta prodotto, questo hash viene troncato ai primi 96 bit, questo forma il valore authenticator che viene immagazzinato nel campo authenticator dell'AH o dell’ESP del nuovo pacchetto. Giunto al pari di destinazione, sul messaggio viene ricalcolato l’hash di 160-bit, ed i primi 96 bit ricalcolati che formano il valore authenticator (ICV) sono comparati al valore immagazzinato nel campo authenticator di 96 bit del pacchetto ricevuto.
  • 56. AES-XCBC-MAC-96
    • AES-XCBC-MAC-96 – Questo algoritmo ( RFC 3566 ) sviluppato sull’algoritmo CBC-MAC con l’uso dell’algoritmo AES in modalità denominata CBC (Cipher-Block-Chaining) e con un set di estensioni (X) garantisce un HMAC che fornisce integrità ai dati e l'autenticazione per l'origine dei dati.
    • AES-XCBC-MAC-96 usa i blocchi cifrati AES, con la grandezza di blocco di 128 bit e la lunghezza delle chiavi di 128 bit che producono un valore di hash di 128-bit (16 byte).
    • In IPsec una volta prodotto, questo hash viene troncato ai primi 96 bit, e viene immagazzinato nel campo authenticator dell'AH o dell’ESP del nuovo pacchetto.
    • Giunto al pari di destinazione, sul messaggio viene ricalcolato l’hash di 128-bit, ed i primi 96 bit ricalcolati che formano il valore authenticator (ICV) sono comparati al valore immagazzinato nel campo authenticator di 96 bit del pacchetto ricevuto.
    • La sicurezza fornita da AES-XCBC-MAC-96 è basata sulla forza dell’algoritmo AES. Al momento non esiste nessun attacco crittografico pratico contro AES o AES-XCBC-MAC-96.
  • 57. CSPRNG
    • CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) è un generatore di numeri pseudo-casuali crittograficamente sicuro
    • Questo generatore è un algoritmo particolarmente impredicidibile
      • Fortuna,
      • metodo Monte Carlo,
      • Blum Blum Shub,
      • Mersenne Twister
    • L’uso di questo tipo di generatore è fondamentale in crittografia in quanto permette di generare dei valori che sono veramente casuali
    • Hanno un range di imprevedibilità molto ampio.
    • È possibile per questi algoritmi raccogliere valori di input dall’ambiente circostante come il rumore dovuto all’agitazione termica o da altri fenomeni entropici.
  • 58. Schema gestioni chiavi Scambio Manuale Scambio chiavi segrete Diffie-Hellman Scambio chiavi Pubbliche CA Algoritmi CSPRNG Cifratura Simmetrica Chiave segreta Cifratura Asimmetrica Chiave pubblica Autenticazione Funzioni Hash SHA AES XCBC MD5 HMAC Chiave segreta Firma digitale Chiave pubblica MAC DES 3DES AES CAMELIA RSA
  • 59. IPSec
    • IPsec (IP Security) è un estensione del protocollo IP che fornisce servizi di sicurezza di alta qualità basata sulla crittografia
    • Rende sicuro il traffico al livello IP e per i protocolli dei livelli superiori
    • È stato sviluppato dal gruppo di lavoro incaricato dall’IETF di migliorare la sicurezza al protocollo IP per lo standard IPv6 in cui l’implementazione è obbligatoria
    • IPsec è un protocollo standard di internet per:
      • il tunneling,
      • la cifratura e
      • l’autenticazione
    • L'architettura di IPsec è attualmente esposta nella terza serie Standard la RFC 430
    • IPsec è stato progettato come una struttura/framework modulare di standard aperti
  • 60. Cosa fa IPsec
    • IPsec fornisce una serie di servizi di sicurezza al traffico dei dati sul livello IP
    • IPsec può essere usato per proteggere uno o più "percorsi" tra:
      • una coppia di host
      • tra un security gateway ed un host
      • tra una coppia di security gateway
    • Un router, un concentratore VPN o un firewall che implementa IPsec è un security gateway).
  • 61. Servizi di sicurezza di IPsec
    • Il controllo degli accessi.
    • L'integrità dei datagrammi connectionless.
    • Autenticazione dell’origine dei dati.
    • Protezione contro la ripetizione dei pacchetti (una forma parziale di verifica dell'integrità di sequenza).
    • La riservatezza dei dati mediante la cifratura.
    • Una limitata riservatezza del flusso di traffico.
    • Una limitata funzionalità di firewall. (È possibile per i vari vendor che implementano IPsec offrire meccanismi di firewall più sofisticati.)
  • 62. Security Policy
    • Security Policy : una serie di requisiti che definisce l’insieme dei servizi di sicurezza per la protezione al traffico dei dati
    • L’amministratore definisce quale tipo di traffico da protegger tramite l’uso delle ACL (Access Control List)
    • Una Security Policy specifica:
      • Sorgente e destinazione del pacchetto
      • Protocollo e porta da proteggere
      • La Security Association da utilizzare per i pacchetti
      • Il tipo di traffico (IP, Telnet, Web, ICMP…) alla quale saranno applicabili le SA
      • Le dimensioni delle Sliding Windows per proteggersi contro gli attacchi di ripetizione
      • Il tempo di vita delle SA
  • 63. Security Policy Database
    • Tutte le informazioni sono contenute in una SP immagazzinate in un database SPDB
    • Il DB viene interrogato durante il processamento di ogni tipo di traffico in input ed output.
    • Il DB deve discriminare il traffico IP da quello IPsec e deve specificare le azioni da intraprendere.
  • 64. SPDB-S, SPDB-O, SPDB-I
    • Un database SPDB è diviso logicamente in tre parti, in tre cache :
      • La cache SPDB-S (traffico Sicuro) contiene le entrate per ogni traffico soggetto alla protezione di IPsec
      • La cache SPDB-I (a destinazione interna, Inbound) viene applicato al traffico in entrata che sarà bypassato o sarà scartato
      • La cache SPDB-O (a destinazione esterna, Outbound) contiene entrate per ogni traffico a destinazione esterna che sarà bypassato o sarà scartato.
  • 65. SPDB Entrate
    • Ogni tipo di trasmissione deve affrontare un esame, questo esame viene effettuato dal database SPDB, in base al risultato di questo esame, il pacchetto può essere:
      • Scartato: al traffico verrà impedito di entrare/uscire attraverso il confine IPsec droppandolo;
      • Aggirare IPsec: Non verrà applicata alcuna politica di sicurezza
      • Applicare IPsec: al pacchetto verranno applicati i servizi di sicurezza IPsec in uscita e ci si aspetterà di averne sul pacchetto in entrata. Per tale traffico il database SPDB deve specificare i protocolli di sicurezza, i servizi di sicurezza, la loro maniera di trasporto, gli algoritmi crittografici da usare.
  • 66. Header IP
    • Version :Il campo Version indica il formato dell’header Internet
    • IHL bit 0-2:
      • Length o Internet Header Length indica la lunghezza dell’header IP in parole di 32 bit
      • Min length 20 byte
      • Max length 60 byte
    • Type of service:
      • Indica la QoS e la priorità di trattamento del pacchetto
        • 111 - Network Control
        • 110 - Internetwork Control
        • 101 - CRITIC-ECP
        • 100 - Flash Override
        • 011 - Flash
        • 010 - Immediate
        • 001 - Priority
        • 000 - Routine
  • 67. Header IP
      • Bit 3
        • 0 = Normal Delay,
        • 1 = Low Delay.
      • Bit 4
        • Normal Throughput,
        • 1 = High Throughput.
      • Bit 5
        • Normal Relibility,
        • 1 = High Relibility.
      • Bit 6 e 7
        • Normal Relibility, 1 = High Relibility.
    • Total Length
      • Il campo total length è lunghezza totale del datagramma (header + payload), misurata in byte
      • Max 65535 min 576 byte
    • Identification: 16 bit
      • In questo campo c’è un valore intero che viene assegnato dal mittente e che identifica univocamente il datagramma; si usa per risalire a quale datagramma appartengono i fragments
    • Flags: 3 bit
      • Bit 0: il primo bit è riservato e deve essere a zero (0).
      • Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment.
      • Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.
    • Fragment offset: 13 bit
      • Questo campo indica a quale parte del datagramma appartiene questo frammento. Il fragment offset è misurato in unità di 8 byte (64 bit). Il primo frammento ha un offset di zero (0).
    • Time to Live: 8 bits
    • Protocol: 8 bit (Eth. ATM, Frame Relay …)
    • Header Checksum: 16 bit
    • Source IP address: 32 bit
    • Destination IP address: 32 bit
  • 68. IPsec
    • IPsec lavora applicando al pacchetto IP originale dei protocolli di sicurezza
    • IPsec usa due protocolli di sicurezza per fornire sicurezza al traffico dei dati:
      • AH (Autentication Header)
      • ESP (Encapsulating Security Payload).
      • Le implementazioni di IPsec devono supportare ESP e possono supportare AH.
  • 69. I protocolli di sicurezza AH ed ESP
    • Questi protocolli di sicurezza vanno scelti in base alle necessità in cui si deve trovare il traffico dei dati:
      • Se il traffico necessita di autenticazione e di integrità con il protocollo AH,
      • Se necessita di protezione crittografica + autenticazione e integrità con ESP + AH.
    • Questi due protocolli (AH e ESP) si applicano al protocollo IP modificando in maniera sostanziale il pacchetto IP e sono indipendenti dagli algoritmi di cifratura.
  • 70. Tunnel & Transport mode
    • Nel configurare una VPN IPsec, una delle prime decisioni che devono essere prese per garantire la sicurezza riguarda la modalità di trasporto dei dati.
    • Ovvero come proteggere il pacchetto IP e quanto del pacchetto IP originale proteggere
    • Transport mode e Tunnel mode. Questa distinzione ha un impatto sulle altre decisioni di configurazione che devono essere fatte. Essenzialmente la differenza principale fra queste due modalità di trasporto è dovuta al tipo di apparecchiature che vanno a comporre i punti finali della VPN IPsec.
  • 71. Transport Mode
    • Transport mode è una modalità di trasporto dati il cui percorso protetto da IPsec può avvenire solo tra host finali cioè,
    • è una modalità che protegge i dati durante il percorso da host ad host.
    • Questi host finali fanno un incapsulamento dei propri dati proteggendo il payload del pacchetto IP.
    • L’incapsulamento avviene inserendo all’interno del pacchetto IP gli header dei protocolli di sicurezza AH ed ESP.
    • Questo incapsulamento modifica in maniera sostanziale la struttura del datagramma IP. L’inserimento di questo header avviene tra l’header IP e l’header di livello superiore (Trasporto). Questo fa si che la sicurezza venga garantita solamente per i protocolli di livello superiore ad IP, livelli trasporto ed applicativo.
    • Nella modalità Transport mode viene protetto il payload del pacchetto mantenendo l’indirizzo IP originale in chiaro.
  • 72. Tunnel Mode
    • Tunnel mode è una modalità di trasporto dati che può essere usata
      • tra due host finali, sia tra host e security gateway,
      • tra security gateway solamente.
    • Il traffico tra due security gateway è sempre in Tunnel mode.
    • Questa modalità è quella più utilizzata per trasmettere in modo sicuro i dati attraverso un mezzo non sicuro.
    • I punti finali del tunnel cifrano e/o autenticano l’intero pacchetto IP prevenendo qualunque modifica durante il transito
  • 73. Tunnel mode
    • Il pacchetto così cifrato viene incapsulato all’interno di un nuovo pacchetto IP e consegnato a destinazione.
    • Questo fa si che la sicurezza viene garantita per tutto il pacchetto IP originale.
    • In questa maniera Tunnel mode protegge tutto il pacchetto IP perché lo incapsula interamente (header IP, header di livello trasporto e payload). Le interfacce di entrata e di uscita del tunnel diventano gli indirizzi IP di sorgente e di destinazione del nuovo pacchetto IP nascondendone gli indirizzi IP originali.
    • In tunnel mode come dice il nome tutto il pacchetto viene incapsulato. Gli indirizzi IP esterni sono usati per indirizzare il pacchetto IP attraverso Internet.
    • Una intercettazione del pacchetto non permetterebbe di leggere nessuna parte del pacchetto originale, si potrebbero distinguere solamente gli indirizzi IP dei punti finali del tunnel.
  • 74. Authentication Header (AH) RFC 4302
    • Il protocollo di sicurezza Authentication Header (AH) fornisce i seguenti servizi di sicurezza:
      • L’autenticazione dell’origine dei dati.
      • L'integrità per pacchetti IP connectionless spediti tra due sistemi.
      • Un servizio di protezione anti-replay (facoltativo a discrezione del ricevente) attraverso l’uso di un numero di sequenza.
      • Il protocollo AH fornisce i servizi di autenticazione ed integrità al datagramma IP ad entrambe le interfacce finali del tunnel.
      • Il servizio opzionale anti-replay verifica che ogni pacchetto sia unico, non duplicato.
    • Il protocollo Authentication Header NON fornisce riservatezza ai dati trasportati (nessuna Cifratura) che di conseguenza vengono trasmessi in chiaro.
  • 75. Come lavora il protocollo AH
    • Il protocollo AH può essere impiegato in due modi:
      • tunnel mode
      • transport mode
        • applicabile solamente alle implementazioni su host e offre i suoi servizi di protezione per i protocolli di livello superiori, ma non all’header di IP cosa che invece fa il tunnel mode.
  • 76. AH Transport mode
    • L’apparecchiatura sorgente di IPsec riceve un pacchetto IP.
    • Su questo pacchetto compie una funzione hash calcolandoci un HMAC. Questo algoritmo (HMAC) compie un calcolo di hash One-Way sul pacchetto. Concatenando al pacchetto una chiave segreta condivisa fra i pari partecipanti.
    • Il Pacchetto su cui compiere questo calcolo va dal payload fino a comprendere i campi dell’header IP che non possono cambiare durante il transito sulla rete.
    • AH supporta gli algoritmi di hash HMAC-MD5, HMAC-SHA-1 e AES-XCBC-MAC-96.
  • 77. Campi immutabili dell’IP Header
    • I campi immutabili dell’header IPv4 sono:
      • Version
      • Internet Header Length
      • Total Length
      • Identification
      • Protocol
      • Source IP Address
      • Destination IP Address
    • Questi campi vengono tutti inclusi nel calcolo di un HMAC.
  • 78. Campi mutabili dell’IP Header
    • Type of Service (TOS)
      • Questo campo viene escluso dal calcolo dell’HMAC perché alcuni router cambiano il valore di questo campo durante il percorso.
    • Flags
      • Questo campo viene escluso dal calcolo dell’HMAC settando i bit di DF, anche se la sorgente non lo setta.
    • Fragment Offset
      • Questo campo viene escluso dal calcolo dell’HMAC perché AH viene applicato solamente ai pacchetti IP non-frammentati, il campo Fragment Offset deve essere sempre settato a zero (anche se è prevedibile).
    • Time to Live (TTL)
      • Questo campo viene escluso dal calcolo dell’HMAC perché viene modificato dai router durante il normale percorso di instradamento, e così il suo valore non è prevedibile dal mittente.
    • Header Checksum
      • viene ricalcolato da ogni nodo che attraversa e così il suo valore non può essere predetto dal mittente
  • 79. Il formato dell’header AH IP Header TCP Header Payload IP Header AH Header AH Authentication data TCP Header Payload IP Header AH Header AH Authentication data TCP Header Payload New IP Header Solo i campi immutabili Authenticated data Transport Mode Tunnel Mode
  • 80. Campi dell’AH header
    • Next Header è un campo di 8 bit
      • identifica il tipo di protocollo che verrà dopo l'header di AH
      • Il valore di questo campo viene scelto da un set di numeri di protocolli IP definiti dallo IANA (Internet Assigned Numbers Authority)
      • In transport mode quando viene incapsulato un pacchetto TCP, il valore è 6
      • Se in tunnel mode viene incapsulato un intero datagramma IPv4, il valore di questo campo è 4.
  • 81. Campi dell’AH header
    • Payload Length
      • 8 bit che indicano la lunghezza del payload in parole di 32-bit (unità da 4 byte) meno 2.
    • Reserved
      • è un campo di 2 byte riservati per usi futuri. Deve essere settato a zero dal mittente e deve essere ignorato dal ricevente. Il valore di questo campo è incluso nel calcolo ICV.
    • Security Parameters Index (SPI)
      • è un campo di 4 byte contenenti un valore arbitrario di 32 bit, che in combinazione con l’indirizzo IP di destinazione e il protocollo di sicurezza (AH) serve al ricevente ad identificare univocamente la Security Association per questo datagramma.
  • 82. Campi dell’AH header
    • Sequence Number
      • Il campo Sequence Number, è un campo di 32 bit necessario per proteggersi da attacchi di tipo replay.
      • Questo campo di 32-bit contiene un contatore che incrementa il valore (numero di sequenza) per ogni pacchetto inviato. La trasmissione di questo campo è obbligatoria per il mittente, anche se il ricevente non abilita il meccanismo di protezione anti-ripetizione per una specifica SA.
  • 83. Campi dell’AH header
    • Integrity Check Value (ICV): Authentication Data
      • Integrity Check Value (ICV), è un campo di lunghezza variabile e serve per autenticare i dati trasportati.
      • Il campo deve essere un multiplo intero di 32 bit (per IPv4)
      • può includere esplicitamente un padding
      • contiene l’HMAC troncato ai primi 96 bit (Hash Message Authentication Code)
      • solo chi conosce la chiave segreta può ri-creare l’hash completo, troncarlo a 96 bit e compararlo con quello ricevuto per verificarne l'esattezza.
  • 84. Autenticazione AH
    • Step 1 - Il nuovo pacchetto viene trasmesso dal pari IPsec sorgente verso il destinatario IPsec.
    • Step 2 - Il destinatario IPsec ricevuto il pacchetto estrae l’header di AH dal pacchetto e sul rimanente ricalcola l’HMAC usando il valore di chiave condiviso con la sorgente. Questo HMAC viene troncato ai primi 96 bit. Questi formano il valore authenticator (ICV).
    • Step 3 - Il destinatario IPsec estrae il valore authenticator di 96 bit (l’HMAC) ricevuto dall’header di AH.
    • Step 4 - Il destinarlo IPsec a questo punto compara i due valori di hash (ricevuto e ricalcolato). Se i due hash combaciano precisamente (in gergo tecnico si dice che devono matchare) vuole dire che l’autenticità è garantita. Anche se solo uno dei bit dei pacchetti è stato modificato durante la trasmissione, l’output dell’hash sul pacchetto ricevuto cambia, e il pacchetto viene scartato. Il fatto che l’hash One-Way (HMAC) comporta anche l'uso di una chiave segreta simmetrica tra i due sistemi vuole dire che viene garantita l’autenticità.
  • 85. Conclusioni AH
    • AH può essere usato:
    • da solo,
    • o in combinazione con il protocollo ESP (Encryption Service Payload),
    • o attraverso l'uso di tunnel mode in cui l'intero pacchetto IP originario viene incapsulato in un nuovo pacchetto.
    • AH da solo non fornisce riservatezza ovvero, NON fornisce nessuna protezione crittografica ai dati. Ogni testo è trasportato in chiaro.
  • 86. Encapsulated Security Payload (ESP) RFC 4303
    • (ESP) fornisce i seguenti servizi di sicurezza:
      • L’autenticazione dell’origine dei dati
      • L'integrità per pacchetti IP connectionless spediti tra due sistemi.
      • La riservatezza dei dati con la cifratura
      • Un servizio opzionale di protezione contro le ripetizioni (una forma parziale dell'integrità di sequenza).
      • Una limitata riservatezza del flusso di traffico
  • 87. ESP
    • L'autenticazione dell’origine dei dati e l'integrità dei dati connectionless sono due servizi strettamente connessi.
      • uso di una chiave condivisa, simmetrica
      • l’uso degli stessi algoritmi usati da AH e cioè impiegando un algoritmo HMAC
        • SHA-1/ RFC 2404
        • MD5/ RFC 2403
        • AES-XCBC-MAC-96/ RFC 3566
  • 88. ESP
    • La riservatezza è una scelta “opzionale” e può essere selezionata e implementata indipendentemente da tutti gli altri servizi, e viene portata a termine compiendo la cifratura del pacchetto al livello IP.
    • La Cifratura del pacchetto IP nasconde:
      • il payload dei dati e
      • l’identità finale della sorgente e della destinazione.
    • ESP supporta gli algoritmi di cifratura simmetrica come il DES, 3DES e AES.
    • Comunque, l’uso della riservatezza senza selezionare l'autenticazione o l’integrità, sia in ESP che separatamente in AH, può sottoporre il traffico a certe forme di attacchi attivi che possono minare il servizio di riservatezza ed è quindi sconsigliato non farne uso.
    • Da notare che anche se, la riservatezza e l'autenticazione sono in ESP dei servizi opzionali, almeno uno di loro deve essere necessariamente selezionato.
  • 89. ESP
    • La protezione anti-replay verifica che ogni pacchetto sia unico, non duplicato.
    • La scelta di sfruttare il servizio anti-ripetizione si può selezionare solamente se l'autenticazione dell’origine dei dati viene selezionata.
    • Questa scelta non può essere fatta dal mittente infatti, la scelta di questo servizio è a discrezione del ricevente.
    • Anche se di default i pacchetti inviati dal mittente incrementano automaticamente il numero di sequenza usato per il servizio anti-ripetizione, il servizio viene effettivamente usato solo se il ricevente controlla il numero di sequenza settando ad 1 il bit di ripetizione dell’header.
  • 90. ESP
    • La riservatezza del flusso di traffico diventa effettiva se viene implementata su un security gateway dove l’aggregazione del traffico può essere capace di mascherare i veri percorsi di sorgente-destinazione.
    • Un attaccante che monitorizza il traffico di rete su un segmento non saprebbe quali pari stanno comunicando.
    • Comunque, la riservatezza del flusso di traffico è limitata dal fatto che possono essere contati il numero di pacchetti che vengono scambiati su un segmento
  • 91. ESP
    • ESP incapsula avvolgendo completamente il pacchetto IP.
    • Il protocollo ESP può essere utilizzato da solo o insieme al protocollo AH.
    • ESP usato congiuntamente ad AH sfrutta i suoi servizi di sicurezza (l'integrità e l'autenticazione) per offrire una maggiore protezione al datagramma.
    • Durante l’utilizzo di IPsec, bisogna assicurarsi che ogni routers perimetrale permetta il passaggio del traffico sulle porte TCP 50 e 51
    • mentre per ISAKMP la porta da tenere aperta è la 500 del protocollo UDP.
    • Il set di servizi fornito da questo protocollo dipende dalle scelte selezionate durante l’implementazione delle Associazioni di Sicurezza (SA)
  • 92. ESP
    • il protocollo ESP può essere impiegato in due modi:
      • transport mode
      • o tunnel mode.
    • La prima maniera (transport mode) è applicabile solamente alle implementazioni su host e offre protezione per i protocolli di livello superiori, ma non all’header di IP cosa che invece fa la seconda maniera (tunnel mode)
  • 93. Formato ESP
    • Il formato del pacchetto ESP si compone di due parti, header ESP ed Trailer ESP che avvolgono il Payload Data ed è mostrato nella figura sotto. E’formato da 8 campi.
    IP Header TCP Header Payload IP Header ESP Header Esp Trailer Payload TCP Header IP Header ESP Header Esp Trailer Payload TCP Header New IP Header Authenticated data Encrypted ESP TRANSPORT MODE TUNNEL MODE ESP Autentication ESP Autentication
  • 94. Campi ESP
  • 95. Campi ESP
    • Security Parameters Index
      • Il primo campo di 32 bit è il Security Parameter Index (SPI), ed è un valore arbitrario che, in combinazione con l’indirizzo IP di destinazione e il protocollo di sicurezza (ESP), identifica univocamente l'Associazione di Sicurezza (SA) per questo datagramma. Questo consente di tenere traccia della Security Association (SA) corrente tra due apparecchiature IPsec per interpretare correttamente il pacchetto ESP al momento della ricezione.
  • 96. Campi ESP
    • Sequence Number
      • Il secondo campo è di 32-bit ed è chiamato Sequence Number, contiene un contatore del numero di sequenza necessario per proteggersi da attacchi di tipo replay. La compilazione di questo campo è obbligatorio per il mittente ed è sempre presente anche se il ricevente non abilita il servizio di protezione anti-ripetizione per una specifica SA. Difatti la protezione anti-ripetizione è un servizio opzionale e l’utilizzo del campo Sequence Number ai fini della sicurezza è a discrezione del ricevente.
    • Initialization Vector
      • Segue il campo di 32 bit Initialization Vector (IV), utilizzato durante le operazioni di cifratura. Gli algoritmi di crittografia simmetrica sono vulnerabili ad attacchi statistici se non viene utilizzato un Vettore di Inizializzazione (IV). Quest'ultimo infatti assicura che due payload in chiaro identici producano due versioni cifrate differenti.
      • A questo punto viene inserito il pacchetto IP cifrato che compone il campo Payload Data.
  • 97. Campi ESP
    • Payload Data
      • Il campo Payload Data è di lunghezza variabile e contiene i dati descritti nel campo Next Header. Il campo Payload Data è obbligatorio e può avere una lunghezza variabile ma, comunque deve essere un numero intero calcolato in byte. Se l'algoritmo usato per cifrare il payload richiede una sincronizzazione dei dati, è necessario utilizzare un Vettore di Inizializzazione (IV). Questo Vettore di Inizializzazione (IV) in base all’algoritmo utilizzato può essere immesso separatamente all’inizio del ciphertext o cifrato all’interno del campo Payload
  • 98. Campi ESP
    • Padding
      • Il campo padding è un campo di lunghezza variabile da (0-255 byte). IPsec utilizza cifrari a blocchi per il processo di cifratura. Dunque il campo Payload Data deve essere completato da un (padding) per permettere un giusto allineamento nel caso in cui il campo non risulti un multiplo della dimensione del blocco
      • il contenuto del campo di Padding sarà determinato dall'algoritmo di cifratura. L'algoritmo relativo può specificare che il ricevente deve ispezionare il campo di padding o che il ricevente deve informare il mittente di come il ricevente gestirà il campo di padding.
  • 99. Campi ESP
    • Pad Length
    • Next Header
      • Il campo Next Header è un campo lungo 8-bit (256 valori) che identifica univocamente il tipo di header che verrà dopo l'header di ESP. Ovvero indicano al processore di destinazione il prossimo header da trattare o processare. Il valore di questo campo viene scelto dal set di numeri di protocolli IP definiti dallo IANA (Internet Assigned Numbers Autority) RFC 1700 .
  • 100. Campi ESP
    • Integrity Check Value (ICV) Authentication Data
      • Il campo Integrity Check Value è un campo di lunghezza variabile che contiene un Valore del Controllo dell'integrità (ICV) calcolato sull’intero pacchetto ESP campi:
      • Security Parameters Index,
      • Sequence Number,
      • Initialization Vector,
      • Payload Data (cifrato),
      • Padding, Pad Length,
      • Next Header)
      • meno il campo Integrity Check Value
  • 101. Campi ESP
    • La lunghezza del campo (ICV) è specificata dalla funzione di autenticazione selezionata (HMAC).
    • Il campo Integrity Check Value è un campo opzionale, quindi viene incluso nel pacchetto ESP alla fine solamente se il servizio di autenticazione è stato selezionato per la SA in questione.
  • 102. Integrità e Autenticazione
    • Se è stata selezionata la funzione di autenticazione su un pacchetto formato dal payload cifrato incapsulato da ESP viene compiuta una funzione hash calcolando un HMAC.
    • Questo algoritmo (HMAC) compie un calcolo di hash One-Way su questo pacchetto. Mediante una chiave segreta condivisa fra i pari partecipanti.
    • ESP supporta gli algoritmi HMAC-MD5, HMAC-SHA-1 e AES-XCBC-MAC-96. Questi HMAC offrono l’autenticazione dell’origine e l'integrità dei dati per il payload dei dati.
    • Questo HMAC così ottenuto serve per creare un campo ESP Authentication data che viene messo alla fine del pacchetto dopo l’ESP Trailer
  • 103. Cifratura ESP
    • Il payload data viene utilizzando a questo scopo degli algoritmi di cifratura simmetrica come il DES, 3DES o AES. In base all’algoritmo utilizzato per decifrare il payload può essere necessario: sincronizzare i dati come richiesto da un Vettore di Inizializzazione (Initialization Vector)(IV) che può trovarsi o separatamente all’inizio del ciphertext o cifrato all’interno del campo payload; e trattare i dati di padding secondo le istruzioni dettate dall’algoritmo di cifratura.
    • Un security gateway può supportare solamente la modalità Tunnel mode
  • 104. Possibili Scenari
    • Scenario A
      • Soluzione hosting Server FTP
      • Codifica dati sui Client FTP
    • Scenario B
      • Soluzione Housing Server FTP
      • Client FTP SSL
      • Dati viaggiano criptati sul canale
    • Scenario C
      • Server dedicato presso Ente/Azienda
      • Nessuna codifica sul client
      • Necessità di router o firewall