
O Firefox foi o primeiro navegador a implementar a criptografia
TLS Server Name Indication (SNI) . O suporte ESNI foi
introduzido na versão mais recente do Firefox Nightly, na qual todas as inovações são lançadas antes de serem adicionadas à ramificação principal.
A importância desse padrão foi
discutida há
um mês pelo provedor CloudFare CDN. Em resumo, a ESNI criptografa informações sobre para qual domínio você está enviando a solicitação. No HTTPS padrão, os cabeçalhos com nomes de domínio não são criptografados e estão disponíveis para visualização pelo provedor ou outra "pessoa no meio". Agora ele vê apenas o endereço IP. Como centenas de domínios podem estar localizados no mesmo endereço IP na Internet moderna, a ESNI oculta efetivamente as informações sobre em qual domínio o usuário faz login.
Assim, o bloqueio por nome deixa de funcionar, e a censura na Internet se torna muito complicada. Os censores terão que bloquear endereços IP, o que é uma prática duvidosa. Esse bloqueio pode afetar sites não relacionados, e um serviço bloqueado pode alternar (automaticamente) facilmente para outro endereço IP.
Por que os nomes de host brilham em um TLS SNI comum? O fato é que, antes de iniciar a criptografia, o servidor precisa saber qual domínio o cliente está acessando para apresentar o certificado necessário. Por esse motivo, o nome do host é transmitido em texto sem formatação (abaixo da ilustração
do blog Cloudflare ).

No SNI criptografado (ESNI), esse problema é resolvido da seguinte maneira: o cliente pega a chave pública do servidor do DNS e criptografa todos os dados com ele até que a sessão TLS seja estabelecida.

O suporte do navegador ao Firefox Nightly significa que o ESNI funcionará com todos os sites / provedores que o suportam.
Os desenvolvedores da Mozilla
explicam que existem quatro maneiras principais de vazar seu histórico de navegação:
- Mensagem de certificado TLS
- Resolução de nomes DNS
- Endereço IP do servidor
- Indicação de nome do servidor TLS.
Até o momento, eles fizeram um bom progresso no fechamento dos dois primeiros canais de vazamento: o novo padrão TLS 1.3 criptografa o certificado do servidor padrão (canal 1) e, nos últimos meses, a Mozilla
estudou o uso do DNS sobre HTTPS para proteger o tráfego DNS (canal 2). Os resultados dos testes não são ruins e, nos próximos meses, a função será lançada para todos os usuários do Firefox. O endereço IP continua sendo um problema, mas em muitos casos vários sites compartilham o mesmo endereço IP, portanto, o principal canal de vazamento é o SNI.
Ao mesmo tempo, a tecnologia SNI (Server Name Indication) começou a ser usada precisamente porque vários hosts estão localizados no mesmo endereço IP. Nesse caso, o campo SNI informa ao servidor a qual host você está tentando se conectar, permitindo que ele selecione o certificado correto. Em outras palavras, o SNI ajuda a garantir a operação de hospedagem TLS em larga escala. Ou seja, essa função foi introduzida por questões de segurança e agora temos que lidar com ela como um canal de vazamento de dados.
O problema do SNI era conhecido há muito tempo, escrevem os desenvolvedores da Mozilla, e ficou claro que esse campo precisava ser criptografado. Mas todo design que eles tentaram incluía um comprometimento no desempenho. Havia outra desvantagem importante: o fato de um site específico estar mudando para a ESNI era um sinal de que "tinha algo a esconder", ou seja, os censores tiveram a oportunidade de filtrar trivialmente o tráfego da ESNI. No final, decidiu-se lançar o padrão TLS 1.3 sem ESNI.
Somente no início de 2018, os desenvolvedores perceberam que havia uma boa opção: grandes redes de distribuição de conteúdo (CDNs) hospedam muitos sites nos mesmos servidores físicos. Se eles concordarem em transferir
todos os clientes para a ESNI de
uma só
vez , subitamente a ESNI deixará de ser um sinal útil para um invasor. Assim, tornou-se possível implementar o ESNI no TLS 1.3, personalizando em massa muitos sites em um conjunto existente de servidores.
ESNI é uma tecnologia completamente nova e o Firefox é o primeiro navegador a implementá-lo. Para ativá-lo no Firefox Nightly, você deve concluir as seguintes etapas:
- Verifique se você ativou o DNS sobre HTTPS (DoH):
about:config
- defina
network.trr.mode
como 2

- configure
network.trr.uri
para o servidor DoH (por exemplo, https://mozilla.cloudflare-dns.com/dns-query
).

about:config
- configure
network.security.esni.enabled
como true

Isso deve ativar automaticamente o ESNI para qualquer site que o suporte. No momento, dos grandes hosters e CDNs, esse é apenas o Cloudflare, mas os desenvolvedores do Firefox esperam que outros provedores se conectem em breve. Você pode verificar a criptografia por
este link .

Nos próximos meses, a Mozilla testará como a ESNI interage com diferentes tipos de firewalls e outros dispositivos de rede. Se você ativou a criptografia e algo quebrou -
informe os desenvolvedores através do rastreador de erros.

