fb-pixel

DNSSEC: cos’è, come funziona e a cosa serve

Hai sentito parlare del DNSSEC e vuoi capire meglio come funziona e a cosa serve? In questo approfondimento vedremo perché è stato introdotto il DNSSEC e in quali casi può rivelarsi utile.

In breve il DNSSEC (DNS Security Extensions) aumenta la sicurezza del DNS (Domain Name System). La sua introduzione si deve al fatto che il sistema dei DNS ha delle potenziali falle che possono essere sfruttate per attacchi informatici.

Scopriamo perché il DNSSEC ha un ruolo cruciale nella sicurezza di siti e applicazioni.

Cos’è il DNSSEC

Il DNSSEC (Domain Name System Security Extensions) è un sistema di autenticazione che è stato introdotto per rendere più sicuro il sistema dei DNS.

Il sistema dei DNS, in poche parole, è ciò che rende possibile visitare le pagine web. Grazie ad esso, infatti, è possibile tradurre i nomi di dominio (es. “supporthost.com”) in indirizzi IP.

I nomi di dominio sono facili da ricordare per le persone, ma affinché gli scambi di informazioni avvengano sulla rete, è necessario che questi dati siano instradati verso la loro destinazione conoscendo gli indirizzi IP di server e altri dispositivi collegati alla rete.

Il DNS è quindi fondamentale per il funzionamento della rete: per visitare pagine web, inviare email e dati. Tuttavia, questo sistema non è di per sé completamente sicuro. Da qui si arriva alla creazione del DNSSEC che serve a risolvere il problema di sicurezza del DNS.

Di che problema si tratta?

Il DNS non prevede un sistema di autenticazione. Questo significa che durante il processo di risoluzione dei DNS (il passaggio che dal dominio permette di risalire all’IP), c’è il rischio di un attacco di spoofing DNS (anche conosciuto come cache poisoning DNS).

Lo spoofing avviene quando viene falsificata l’identità ad esempio di un host di rete. Nella pratica può succedere che quando cerchiamo di collegarci a un sito “sitolegittimo.com” un malintenzionato può sfruttare questa falla per reindirizzarci verso un sito malevolo “sitofasullo.com”.

Per quanto il DNSSEC sia ancora uno sconosciuto per i più, la vulnerabilità del sistema dei DNS è stata scoperta nel (ormai lontano) 1990.

Successivamente sono state effettuate delle modifiche volte a rendere sicuro il sistema, ma senza efficacia. Nel 2005 è stata creata una prima versione del DNSSEC (chiamata DNSSEC-bis), ma solo nel 2010 l’ICANN ha reso utilizzabile il sistema del DNSSEC per risolvere questo problema di autenticazione.

Per capire bene come funziona il DNSSEC, bisogna partire dal funzionamento del sistema dei DNS.

Come funziona il sistema dei DNS

Il processo di risoluzione dei DNS, vale a dire il passaggio che dal nome di dominio permette di risalire all’indirizzo IP, è formato da più step come abbiamo visto nella guida ai DNS.

Ecco i passaggi in breve:

  1. Mi collego dal browser al sito “dominio.com”.
  2. Il browser (che è il client), invia questa richiesta al resolver DNS.
  3. Il resolver DNS fa da intermediario e ha il compito di recuperare le informazioni per risalire all’IP corrispondente al dominio.
  4. Per ottenere queste informazioni il resolver invia le richieste a diversi server: server root, server TLD (in questo caso quello dei TLD “.com”) e al nameserver autoritativo di “dominio.com”.
  5. Quando il resolver DNS ottiene l’indirizzo IP lo comunica al browser che, a questo punto, può mostrare il contenuto del sito.

Questo è il processo in breve. Questi passaggi includono anche altri protagonisti: i record DNS.

I record DNS (di cui abbiamo parlato più approfonditamente nella guida alla propagazione DNS) non sono altro che informazioni memorizzate in un file di zona DNS. Tra queste informazioni c’è l’indirizzo IP che può essere memorizzato nel “record A“, nel caso di IP in formato IPv4, o nel “record AAAA” per gli IPv6.

