O que é o DNSSEC? Extensões de segurança do DNS explicadas

O DNSSEC (DNS Security Extensions) é um conjunto de extensões que acrescentam autenticação criptográfica às respostas DNS. Sem DNSSEC, um atacante pode forjar respostas DNS e desviar o tráfego para servidores maliciosos — uma técnica conhecida como envenenamento de cache DNS.

A cadeia de confiança do DNSSEC. rootDNSKEYDS.comDS → DNSKEYDSexample.comDNSKEY → RRSIG
Cada nível assina a chave do nível abaixo, a partir da raiz.

O problema que o DNSSEC resolve

O DNS clássico foi concebido sem pensar em segurança. Quando o seu computador pergunta «qual é o endereço IP de bank.com?», confia na resposta que recebe. Um atacante colocado entre si e o servidor DNS pode injectar uma resposta falsa e encaminhá-lo para um site de phishing.

O DNSSEC resolve isto fazendo com que as zonas DNS assinem os seus registos com uma chave privada. Os resolvers podem verificar a assinatura com a chave pública correspondente, garantindo que a resposta veio do legítimo proprietário da zona.

Como funciona o DNSSEC

  1. O proprietário da zona gera um par de chaves (registos DNSKEY) e assina todos os registos DNS com a chave privada, produzindo registos RRSIG
  2. A chave pública (DNSKEY) é publicada no DNS
  3. Um hash da chave pública (registo DS) é submetido à zona superior (.com, .org, etc.)
  4. A zona superior também está assinada, e assim até à zona raiz
  5. Quando um resolver recebe uma resposta DNS, segue a cadeia de confiança desde a raiz para verificar as assinaturas

Tipos de registo do DNSSEC

Record TypePurpose
DNSKEYA chave pública de assinatura da zona
DSHash da DNSKEY da zona inferior, guardado na zona superior
RRSIGAssinatura criptográfica sobre um conjunto de registos DNS
NSEC / NSEC3Prova de que um registo não existe (negação de existência)

A cadeia de confiança

O DNSSEC cria uma cadeia de confiança desde a zona raiz até aos domínios individuais:

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

A chave da zona raiz (a «âncora de confiança») está integrada nos resolvers que validam DNSSEC. É o ponto de partida de toda a verificação.

O DNSSEC NÃO cifra o tráfego

Uma confusão comum: o DNSSEC autentica as respostas DNS mas não as encrypt . As consultas e respostas DNS continuam a circular em texto simples. Para privacidade, use:

  • DNS-over-HTTPS (DoH) — cifra o tráfego DNS por HTTPS
  • DNS-over-TLS (DoT) — cifra o tráfego DNS por TLS

Como activar o DNSSEC no seu domínio

  1. Verifique se o seu fornecedor de alojamento DNS suporta a assinatura DNSSEC
  2. Active a assinatura DNSSEC no painel de controlo do seu fornecedor de DNS
  3. O seu fornecedor gera os registos DNSKEY e assina a sua zona
  4. Copie os valores do registo DS mostrados pelo seu fornecedor de DNS
  5. Submeta o registo DS ao seu registrar de domínios (normalmente pelo painel de controlo dele)
  6. Aguarde a propagação (pode demorar até 48 horas)

Verifique o estado do seu DNSSEC

Experimente no seu domínio

Veja a teoria na prática — execute Verificação DNSSEC para o seu próprio domínio.