Introdução
As consultas e respostas DNS tradicionais são enviadas por UDP ou TCP sem criptografia. Isso é vulnerável à espionagem e spoofing (incluindo a filtragem de Internet baseada em DNS). As respostas de resolvedores recursivos aos clientes são as mais vulneráveis a mudanças indesejadas ou maliciosas, enquanto as comunicações entre resolvedores recursivos e servidores de nomes autoritativos geralmente incorporam proteção extra.
Para resolver esses problemas, o DNS público do Google oferece resolução de DNS em conexões TCP criptografadas por TLS, conforme especificado por RFC 7858. O DNS sobre TLS melhora a privacidade e a segurança entre clientes e resolvedores. Isso complementa a DNSSEC e protege os resultados validados por ela contra modificações ou spoofing no caminho para o cliente.
Como funciona
Um sistema cliente pode usar o DNS sobre TLS com um destes dois perfis: privacidade estrita ou oportunista. Com o perfil de privacidade restrito, o usuário configura um nome de servidor DNS (o nome de domínio de autenticação na RFC 8310) para o serviço DNS sobre TLS, e o cliente precisa criar uma conexão TLS segura com o servidor DNS na porta 853. Deixar de estabelecer uma conexão segura é um erro grave e resultará na indisponibilidade do serviço DNS para o cliente.
Com o perfil de privacidade oportunista, o endereço IP do servidor DNS pode ser configurado diretamente pelo usuário ou recebido da rede local (usando DHCP ou outros meios). O resolvedor de cliente tenta estabelecer uma conexão segura na porta 853 com o servidor DNS especificado. Se uma conexão segura for estabelecida, isso vai proporcionar privacidade para as consultas do usuário contra observadores passivos no caminho. Como o cliente não verifica a autenticidade do servidor, ele não está protegido contra um invasor ativo. Se o cliente não conseguir estabelecer uma conexão segura na porta 853, ele voltará a se comunicar com o servidor DNS na porta DNS padrão 53 por UDP ou TCP sem qualquer segurança ou privacidade. O uso da privacidade oportunista tem como objetivo oferecer suporte à implantação incremental de privacidade maior com uma visão da adoção ampla do perfil de privacidade rigoroso.
Ao usar um perfil de privacidade restrito, os resolvedores de stub estabelecem uma conexão DNS sobre TLS com as etapas a seguir.
- O resolvedor de stubs é configurado com o nome do resolvedor de DNS sobre TLS
dns.google
. - O resolvedor de stub recebe os endereços IP para
dns.google
usando o resolvedor de DNS local. - O resolvedor de stub faz uma conexão TCP com a porta 853 na porta desse endereço IP.
- O resolvedor de stub inicia um handshake de TLS com o resolvedor de DNS público do Google.
- O servidor DNS público do Google retorna o certificado TLS com uma cadeia completa de certificados TLS até um certificado raiz confiável.
- O resolvedor de stubs verifica a identidade do servidor com base nos certificados
apresentados.
- Se não for possível validar a identidade, a resolução de nomes DNS vai falhar e o resolvedor de stubs retornará um erro.
- Depois que a conexão TLS for estabelecida, o resolvedor de stubs terá um caminho de comunicação seguro entre um servidor DNS público do Google.
- Agora, o resolvedor de stub pode enviar consultas DNS e receber respostas pela conexão.
Ao usar um perfil de privacidade oportunista, primeiro o cliente tenta criar uma conexão TLS segura com o servidor. Isso é feito de maneira semelhante ao anterior, com uma diferença importante: nenhuma validação de certificado é executada pelo cliente. Isso significa que a identidade do servidor não é confiável. Se não for possível estabelecer uma conexão TLS na porta 853 com o servidor, o resolvedor de stubs voltará a se comunicar com o servidor DNS na porta 53.
Privacidade
Nossa Política de Privacidade se aplica ao serviço DNS sobre TLS.
Em 27/06/2019, reativamos a sub-rede de cliente EDNS (ECS, na sigla em inglês) para o serviço DNS sobre TLS. O ECS foi desativado no lançamento do serviço.
Suporte de padrões
O DNS público do Google implementa o DNS sobre TLS com base na RFC 7858 (link em inglês). Além disso, oferecemos suporte às recomendações a seguir para fornecer um serviço de DNS de alta qualidade e baixa latência.
- TLS 1.3 (RFC 8846)
- Abertura rápida do TCP (RFC 7413)
- Requisitos de implementação de transporte de DNS sobre TCP (RFC 7766)
Comece a usar
Consulte as instructions para configurar o recurso em um dispositivo com Android 9 (Pie) ou mais recente.
O DNS sobre TLS também é compatível com o serviço DNS64 público do Google somente para IPv6. Não é recomendável configurar o DNS64 para um dispositivo móvel que será conectado a várias redes, já que ele só funciona quando o IPv6 está disponível.