Prima che sia possibile effettuare uno scambio di dati protetto, è necessario stabilire un accordo tra i due computer. In tale accordo, denominato associazione di sicurezza (SA, Security Association), le parti concordano le modalità di scambio e protezione delle informazioni.

Una chiave è un codice o un numero segreto necessario per la lettura, la modifica o il controllo delle informazioni protette. Le chiavi vengono utilizzate insieme agli algoritmi (processi matematici) per proteggere i dati. In IPSec le chiavi vengono utilizzate in due fasi o modalità. La modalità principale viene adottata per prima e prevede la generazione di una chiave master condivisa che le parti utilizzeranno per scambiarsi informazioni sulla generazione delle chiavi in modo sicuro. La modalità rapida prevede l'utilizzo della chiave master per proteggere la definizione di una o più chiavi di sessione che vengono utilizzate per la crittografia o l'integrità dei dati.

Windows gestisce la generazione delle chiavi in modo automatico e ottimizza la protezione implementando le proprietà delle chiavi seguenti:

Importante

Lo snap-in Criteri di sicurezza IP consente la creazione di criteri IPSec che possono essere applicati a computer che eseguono Microsoft Windows Vista e versioni successive di Windows, ma non utilizza i nuovi algoritmi di sicurezza e altre nuove funzionalità disponibili in computer che eseguono le versioni successive di Windows. Per creare criteri IPsec per questi computer, utilizzare lo snap-in Windows Firewall con sicurezza avanzata. I criteri creati con lo snap-in Windows Firewall con sicurezza avanzata non possono essere applicati alle versioni precedenti di Windows.

Generazione dinamica di nuove chiavi

IPSec utilizza un metodo denominato generazione dinamica di nuove chiavi per controllare la frequenza di generazione di nuove chiavi durante la comunicazione. La comunicazione prevede l'invio di blocchi di dati, ognuno dei quali è protetto da una chiave diversa. In questo modo, un eventuale utente non autorizzato che è riuscito a ottenere una parte della comunicazione e le chiavi di sessione corrispondenti non riuscirà a ottenere anche la parte rimanente della comunicazione. Questo servizio di negoziazione della sicurezza a richiesta e di gestione automatica delle chiavi è reso disponibile tramite IKE (Internet Key Exchange), come definito nell'RFC 2409.

IPSec consente di gestire la frequenza con cui vengono generate le nuove chiavi. Se non viene configurato alcun valore, le chiavi verranno rigenerate in modo automatico agli intervalli di tempo predefiniti.

Lunghezza delle chiavi

Ogni volta che la lunghezza di una chiave aumenta di un bit, il numero di chiavi possibili raddoppia, con un incremento esponenziale della difficoltà di individuazione della chiave. IPSec offre la possibilità di utilizzare numerosi algoritmi per la definizione di chiavi lunghe o brevi.

Generazione del materiale per le chiavi: algoritmo Diffie-Hellman

Per consentire una comunicazione sicura, due computer devono essere in grado di ottenere la stessa chiave condivisa (modalità rapida o chiave di sessione) senza che la chiave venga inviata attraverso una rete compromettendone la segretezza.

L'algoritmo Diffie-Hellman (DH) è uno degli algoritmi più vecchi e più sicuri per lo scambio di chiave. Le due parti si scambiano pubblicamente le informazioni sulla generazione delle chiavi, che vengono ulteriormente protette da Windows con la firma di una funzione hash. Le parti non si scambiano la chiave effettiva, ma dopo lo scambio del materiale per le chiavi ognuna di esse è in grado di generare la stessa chiave condivisa.

Il materiale per le chiavi DH scambiato dalle due parti può essere basato su 768, 1024 o 2048 bit, denominati anche gruppi DH. L'affidabilità del gruppo DH è proporzionale all'affidabilità della chiave calcolata a seguito dello scambio di DH. Se si combina un livello elevato di affidabilità dei gruppi DH con lunghezze delle chiavi maggiori, la difficoltà di individuazione della chiave sarà maggiore.

Nota

Nella finestra di dialogo Algoritmi di sicurezza IKE 768 bit corrisponde all'impostazione Min (1) e 1024 bit all'impostazione Media (2).

IPSec si avvale dell'algoritmo DH per fornire il materiale per la generazione di tutte le altre chiavi di crittografia. DH non assicura tuttavia l'autenticazione. Nell'implementazione di IPSec di Microsoft Windows, le identità vengono autenticate dopo lo scambio di DH e pertanto viene assicurata anche la protezione dagli attacchi man-in-the-middle.

