Cosa sono e qual è il ruolo dei server DNS è ormai chiaro: essi si occupano di risolvere i nomi a dominio permettendo al browser di ottenere l’indirizzo IP pubblico corrispondente all’indirizzo mnemonico digitato dall’utente nella barra degli URL (esempio: www.google.it).
Negli articoli DNS Google, ecco come funzionano e perché sono utili e Server DNS 1.1.1.1: Cloudflare lancia il nuovo servizio che punta sulla privacy abbiamo visto cosa sono i DNS e quando è utile sostituire il resolver DNS con un altro.
Nell’articolo Cambiare DNS in Windows, Linux, macOS e Android abbiamo visto invece come modificare i DNS utilizzati nei vari sistemi operativi.
Da anni si parla del protocollo DNSSEC come valida soluzione per mettere un freno agli attacchi phishing e certificare in maniera inoppugnabile che il sito web che si sta visitando è proprio quello che dichiara di essere. Certo, i certificati digitali unitamente con l’utilizzo di HTTPS sono un’ottima soluzione per attestare l’identità di un sito web ma in passato abbiamo assistito all’emissione di certificati fasulli (in particolare DV; vedere Passare da HTTP a HTTPS: l’importanza del certificato SSL).
DNSSEC (Domain Name System Security Extensions) è un insieme di specifiche approvate da IETF, organismo internazionale, libero, composto da tecnici, specialisti e ricercatori interessati all’evoluzione tecnica e tecnologica di Internet, che fino ad oggi non sono state universalmente abbracciate.
DNSSEC è nato in primis per arginare i cosiddetti attacchi cache poisoning che mirano ad alterare il contenuto della cache dei server DNS così da fornire risposte alterate alle interrogazioni provenienti dai sistemi client. Ne avevamo parlato oltre 8 anni fa nell’articolo Sui principali server DNS inizia il passaggio a DNSSEC e ancor prima dopo le scoperte del ricercatore Dan Kaminsky.
Utilizzando DNSSEC si possono fronteggiare gli attacchi cache poisoning e le aggressioni di tipo man-in-the-middle (MITM) verificando l’integrità di richieste e risposte durante la risoluzione dei nomi a dominio.
Non tutti i TLD (Top Level Domain) supportano DNSSEC. I seguenti, ad esempio, sono giù compatibili: .com, .be, .net, .eu, .fr, .pl, .re, .pm, .yt, .wf, .tf, .info, .li, .ch, .biz, .de, .sx, .org, .se, .nl, .in, .us, .at, .nu, .la, .ac, .cz, .me, .sh, .io, .uk, .co.uk, .me.uk, .org.uk, .paris, .club, .xyz, .wiki, .ink
. Di recente anche il Registro .it ha attivato la possibilità di inserimento e gestione dei record DS.
In ambiente Linux per verificare se un TLD supporta l’utilizzo delle specifiche DNSSEC e, quindi, dei record DS basta digitare il comando seguente (al posto di it basta digitare il TLD da controllare):
Nel caso in cui non si ricevesse risposta significa che il TLD indicato non supporta l’utilizzo di record DS e quindi non contempla le specifiche DNSSEC.
Il comando può essere eseguito anche da Windows 10 dalla bash Linux: Linux in Windows: come, quando e perché utilizzarlo.
Come funziona DNSSEC
Il protocollo DNSSEC poggia sull’utilizzo della crittografia asimmetrica e, di conseguenza, usa uno schema che prevede l’impiego di due chiavi: una chiave privata e una pubblica.
Quando un utente accede a un sito web viene inviata una richiesta di risoluzione del nome a dominio al server DNS.
Se la corrispondenza tra indirizzo IP non fosse già nota a livello locale, allora il sistema interroga il server DNS impostato dall’utente (nelle impostazioni dell’interfaccia di rete oppure a livello di modem router/server DHCP). Se il server DNS interpellato non conoscesse l’IP corrispondente al nome a dominio indicato allora si attiva il cosiddetto meccanismo della ricorsione: si parte dalla radice interrogando uno dei server root nel dominio di primo livello, si ottiene il server che lo gestisce, si procede con un’interrogazione nel dominio di secondo livello fino a raggiungere il server autorevole per il nome desiderato.
Nel caso di DNSSEC, in caso di disponibilità di record DS, viene richiesta la chiave che consente al server di verificare che le informazioni ricevute siano identiche al record presente sul server autoritativo per il nome a dominio indicato.
Se il server ricorsivo determina che il record dell’indirizzo è stato inviato dal server autoritativo e non è stato modificato durante il percorso, il nome a dominio viene risolto e l’utente può accedere al sito (procedura di convalida).
Diversamente, se il record fosse stato modificato o non provenisse dall’origine indicata, il server ricorsivo non consente al browser di raggiungere quello che a tutti gli effetti viene considerato un indirizzo fraudolento diverso da quello ufficiale.
Portandosi a questa pagina e inserendo il nome a dominio di qualche sito web si potrà verificare come siano ancora pochi quelli che usano DNSSEC e i record DS.
Digitando per esempio cloudflare.com si potranno invece ottenere le chiavi pubbliche del noto provider statunitense.
Per i nomi a dominio .it il Registro ha recentemente aggiornato il sistema di validazione della configurazione DNS aggiungendo la possibilità di verificare l’eventuale presenza dei record DS. I provider italiani e stranieri si stanno adeguando in queste settimane per offrire ai loro clienti la possibilità di generare la coppia di chiavi crittografiche e compilare i record DS lato Registro.