O (Extensões de Segurança do Sistema de Nomes de Domínio, do inglês Domain Name System Security Extensions) assina os dados DNS para que um resolvedor possa provar que uma resposta não foi adulterada. Quando você consulta com +dnssec (o que define a flag do do ), os registros extras aparecem ao lado dos normais.
Os tipos de registro
- RRSIG é uma assinatura sobre um conjunto de registros de um tipo (um RRset). Seu rdata começa com o tipo que ela cobre, o número do algoritmo, uma contagem de labels, o original, um horário de expiração e de início da assinatura, um key tag e o nome de quem assinou, seguidos pela assinatura em si. A janela de validade importa operacionalmente: um RRSIG expirado faz um resolvedor validador retornar
SERVFAIL, e assinaturas expiradas são uma causa comum de um domínio que "de repente parou de resolver" para alguns usuários mas não para outros. - é uma chave pública da zona. Um validador a usa para verificar os RRSIGs daquela zona. Seu rdata é um campo de flags, um byte de protocolo (sempre 3), um algoritmo e o material da chave.
- DS (Delegation Signer) é o elo entre uma zona pai e uma filha. É um hash da DNSKEY (registro de chave pública do DNS, do inglês DNS Public Key) da filha, publicado na pai. Seu rdata é um key tag, um algoritmo, um tipo de digest e o digest. É o registro que você entrega ao seu registrar para ligar o DNSSEC de uma delegação.
- e fornecem negação de existência autenticada. Em vez de simplesmente dizer "não existe esse nome", uma zona assinada prova a lacuna: NSEC (registro Próximo Seguro, do inglês Next Secure) aponta para o próximo nome existente, e NSEC3 faz o mesmo sobre nomes com hash para dificultar a varredura da zona. É assim que um
NXDOMAINou NODATA validado é, ele próprio, confiável.
A cadeia de confiança
A validação é uma cadeia da raiz para baixo. Um resolvedor confia na chave da raiz (o único trust anchor configurado), usa o DS da raiz para atestar a DNSKEY do domínio de topo, usa isso para validar o DS do (domínio de topo, do inglês top-level domain) para a próxima zona, e assim por diante até o nome que você pediu. Cada salto é um DS na pai combinando com uma DNSKEY na filha, e cada RRset é coberto por um RRSIG. Uma quebra em qualquer ponto, um DS ausente em uma delegação, um key rollover que removeu a chave errada, uma assinatura expirada, rompe a cadeia e o resolvedor retorna SERVFAIL.
O que ad realmente significa
A flag ad (Authentic Data) no cabeçalho é o veredito do resolvedor: significa que este resolvedor específico validou a cadeia e ela se sustentou. Não é uma prova em que você possa confiar de forma independente, a menos que confie no resolvedor e no caminho até ele, e não significa que o cliente validou algo. Se você consultou com do definido e recebeu dados reais de volta mas ad não está definido, o resolvedor ou não validou ou o dado não é assinado; essa lacuna costuma ser o que vale a pena investigar.
A flag AD diz o que outra pessoa concluiu
ad numa resposta significa que o resolvedor que você consultou validou a cadeia. Não significa que a resposta é assinada, e não significa que você validou nada.
Entre aquele resolvedor e sua aplicação existe um caminho que você pode não controlar. Uma resposta forjada com o bit ligado é idêntica a uma validada para qualquer coisa que confie na flag sem validar — razão pela qual o bit só é significativo sobre um canal confiável até um resolvedor confiável.
Se a validação importa para você, valide — +dnssec e conferir a RRSIG você mesmo responde à sua pergunta. A flag AD responde à de outra pessoa.