Protezione delle chiavi

Di seguito sono illustrate le funzionalità che migliorano l'efficacia dei numeri primi di base (materiale per le chiavi) e l'affidabilità delle chiavi master e delle chiavi di sessione.

Durata delle chiavi

La durata delle chiavi determina il momento in cui viene generata una nuova chiave, piuttosto che la modalità di generazione. È conosciuta anche come rigenerazione dinamica delle chiavi e consente di imporre una rigenerazione delle chiavi dopo un intervallo specificato. Se ad esempio una comunicazione dura 10.000 secondi e si specifica una durata della chiave di 1.000 secondi, per completare la comunicazione verranno generate 10 chiavi. In questo modo si garantisce che, anche se un utente non autorizzato riesce a decifrare una parte della comunicazione, la parte rimanente rimarrà protetta. È possibile specificare una durata sia per le chiavi master che per le chiavi di sessione. Ogni volta che scade la durata di una chiave, viene rinegoziata anche l'associazione di sicurezza. La chiave viene inoltre aggiornata o rigenerata. La quantità di dati elaborata da una singola chiave non dovrebbe essere superiore ai 100 MB.

Limite di aggiornamento delle chiavi di sessione

Il limite di aggiornamento delle chiavi di sessione in modalità rapida viene utilizzato perché la ripetuta reimpostazione di chiavi sulla base di una chiave di sessione in modalità rapida può compromettere il segreto condiviso Diffie-Hellman.

Se, ad esempio, Alice sul Computer A invia un messaggio a Roberto sul Computer B e pochi minuti dopo invia un nuovo messaggio a Roberto, è possibile riutilizzare lo stesso materiale della chiave di sessione perché è stata stabilita di recente un'associazione di sicurezza con quel computer. Se si desidera limitare il numero di riutilizzi del materiale, specificare un valore basso come limite di aggiornamento delle chiavi di sessione.

Se è stata attivata l'opzione PFS (Perfect Forward Secrecy) chiave master, il limite di aggiornamento per la chiave di sessione in modalità rapida non verrà utilizzato. L'impostazione del limite di aggiornamento su 1 equivale all'attivazione dell'opzione PFS chiave master. Se si specificano sia la durata della chiave master in modalità principale che un limite di aggiornamento per la chiave di sessione in modalità rapida, verrà eseguita la reimpostazione della chiave indipendentemente da quale dei due limiti venga raggiunto per primo. Per impostazione predefinita, nei criteri IPSec non viene specificato un limite di aggiornamento per la chiave di sessione.

Gruppi Diffie-Hellman

I gruppi Diffie-Hellman (DH) consentono di determinare la lunghezza dei numeri primi di base (materiale per le chiavi) utilizzati per lo scambio di DH. L'affidabilità di una chiave che deriva da uno scambio di DH dipende in parte dall'affidabilità del gruppo DH su cui si basano i numeri primi.

In ogni gruppo DH viene utilizzata una diversa lunghezza del materiale per le chiavi. Il gruppo 1 protegge 768 bit di materiale per le chiavi, il gruppo 2 protegge 1024 bit e il gruppo 3 protegge 2048 bit. Se viene utilizzato un gruppo più grande, la chiave risultante da uno scambio di DH sarà più grande e più difficile da individuare da parte di un utente non autorizzato.

IKE negozia il gruppo da utilizzare in base alla configurazione stabilita nella finestra di dialogo Algoritmi di sicurezza IKE e garantisce che non vi siano errori di negoziazione dovuti alla mancata corrispondenza del gruppo DH tra i due peer.

Se l'opzione PFS chiave di sessione è attivata, alla prima negoziazione dell'associazione di sicurezza in modalità rapida verrà negoziata una nuova chiave DH. La nuova chiave DH elimina la dipendenza della chiave di sessione dallo scambio di DH eseguito per la chiave master.

Se l'iniziatore attiva l'opzione PFS chiave di sessione, non è necessario che anche il risponditore la attivi. Se invece l'iniziatore non utilizza tale opzione e il risponditore la utilizza, la negoziazione avrà esito negativo.

