1 Il DNS sicuro: DNSSEC

Le estensioni di sicurezza del Domain Name System, note come DNSSEC [14], sono pensate per rendere sicure (ovvero autenticate) le risposte che si ottengono dai server DNS, per evitare attacchi di tipo DNS spoofing. Con DNSSEC si costruisce una ``catena di fiducia'' utilizzando la crittografia a chiave pubblica, per cui ogni zona firma le chiavi delle proprie zone di livello inferiore (ovvero it può firmare xyz.it, che a sua volta può firmare abc.xyz.it).

DNSSEC aggiunge alcuni resource record al DNS, ovvero:

KEY:
contiene una chiave pubblica, associata ad una zona DNS, ad un host o ad un utente (ogni risorsa può essere associata a più di un record KEY). Oltre alla chiave, il record contiene dei campi che indicano il relativo algoritmo crittografico e il protocollo per cui la chiave può essere utilizzata; attualmente gli utilizzi possibili sono DNSSEC, IPsec, TLS e la posta elettronica.
SIG:
permette di immagazzinare firme digitali, ottenute mediante crittografia a chiave pubblica. Un server DNSSEC, rispondendo ad un'interrogazione, oltre ai record richiesti fornirà anche i corrispondenti record SIG, in modo da autenticare i dati forniti.
NXT:
permette di autenticare l'inesistenza di una risorsa. Questo record è associato ad un nome esistente e fornisce il successivo nome esistente, dichiarando l'inesistenza di qualsiasi nome tra i due (ciò implica che i record debbano essere ordinati).
CERT:
permette di immagazzinare dei certificati, ad esempio X.509 e PGP. Il record KEY (che contiene solo una chiave pubblica, non un certificato) non è destinato ad immagazzinare chiavi pubbliche ``personali'', per le quali si utilizza quindi CERT (questo record è definito in [21]).

Al di là dell'uso connesso alla sicurezza del DNS, ciò che importa ai fini dell'instaurazione della connessione IPsec è il fatto che con DNSSEC si può utilizzare il DNS come sistema per la distribuzione di chiavi pubbliche, immagazzinate nei record KEY e autenticate tarmite i record SIG.

DNSSEC è implementato nella versione attuale del server DNS BIND41 (la 9.1), ma il suo utilizzo non è ancora diffuso, anche perché risolve il problema della sicurezza ma ne apre di nuovi. Infatti comporta un maggiore carico computazionale (per via della crittografia a chiave pubblica) e una maggiore quantità di dati da immagazzinare, inoltre non è ancora ben chiaro come gestire tutte le chiavi pubbliche. Per una discussione su DNSSEC e sulle problematiche relative si veda [22].



Footnotes

... BIND41
Con eccezione del record CERT.
©2001 Davide Cerri