O que é DNSSEC?
- Hemily Alves
- 7 de nov. de 2024
- 7 min de leitura
Quando o DNS foi criado no início dos anos 80, a segurança não era o foco do design. Era possível para um invasor, em casos raros, direcionar a consulta de um usuário para outro destino. A solução para essa vulnerabilidade foi apresentada nos anos 90, quando a comunidade técnica do DNS lançou o DNSSEC (DNS Security Extensions) ou Extensões de Segurança do DNS. A RFC 3833 conta esse histórico e as RFC 4034 e RFC 4035 trazem detalhes técnicos.
Como o DNSSEC funciona?
As extensões de segurança DNS fornecem um framework criptograficamente protegido projetado para melhorar a segurança e a confiabilidade do DNS. Em sua essência, o DNSSEC emprega um sistema de pares de chaves públicas e privadas. Para habilitar a validação DNSSEC, um administrador de zona gera assinaturas digitais (armazenadas como registros RRSIG) usando a chave de assinatura de zona privada e uma chave pública correspondente que é distribuída como um registro DNSKEY. Uma chave de assinatura de chave é usada para assinar e autenticar o ZSK, fornecendo uma camada adicional de segurança.
Os resolvedores DNS, quando consultados, recuperam o RRset solicitado e o registro RRSIG associado, que contém a chave de assinatura de zona privada. Em seguida, o resolvedor solicita o registro DNSKEY que contém a chave ZSK pública. Esses três ativos juntos validam a resposta que o resolvedor recebe. No entanto, a autenticidade do ZSK público ainda precisa ser verificada. É aqui que entram as chaves de assinatura de chave.
A chave de assinatura de chave é usada para assinar a ZSK pública e criar um RRSIG para a DNSKEY. O servidor de nomes publica uma KSK pública em um registro DNSKEY, como fez para a ZSK pública. Isso cria um RRset contendo ambos os registros DNSKEY. Eles são assinados pela KSK privada e validados pela KSK pública. Essa autenticação valida a ZSK pública – o objetivo da KSK – e verifica a autenticidade do RRset solicitado.

