O AdGuard DNS agora é compatível com Structured DNS Errors. O que isso significa?
O lançamento do AdGuard DNS v2.10 pode ser comparado à implementação do DNS-over-QUIC: mais uma vez, o AdGuard DNS se tornou o primeiro resolvedor de DNS público a implementar uma nova funcionalidade antes de que ela se torne o padrão oficial. Desta vez, estamos falando do Structured DNS Errors.
Abaixo, entraremos em detalhes sobre o que é esta funcionalidade e por que ela é importante. No entanto, se você não tem muito tempo para isso, aqui está um resumo:
-
Quando um site é bloqueado no nível DNS, os usuários podem ver um erro como “Este site não pode ser acessado” ou “Sem conexão com a Internet”, que não explica o motivo do bloqueio.
-
Para esclarecer isso, os servidores DNS poderiam redirecionar os usuários para uma página própria com uma explicação. No entanto, sites HTTPS (que são a maioria dos sites) exigiriam um certificado separado.
-
Existe uma solução mais simples: Structured DNS Errors (SDE). Ele permite que informações adicionais (como o motivo do bloqueio, a entidade responsável e informações de contato) sejam enviadas na resposta DNS para que o navegador possa lê-las e transmiti-las ao usuário, melhorando consideravelmente a transparência da comunicação.
-
Para que esse sistema funcione, os navegadores precisam ser compatíveis com SDE. É isso que queremos para o futuro.
O que são os Structured DNS Errors: um olhar detalhado
O filtro no nível DNS é amplamente utilizado. Só o AdGuard DNS possui mais de 100 milhões de usuários. As pessoas usam o filtro DNS para bloquear anúncios e rastreadores ou para proteger seus filhos. Mesmo que o usuário não tenha configurado o DNS manualmente, ele ainda pode se deparar com um filtro de DNS devido às políticas de seu país ou empresa. É seguro assumir que quase todos os usuários da Internet já se depararam com um bloqueio de DNS.
O bloqueio no nível DNS impede o acesso a um domínio inteiro. O usuário tenta visitar https://exemplo.com, o navegador faz uma solicitação DNS, e o servidor DNS responde que o domínio exemplo.com está bloqueado, fazendo com que o navegador exiba “Este site não pode ser acessado” ou “Sem conexão com a Internet”.
Se o usuário não tiver bloqueado manualmente esse domínio, ele pode não entender por que não consegue abrir a página. Ele pode se perguntar:
-
Algo está errado? Devo recarregar a página?
-
Isso não funcionou. A conexão com a Internet caiu?
-
A Internet está funcionando. A página foi bloqueada? Sim, mas por quê?
-
Talvez meu serviço de DNS esteja fora do ar. Devo relatar isso?
Essa falta de comunicação entre o serviço de DNS e o usuário é um problema. Os serviços de DNS podem e querem resolver isso, por exemplo, redirecionando o usuário para uma página com uma explicação mais detalhada para que ele saiba o que aconteceu e a quem contatar. Por que não fazer isso?
Há um porém:
- Se for um site HTTP, ou seja, a conexão não é criptografada, o servidor DNS pode redirecionar o usuário com segurança para uma página não criptografada.
- Se for um site HTTPS, o navegador realiza a autenticação do certificado e espera ver um certificado válido para https://exemplo.com. Se o AdGuard DNS redirecionar para sua própria página, o navegador apresentará um erro de validação de certificado.
Uma solução seria instalar um certificado especial no dispositivo do usuário. No entanto, isso nem sempre é possível ou seguro. Existe uma maneira muito mais fácil: enviar mais informações na resposta DNS.
Para isso, foi introduzido o padrão de Extended DNS Errors de 2020, permitindo que as respostas DNS incluam um código de erro junto com um campo EXTRA-TEXT
para detalhes adicionais. A ideia de Structured DNS Errors também propõe a adição de arquivos I-JSON (um perfil restrito de JSON) no campo EXTRA-TEXT
, que os navegadores podem ler facilmente e exibir de uma maneira amigável para o usuário.
O que esses arquivos I-JSON conteriam?
-
Motivo do bloqueio
-
Informações de contato para esclarecimentos, caso a página tenha sido bloqueada por engano
-
Organização responsável pelo filtro DNS neste caso (opcional)
-
Outras informações opcionais
Isso é realmente conveniente. Um sistema como esse melhora a transparência entre os serviços de DNS e os usuários e mantém os usuários seguros. Se eles entenderem o motivo do bloqueio de um site, é menos provável que abandonem um servidor DNS seguro por um não criptografado.
O que é necessário para implementar os Extended DNS Errors e os Structured DNS Errors
Os navegadores precisam oferecer compatibilidade, afinal, são eles que determinam qual informação o usuário vê. Se é apenas um erro de conexão ou uma explicação detalhada sobre o motivo do bloqueio do site e o que fazer em seguida.
Por isso, pedimos aos representantes dos navegadores que adicionem suporte para o RFC8914 e, idealmente, sua atualização proposta. Essa mudança ajudará a tornar a Internet mais transparente e amigável para bilhões de pessoas.
Como isso funciona no AdGuard DNS
Criamos uma extensão demo que mostra como os Structured DNS Errors poderiam funcionar caso os navegadores fossem compatíveis. Com essa extensão, se você tentar visitar um site bloqueado pelo AdGuard DNS, ela lerá as informações enviadas via SDE e exibirá uma página de explicação bem apresentada. Muito mais fácil de entender do que os exemplos acima, não é?
Você pode instalar a extensão na Chrome Web Store ou no GitHub.
Outras melhorias: uma experiência mais personalizada para usuários e organizações
Nosso público inclui tanto indivíduos configurando o DNS para suas casas quanto grandes organizações. Eles têm necessidades e experiências diferentes: alguns precisam conectar 10 dispositivos e estão bem com a configuração manual; outros precisam conectar 1.000 dispositivos e preferem automação. Para entender melhor as necessidades de cada usuário, adicionamos uma pesquisa de integração para coletar informações sobre objetivos e o número esperado de dispositivos.
Isso nos ajudará a personalizar o DNS no futuro — por exemplo, fornecendo mais informações sobre opções de automação para aqueles que precisem.
Adoraríamos ouvir sua opinião
Como sempre, incentivamos você a deixar feedback e compartilhar seus pensamentos nas redes sociais ou no GitHub.