Aula 3 de 4 · 7 min
DNS criptografado: DoH e DoT
Dois padrões envolvem as buscas de DNS em criptografia. O que isso realmente esconde, o que ainda não esconde, e como o macOS oferece suporte.
A aula anterior descreveu uma busca de DNS simples como um cartão-postal: legível por qualquer um que o manuseie no caminho. Existem dois padrões do IETF para colocar esse cartão-postal em um envelope: DNS sobre TLS (DoT, RFC 7858) e DNS sobre HTTPS (DoH, RFC 8484). Os dois criptografam a mesma busca; eles diferem principalmente em como a transportam.
DNS sobre TLS
A RFC 7858 declara seu objetivo diretamente: “a criptografia fornecida pelo TLS elimina oportunidades de espionagem e adulteração no caminho das consultas de DNS”, tratando do fato de que “quase todas as consultas de DNS são enviadas sem criptografia, o que as torna vulneráveis à espionagem por um atacante”. O DoT usa sua própria porta dedicada, 853, em vez da porta 53 habitual. A RFC explica por quê: “essa recomendação contra o uso da porta 53 para DNS sobre TLS é para evitar complicação na escolha de uso ou não uso do TLS e para reduzir o risco de ataques de downgrade”.
DNS sobre HTTPS
A RFC 8484 segue um caminho diferente: “cada par de consulta-resposta de DNS é mapeado em uma troca HTTP”, transportado pela mesma porta 443 que o tráfego HTTPS comum usa. A RFC observa que isso tem um benefício colateral: “a porta padrão 443 do HTTPS e a capacidade de misturar o tráfego DoH com outro tráfego HTTPS na mesma conexão podem dissuadir dispositivos sem privilégios no caminho de interferir nas operações de DNS”, porque uma busca fica mais difícil de isolar e bloquear quando parece qualquer outra solicitação web.
| DNS sobre TLS (DoT) | DNS sobre HTTPS (DoH) | |
|---|---|---|
| Porta | 853, dedicada ao DoT | 443, compartilhada com o tráfego HTTPS comum |
| Visível na rede como | Tráfego próprio e distinto (fácil de identificar e, se uma rede quiser, bloquear) | Misturado com a navegação web normal |
O que a criptografia esconde, e o que ainda não esconde
Os dois padrões impedem que um operador de rede ou espião de Wi-Fi leia suas buscas em trânsito. Nenhum dos dois as esconde do resolvedor para o qual você as enviou. A RFC 8484 é explícita de que o DoH não muda o que o próprio servidor consegue ver: ela observa que “vários transportes de consultas e respostas de DNS de fato fornecem dados que podem ser usados para correlacionar solicitações”, e que mecanismos web comuns, como endereços IP do cliente, cookies e informações de sessão TLS, significam que “não se sabe que o DoH introduza novas preocupações além daquelas associadas ao HTTPS” no lado do servidor. A RFC 7858 observa de forma semelhante que o DoT “não trata outras questões de segurança no DNS” e que “mesmo com mensagens criptografadas, uma parte bem posicionada pode conseguir extrair certos detalhes a partir de uma análise dos horários e tamanhos das mensagens”. Em resumo: o DNS criptografado devolve a quem vê suas buscas para o operador do resolvedor que você escolheu, não remove a visibilidade por completo.
Existe uma segunda lacuna que vale a pena conhecer. Criptografar a busca de DNS não esconde, por si só, a qual site você então se conecta: o aperto de mão TLS que vem em seguida normalmente inclui o nome do host à mostra. Como a explicação da Cloudflare sobre a Indicação de Nome de Servidor (SNI) coloca, “a SNI inclui o nome do host na mensagem Client Hello, ou o primeiríssimo passo de um aperto de mão TLS” — enviada antes de a criptografia ser estabelecida. Uma extensão chamada SNI Criptografada (ESNI), a mesma fonte explica, “se soma à extensão SNI ao criptografar a parte SNI do Client Hello”, o que “impede que qualquer um espionando entre o cliente e o servidor consiga ver qual certificado o cliente está solicitando”. O suporte para esconder a SNI ainda depende de o navegador e o site concordarem com isso, e ainda não é como toda conexão funciona.
Como o macOS oferece suporte a isso
A Apple documenta uma configuração de Ajustes de DNS para Mac, iPhone e iPad que faz exatamente isso: ela permite que um dispositivo “encaminhe as consultas de DNS de um dispositivo através de um servidor de DNS criptografado usando DNS sobre HTTPS ou DNS sobre TLS”. Ela é entregue como um perfil de configuração, que pode restringir o resolvedor criptografado a domínios específicos por meio de “domínios de correspondência suplementares”, ou aplicar-se apenas em determinadas redes usando “regras sob demanda” que podem corresponder a coisas como o SSID da rede.
Para lembrar
- O DoT (RFC 7858) criptografa o DNS com TLS em uma porta dedicada, 853; o DoH (RFC 8484) o criptografa e o transporta pela porta habitual do HTTPS, 443, misturando-se com o outro tráfego web.
- Os dois impedem que espiões no caminho da rede leiam suas buscas.
- Nenhum dos dois esconde suas buscas do resolvedor para o qual você as enviou: a própria RFC 8484 diz que não se sabe que o DoH introduza novas preocupações além daquelas associadas ao HTTPS no lado do servidor.
- Mesmo com DNS criptografado, o aperto de mão TLS do próprio site normalmente revela seu nome de host à mostra (SNI), a menos que uma extensão como a SNI Criptografada seja usada.
- O macOS e o iOS oferecem suporte a DNS criptografado por meio de um perfil de configuração de Ajustes de DNS documentado, que pode especificar DoH ou DoT e restringi-lo a determinados domínios ou redes.
Teste seus conhecimentos
1. Qual porta o DNS sobre TLS (DoT) usa, e por que uma dedicada?
- Porta 80, a mesma do HTTP
- Porta 853, escolhida em parte para evitar ataques de downgrade que poderiam vir da ambiguidade na porta 53 — Certo.
- Porta 25, a mesma do e-mail
- Uma porta aleatória a cada vez
A RFC 7858 atribui ao DoT sua própria porta, 853, explicando que evitar a porta 53 para isso "reduz o risco de ataques de downgrade".
2. Por que o DNS sobre HTTPS (DoH) usa a porta 443?
- Porque é a única porta livre
- Porque compartilhar a porta 443 com o tráfego HTTPS comum torna o DoH mais difícil de isolar e bloquear — Certo.
- Porque a porta 443 é mais rápida que outras portas
- O DoH não usa a porta 443
A RFC 8484 observa que misturar o DoH com o tráfego HTTPS comum na porta 443 "pode dissuadir dispositivos sem privilégios no caminho de interferir nas operações de DNS".
3. O DoH ou o DoT escondem suas buscas de DNS do resolvedor para o qual você as envia?
- Sim, completamente
- Não, eles escondem as buscas do caminho da rede, mas o operador do resolvedor ainda vê as consultas — Certo.
- Só o DoH as esconde do resolvedor
- Só o DoT as esconde do resolvedor
A RFC 8484 afirma que não se sabe que o DoH introduza novas preocupações além daquelas associadas ao HTTPS no lado do servidor, o que significa que o operador do resolvedor continua conseguindo ver e correlacionar as consultas.
4. Mesmo com DNS criptografado, o que costuma ainda revelar a qual site você está se conectando?
- A senha do Wi-Fi
- O nome do host enviado à mostra no Client Hello do TLS (SNI), a menos que uma extensão como a SNI Criptografada seja usada — Certo.
- O endereço IP privado do seu Mac
- O cache do resolvedor de DNS
A Cloudflare explica que "a SNI inclui o nome do host na mensagem Client Hello" antes de a criptografia começar; a SNI Criptografada (ESNI) foi projetada para escondê-lo, mas ainda não é universal.
Praticar com o FireAI
Coloque esta lição em prática no seu próprio Mac.
- Inspeção profunda, sem descriptografar nada — Tenha detalhes reais sobre uma conexão segura sem que o FireAI leia nunca o que tem lá dentro.
- Listas de ameaças (opcional) — Compare seu tráfego com dados públicos de ameaças sem enviá-lo para lugar nenhum.
- Bloqueie um app da internet, ou só uma empresa ou domínio para ele — Corte exatamente o que você quer — o app inteiro, ou só uma empresa com quem ele fala.
Fontes
- RFC 7858: Specification for DNS over Transport Layer Security (TLS)
- RFC 8484: DNS Queries over HTTPS (DoH)
- Cloudflare Learning: DNS over TLS vs. DNS over HTTPS
- Cloudflare Learning: What is SNI? / Encrypted Client Hello
- Apple Platform Deployment: DNS settings declarative configuration for Apple devices
Coloque em prática no seu Mac
Teste todos os recursos grátis por 17 dias, sem cartão.