Quais os benefícios da implantação do DNSSEC?
O DNSSEC protege a internet:
Como o DNS é essencial para a operação da internet, é fundamental a proteção dos dados fornecidos pelo DNS. Fazendo uma analogia no DNS, pense como se estivesse no trânsito e as placas de trânsito que direcionam a internet da comunicação ao conteúdo e serviço correto. Assim como as placas das estradas, se os invasores apontarem estas placas para outras direções, as pessoas podem ser conduzidas a áreas perigosas das cidades.
DNSSEC protege usuários finais:
O DNSSEC pode garantir que os dados do nome de domínio recebidos pelos usuários finais são os mesmos dados que o registrante pretendia que o usuário final recebesse. O DNSSEC ajuda a garantir que, quando um usuário ou dispositivo final está tentando obter o conteúdo ou serviço apontado por um nome de domínio, o site com o qual eles estão se comunicando é o site que o registrante pretende acessar.
O DNSSEC protege empresas, organizações e governos:
O DNSSEC reduz a probabilidade de que os usuários finais que desejam usar serviços ou visualizar conteúdos sejam direcionados incorretamente para um site em que possam ser enganados por um invasor. Dessa maneira, é responsabilidade dos provedores (ISPs) ativar o recurso para validar assinaturas DNSSEC nos seus resolvedores e, com isso, gerar um valor agregado aos seus clientes.
DNSSEC promove a inovação:
O DNSSEC fornece uma maneira de verificar e proteger os dados DNS, permitindo que esses dados sejam confiáveis. Consequentemente, pode-se aproveitar o DNS global como um banco de dados seguro para nome/valores (por exemplo, você envia um nome e o DNS retorna um valor) distribuído globalmente e acessível ao público em geral. Como resultado, esse banco de dados seguro pode criar oportunidades de inovação e possibilitar novas tecnologias, serviços e instalações. Por exemplo, uma tecnologia que aproveita este recurso é o DANE (Autenticação de Entidades Nomeadas com Base no DNS), que cria uma nova maneira de proteger conexões na internet. O DANE aproveita os dados protegidos por DNSSEC no DNS e soluciona algumas das vulnerabilidades da maneira atual em que são feitas conexões seguras na internet. Isso torna o comércio e as comunicações na internet mais seguros.
Como colocar o DNSSEC em ação:
Em linhas gerais, o DNS possui dois lados: publicação, que é feita pelos registrantes (quem possui o domínio), e consultas (resolução) feitas pelos operadores de redes como os provedores. Para aproveitar os benefícios do DNSSEC, ambos os lados devem fazer suas implementações.
Registrantes: Responsáveis pela publicação de informações no DNS, devem garantir que seus dados de DNS estejam assinados com DNSSEC. Historicamente, este processo costumava ser complicado e sujeito a erros. Hoje em dia, a maioria dos softwares de DNS e sistemas de registro possuem ferramentas que automatizam as assinaturas de DNSSEC nos dados. (Este é o caso do .br que adotou uma excelente prática de configuração automática para todos que optem pelo servidor autoritativo do Registro.br.)
Provedor de Internet: No lado das consultas é muito mais fácil. O provedor só precisa habilitar a validação de DNSSEC nos servidores recursivos.
Usuários finais: Usuários finais tipicamente não precisam fazer nada a não ser motivar o seu provedor a habilitar o DNSSEC. Aqui um site interessante para verificar:
Quais são os custos associados ao DNSSEC:
Servidores de DNS em ambos os lados de publicação (autoritativos) e de consultas (recursivos) já suportam DNSSEC em suas últimas versões. Pode ser necessário atualizar a versão do software, o que já é uma prática recomendável por diversos outros motivos.
Para o servidor recursivo (maioria dos provedores), se o software de DNS instalado for razoavelmente moderno, o custo deve ser praticamente nulo, dado que apenas uma única nova configuração é necessária para iniciar a validação.
O que acontece se o DNSSEC não for implementado?
Clientes podem estar vulneráveis a ataques: Se uma organização decidir não implementar ou habilitar o DNSSEC, seus usuários podem estar suscetíveis a ataques. Quando um usuário realizar uma consulta, invasores podem inserir respostas falsas e possivelmente redirecionar a comunicação para máquinas controladas por criminosos. Os criminosos podem imitar páginas ou serviços e roubar usuários, senhas, etc. Mesmo que estes ataques sejam raros e dado que o DNSSEC já existe há algum tempo para prevenir exatamente este tipo de vulnerabilidades, as organizações que forem vitimizadas podem ter dificuldades para explicar aos clientes as razões para ainda não ter implementado DNSSEC. Assim como outras tantas formas de ataque são prevenidas, é provável que invasores aproveitem sites ou acessos que não utilizam DNSSEC.