Il gruppo DH per le negoziazioni delle associazioni di sicurezza in modalità principale è uguale a quello per le negoziazioni delle associazioni di sicurezza in modalità rapida. Se l'opzione chiave di sessione PFS è attivata, influirà su qualsiasi reimpostazione delle chiavi durante la definizione della chiave di sessione in modalità rapida, anche se il gruppo DH è impostato ai fini della negoziazione delle associazioni di sicurezza in modalità principale.

PFS (Perfect Forward Secrecy)

Diversamente dalla durata delle chiavi, l'opzione PFS determina la modalità di generazione di una nuova chiave, piuttosto che il momento in cui questa viene generata. Più specificamente, garantisce che l'eventuale manomissione di una singola chiave consentirà unicamente l'accesso ai dati da essa protetti e non necessariamente all'intera comunicazione. A tale scopo, PFS assicura che una chiave utilizzata per proteggere una trasmissione, in qualsiasi modalità, non possa essere utilizzata per generare altre chiavi. Inoltre, se la chiave è stata creata con materiale specifico, tale materiale non può essere utilizzato per generare altre chiavi.

L'opzione PFS chiave master in modalità principale richiede una riautenticazione e comporta un utilizzo elevato di risorse. Se è attivata, il protocollo IKE deve riautenticare le identità e ciò determina un incremento del sovraccarico per i controller di dominio in caso di autenticazione tramite Kerberos V5, poiché richiede una nuova negoziazione in modalità principale per ogni negoziazione in modalità rapida.

L'opzione chiave di sessione PFS in modalità rapida può essere utilizzata senza riautenticazione e comporta un minor dispendio di risorse. Prevede inoltre uno scambio di DH per la generazione di nuovo materiale per le chiavi. A tale scopo vengono utilizzati quattro messaggi e nessun processo di autenticazione.

Non è necessario attivare PFS in entrambi i peer perché non fa parte della negoziazione delle associazioni di sicurezza. Se il risponditore richiede PFS e l'associazione di sicurezza in modalità rapida dell'iniziatore scade, il messaggio di quest'ultimo verrà rifiutato e verrà richiesta una nuova negoziazione. L'iniziatore farà scadere l'associazione di sicurezza in modalità principale ed eseguirà la rinegoziazione. L'opzione PFS può essere impostata singolarmente sia per le chiavi master in modalità principale che per le chiavi di sessione in modalità rapida.

Scambio di chiave

Prima che sia possibile effettuare uno scambio di dati protetto, è necessario stabilire un accordo tra i due computer. In tale accordo, denominato associazione di sicurezza (SA, Security Association), le parti concordano le modalità di scambio e protezione delle informazioni.

L'accordo tra i due computer viene stabilito in base a un metodo standard per le associazioni di sicurezza e per la risoluzione degli scambi di chiave definito dalla Internet Engineering Task Force (IETF) e denominato IKE, che prevede quanto segue:

  • Gestione centralizzata delle associazioni di sicurezza, che consente di ridurre la durata della connessione.

  • Generazione e gestione di chiavi segrete condivise utilizzate per proteggere le informazioni.

Questo processo non solo assicura la protezione della comunicazione tra i due computer, ma anche la protezione dei computer remoti che richiedono un accesso sicuro a una rete aziendale. Il processo viene inoltre eseguito ogni volta che un gateway di sicurezza esegue la negoziazione per il computer di destinazione finale (endpoint).

Definizione di associazione di sicurezza

Un'associazione di sicurezza è rappresentata dalla combinazione di una chiave negoziata, di un protocollo di sicurezza e dell'indice dei parametri di sicurezza (SPI, Security Parameters Index), che contribuiscono a definire la sicurezza utilizzata per proteggere la comunicazione tra il mittente e il ricevente. L'indice SPI è un valore di identificazione univoco presente nell'associazione di sicurezza, che consente di distinguere tra più associazioni di sicurezza esistenti nel computer di destinazione. Possono ad esempio esistere più associazioni se un computer intrattiene comunicazioni sicure contemporaneamente con più computer. Questa situazione si verifica spesso nel caso di computer che fungono da file server o da server di accesso remoto utilizzati da più client. In questi casi, il computer di destinazione utilizza l'indice SPI per determinare l'associazione di sicurezza che verrà utilizzata per elaborare i pacchetti in ingresso.

Associazione di sicurezza in modalità principale

