AH o ESP? Decidete in base a ciò che il pacchetto deve proteggere
AH autentica una parte maggiore del pacchetto e non cifra nulla; ESP può cifrare e autenticare. Scegliete in base ai campi da proteggere, poi concordate la modalità.
Due proposte IPsec possono nominare lo stesso algoritmo di integrità basato su SHA e chiedere comunque protocolli di protezione diversi; AH ed ESP non sono due grafie di un’unica impostazione di autenticazione. Leggete prima il protocollo, poi i suoi algoritmi, poi la sua modalità, e gran parte dell’ambiguità svanisce. AH autentica il pacchetto, compresi i campi dell’intestazione IP che restano immutati lungo il percorso, mentre ESP autentica e cifra ciò che incapsula e lascia in pace l’intestazione esterna. È quella differenza a decidere più distribuzioni di qualsiasi nome di hash.
Ciò che AH copre e ESP no
AH fornisce integrità, autenticazione dell’origine dei dati e il servizio anti-ripetizione che definisce, e nessuna riservatezza. La sua copertura comprende i dati del livello superiore e i campi dell’intestazione IP che le sue regole considerano immutabili, esattamente la parte che ESP in modalità trasporto lascia fuori. Quando un requisito dice che va autenticata l’intestazione IP stessa, AH è il protocollo che risponde.
Questa copertura è anche il motivo per cui AH è fragile sul campo. I campi modificabili come il TTL, il checksum dell’intestazione e alcune opzioni non possono essere autenticati perché i router possono riscriverli, quindi il protocollo li azzera prima di calcolare il controllo. Perciò qualunque cosa riscriva gli indirizzi rompe il calcolo, non solo la politica.
NAT trasforma la scelta in un vincolo
La traduzione degli indirizzi riscrive l’origine o la destinazione nell’intestazione IP che AH ha appena autenticato, quindi il controllo di integrità fallisce all’altro capo, e fallisce come errore di protocollo e non come un messaggio leggibile. ESP non autentica l’intestazione esterna, ed è per questo che ESP con attraversamento NAT funziona e AH dietro NAT no. Un tunnel con entrambi i capi dietro router ordinari è proprio il punto in cui questo appare per primo. La prima domanda non è quindi quale protocollo sia più forte, ma se ci sia un traduttore tra i due capi.
Se c’è, AH è fuori, e la conversazione passa a ESP e alle sue scelte di algoritmo. È un vincolo e non una preferenza, per questo sta in cima alla decisione e non alla fine.
La modalità moltiplica la domanda
ESP in modalità trasporto protegge il carico del livello superiore e lascia in pace l’intestazione IP; in modalità tunnel incapsula l’intero pacchetto interno, compresa l’intestazione IP interna, e lo protegge. AH ha le stesse due modalità, quindi AH o ESP sono in realtà quattro combinazioni prima di scegliere qualsiasi algoritmo.
Gli algoritmi ESP in modalità combinata risolvono poi l’integrità senza un secondo protocollo. AES-GCM e ChaCha20-Poly1305 autenticano e cifrano in un’unica costruzione, quindi aggiungere AH sopra non compra nulla ma costa un’altra intestazione e un’altra negoziazione. L’architettura consente AH ed ESP insieme, e la domanda pratica è se il gateway e la versione supportano la combinazione e se qualcuno potrà mantenerla dopo.
Il sostituto onesto per il solo AH
La variante ESP con sola integrità conserva l’algoritmo e rinuncia alla pretesa di cifratura invece di simularla, e supera NAT. Se un progetto ereditato usava AH perché serviva autenticazione senza riservatezza, quella variante è la traduzione diretta, non un tunnel cifrato con una nota allegata.
Vedere ESP in una proposta non è nemmeno prova di cifratura. Leggete l’algoritmo di cifratura: una voce NULL significa sola integrità, e una voce in modalità combinata significa entrambe.
Decidete con tre domande
Chiedete se serve riservatezza, se c’è un traduttore sul percorso e quali campi dell’intestazione vanno autenticati. Quelle tre risposte indicano un protocollo e una modalità, e scriverle richiede meno tempo che rileggere gli RFC più tardi.
Poi verificate ciò che è stato accettato e non ciò che è stato proposto. ip xfrm state mostra protocollo, modalità e algoritmi dell’associazione installata, e una discordanza non installa nulla, il che è un fallimento più pulito di un tunnel che sale senza la protezione prevista.
Tenete i fallimenti di autenticazione, la copertura dei selettori e i guasti di routing separati da questa scelta. Danno sintomi diversi, e dare la colpa al protocollo per un problema di selettore è un modo sicuro per passare una giornata a cambiare hash senza motivo.