Tipos e termos de registro de DNS relacionados:
Para ajudar a proteger o DNS, as extensões de segurança do DNS adicionam assinaturas criptográficas aos registros de DNS existentes. Essas assinaturas são armazenadas em servidores de nome DNS com outros tipos de registros DNS, como registros A (que criam uma conexão direta entre um endereço IPv4 e um nome de domínio), registros AAAA (que conectam nomes de domínio a endereços IPv6), registros MX (que direcionam e-mails para um servidor de e-mail de domínio) e registros CNAME (que mapeiam aliases para seus nomes de domínio verdadeiros ou "canônicos").
Outros registros e termos relacionados que são úteis para entender como o DNSSEC funciona incluem:
Registros DS (registros de signatário de delegação): Os registros DS são usados para estabelecer uma cadeia segura de confiança entre uma zona principal e uma zona secundária. Eles contêm o hash criptográfico de um registro DNSKEY.
Registro DNSKEY: Os registros DNSKEY (também conhecidos como chaves DNSSEC) armazenam chaves públicas associadas a uma zona DNS específica. Essas chaves são usadas para verificar assinaturas digitais e garantir a autenticidade e integridade dos dados DNS dentro dessa zona.
Os registros RRSIG (registros de assinaturas de registro de recurso): Os registros RRSIG contêm uma assinatura criptográfica associada a um conjunto de registros de recursos DNS.
RRset (conjunto de registros de recursos): Esta é uma coleção de todos os registros de recursos de um tipo específico associado a um nome específico no DNS. Por exemplo, se você tiver dois endereços IP associados a "example.com", os registros A desses endereços seriam agrupados para formar um RRset.
Registros NSEC (próximos registros seguros): Este é um registro que lista os tipos de registro existentes para um domínio e é usado para indicar a negação autenticada da existência de um nome de domínio específico. Funciona retornando o registro "próximo seguro". Por exemplo, se um resolvedor recursivo consulta um servidor de nomes em busca de um registro que não existe, o servidor de nomes retorna outro registro – o "próximo registro seguro" definido no servidor – indicando que o registro solicitado não existe.
NSEC3 (próxima versão segura 3): Este é um aprimoramento do NSEC. Ele melhora a segurança, tornando mais difícil para os invasores prever ou adivinhar os nomes dos domínios existentes em uma zona. Ele funciona de maneira semelhante ao NSEC, mas usa nomes de registros com hash criptográfico para evitar listar os nomes em uma zona específica.
Chave de assinatura de zona (ZSK): Pares de chaves de assinatura de zona (uma chave pública e uma chave privada) são chaves de autenticação usadas para assinar e verificar um RRset. No DNSSEC, cada zona possui um par de ZSK. A chave privada é usada para criar assinaturas digitais para o RRset. Essas assinaturas são armazenadas como registros RRSIG no servidor de nomes. A chave pública associada, armazenada em um registro DNSKEY, verifica as assinaturas, confirmando a autenticidade do RRset. No entanto, são necessárias medidas adicionais para validar a ZSK pública. Para isso, é utilizada uma chave de assinatura de chave.
Chave de assinatura de chave (KSK): Uma chave de assinatura de chave é outro par de chaves pública/privada e é usado para verificar se a chave de assinatura da zona pública não está comprometida.
Política de Publicação e Administração de Chaves DNSSEC
Introdução:
O Registro.br utiliza-se de 3 pares de chaves para assinatura em DNSSEC:
KSK BR (Key Signing Key da zona BR): Sua chave privada é utilizada apenas para assinar o conjunto de chaves públicas da zona BR, ou seja, chaves públicas do KSK BR e ZSK BR.
ZSK BR (Zone Signing Key da zona BR): Sua chave privada é utilizada para assinar records autoritativos da zona BR: conjunto de records do apex da zona BR, com exceção do record DNSKEY e conjunto de records DS e NSEC.
ZSK *.BR (Zone Signing Key das zonas abaixo de BR): Sua chave privada é utilizada para assinar records autoritativos de todas as zonas BR de segundo nível: conjunto de records do apex destas zonas e conjunto de records DS e NSEC/NSEC3.
Procedimento de geração de chaves:
Para todos os pares de chaves são gerados com a utilização de software desenvolvido pelo Registro.br e com auxílio de hardware especializado para geração de números randômicos.
KSK BR: Este par de chaves é gerado e armazenado num servidor criptográfico (HSM - Hardware Security Module) conectado apenas ao servidor de publicação DNS. O algoritmo utilizado é o ECDSA Curve P-256 with SHA-256.
ZSK BR: Este par de chaves é gerado num servidor conectado (on-line signer) apenas ao servidor de publicação DNS. O algoritmo utilizado é o ECDSA Curve P-256 with SHA-256.
ZSK *.BR: Este par de chaves é gerado num servidor conectado (on-line signer) apenas ao servidor de publicação DNS. O algoritmo utilizado é o ECDSA Curve P-256 with SHA-256.rocedimento de geração de chaves.
Fontes: https://registro.br/tecnologia/provedores-de-hospedagem/dnsshim/ https://www.dnssec.net/why-deploy-dnssec https://registro.br/tecnologia/provedores-de-hospedagem/dnsshim/
Comments