Che cos’è lo scambio di chiavi Internet?

Internet Key Exchange (IKE) è un insieme di protocolli di supporto creati dall’Internet Engineering Task Force (IETF) e utilizzati con gli standard di sicurezza del protocollo Internet (IPSec) per fornire comunicazioni sicure tra due dispositivi o peer su una rete. Come protocollo, IKE può essere utilizzato in numerose applicazioni software. Un esempio comune è la configurazione di una rete privata virtuale (VPN) sicura. Sebbene sia standard praticamente su tutti i moderni sistemi operativi per computer e apparecchiature di rete, gran parte di ciò che fa Internet Key Exchange è nascosto alla vista dell’utente medio.

I protocolli in IKE stabiliscono la cosiddetta associazione di sicurezza (SA) tra due o più peer su IPSec, necessaria per qualsiasi comunicazione sicura tramite IPSec. La SA definisce l’algoritmo crittografico utilizzato nella comunicazione, le chiavi di crittografia e le relative date di scadenza; tutto questo va poi nel database dell’associazione di sicurezza (SAD) di ciascun peer. Sebbene IPSec possa configurare manualmente la propria SA, Internet Key Exchange negozia e stabilisce automaticamente le associazioni di sicurezza tra i peer, inclusa la possibilità di crearne di proprie.

Internet Key Exchange è noto come protocollo ibrido. IKE utilizza un framework di protocolli noto come Internet Security Association e Key Management Protocol (ISAKMP). ISAKMP fornisce a IKE la capacità di stabilire la SA e svolge il lavoro di definizione del formato del payload dei dati e di decisione sul protocollo di scambio delle chiavi che verrà utilizzato. ISAKMP è in grado di utilizzare diversi metodi per lo scambio di chiavi, ma la sua implementazione in IKE utilizza due aspetti. La maggior parte del processo di scambio delle chiavi utilizza il metodo OAKLEY Key Determination Protocol (OAKLEY), che definisce le varie modalità, ma IKE utilizza anche parte del metodo Source Key Exchange Mechanism (SKEME), che consente la crittografia della chiave pubblica e ha la capacità di aggiornare le chiavi rapidamente.

Quando i peer desiderano comunicare in modo sicuro, si inviano l’un l’altro quello che viene chiamato “traffico interessante”. Il traffico interessante è rappresentato dai messaggi che aderiscono a una politica IPSec stabilita sui peer. Un esempio di questo criterio trovato nei firewall e nei router è chiamato elenco di accesso. All’elenco di accesso viene assegnata una politica di crittografia mediante la quale determinate istruzioni all’interno della politica determinano se i dati specifici inviati tramite la connessione devono essere crittografati o meno. Una volta che i peer interessati alla comunicazione sicura hanno abbinato tra loro una politica di sicurezza IPSec, inizia il processo di Internet Key Exchange.

Il processo IKE si svolge in fasi. Molte connessioni sicure iniziano in uno stato non protetto, quindi la prima fase negozia come i due peer continueranno il processo di comunicazione sicura. IKE prima autentica l’identità dei peer e quindi protegge le loro identità determinando quali algoritmi di sicurezza utilizzeranno entrambi i peer. Utilizzando il protocollo di crittografia a chiave pubblica Diffie-Hellman, che è in grado di creare chiavi corrispondenti tramite una rete non protetta, Internet Key Exchange crea chiavi di sessione. IKE termina la Fase 1 creando una connessione sicura, un tunnel, tra i peer che verranno utilizzati nella Fase 2.

Quando IKE entra nella Fase 2, i peer utilizzano il nuovo IKE SA per impostare i protocolli IPSec che utilizzeranno durante il resto della loro connessione. Viene stabilita un’intestazione di autenticazione (AH) che verificherà che i messaggi inviati vengano ricevuti intatti. Anche i pacchetti devono essere crittografati, quindi IPSec utilizza il protocollo di sicurezza incapsulante (ESP) per crittografare i pacchetti, proteggendoli da occhi indiscreti. L’AH viene calcolato in base al contenuto del pacchetto e il pacchetto è crittografato, quindi i pacchetti sono protetti da chiunque tenti di sostituirli con pacchetti fasulli o di leggere il contenuto di un pacchetto.
IKE scambia anche nonce crittografici durante la Fase 2. Un nonce è un numero o una stringa che viene utilizzata una sola volta. Il nonce viene quindi utilizzato da un peer se ha bisogno di creare una nuova chiave segreta o per impedire a un utente malintenzionato di generare SA false, prevenendo quello che viene chiamato attacco di replay.
I vantaggi di un approccio a più fasi per IKE è che utilizzando la fase 1 SA, entrambi i peer possono avviare una fase 2 in qualsiasi momento per rinegoziare una nuova SA per garantire la sicurezza della comunicazione. Dopo che Internet Key Exchange ha completato le sue fasi, viene creato un tunnel IPSec per lo scambio di informazioni. I pacchetti inviati attraverso il tunnel vengono crittografati e decifrati secondo le SA stabilite durante la Fase 2. Al termine, il tunnel termina, scadendo in base a un limite di tempo predeterminato o dopo che è stata trasferita una certa quantità di dati. Naturalmente, ulteriori negoziazioni di Fase 2 IKE possono mantenere aperto il tunnel o, in alternativa, avviare una nuova negoziazione di Fase 1 e Fase 2 per stabilire un nuovo tunnel sicuro.