O que é DNSSEC e como funciona?
DNSSEC (Domain Name System Security Extensions, extensões de segurança do sistema de nomes de domínio) são assinaturas criptográficas que são adicionadas aos registros de DNS para proteger os dados transmitidos por redes de Protocolo de Internet (IP). O DNSSEC existe porque os arquitetos fundadores do DNS não incluíram nenhuma medida de segurança do protocolo. Isso permitiu que os invasores descobrissem oportunidades para falsificar registros e direcionar os usuários para websites fraudulentos. Portanto, o protocolo DNSSEC foi introduzido para adicionar uma camada de autenticidade e integridade às respostas do DNS.
O DNSSEC funciona adicionando assinaturas criptográficas a registros do DNS existentes para estabelecer um DNS seguro. As assinaturas são armazenadas em servidores de nomes do DNS junto com tipos de registro comuns, como AAAA e MX. Em seguida, ao verificar a assinatura que corresponde a um registro DNS solicitado, você pode verificar se o registro deriva diretamente de seu servidor de nomes autorizado. Isso significa que o registro nunca foi envenenado ou adulterado durante seu trânsito digital, evitando assim a introdução de registros falsos.
Facilitar a validação da assinatura
Dependendo da situação, o DNSSEC adicionará um dos seguintes tipos de registro DNS para facilitar a validação da assinatura:
Assinatura do registro de recursos (RRSIG): contém uma assinatura criptográfica DNSSEC para um conjunto de registros
DNSKEY: contém uma chave de assinatura pública
DS: contém o hash de um registro DNSKEY
NSEC e NSEC3: fornece um link para o seguinte nome de registro na zona e também lista os tipos de registro disponíveis para o nome do registro
CDNSKEY e CDS: transmite o estado DS solicitado da zona secundária para a zona principal e solicita atualizações para os registros DS na zona principal
Devo ativar o DNSSEC em meu domínio?
O DNSSEC ajuda a proteger seu domínio contra envenenamento de cache e falsificação de resposta. É uma adição crucial ao seu domínio, porque o clima digital de hoje exige que a arquitetura de um proprietário de website esteja protegida de ponta a ponta - e um ataque DNS bem-sucedido pode prejudicar muito a reputação de uma marca. A resolução de DNS ocorre antes que um usuário interaja com a aplicação de um website. Se o DNS for interceptado por um invasor, um usuário que queira visitar um website pode interagir com um website falso (destinado a enganar o usuário) em vez do website pretendido. A rígida arquitetura de cache do protocolo dificulta a correção rápida de registros envenenados.
Assim, mesmo que um website seja fortalecido por firewalls fortes, os dados e a tecnologia de um usuário final estarão em risco se a arquitetura DNS de um website não estiver suficientemente protegida com o uso de DNSSEC.
Agrupar registros DNS em RRSets
A integração do DNSSEC com seu domínio começa com o agrupamento de registros DNS por nome e tipo de registro em conjuntos de registros de recursos (RRSets). O próprio DNS é dividido em zonas DNS. Uma zona é uma parte do namespace de DNS geral que é supervisionada pela organização geral do proprietário de DNS ou por um administrador de rede. Essa zona permite a manutenção detalhada de componentes DNS, como servidores de nomes autorizados.
Cada zona é assinada por um emparelhamento das chaves públicas e privadas conhecidas como a chave de assinatura de zona (ZSK). A assinatura resultante é publicada como um registro RRSIG no próprio arquivo de zona. Por exemplo, se o nome de host "www.dsnsecexample.com" incluir um registro A e AAAA, o arquivo de zona anunciará um registro RRSIG correspondente para cada versão IP.
Ao isolar as zonas DNS umas das outras, as zonas adjacentes são protegidas na hipótese de que uma zona seja infectada por um invasor.
Assinaturas de registro de recursos
Um registro RRSIG contém uma assinatura DNSSEC digital de um RRSet. Essas assinaturas digitais são usadas para autenticar quaisquer dados localizados nos RRSets assinados. Os resolvedores podem verificar a assinatura com uma chave pública armazenada em um registro DNSKEY.
Esses RRSets para tipos de registro e nomes de domínio de propriedade são armazenados em uma zona de DNS assinada. Quando um servidor de nome de domínio usa a chave privada de um par ZSK para assinar RRSets dentro de uma determinada zona, um registro RRSIG é usado para armazenar as assinaturas digitais de cada RRSet. Como tal, uma zona assinada contém um registro RRSIG para cada RRSet.
Um registro RRSIG consiste nestes componentes:
Tipo coberto: o tipo de registro DNS coberto pelo RRSIG
Algoritmo: um algoritmo criptográfico que gera a assinatura final
Contagem de rótulos: o número de rótulos no nome do registro RRSIG original (usado para validar curingas)
TTL original: valor TTL do conjunto de registros coberto
Expiração da assinatura: a hora em que a assinatura expira
Início da assinatura: a hora em que a assinatura foi inicialmente criada
Tag chave: um valor numérico para identificar o registro DNSKEY usado para validar esta assinatura RRSIG
Nome do signatário: o nome do registro DNSKEY usado para validar essa assinatura
Assinatura: a assinatura criptográfica usada para verificar a transmissão
Chaves de assinatura de zona
Um ZSK é uma chave para autenticar dados transmitidos. O ZSK é um aspecto do mesmo RRSet que a chave de assinatura de chave (KSK), que tem uma chave privada correspondente para assinar este RRSet DNSKEY. Cada zona tem um par de ZSKs, e uma zona habilitada para DNSSEC anunciará o ZSK público como um registro DNSKEY para que os resolvedores possam autenticar os valores RRSIG.
A validação DNSSEC não faz distinção entre ZSKs e outras chaves de autenticação DNSSEC, possibilitando o uso de uma chave como chave de assinatura de chave e ZSK. A verificação bem-sucedida indica que os registros de DNS não foram forjados nem manipulados em trânsito, uma vez que apenas o administrador da zona terá acesso ao ZSK privado.
O ZSK corresponde à chave privada usada para assinar uma zona e geralmente faz parte do mesmo RRSet que a chave pública de assinatura que corresponde à chave privada que assina esse RRSet.
Chaves de assinatura de chave
O KSK é um par de chaves computacionalmente mais caro implementado para melhorar ainda mais a postura de segurança dos registros DNSKEY. Ele foi introduzido para aliviar a carga de gerenciamento para o administrador de zona. O KSK corresponde a uma chave privada e é usado para assinar outras chaves de autenticação para uma determinada zona. Normalmente, a chave privada correspondente a um KSK assinará um ZSK, que tem uma chave privada correspondente para assinar outros dados encontrados na zona de DNS. Os resolvedores autenticarão essa assinatura digital com o registro DNSKEY de texto sem formatação pertinente que anuncia o KSK público.
Os KSKs e seus registros correspondentes do signatário de delegação são atualizados apenas periodicamente, em vez de ZSKs, que são atualizados com mais frequência. Assim, a arquitetura ideal de uma perspectiva de segurança e operacional é assinar um ZSK com rotação frequente com um KSK separado e mais duradouro. Essa implementação faria mais para proteger a zona de DNS contra possíveis ameaças, ao mesmo tempo em que minimiza a quantidade de manutenção contínua de DNSSEC.
Registros do signatário de delegação
O DNSSEC estabeleceu o registro do signatário de delegação (DS) para criar um modelo de "cadeia de confiança" com resolvedores de DNS públicos. Nesses cenários, agentes mal intencionados poderiam teoricamente falsificar respostas do DNS e retornar um registro DNSKEY forjado que compromete a integridade da zona. Os registros DS publicam uma impressão digital do KSK público na zona principal.
Durante a validação, o resolvedor garantirá que o registro DS da zona principal corresponda ao registro DNSKEY correspondente da zona secundária para autenticar a legitimidade do par de chaves secundária. Essa cadeia de confiança é mantida até a zona raiz, o que inclui âncoras de confiança integradas à maioria dos resolvedores recursivos.
NSEC e NSEC3
O registro Next Secure (NSEC) pode ser usado para determinar se um nome existe em uma determinada zona. Ele foi introduzido para resolver o problema de casos em que os registros não existem em uma zona, geralmente conhecida como o problema de autenticação de "negação de existência". Os invasores podem explorar essa vulnerabilidade e tornar um website inutilizável forjando uma resposta de NXDOMAIN para o nome de host do website.
O NXDOMAIN aborda essa falha incluindo um registro NSEC que indica o próximo registro canônico na zona que existe quando uma consulta é recebida para um nome inexistente, bem como o tipo de registros que aparece nesse nome.
Por exemplo, se a zona "example.com" fosse classificada e "beta.example.com" fosse o primeiro registro, uma consulta para "alpha.example.com" resultaria em um NXDOMAIN e um registro NSEC apontando para "beta.example.com." Os registros NSEC, como quaisquer outros registros, são assinados pelo ZSK e têm um RRSIG correspondente. Como resultado, uma resposta de NXDOMAIN requer que um registro RSIG NSEC autenticado seja válido.
O NSEC3 foi desenvolvido para resolver o problema dos registros NSEC que estão sendo usados para listar todos os registros válidos em uma zona. NSEC3 se comporta de forma idêntica a NSEC, exceto que o próximo nome seguro na zona é hash, em vez de ser exibido em texto não criptografado. Isso ajuda a proteger as informações e evitar o deslocamento da zona.
Modos de operação do DNSSEC
Assinatura offline de zonas estáticas
Há muitos modos de operação DNSSEC, cada um com sua própria abordagem exclusiva de como os dados na zona de DNS são assinados. Desses modos, um dos mais comuns é a assinatura offline de zonas estáticas, o que permite uma proteção forte para o sistema de assinatura contra ameaças externas. Este modelo de operação mantém todas as chaves privadas encontradas em uma máquina que não está atualmente conectada à rede e é eficaz nos casos em que as informações encontradas na zona de DNS não são alteradas com frequência.
Assinatura online centralizada
A assinatura online centralizada é outro modo recorrente de operação DNSSEC. Nos casos em que os administradores assinam dados em um DNS dedicado e de acesso restrito, a assinatura online centralizada permite que os dados DNS sejam rapidamente alterados e publicados na zona. Assim como ocorre com a assinatura offline de zonas estáticas, na assinatura online centralizada, um único signatário central replicado realiza toda a assinatura de dados. Em seguida, os dados recém-assinados circulam para os servidores DNS autorizados.
Assinatura em tempo real
A assinatura em tempo real de dados é um modo de operação DNSSEC que permite que os servidores DNS autorizados assinem dados conforme necessário. O problema com essa abordagem é que ela pode criar uma situação em que a chave existe em uma variedade de máquinas diferentes, cada uma com acesso direto à Internet, introduzindo, assim, mais caminhos para o acesso externo ao namespace pelos invasores. A distribuição de chaves, quando um remetente escolhe um valor de chave secreta e, em seguida, o envia com segurança ao destinatário, também se torna mais complexa com a assinatura instantânea e pode aumentar desnecessariamente os requisitos de computação em cada nó.
Riscos de incorporar DNSSEC
Embora o DNSSEC seja uma forma inestimável de aumentar a segurança da rede, ele pode, involuntariamente, introduzir vulnerabilidades críticas. O DNSSEC pode aumentar o risco e amplificar os efeitos de ataques distribuídos de negação de serviço (DDoS), em que um servidor, serviço ou rede é interrompido pelo tráfego de vários dispositivos ao mesmo tempo. O DNSSEC aumenta o número de respostas de consulta de DNS, pois a tecnologia requer campos adicionais e informações criptográficas para verificar corretamente os registros. Isso significa que as respostas de alto volume podem permitir que os agentes mal intencionados tenham um volume de ataque muito maior contra uma zona do que poderiam se o DNSSEC não estivesse em vigor.
Handshake tridirecional necessário
Como o TCP (Transmission Control Protocol, protocolo de controle de transmissão) é um protocolo orientado a conexão, ele é lento e requer um handshake tridirecional. Dessa forma, o DNS (e, portanto, o DNSSEC) depende do UDP (User Datagram Protocol, protocolo de datagrama do usuário), um protocolo mais rápido e arriscado que não tem requisitos para abrir, manter ou encerrar uma conexão, nem pode garantir a entrega de dados assinados para seu destino. O UDP fornece apenas a funcionalidade de verificação de erros mais básica na forma de somas de verificação e, como não requer handshake, os dados transmitidos podem ser facilmente interceptados por invasores.
A falsificação de UDP ocorre quando os invasores criam um pacote de solicitação de UDP válido que lista o endereço IP de seu destino como o endereço IP de origem de UDP. O invasor pode então enviar o IP de origem falsificado para algum servidor intermediário, que enviará todos os seus pacotes de resposta UDP, gerando assim uma resposta muito maior do que o pacote de solicitação. Essa resposta é suficiente para elevar o nível de tráfego de ataque enviado ao endereço IP do destino.
Essas circunstâncias também aumentam a duração das consultas de DNS, o que amplifica a gravidade dos ataques. A extensão em que esses ataques são amplificados pode ser expressa como uma proporção do tamanho da resposta ao tamanho da solicitação. Por exemplo, se um invasor enviar uma solicitação de 64 bytes a um servidor DNS, ele poderá gerar mais de 3.400 bytes de tráfego mal intencionado para ser direcionado a uma vítima escolhida.
Entendendo a cerimônia de assinatura raiz
Uma cerimônia de assinatura raiz do DNS é um procedimento rigoroso realizado para assinar as informações de chaveamento público da zona de DNS raiz para os próximos meses. Esse processo garante que haverá menos de uma chance de um em um milhão de que um grupo de conspiradores possa comprometer a chave de assinatura raiz. Ocorre em um dos dois locais que protegem o KSK raiz. A chave de assinatura privada usada nesse processo é uma chave para desbloquear a Internet protegida por DNSSEC.
Solução de problemas de zona de DNS raiz sem suporte
Esta cerimônia resolve o problema de zonas DNS raiz sem suporte, o que significa uma zona que não pode ser supervisionada quanto à integridade por alguma zona principal. Ele requer alguns participantes, incluindo um administrador de cerimônia, uma testemunha interna, um controlador de segurança de credenciais, um controlador de segurança de hardware e três agentes de criptografia. Cada membro é um membro da equipe da Internet Corporation for Assigned Names and Numbers (ICANN), além dos agentes de criptografia que são voluntários da comunidade da Internet.
Acessar as credenciais com segurança
Há dois cofres: as credenciais são seguras e o hardware é seguro. Ambos devem ser acessados para acessar a chave raiz. O controlador de segurança de credenciais abre o cofre de credenciais, que contém cofres, cada um requer duas chaves mantidas pelo administrador da cerimônia e um agente de criptografia. Essas caixas contêm um cartão do operador e um cartão de permissões de segurança necessários para abrir o módulo de segurança de hardware localizado no cofre de hardware. Os cartões são armazenados dentro de caixas plásticas embaladas em sacos invioláveis, que são deixados em segurança para credenciais.
Abrir o hardware com segurança
O controlador de segurança de hardware entra na sala segura e abre o hardware seguro que contém o módulo de segurança de hardware. O hardware seguro também contém um laptop que não tem bateria ou disco rígido e é designado para enviar comandos ao módulo de segurança. Este é o que será usado para assinar as chaves DNS raiz na cerimônia, cada aspecto do qual é meticulosamente gravado e transmitido ao vivo para a Internet para fins de posteridade.
Envolver os agentes de criptografia
Assim que a cerimônia começar, os agentes de criptografia devem entregar seus cartões de operador ao administrador da cerimônia, que inicializa o notebook a partir de um DVD e inicializa o USB que registra os registros da cerimônia. Este administrador utiliza então os três cartões de operador para ativar o módulo de segurança, que é então ligado ao computador portátil através de um cabo ethernet. A solicitação de assinatura de chave é carregada no laptop, e um hash PGP da solicitação de assinatura de chave é calculado, que é então verificado para garantir que seja idêntico ao hash fornecido. Neste ponto, o administrador da cerimônia assina a solicitação de assinatura de chave com o KSK privado, que cria uma coleção de assinaturas digitais: o registro RRSIG.
Implemente o DNSSEC hoje mesmo para reforçar a segurança do domínio
Basta um ataque DNS bem-sucedido em seu domínio para impactar permanentemente a integridade de seu ecossistema digital e a reputação de sua marca como um todo. As assinaturas criptográficas DNSSEC fortalecem o processo de resolução de DNS para proteger seu domínio contra ameaças virtuais, como envenenamento de cache e falsificação de resposta. Em última análise, isso permite a segurança de ponta a ponta para os dados e a tecnologia de sua organização e de seus usuários finais.
Explorar as diversas soluções de DNS da Akamai
A Akamai continua a expandir nossa plataforma para permitir uma variedade de serviços de DNS superiores para proprietários de domínios:
Obtenha estabilidade e resiliência de domínio com o serviço DNS de edge
Faça o balanceamento de carga de seus data centers, implantações de nuvem e CDNs com o Global Traffic Management
Dimensione sua aplicação em grande escala com o Application Load Balancing (ALB) Cloudlet
Certifique-se de que todos os dispositivos da rede verificam uma ferramenta de segurança DNS e permitam que o resolvedor DNS se torne uma ferramenta de segurança com o Secure Internet Access Enterprise
Acesse uma variedade de recursos de DNS juntando-se à Comunidade Akamai
Você é um profissional de DevOps? Confira nossa comunidade de desenvolvedores.
Precisa de mais ajuda? Entre em contato conosco hoje mesmo..
Publicado originalmente em 19 de março de 2021; atualizado em junho de 2022.