Skip to main content

DNSSEC: un valido aiuto per la sicurezza

| Carlo Volpe | Servizi

Articolo letto 28 volte

DNSSEC rafforza il sistema dei nomi a dominio proteggendo il DNS da manomissioni e attacchi informatici.

Il Domain Name System (DNS) costituisce un'infrastruttura critica che presenta diverse vulnerabilità che richiedono particolare attenzione, specialmente da parte delle entità classificate come essenziali e importanti nell'ambito della direttiva europea NIS2.

Progettato e messo in esercizio negli anni '80, il DNS originario privilegiava la funzionalità e la velocità a discapito della sicurezza. Data l'enfasi attribuita al servizio DNS dalla normativa europea, GARR ha reso disponibile DNSSEC (Domain Name System Security Extensions) per aumentarne significativamente la sicurezza.

Il DNSSEC è un insieme di estensioni progettate per rendere il protocollo DNS più sicuro. Introduce una catena di fiducia lungo la struttura gerarchica del DNS ed è in grado di verificare l'autenticità delle informazioni

Per capire meglio come funziona DNSSEC, abbiamo intervistato Marco Gallo, responsabile dei servizi NIC e LIR di GARR.

Che cos’è esattamente il DNSSEC?

Il DNSSEC è un insieme di estensioni progettate per rendere il protocollo DNS più sicuro. Il DNS tradizionale non verifica l'autenticità delle informazioni né include una prova crittografica che i dati provengano dal nameserver autoritativo legittimo. Se un attaccante riuscisse a modificare i dati scambiati, potrebbe reindirizzare l'utente verso un sito fraudolento. Il DNSSEC risolve questo problema introducendo una catena di fiducia lungo la struttura gerarchica del DNS.

Come funziona questa catena di fiducia?

Ad ogni livello del processo di risoluzione vengono definiti dei passaggi di validazione che consentono di garantire che i dati provengano dal responsabile reale del dominio e che la risposta del DNS non sia stata manomessa.

Per fare questo, il DNSSEC utilizza firme digitali con coppie di chiavi pubbliche e private. La catena di fiducia parte quindi dalla radice del DNS fino ai domini finali: se anche un solo anello della catena non è valido, la risposta viene considerata non affidabile.

Quali tipi di attacchi informatici contrasta?

Il DNSSEC interviene sugli attacchi che prevedono la modifica o la manipolazione dei dati scambiati tra un resolver e un nameserver.

Tra questi abbiamo il cache poisoning, dove l'attaccante inietta record falsi nella cache di un DNS. Il DNSSEC impedisce questo attacco perché il resolver rifiuta qualsiasi record senza firma digitale valida e verificabile.

Un'altra tipologia è il DNS Spoofing: anche se un attaccante intercetta una richiesta e risponde con un IP falso, un resolver con DNSSEC attivo ignora la risposta a meno che essa non includa firme DNSSEC valide.

Poi c’è la Falsificazione di Inesistenza (NXDOMAIN): il DNSSEC estende la protezione alla negazione di esistenza di un dominio (NXDOMAIN). Utilizza i record NSEC/NSEC3 per creare una prova crittografica che un nome non esista all'interno di una zona.

Il DNSSEC interviene sugli attacchi che prevedono la modifica o la manipolazione dei dati scambiati tra un resolver e un nameserver

DNSSEC serve anche per proteggere la privacy delle richieste?

No, il DNSSEC non è un protocollo di cifratura e non protegge la privacy delle richieste DNS né impedisce l'intercettazione (sniffing) dei pacchetti. Per la riservatezza, è necessario affiancarlo con protocolli di crittografia come il DoH (DNS over HTTPS) o DoT (DNS over TLS).

Inoltre, DNSSEC non protegge dagli attacchi DDoS (Distributed Denial of Service). Non è stato progettato per bloccare o gestire l'enorme volume di traffico generato da un attacco di questo tipo. Al contrario, l'aumento della dimensione dei pacchetti di risposta richiede una configurazione attenta senza la quale i server DNSSEC potrebbero essere sfruttati involontariamente come amplificatori in attacchi di tipo reflection/amplification contro terze parti.

Come si attiva la Chain of Trust?

Per gli enti GARR, l'attivazione inizia con una richiesta via email a Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.. Il processo richiede che GARR aggiorni la delega del nome a dominio presso il database delle Authority dei TLD.

