Che cos'è il DNSSEC? Le estensioni di sicurezza del DNS spiegate

Il DNSSEC (DNS Security Extensions) è un insieme di estensioni che aggiungono l'autenticazione crittografica alle risposte DNS. Senza DNSSEC un attaccante può falsificare le risposte DNS e reindirizzare il traffico verso server malevoli, una tecnica nota come cache poisoning del DNS.

La catena di fiducia DNSSEC. rootDNSKEYDS.comDS → DNSKEYDSexample.comDNSKEY → RRSIG
Ogni livello firma la chiave del livello sottostante, a partire dalla radice.

Il problema che il DNSSEC risolve

Il DNS classico è stato progettato senza pensare alla sicurezza. Quando il tuo computer chiede «qual è l'indirizzo IP di bank.com?», si fida della risposta che riceve. Un attaccante posizionato tra te e il server DNS può iniettare una risposta falsa e reindirizzarti a un sito di phishing.

Il DNSSEC risolve il problema facendo firmare alle zone DNS i propri record con una chiave privata. I resolver possono verificare la firma usando la corrispondente chiave pubblica, assicurandosi che la risposta provenga dal legittimo proprietario della zona.

Come funziona il DNSSEC

  1. Il proprietario della zona genera una coppia di chiavi (record DNSKEY) e firma tutti i record DNS con la chiave privata, producendo record RRSIG
  2. La chiave pubblica (DNSKEY) viene pubblicata nel DNS
  3. Un hash della chiave pubblica (record DS) viene inviato alla zona superiore (.com, .org, ecc.)
  4. Anche la zona superiore è firmata, e così via fino alla zona radice
  5. Quando un resolver riceve una risposta DNS, segue la catena di fiducia dalla radice in giù per verificare le firme

Tipi di record del DNSSEC

Record TypePurpose
DNSKEYLa chiave pubblica di firma della zona
DSHash della DNSKEY della zona figlia, memorizzato nella zona superiore
RRSIGFirma crittografica su un insieme di record DNS
NSEC / NSEC3Prova che un record non esiste (negazione di esistenza)

La catena di fiducia

Il DNSSEC crea una catena di fiducia dalla zona radice fino ai singoli domini:

Root zone (.) ← Trust anchor, key is published by IANA
  └─ .com zone ← Signed, DS record in root zone
       └─ example.com ← Signed, DS record in .com zone
            └─ DNS records ← Signed with example.com's key

La chiave della zona radice (il «trust anchor») è integrata nei resolver che validano il DNSSEC. È il punto di partenza di ogni verifica.

Il DNSSEC NON cifra il traffico

Un malinteso comune: il DNSSEC autentica le risposte DNS ma non le encrypt . Query e risposte DNS viaggiano ancora in chiaro. Per la riservatezza usa:

  • DNS-over-HTTPS (DoH) — cifra il traffico DNS su HTTPS
  • DNS-over-TLS (DoT) — cifra il traffico DNS su TLS

Come attivare il DNSSEC per il tuo dominio

  1. Verifica che il tuo provider di hosting DNS supporti la firma DNSSEC
  2. Attiva la firma DNSSEC nel pannello di controllo del tuo provider DNS
  3. Il provider genera i record DNSKEY e firma la tua zona
  4. Copia i valori del record DS mostrati dal tuo provider DNS
  5. Invia il record DS al tuo registrar (di solito dal suo pannello di controllo)
  6. Attendi la propagazione (può richiedere fino a 48 ore)

Controlla lo stato del tuo DNSSEC

Provalo sul tuo dominio

Vedi la teoria in pratica: esegui Verifica DNSSEC sul tuo dominio.