Firefox melhora privacidade do DNS através do ECH Encrypted Client Hello
9 de junho de 2021Por Adriano Frare
Os usuários que habilitaram o ESNI anteriormente no Firefox podem notar que a opção about: config para ESNI não está mais presente
Desde 2018, o mercado e a própria Mozilla, através do Firefox, vêm se preocupando com a privacidade no acesso a informações trafegadas por meio do protocolo de DNS (porta 53 UDP/TCP).
Neste sentido, está implementado no DNS over TLS com ECH.
Então, a Mozzila anunciou o suporte experimental para a extensão ESNI (Encrypted Server Name Indication) para proteção da privacidade no Firefox Nightly.
A extensão TLS do Server Name Indication (SNI) permite a seleção do servidor e do certificado, transmitindo uma cópia em texto não criptografado do nome do host do servidor na mensagem TLS Client Hello.
Isso representa um vazamento de privacidade semelhante ao do DNS e, assim como o DNS sobre HTTPS impede que as consultas DNS exponham o nome do host para observadores no caminho, o ESNI tenta evitar vazamentos do nome do host do próprio handshake do TLS.
Desde a publicação do projeto de especificação ESNI no IETF, a análise mostrou que criptografar apenas a extensão SNI fornece proteção incompleta.
Apenas como um exemplo: durante a retomada da sessão, a extensão de chave pré-compartilhada poderia, legalmente, conter uma cópia em texto não criptografado exatamente com o mesmo nome de servidor criptografado por ESNI.
A abordagem ESNI exigiria uma variante criptografada de cada extensão com potenciais implicações de privacidade e até mesmo isso expõe o conjunto de extensões anunciadas. Por último, o uso do ESNI no mundo real expôs os desafios de interoperabilidade e implantação que o impediram de ser habilitado em uma escala mais ampla.
O que é Encrypted Client Hello (ECH)?
Para resolver as deficiências do ESNI, as versões recentes da especificação não criptografam mais apenas a extensão SNI e, em vez disso, criptografam uma mensagem de saudação do cliente inteira (portanto, o nome muda de “ESNI” para “ECH”).
Quaisquer extensões com implicações de privacidade agora podem ser relegadas a um “ClientHelloInner” criptografado, que por sua vez é anunciado como uma extensão de um “ClientHelloOuter” não criptografado. Caso um servidor suporte ECH e decifre com sucesso, o “Inner” Client Hello é então usado como base para a conexão TLS.
Isso é explicado com mais detalhes na excelente postagem do blog da Cloudflare no ECH.
O ECH também muda a distribuição de chaves e as histórias de criptografia: um servidor TLS com suporte para ECH agora anuncia sua chave pública por meio de um registro DNS HTTPSSVC, enquanto o ESNI usava registros TXT para essa finalidade.
A derivação e a criptografia da chave são mais robustas, pois o ECH emprega a especificação Hybrid Public Key Encryption em vez de definir seu próprio esquema. É importante ressaltar que o ECH também adiciona um mecanismo de repetição para aumentar a confiabilidade em relação à rotação de chaves do servidor e ao cache de DNS.
Enquanto o ESNI pode falhar após o recebimento de chaves obsoletas do DNS, o ECH pode se recuperar com segurança, pois o cliente recebe as chaves atualizadas diretamente do servidor.
ECH na versão Firefox 85
Para manter a missão de proteger sua privacidade online, a Mozilla está trabalhando ativamente com a Cloudflare e outros na padronização da especificação Encrypted Client Hello na IETF.
O Firefox 85 substitui o ESNI pelo ECH draft-08, e outra atualização do draft-09 (que é direcionada para testes de interoperabilidade mais amplos e implantação) está por vir.
Os usuários que habilitaram o ESNI anteriormente no Firefox podem notar que a opção about: config para ESNI não está mais presente.
Embora seja recomendável que os usuários esperem até que o ECH seja habilitado por padrão, alguns podem querer habilitar essa funcionalidade antes. Isso pode ser feito em about: config definindo network.dns.echconfig.enabled e network.dns.use_https_rr_as_altsvc como true, o que permitirá ao Firefox usar ECH com servidores que o suportem.
Enquanto o ECH está em desenvolvimento ativo, sua disponibilidade pode ser intermitente, pois requer que o cliente e o servidor suportem a mesma versão. Como sempre, as configurações expostas apenas em about: config são consideradas experimentais e estão sujeitas a alterações. Por enquanto, o Firefox ESR continuará a oferecer suporte à funcionalidade ESNI anterior.
Conclusão
ECH é uma evolução importante e robusta do ESNI, e o suporte para o protocolo está chegando ao Firefox.
A Mozilla através do Firefox trabalhando muito para garantir que ele seja interoperável e implantável em grande escala e estamos ansiosos para que os usuários percebam os benefícios de privacidade desse recurso.
Sobre o Adriano V.L. Frare
Adriano V.L. Frare é graduado em Bacharelado em Matemática com ênfase em Processamento de Dados FSA – Centro Universitário Fundação Santo André, com curso de especialização na Universidade de Stanford na área de criptografia, detém certificações internacionais em ITIL, Ethical Hacking, LPI Linux Security e CISSP.
Nos últimos 15 anos vem desenvolvendo projetos na área de segurança da informação e certificação digital, onde trabalhou na iniciativa pública e privada.
Leia outros artigos de Adriano. Acesse aqui!