Lição 3 de 4 · 7 min
DNS encriptado: DoH e DoT
Duas normas envolvem as pesquisas DNS em encriptação. O que isso realmente esconde, o que continua a não esconder, e como o macOS o suporta.
A lição anterior descreveu uma pesquisa DNS simples como um postal: legível por qualquer pessoa que o manuseie pelo caminho. Existem duas normas do IETF para colocar esse postal num envelope: DNS over TLS (DoT, RFC 7858) e DNS over HTTPS (DoH, RFC 8484). Ambas encriptam a mesma pesquisa; diferem principalmente na forma como a transportam.
DNS over TLS
A RFC 7858 declara o seu objetivo diretamente: "a encriptação fornecida pelo TLS elimina oportunidades de escuta e de adulteração no percurso das consultas DNS", resolvendo o facto de que "quase todas as consultas DNS são enviadas sem encriptação, o que as torna vulneráveis a escuta por um atacante." O DoT usa a sua própria porta dedicada, a 853, em vez da habitual porta 53. A RFC explica porquê: "esta recomendação contra o uso da porta 53 para o DNS over TLS destina-se a evitar complicações na seleção do uso ou não uso de TLS e a reduzir o risco de ataques de downgrade."
DNS over HTTPS
A RFC 8484 segue um caminho diferente: "cada par de consulta-resposta DNS é mapeado para uma troca HTTP", transportada na mesma porta 443 que o tráfego HTTPS comum usa. A RFC nota que isto tem um benefício secundário: "a porta predefinida do HTTPS, 443, e a capacidade de misturar tráfego DoH com outro tráfego HTTPS na mesma ligação podem dissuadir dispositivos sem privilégios no percurso de interferirem com as operações de DNS", porque uma pesquisa é mais difícil de isolar e bloquear quando parece qualquer outro pedido web.
| DNS over TLS (DoT) | DNS over HTTPS (DoH) | |
|---|---|---|
| Porta | 853, dedicada ao DoT | 443, partilhada com o tráfego HTTPS comum |
| Visível na rede como | O seu próprio tráfego distinto (fácil de identificar e, se uma rede assim escolher, bloquear) | Misturado com a navegação web normal |
O que a encriptação esconde, e o que continua a não esconder
Ambas as normas impedem que um operador de rede ou alguém a escutar o Wi-Fi leia as suas pesquisas em trânsito. Nenhuma delas as esconde do resolvedor a quem as enviou. A RFC 8484 é explícita quanto a o DoH não mudar o que o próprio servidor consegue ver: nota que "vários transportes de consultas e respostas DNS fornecem de facto dados que podem ser usados para correlacionar pedidos", e que os mecanismos web comuns, como endereços IP de cliente, cookies e informação de sessão TLS, significam que "não é conhecido que o DoH introduza novas preocupações para além das já associadas ao HTTPS" do lado do servidor. A RFC 7858 nota de forma semelhante que o DoT "não resolve outras questões de segurança no DNS" e que "mesmo com mensagens encriptadas, uma parte bem posicionada pode conseguir extrair certos detalhes a partir de uma análise dos tempos e tamanhos das mensagens." Em resumo: o DNS encriptado desloca quem vê as suas pesquisas de volta para o operador do resolvedor que escolheu, não remove a visibilidade por completo.
Há uma segunda lacuna que vale a pena conhecer. Encriptar a pesquisa DNS não esconde por si só a que site se liga a seguir: o cumprimento TLS (handshake) que se segue normalmente inclui o nome do anfitrião à vista. Como coloca a explicação da Cloudflare sobre a Indicação de Nome do Servidor (SNI), "a SNI inclui o nome do anfitrião na mensagem Client Hello, ou o primeiríssimo passo de um cumprimento TLS" — enviado antes de a encriptação ser estabelecida. Uma extensão chamada SNI Encriptada (ESNI), explica a mesma fonte, "acrescenta-se à extensão SNI ao encriptar a parte SNI do Client Hello", o que "impede que qualquer pessoa a espiar entre o cliente e o servidor consiga ver que certificado o cliente está a pedir." O suporte para esconder a SNI ainda depende do navegador e do site concordarem com isso, e ainda não é como todas as ligações funcionam.
Como o macOS o suporta
A Apple documenta uma configuração de Definições de DNS para Mac, iPhone e iPad que faz exatamente isto: permite a um dispositivo "encaminhar as consultas DNS de um dispositivo através de um servidor DNS encriptado usando DNS over HTTPS ou DNS over TLS." É entregue como um perfil de configuração, que pode restringir o resolvedor encriptado a domínios específicos através de "domínios de correspondência suplementares", ou aplicar-se apenas em certas redes usando "regras a pedido" que podem corresponder a coisas como o SSID da rede.
A reter
- O DoT (RFC 7858) encripta o DNS com TLS numa porta dedicada, a 853; o DoH (RFC 8484) encripta-o e transporta-o pela porta habitual do HTTPS, a 443, misturando-se com outro tráfego web.
- Ambos impedem que quem escuta na rede leia as suas pesquisas.
- Nenhum dos dois esconde as suas pesquisas do resolvedor a quem as enviou: a própria RFC 8484 diz que não é conhecido que o DoH introduza novas preocupações para além das já associadas ao HTTPS do lado do servidor.
- Mesmo com DNS encriptado, o cumprimento TLS do próprio site normalmente revela o seu nome de anfitrião à vista (SNI), a menos que seja usada uma extensão como a SNI Encriptada.
- O macOS e o iOS suportam DNS encriptado através de um perfil de configuração documentado de Definições de DNS, que pode especificar DoH ou DoT e restringi-lo a certos domínios ou redes.
Teste-se
1. Que porta usa o DNS over TLS (DoT), e porquê uma dedicada?
- A porta 80, a mesma do HTTP
- A porta 853, escolhida em parte para evitar ataques de downgrade que poderiam surgir da ambiguidade na porta 53 — Certo.
- A porta 25, a mesma do e-mail
- Uma porta aleatória de cada vez
A RFC 7858 atribui ao DoT a sua própria porta, 853, explicando que evitar a porta 53 para isto "reduz o risco de ataques de downgrade."
2. Porque é que o DNS over HTTPS (DoH) usa a porta 443?
- Porque é a única porta livre
- Porque partilhar 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 do que outras portas
- O DoH não usa a porta 443
A RFC 8484 nota que misturar o DoH com o tráfego HTTPS normal na porta 443 "pode dissuadir dispositivos sem privilégios no percurso de interferirem com as operações de DNS."
3. O DoH ou o DoT escondem as suas pesquisas DNS do resolvedor a quem as envia?
- Sim, completamente
- Não, escondem as pesquisas do percurso de rede, mas o operador do resolvedor continua a ver as consultas — Certo.
- Só o DoH as esconde do resolvedor
- Só o DoT as esconde do resolvedor
A RFC 8484 afirma que não é conhecido que o DoH introduza novas preocupações para além das já associadas ao HTTPS do lado do servidor, o que significa que o operador do resolvedor continua a conseguir ver e correlacionar as consultas.
4. Mesmo com DNS encriptado, o que costuma continuar a revelar a que site se está a ligar?
- A palavra-passe do Wi-Fi
- O nome do anfitrião enviado à vista no Client Hello do TLS (SNI), a menos que seja usada uma extensão como a SNI Encriptada — Certo.
- O endereço IP privado do seu Mac
- A cache do resolvedor de DNS
A Cloudflare explica que "a SNI inclui o nome do anfitrião na mensagem Client Hello" antes de a encriptação começar; a SNI Encriptada (ESNI) foi concebida para o esconder, mas ainda não é universal.
Praticar com o FireAI
Ponha esta lição em prática no seu próprio Mac.
- Inspeção profunda, sem decifrar nada — Obtenha detalhe real sobre uma ligação segura sem que o FireAI leia alguma vez o que está lá dentro.
- Listas de ameaças (opcional) — Compare o seu tráfego com dados públicos de ameaças sem o enviar para lado nenhum.
- Bloqueie uma app da internet, ou apenas uma empresa ou domínio para ela — Corte exatamente o que pretende — a app inteira, ou apenas uma empresa com que 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
Ponha em prática no seu Mac
Experimente todas as funcionalidades grátis durante 17 dias, sem cartão.