Per garantire il corretto svolgimento di una comunicazione sicura, IKE esegue un'operazione suddivisa in due fasi. In entrambe le fasi, la riservatezza e l'autenticazione sono garantite dall'utilizzo di algoritmi di crittografia e di autenticazione che vengono concordati dai due computer durante le negoziazioni della sicurezza. La suddivisione delle attività nelle due fasi consente di creare le chiavi in modo rapido.

Nella prima fase, i due computer stabiliscono un canale sicuro autenticato. Tale operazione viene definita associazione di sicurezza in modalità principale. Durante lo scambio, IKE fornisce automaticamente la protezione di identità necessaria.

Nei passaggi seguenti viene descritta una negoziazione in modalità principale.

  1. Negoziazione dei criteri. L'associazione di sicurezza in modalità principale prevede la negoziazione dei quattro parametri obbligatori elencati di seguito:

    • Algoritmo di crittografia (DES o 3DES).

    • Algoritmo hash (MD5 o SHA1).

    • Metodo di autenticazione (Kerberos V5, basata su certificati o con chiave già condivisa).

    • Gruppo Diffie-Hellman (DH) da utilizzare per il materiale di base per le chiavi: Gruppo 1 (Min, 768 bit), Gruppo 2 (Medio, 1024 bit) o Gruppo 3 (Max, 2048 bit).

    • Se per l'autenticazione vengono utilizzati i certificati o le chiavi già condivise, l'identità del computer è protetta. Se invece viene utilizzato il protocollo di autenticazione Kerberos V5, l'identità del computer non è crittografata fino a quando non viene eseguita la crittografia dell'intero payload dell'identità durante l'autenticazione.

  2. Scambio DH (di valori pubblici). Lo scambio delle chiavi effettive non viene mai eseguito. Vengono infatti scambiate solo le informazioni richieste dall'algoritmo di definizione della chiave DH per generare la chiave segreta condivisa. Dopo lo scambio, il servizio IKE di ogni computer genera la chiave master utilizzata per proteggere l'autenticazione.

  3. Autenticazione. I computer tentano di autenticare lo scambio della chiave DH. Se non si esegue l'autenticazione dello scambio della chiave DH, la comunicazione è esposta agli attacchi man-in-the-middle. Se l'autenticazione non riesce, la comunicazione non può procedere. Per autenticare le identità viene utilizzata la chiave master insieme agli algoritmi e ai metodi di negoziazione. Per l'intero payload dell'identità (incluso il tipo di identità, la porta e il protocollo) vengono eseguiti l'hashing e la crittografia tramite le chiavi generate dallo scambio di DH nel secondo passaggio. Il payload dell'identità viene protetto dalle modifiche e dall'interpretazione, indipendentemente dal metodo di autenticazione utilizzato.

    Il mittente presenta un'offerta per un'associazione di sicurezza al destinatario, che non ha facoltà di modificare l'offerta. Se l'offerta viene modificata, l'iniziatore rifiuta il messaggio del risponditore. Il risponditore invia una risposta di accettazione dell'offerta o propone delle alternative.

    I messaggi inviati in questa fase vengono inseriti in un ciclo di ripetizione dei tentativi automatico che viene eseguito per cinque volte. Se prima del completamento del ciclo viene ricevuta una risposta, ha inizio la negoziazione dell'associazione di sicurezza standard. Se consentite dai criteri IPSec, dopo un breve periodo di tempo avranno inizio comunicazioni non protette, in cui viene utilizzato testo non crittografato. Anche in questo caso, i tentativi di negoziazione della comunicazione sicura verranno ripetuti ogni cinque minuti.

    Non esiste alcuna limitazione al numero di scambi che possono essere eseguiti, poiché il numero delle associazioni di sicurezza stabilite è limitato esclusivamente dalle risorse del sistema.

Associazione di sicurezza in modalità rapida

In questa fase, le associazioni di sicurezza vengono negoziate per conto del driver di sicurezza IP.