Aggiungi Record Dns
Lo strumento “Zone editor” di cPanel permette di modificare e aggiungere record DNS per un dominio.

Ora che abbiamo chiarito in maniera semplificata il sistema dei DNS, siamo pronti a passare al passaggio successivo e capire come funziona il DNSSEC.

Come funziona il sistema dei DNS con DNSSEC

Con il DNSSEC si aggiunge un’ulteriore sicurezza al sistema dei DNS. Infatti, il DNSSEC aggiunge a questo scambio di informazioni che abbiamo visto prima, anche lo scambio di una firma crittografica.

La presenza di questa firma digitale fa sì che le informazioni possano essere verificate e quindi si impedisce a malintenzionati di intervenire durante lo scambio di informazioni agendo con un attacco man-in-the-middle.

Una piccola parentesi: gli attacchi man-in-the-middle avvengono quando una persona terza altera le comunicazioni tra due parti. Questo tipo di attacco può avvenire attraverso l’intercettazione e la manipolazione delle comunicazioni. Per quanto riguarda ad esempio i siti web, il protocollo HTTPS rispetto all’HTTP protegge lo scambio di informazioni crittografandole.

Hacker

Allo stesso modo, l’aggiunta di una chiave crittografica con il DNSSEC assicura che i domini siano davvero attendibili, impedendo l’inserimento di record falsi durante lo scambio di informazioni.

Come dicevamo prima, parlando di spoofing, durante la risoluzione dei DNS invece di arrivare al sito che avevamo richiesto, se i record vengono modificati da una terza parte, si può arrivare a un server DNS diverso, quindi a un IP diverso e di conseguenza a un sito diverso.

Uno dei rischi è quello di finire su un sito che è stato appositamente creato per rubare dati come credenziali di accesso, informazioni di pagamento e così via.

La validazione delle informazioni con il DNSSEC avviene in questo modo:

  1. Viene mandata la richiesta da un browser per visitare il sito “dominio.com”.
  2. La richiesta passa al resolver DNS.
  3. Il resolver DNS interroga i server DNS: root zone, TLD zone per “.com” e i nameserver di “dominio.com”.
  4. In questo caso, visto che il DNSSEC è abilitato, durante lo scambio delle informazioni oltre a comunicare i record DNS, viene anche trasmessa e convalidata la firma digitale.
  5. Il resolver per poter convalidare la richiesta deve quindi anche effettuare un controllo sulla firma digitale. La convalida avviene grazie a coppie di chiavi con il sistema PKC (Public Key Cryptography) (in modo simile alla convalida dei certificati SSL).
  6. Per finire la risposta validata ritorna al browser che mostra il contenuto del sito web o della risorsa richiesta.
Processo Validazione Dnssec
Semplificazione del processo di validazione delle informazioni con il DNSSEC.

Nella pratica, autenticando la validità dei server con il DNSSEC, si fa sì che non ci possano essere attacchi man-in-the-middle.

Questo è a grandi linee il funzionamento del DNSSEC. Passiamo adesso a una visione più approfondita.

Come funziona il DNSSEC in dettaglio

Per entrare più nel dettaglio vediamo come funziona la verifica. Questo tipo di convalida è formata sempre da una chiave privata e una chiave pubblica.

Se vuoi prima approfondire il meccanismo della Public Key Cryptography, puoi leggere questa risorsa introduttiva sulla PKC di RedHat (in inglese).

Vengono introdotte due chiavi chiamate DNSKEYS: KSK e ZSK. Vediamo a che cosa servono.

ZSK

La ZSK, Zone Signing Key, serve a validare la zona DNS.

Per esempio la zona DNS seguente consente di collegare un dominio a un IP con il record A:

dominio.com A 9.9.9.1

Viene quindi creato un record RRSIG, usando la chiave pubblica ZSK per validare la zona DNS.

A questo punto bisogna essere sicuri che la ZSK pubblica sia valida e realmente associata a “dominio.com” e quindi bisogna convalidarla a sua volta tramite la KSK.

KSK

