Substituindo o DNS-over-TLS (DoT) que veio a partir da versão 9 do Android, o suporte para DNS-over-HTTP/3 no Android aumenta a privacidade.
O Google adicionou suporte para o protocolo DNS-over-HTTP/3 (DoH3) no Android 11 e posterior para aumentar a privacidade das consultas DNS e oferecer melhor desempenho.
Suporte para DNS-over-HTTP/3 no Android aumenta a privacidade
O HTTP/3 é a terceira versão principal do Hypertext Transfer Protocol, que se baseia no QUIC, um protocolo de transporte multiplexado construído em UDP, em vez de TCP, como nas versões anteriores.
O novo protocolo corrige o problema de “bloqueio de cabeça de linha”, que diminui a velocidade das transações de dados da Internet quando um pacote é perdido ou reordenado, algo bastante comum ao se movimentar no celular e alternar conexões com frequência.
Anteriormente, o Android suportava DNS-over-TLS (DoT) para a versão 9 e posterior para reforçar a privacidade das consultas de DNS, mas esse sistema inevitavelmente abrandou as solicitações de DNS devido à sobrecarga de criptografia.
Além disso, o DoT exige uma renegociação completa da nova conexão ao trocar de rede. Em contraste, o QUIC pode retomar uma conexão suspensa em um único RTT (tempo necessário para um sinal chegar ao destino).
Com o DoH3, muitas das cargas de desempenho do DoT são eliminadas e, de acordo com as medições do Google, alcança um aumento de 24% no desempenho para tempos médios de consulta. Em alguns casos, o Google viu aumentos de desempenho de até 44%.
Além disso, o DoH3 pode ajudar com redes não confiáveis, superando até mesmo o DNS tradicional, graças aos mecanismos proativos de controle de fluxo que geram imediatamente alertas de falha na entrega de pacotes, em vez de esperar o tempo limite expirar.
O DNS-over-HTTPS já é amplamente suportado por muitos provedores de DNS para fornecer maior privacidade ao realizar solicitações de DNS.
Com o Google suportando DNS-over-HTTP/3 Android e DNS-over-QUIC agora um padrão proposto, provavelmente veremos uma maior adoção pelos provedores de DNS em breve.
No entanto, como parte do lançamento desse recurso, os dispositivos Android usarão o Cloudflare DNS e o Google Public DNS, que já suportam DNS-over-QUIC.
No futuro, o Google planeja adicionar suporte para outros provedores de DoH3 por meio do uso do Discovery of Designated Resolvers (DDR), que seleciona automaticamente o melhor provedor para sua configuração específica.
Outro ponto de superioridade do DoH3 é o uso do Rust em sua implementação, que resultou em um sistema enxuto composto por 1.640 linhas de código que utilizam uma única thread de runtime ao invés das quatro do DoT.
Segundo o Google:
“Construímos o mecanismo de consulta usando a estrutura assíncrona do Tokio para lidar simultaneamente com novas solicitações, eventos de pacotes recebidos, sinais de controle e temporizadores. Em C++, isso provavelmente exigiria vários threads ou um loop de eventos cuidadosamente elaborado.”
O resultado é um sistema de baixo nível de alto desempenho com algumas dependências, é leve e usa uma linguagem de memória segura que reduz o número de bugs que os invasores podem aproveitar para abusar dele.
No momento da leitura, todos os dispositivos Android que executam o Android 11 e posterior devem usar DoH3 para Google DNS e Cloudflare DNS (mais serão adicionados em breve).
Além disso, um subconjunto de dispositivos Android 10 cujos fornecedores adotaram as atualizações do sistema Google Play antecipadamente também receberão esse novo recurso.
Os usuários finais não precisam realizar nenhuma ação para habilitar o novo recurso, pois o Android lidará com essa parte automaticamente.