Nei passaggi seguenti viene descritta una negoziazione in modalità rapida.

  1. Viene eseguita la negoziazione dei criteri. I computer IPSec si scambiano i requisiti seguenti per la protezione del trasferimento di dati:

    • Protocollo IPSec (AH o ESP)

    • Algoritmo hash per l'integrità e l'autenticazione (MD5 o SHA1)

    • Algoritmo di crittografia, se necessario (DES o 3DES)

    Viene raggiunto un accordo comune e vengono stabilite due associazioni di sicurezza, una per le comunicazioni in ingresso e l'altra per le comunicazioni in uscita.

  2. Viene aggiornato o scambiato il materiale della chiave di sessione. IKE aggiorna il materiale per le chiavi e vengono generate nuove chiavi condivise per l'integrità, l'autenticazione e la crittografia dei pacchetti (se negoziate). Se è necessaria la reimpostazione delle chiavi, viene eseguito un secondo scambio DH come descritto per la negoziazione in modalità principale oppure viene aggiornata la chiave DH originale.

  3. Le associazioni di sicurezza e le chiavi vengono passate al driver di sicurezza IP insieme all'indice SPI. La negoziazione in modalità rapida delle impostazioni di sicurezza e del materiale per le chiavi, finalizzata alla protezione dei dati, è protetta dall'associazione di sicurezza in modalità principale. Mentre la prima fase assicura la protezione dell'identità, la seconda, in modalità rapida, assicura la protezione tramite l'aggiornamento del materiale per le chiavi prima dell'invio dei dati. IKE è in grado di gestire un payload di scambio chiave per un ulteriore scambio di DH se è necessaria una rigenerazione della chiave, ovvero la funzionalità PFS chiave master è attivata. In caso contrario, il protocollo IKE aggiorna il materiale per le chiavi dallo scambio DH eseguito in modalità principale.

    La modalità rapida crea una coppia di associazioni di sicurezza, ognuna delle quali dispone di un indice SPI e di una chiave. Un'associazione viene utilizzata per le comunicazioni in ingresso e l'altra per le comunicazioni in uscita.

    L'algoritmo di ripetizione dei tentativi per un messaggio è simile al processo illustrato per la negoziazione in modalità principale. Se tuttavia per un qualsiasi motivo si verifica un timeout durante la seconda negoziazione o una negoziazione successiva della stessa associazione di sicurezza in modalità principale, verrà tentata una rinegoziazione di quest'ultima. Gli eventuali messaggi ricevuti in questa fase senza un'associazione di sicurezza nella modalità principale definita verranno rifiutati.

    Se si utilizza una singola associazione di sicurezza in modalità principale per più negoziazioni di associazione di sicurezza in modalità rapida, il processo risulterà più veloce. Fino allo scadere dell'associazione di sicurezza in modalità principale, non sono necessarie rinegoziazioni e riautenticazioni. Il numero di negoziazioni dell'associazione di sicurezza in modalità rapida eseguibili è determinato dalle impostazioni dei criteri IPSec.

    Nota

    Una eccessiva reimpostazione delle chiavi dalla stessa associazione di sicurezza in modalità principale può rendere la chiave segreta condivisa più esposta a un attacco basato su testo normale noto. Questo tipo di attacco è un attacco tramite sniffer nel quale l'utente non autorizzato tenta di individuare la chiave di crittografia dai dati crittografati basandosi su testo noto.

Durata delle associazioni di sicurezza

L'associazione di sicurezza in modalità principale viene memorizzata nella cache per consentire più negoziazioni dell'associazione di sicurezza in modalità rapida, a meno che non sia attivata la funzionalità PFS chiave master. Alla scadenza della durata della chiave master o della chiave di sessione, l'associazione di sicurezza viene rinegoziata. La chiave viene inoltre aggiornata o rigenerata.

Allo scadere del timeout predefinito per l'associazione di sicurezza in modalità principale o della durata della chiave master o della chiave di sessione, al risponditore verrà inviato un messaggio di eliminazione. Il messaggio di eliminazione di IKE comunica al risponditore di far scadere l'associazione di sicurezza in modalità principale. In questo modo si evita che dall'associazione di sicurezza in modalità principale scaduta vengano create nuove associazioni di sicurezza in modalità rapida. Il protocollo IKE non fa scadere l'associazione di sicurezza in modalità rapida perché solo il driver IPSec contiene il numero dei secondi o dei byte che sono stati passati fino allo scadere della durata della chiave.

È necessario prestare particolare attenzione quando si imposta una durata nettamente diversa per le chiavi master e le chiavi di sessione. Se ad esempio si imposta una durata di otto ore per la chiave master in modalità principale e una durata di due ore per la chiave di sessione in modalità rapida, può accadere che un'associazione di sicurezza in modalità rapida rimanga attiva per quasi due ore dopo che l'associazione di sicurezza in modalità principale è già scaduta. Questo si verifica quando l'associazione di sicurezza in modalità rapida viene generata subito prima della scadenza dell'associazione di sicurezza in modalità principale.