Si usa una Key-Signing key (KSK) pubblica per convalidare l’altra chiave, la ZSK.

Grazie alla presenza delle KSK si entra in quella che è stata definita la “chain of trust” o catena di fiducia. Questa catena serve a convalidare le informazioni su più livelli.

Come dicevamo la risoluzione dei DNS coinvolge:

  • root server;
  • TLD server;
  • server “dominio.com”.

Viene introdotto un record DS (Delegation Signer) associato al server TLD, il cui contenuto è l’hash della KSK.

L’hash si ottiene trasformando una stringa in un’altra con un algoritmo di crittografia.

In questo modo quando il resolver DNS interroga il server di “dominio.com” e ottiene la KSK, può confrontare la KSK con il record DS del TLD e assicurarsi che corrispondano.

La stessa cosa succede al livello superiore. Il root server ha un DS record che punta al TLD. La KSK del TLD viene confrontata con questo DS record per la validazione.

Questa convalida a catena fa sì che ogni livello venga convalidato.

Se vuoi dei dettagli più tecnici sulla convalida a catena che ti permettano di capire i singoli passaggi in cui vengono trasmesse e convalidate le informazioni, puoi consultare questa risorsa (con video in inglese) di Daniel Benway.

Cosa fa il DNSSEC

Ora che abbiamo visto come funziona il DNSSEC, è il momento di chiarire meglio qual è il suo scopo e in quali situazioni è importante utilizzarlo.

Sicurezza

Il DNSSEC svolge queste tre funzioni:

  1. Convalida l’origine.
  2. Controlla l’integrità dei dati.
  3. Permette di avere un “denial of existence” autenticato.

La convalida dell’origine e dell’integrità dei dati avviene grazie al processo che abbiamo visto prima tramite l’uso delle chiavi DNSKEYS.

La verifica del “Denial of existence“, invece, avviene in questo modo: se io cerco un sottodominio, ad esempio “prova.supporthost.com”, in presenza del DNSSEC viene restituita una risposta che consente di capire che il sottodominio non esiste.

Questo è possibile grazie al fatto che viene effettuata una verifica e il server risponde effettivamente che il sottodominio non è esistente. Per effettuare questa verifica si usa il record NSEC.

Come si implementa il DNSSEC

Per prima cosa bisogna procedere per convalidare la Zona DNS. Questo significa creare i record che abbiamo visto prima per creare ZSK, KSK e gli RRSig.

Dopo aver impostato le chiavi e i record, bisogna testarli per capire che non ci siano errori.

Solo alla fine si imposta il DS record in modo che possa avvenire a tutti gli effetti la convalida. Il DNSSEC è infatti attivo solo dopo aver impostato il DS record.

Se sei cliente SupportHost, segui il tutorial per attivare il DNSSEC in pochi passaggi.

Per chi è necessario il DNSSEC

Attualmente il DNSSEC non è utilizzato in maniera capillare. Tuttavia, trattandosi di un sistema che permette di assicurare la validità di siti e applicazioni, verrà via via sempre più utilizzato.

A questo punto ti starai probabilmente chiedendo: serve a tutti? Serve a me nello specifico?

Se hai a che fare con dati sensibili, ad esempio tratti informazioni bancarie o mediche, oppure se sei in una situazione in cui la sicurezza dei dati è cruciale o è c’è un elevato rischio di attacchi, allora sì puoi seriamente pensare di attivare questo sistema di sicurezza aggiuntivo quanto prima. Dei rischi ne abbiamo già parlato abbondantemente nel corso di questo articolo.

Avevi già sentito parlare del DNSSEC? Hai ancora dubbi? Facci sapere con un commento.


Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Commenti

2 risposte a “DNSSEC: cos’è, come funziona e a cosa serve”

  1. Avatar Francesco B.
    Francesco B.

    Guida ben fatta, facile da comprendere (anche per me che ci capisco il giusto 😅) ed esaustiva.
    Grazie mille!

    1. Avatar Maria Grazia Guzzo
      Maria Grazia Guzzo

      Ciao Francesco, grazie per il commento! Ci fa piacere che la guida ti sia stata utile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *