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