Come avviene il processo di validazione

Il DNSSEC utilizza coppie di chiavi asimmetriche (pubblica e privata) per generare firme digitali che garantiscono l'autenticità dei dati.

  • Zone Signing Key (ZSK) privata: genera le firme digitali (RRSIG) che coprono i set di record della zona figlio (es. i record A, MX, TXT).
  • ZSK pubblica: inclusa nel record DNSKEY della zona, è usata dai resolver validanti per verificare l'integrità delle firme RRSIG.
  • Key Signing Key (KSK) privata: utilizzata per firmare l'insieme delle chiavi pubbliche della zona (il set di record DNSKEY), inclusa la ZSK pubblica.
  • KSK pubblica: utilizzata dal resolver per verificare la firma della KSK privata sull'insieme delle chiavi (DNSKEY RRSet). Inoltre, il suo hash viene pubblicato come record DS (Delegation Signer) nella zona padre (es. TLD .it).

Quando un resolver (con DNSSEC attivo) riceve una risposta, esegue un processo di validazione gerarchico. Dopo aver collezionato i record, il resolver usa la ZSK pubblica per verificare l'RRSIG associata al record.

Questa verifica non basta, poiché un attaccante potrebbe alterare anche la chiave KSK se questa non è fidata. Per verificare l'autenticità della KSK, il resolver risale alla zona padre dove il register di dominio (es. GARR) ha caricato il record DS.

Il resolver confronta il record DS con l'hash della KSK Pubblica della zona figlio. Se c’è corrispondenza, il primo anello della Catena di Fiducia è stabilito. Questo meccanismo si ripete fino alla Root.

Al livello più alto, poiché non esiste un dominio padre sopra la Root, la catena termina con la Trust Anchor. Questa è la chiave pubblica KSK della Root, che è pre-configurata nel software del resolver.

Con la validazione successiva della KSK della Root tramite la Trust Anchor, il resolver completa il processo. Una volta validato con successo ogni anello, il record è contrassegnato come "secure" e viene restituito al client.

Il funzionamento è leggermente diverso per i domini .it e .eu. Per i primi chi gestisce il nameserver master della zona deve generare il record DS. GARR lo riceve e lo trasmette al Registro .it, che lo inserisce nella zona .it.

Per i domini .eu, invece, chi gestisce il nameserver master deve trasmettere la chiave pubblica KSK associata alla zona firmata. GARR inoltra la chiave pubblica a EURid che, per evitare errori di generazione dell'hash, genera autonomamente il record DS.

Quali consigli daresti a chi vuole adottare DNSSEC?

Sebbene la complessità di DNSSEC possa preoccupare, i moderni software DNS offrono funzionalità di automazione che ne semplificano la gestione. Dopo l'attivazione, l'attenzione va concentrata sul monitoraggio per assicurare stabilità ed efficienza. È fondamentale, infatti, monitorare l'impatto dell'aumento del payload dei pacchetti DNS sui firewall. Risposte troppo grandi possono innescare il fallback da UDP a TCP, introducendo latenza. Inoltre, è opportuno monitorare l'impatto prestazionale sui server autoritativi, verificando l'uso di risorse come RAM e carico della CPU dovuto alla maggiore necessità di potenza di calcolo.

La sicurezza operativa si basa poi sulla protezione delle chiavi private, in particolare la KSK. L'ideale è custodire le chiavi private su un dispositivo isolato dalla rete o utilizzare un HSM (Hardware Security Module), che custodisce le chiavi e firma i dati internamente, prevenendo l'esposizione.

In conclusione, DNSSEC è davvero così importante?

Chi gestisce un dominio e intende offrire un servizio affidabile non può ignorare il DNSSEC. È una componente fondamentale per la resilienza dell'infrastruttura. L'adozione di DNSSEC è cruciale per la conformità con la direttiva NIS2 poiché contribuisce a garantire la disponibilità e la continuità operativa del servizio, stabilendo un solido standard per la sicurezza delle reti e dei sistemi informativi.

In breve

Che cos’è DNSSEC?

È un’estensione di sicurezza del DNS che garantisce l’autenticità delle risposte.


Quali attacchi informatici previene DNSSEC?

Previene spoofing e manomissione delle risposte DNS.


DNSSEC è obbligatorio per le organizzazioni?

Non è obbligatorio, ma è fortemente raccomandato per migliorare la sicurezza della rete.