Comparação de Protocolos de DNS Criptografado: DoT, DoH, DoQ
Revisão das relações de camadas, portas, diferenças de desempenho e cenários aplicáveis do Plain DNS, DoT, DoH, DoQ, fornecendo sugestões de escolha e configuração práticas.
Categories:
Visão Geral dos Termos
- Plain DNS:DNS em texto não criptografado, usa por padrão UDP/53, usando TCP/53 quando necessário (ex: resposta truncada, transferência de zona).
- DoT:DNS over TLS, usa TCP sobre TLS, porta padrão 853 (RFC 7858/8310).
- DoH:DNS over HTTPS, baseado em HTTPS (HTTP/2 ou HTTP/3), porta padrão 443 (RFC 8484).
- DoQ:DNS over QUIC, baseado em QUIC + TLS 1.3, porta padrão UDP/853 (RFC 9250, alocado pela IANA em 853/udp).
Relações de Camadas (Modelo TCP/IP Simplificado)
- Camada de Aplicação:HTTP, HTTPS, DNS (DoH pertence ao encapsulamento da camada de aplicação HTTPS)
- Camada de Segurança:TLS (fornece criptografia para TCP ou QUIC)
- Camada de Transporte:TCP, UDP, QUIC
- Camada de Rede:IP
- Camada de Enlace:Ethernet, etc.
- Camada Física:Par trançado/Fibra/Rede sem fio, etc.
Pontos Principais
- Plain DNS opera sobre UDP/TCP, sem criptografia.
- DoT = TCP + TLS + DNS (porta dedicada 853).
- DoH = TCP/QUIC + TLS + HTTP(S) + DNS (porta 443, compartilha porta com HTTPS comum).
- DoQ = QUIC + TLS 1.3 + DNS (porta dedicada UDP/853).
graph TB
subgraph 应用层
A[HTTP]
A2[HTTPS]
C[DNS]
D[DoH DNS over HTTPS]
end
subgraph 安全层
E[TLS]
end
subgraph 传输层
F[TCP]
G[UDP]
H[QUIC]
end
subgraph 网络层
I[IP]
end
subgraph 链路层
J[Ethernet]
end
subgraph 物理层
K[双绞线/光纤/无线]
end
A2 --> F
A2 --> H
A --> F
C --> F
C --> G
D --> A2
E --> F
E --> H
F --> I
G --> I
H --> I
I --> J
J --> K
style D fill:#e1f5fe
style E fill:#fff3e0Conhecimentos Básicos e Correções
- O Plain DNS usa, por padrão, UDP/53, mudando para TCP/53 ao encontrar truncamento de resposta (bit TC) ou quando necessita de transporte confiável.
- O DoT estabelece um túnel TLS sobre TCP para transportar mensagens DNS, porta padrão 853; pode reutilizar conexões persistentes para reduzir o overhead de handshake.
- O DoH trata o DNS como um recurso do HTTPS (
application/dns-message), geralmente usando HTTP/2 ou HTTP/3, porta 443, sendo facilmente confundido com HTTPS comum. - O DoQ usa o QUIC (baseado em UDP) diretamente para transportar DNS, oferecendo baixa latência e evitando o bloqueio de cabeçalho de fila, mas seu suporte no ecossistema ainda está crescendo.
- Conclusões genéricas como “QUIC é certamente X% mais rápido que o TCP” não são precisas; o desempenho real depende das condições da rede (perda de pacotes, jitter, RTT), se a conexão pode ser reutilizada, detalhes de implementação e implantação do servidor.
- O DoH não significa que “colocar DNS no HTTP é inevitavelmente mais lento/rápido”; o desempenho depende da reutilização da conexão, qualidade da rede e implementação; em muitos casos, a experiência do DoH/3 é semelhante ou até melhor que a do DoT.
- O DoT pode usar SNI para verificar o nome do host do certificado; o DoH depende da validação de certificados常规 HTTPS e correspondência de nomes de host.
- O DNS criptografado apenas previne espionagem e adulteração no enlace, não é equivalente a “totalmente anônimo”. O resolvedor ainda pode registrar consultas; escolha provedores confiáveis e verifique a política de privacidade.
graph TD
subgraph DNS 家族
A[Plain DNS UDP/TCP + DNS]
subgraph 加密的 DNS
B[DoT TCP + TLS + DNS]
C[DoH HTTP/2,3 + TLS + DNS]
D[DoQ QUIC + TLS 1.3 + DNS]
end
subgraph 传输基座
E[TCP]
F[UDP]
G[QUIC]
end
end
A --> B
A --> C
A --> D
B --> E
C --> E
C --> G
D --> G
A --> F
style A fill:#f3e5f5
style B fill:#e8f5e8
style C fill:#e3f2fd
style D fill:#fff3e0Visão Geral Comparativa
| Protocolo | Camada de Transporte | Criptografia | Encapsulamento | Porta Padrão | Características Típicas |
|---|---|---|---|---|---|
| Plain DNS | UDP/TCP | Nenhuma | Nativo DNS | 53 | Simples e eficiente, texto visível, fácil de adulterar/auditoria |
| DoT | TCP | TLS 1.2/1.3 | DNS | 853 | Porta dedicada, fácil bloqueio por porta, bom suporte a nível de sistema |
| DoH | TCP/QUIC | TLS 1.2/1.3 | HTTP/2-3 + DNS | 443 | Compartilha porta com HTTPS, alta capacidade de penetração, suporte prioritário de navegadores |
| DoQ | QUIC | TLS 1.3 | DNS | 853/UDP | Baixa latência, evita bloqueio de cabeçalho de fila, ecossistema em desenvolvimento |
Desempenho e Latência
- Reutilização de conexão: DoT/DoH/DoQ podem todos reutilizar conexões longas para reduzir custos de handshake; DoH/2, DoH/3 e DoQ também podem multiplexar solicitações em uma única conexão.
- Bloqueio de cabeçalho de fila (Head-of-line blocking): O TCP sofre com o problema de “bloqueio de cabeçalho de fila” na camada de aplicação; o HTTP/2 no TCP mitiga isso através de multiplexação, mas ainda é afetado pela perda de pacotes do TCP; o QUIC (DoH/3, DoQ) evita o bloqueio de cabeçalho de fila na camada de transporte, sendo mais amigável para redes com alta perda de pacotes/móveis.
- Latência do primeiro pacote: Na primeira conexão, o DoT precisa do handshake TCP+TLS; DoH/2 é semelhante; DoH/3/DoQ baseados em QUIC são mais rápidos para reconexão e migração. Sob carga contínua, as diferenças dependem mais da implementação e condições da rede.
- Acessibilidade: O DoH usa a porta 443, sendo o mais difícil de ser bloqueado por simples fechamento de porta; o DoT usa a porta 853, frequentemente bloqueado de forma ampla; o DoQ usa a porta 853/UDP, que atualmente também pode ser bloqueada ou não liberada.
Suporte de Cliente e Sistema
- Navegadores: A família Chromium e o Firefox têm DoH embutido por padrão (podem atualizar automaticamente para resolvedores que suportam DoH ou usar provedores de lista interna).
- Windows: O Windows 11 suporta nativamente DoH.
- Android: O Android 9+ oferece “DNS Privado” (DoH a nível de sistema). A cobertura do DoH a nível de sistema depende da versão/fabricante.
- Plataformas Apple: iOS 14+/macOS 11+ suporta DoT e DoH através de perfis de configuração ou NetworkExtension.
Recomendações de Implantação e Seleção
- Redes comuns/restritas (como Wi‑Fi público, necessidade de ultrapassar bloqueios simples): Priorize DoH (porta 443), habilite HTTP/3 se possível.
- Saída unificada a nível de sistema (roteador, gateway, DNS Privado Android): Priorize DoT (853), adicione DoH como fallback se a rede permitir.
- Redes móveis/com alta perda de pacotes: Priorize DoH/3 ou DoQ com QUIC (dependendo do suporte do resolvedor e cliente).
- Cenários corporativos/conformidade: Escolha de acordo com a política (DoH pode se integrar à infraestrutura HTTPS existente; DoT facilita a separação do plano de controle de DNS).
Resumo
- Priorize DoH (443, alta penetração), habilite HTTP/3 se disponível.
- Se precisar de saída unificada a nível de sistema: Priorize DoT (853) + conexão persistente, com fallback para DoH (443) se necessário.
- Se seu resolvedor e cliente suportarem: Experimente DoQ (a experiência em redes móveis é frequentemente melhor).
Normas de Referência
- RFC 7858, RFC 8310 (DNS over TLS)
- RFC 8484 (DNS over HTTPS)
- RFC 9250 (DNS over QUIC)
Recomendações de Serviços DNS
- NullPrivate DNS: https://www.nullprivate.com suporta DoT, DoH (suporta HTTP3), suporte nativo para bloqueio de anúncios e roteamento de tráfego.
- Versão auto-hospedada: https://github.com/NullPrivate/NullPrivate