Doh em imagens

Ameaças à privacidade e segurança na Internet estão se tornando mais graves. Nós da Mozilla os estamos acompanhando de perto. Consideramos nosso dever fazer todo o possível para proteger os usuários do Firefox e seus dados.

Estamos preocupados com empresas e organizações que coletam e vendem secretamente dados de usuários. Portanto, adicionamos proteção de rastreamento e criamos uma extensão de contêiner do Facebook . Medidas mais protetoras aparecerão nos próximos meses.



Agora estamos adicionando mais duas tecnologias à lista:

  • HTTPS DNS é o novo padrão IETF do qual participamos no desenvolvimento
  • Resolvedor recursivo confiável - uma nova maneira segura de resolver o DNS, fornecida em conjunto com o Cloudflare

Graças a essas duas iniciativas, os vazamentos de dados que fazem parte do sistema de nomes de domínio desde a sua criação, 35 anos atrás, estão sendo eliminados. E precisamos da sua ajuda nos testes. Vamos ver como o DNS HTTPS e o Resolvedor recursivo confiável protegem nossos usuários.

Mas primeiro, vamos ver como as páginas da web são transmitidas pela Internet.

Se você já sabe como o DNS e o HTTPS funcionam, pode pular para o tópico de como o DNS ajuda no HTTPS .

Curso de HTTP


Quando as pessoas explicam como um navegador carrega uma página da web, geralmente a explicam assim:

  1. Seu navegador faz uma solicitação GET ao servidor.
  2. O servidor envia uma resposta, que é um arquivo que contém HTML.



Este sistema é chamado HTTP.

Mas esse esquema é muito simplificado. Seu navegador não fala diretamente com o servidor. Provavelmente porque eles não estão próximos um do outro.

Um servidor pode estar a milhares de quilômetros de distância. E provavelmente não há conexão direta entre o seu computador e o servidor.



Portanto, antes de a solicitação passar do navegador para o servidor, ela passará por várias mãos. O mesmo vale para a resposta.

Penso nisso como crianças em idade escolar passando notas umas para as outras na sala de aula. Lá fora, a nota diz a quem se destina. A criança que escreveu a nota a entregará a um vizinho. Então o próximo filho o passa para um dos vizinhos - provavelmente não para o destinatário final, mas para alguém que está na direção certa.


- Psst ... passe isso para Sandy

O problema é que qualquer pessoa ao longo do caminho pode abrir a nota e lê-la. E não há como saber antecipadamente qual o caminho que a nota seguirá; portanto, não se sabe quais pessoas terão acesso a ela.

Pode estar nas mãos de pessoas que farão coisas prejudiciais ...

Por exemplo, eles compartilharão o conteúdo de uma nota com todos.


- Oh, é suculento ... Ei pessoal! Danny se apaixonou por Sandy!

Ou mude a resposta.


"Você gosta de mim também?"
- Hehe, eu vou tirar sarro dele e escrever "Não" ...

Para resolver esses problemas, uma nova versão segura do HTTP foi criada. Chama-se HTTPS: é como um bloqueio em todas as mensagens.



Somente o navegador e o servidor conhecem a combinação a ser desbloqueada. Mesmo que as mensagens passem por vários roteadores, somente você e o site podem realmente ler o conteúdo.

Isso resolve muitos problemas de segurança. Mas ainda existem mensagens não criptografadas entre o navegador e o servidor. Portanto, as pessoas a caminho ainda podem interferir nos seus negócios.

Por exemplo, os dados ainda estão abertos durante a configuração da conexão. Ao enviar a mensagem original para o servidor, você também envia o nome do servidor no campo “Indicação do nome do servidor”. Isso permite que os operadores de servidor executem vários sites no mesmo computador e, ao mesmo tempo, entendam com quem você deseja entrar em contato. Essa solicitação inicial faz parte da configuração de criptografia, mas a solicitação inicial em si não é criptografada.

Outro local onde os dados estão abertos é o DNS. Mas o que é DNS?

DNS: Sistema de Nomes de Domínio


Numa metáfora para passar notas em uma classe, eu disse que o nome do destinatário deveria ser escrito fora da nota. O mesmo vale para solicitações HTTP ... elas devem declarar para onde estão indo.

Mas você não pode usar o nome usual do site. Nenhum dos roteadores entende quem você está falando. Em vez disso, use um endereço IP. É assim que os roteadores ao longo do caminho entendem para qual servidor você deseja enviar a solicitação.


- Envie para 208.80.154.224

Isso está causando problemas. É inconveniente que os usuários se lembrem dos números do endereço IP. Quero dar ao site um nome cativante ... que será depositado na memória das pessoas.

É por isso que temos um sistema de nomes de domínio (DNS). Seu navegador usa o DNS para resolver o nome do site para o endereço IP. Esse processo - converter um nome de domínio em um endereço IP - é chamado de resolução ou resolução de nomes de domínio.



Como o navegador resolve o problema?

Uma opção é fazer uma lista grande como uma lista telefônica em um navegador. Porém, à medida que novos sites aparecerem ou forem movidos para novos servidores, será difícil manter essa lista atualizada.

Portanto, em vez de uma lista única para todos os nomes de domínio, há muitas pequenas listas vinculadas entre si. Isso permite que eles sejam controlados independentemente.



Para obter o endereço IP correspondente a um nome de domínio, você precisa encontrar uma lista específica que contenha o nome de domínio desejado. É como encontrar um tesouro.

Como é essa pesquisa de tesouro em sites como Wikipedia em inglês, en.wikipedia.org ?

O domínio pode ser dividido em partes.



Com essas partes, você pode começar a procurar por uma lista contendo o endereço IP do site. Mas precisamos de ajuda para encontrar. A ferramenta que realiza essa busca em vez de nós e encontra o endereço IP é chamada de resolvedor.

Primeiro, o resolvedor acessa o chamado servidor DNS raiz. Ele conhece vários servidores DNS raiz diferentes, então envia uma solicitação para um deles. O resolvedor solicita ao DNS raiz onde encontrar informações adicionais sobre endereços na zona de domínio de nível superior .org .


- Você não sabe como chegar ao pt.wikipedia.org?
- Não sei nada na zona .org, mas o 5.6.7.8 pode ajudar

O próximo servidor é chamado de servidor de nome de domínio de nível superior (TLD). O servidor do TLD conhece todos os domínios de segundo nível que terminam em .org .

No entanto, ele não sabe nada sobre os subdomínios wikipedia.org , portanto, também não sabe o endereço IP de en.wikipedia.org .

O servidor de nomes do TLD aconselhará o resolvedor a fazer essa pergunta ao servidor de nomes da Wikipedia.


- Você não sabe como chegar ao pt.wikipedia.org?
- Vá e pergunte 11.21.31.41, ele conhece os sites no domínio wikipedia.org

O resolvedor está quase pronto. Um servidor de nomes da Wikipedia é chamado de servidor autoritativo. Ele conhece todos os subdomínios do wikipedia.org . Portanto, ele conhece o en.wikipedia.org e outros subdomínios, como a versão alemã do de.wikipedia.org . Um servidor autoritário informa ao resolvedor no qual os arquivos HTML do endereço IP podem ser recuperados para este site.


- Você não sabe como chegar ao pt.wikipedia.org?
- Ah, sim, basta ir para 208.80.154.224

O resolvedor retornará o endereço IP en.wikipedia.org para o sistema operacional.

Esse processo é chamado de resolução recursiva porque você precisa ir e voltar, perguntando a diferentes servidores essencialmente a mesma pergunta.

Eu disse que precisamos de um resolvedor para ajudar na pesquisa. Mas como o navegador encontra esse resolvedor? Em geral, ele pergunta ao sistema operacional.


"Eu preciso de um resolvedor." Você pode ajudar
- Claro, deixe-me apresentar-lhe o resolvedor que eu uso

Como o sistema operacional sabe qual resolvedor usar? Existem duas maneiras possíveis.

Você pode configurar seu computador para usar um resolvedor específico em que você confia. Mas muito poucas pessoas fazem isso.

Em vez disso, basta usar as configurações padrão. E, por padrão, o sistema operacional usará qualquer resolvedor que a rede indicar. Quando um computador se conecta à rede e recebe seu endereço IP, a rede recomenda um resolvedor específico.


- Posso obter um endereço IP?
- Não tem problema! E se você precisar de um resolvedor, eu recomendo este

Isso significa que o resolvedor usado pode ser alterado várias vezes ao dia. Se você estiver indo para um café para trabalhar durante o dia, provavelmente está usando um resolvedor diferente do que pela manhã. E isso acontece mesmo se você configurar seu próprio resolvedor, porque não há segurança no protocolo DNS.

Como posso explorar o DNS?


Então, como esse sistema coloca em risco os usuários?

Normalmente, o resolvedor informa a cada servidor DNS qual domínio você está procurando. Às vezes, essa solicitação inclui seu endereço IP completo. E, se não for um endereço completo, mais frequentemente a solicitação inclui a maior parte do seu endereço IP, que pode ser facilmente combinado com outras informações para estabelecer sua identidade.


Contém a maior parte do seu endereço IP ...
... e o domínio completo que você procura

Isso significa que cada servidor que você solicita ajuda na resolução de nomes de domínio vê o site que está procurando. Além disso, qualquer pessoa a caminho desses servidores também vê suas solicitações.

Existem várias maneiras pelas quais esse sistema compromete os dados do usuário. Os dois principais são rastreamento (rastreamento) e falsificação (falsificação).

Rastreamento


Como eu disse acima, não é difícil determinar a identidade da pessoa que solicita acesso a um site específico usando informações completas ou parciais sobre o endereço IP. Isso significa que o servidor DNS e qualquer usuário no caminho para esse servidor DNS (roteador no caminho) podem criar um perfil de usuário. Eles podem fazer uma lista de todos os sites que você visualizou.

E esses são dados valiosos. Muitas pessoas e empresas estão dispostas a pagar muito para ver seu histórico de navegação.


Quanto você está disposto a pagar por informações sobre o que John Doe estava olhando?

Mesmo se não precisássemos nos preocupar com roteadores ou servidores DNS potencialmente infames, ainda existe o risco de que seus dados sejam coletados e vendidos. Porque o próprio resolvedor - que a rede forneceu - pode não ser confiável.

Mesmo se você confiar no resolvedor recomendado da rede, provavelmente o usará apenas em casa. Como mencionei, sempre que estiver em um café, hotel ou em qualquer outra rede, você provavelmente receberá um resolvedor diferente. E quem sabe qual é sua política de coleta de dados?

Além do fato de seus dados serem coletados e depois vendidos sem o seu conhecimento ou consentimento, o sistema é usado de uma maneira ainda mais perigosa.

Spoofing


Com a falsificação, alguém no caminho entre você e o servidor DNS altera a resposta. Em vez de um endereço IP real, o fraudador informa o endereço IP errado para o site. Assim, eles podem bloquear o acesso a um site real ou enviar uma versão falsa dos golpistas.


Envie para 1.6.6.6 ... este é um endereço absolutamente correto, e não um site falso que eu controle

Novamente, aqui o próprio resolvedor pode agir de maneira infame.

Suponha que você faça uma compra em uma loja Megastore. Você deseja comparar preços e ver se esse produto é vendido mais barato na loja online concorrente big-box.com.

Mas se você usa o Megastore WiFi na sala de operações, provavelmente usa o resolvedor. Ele pode interceptar uma solicitação para big-box.com e mentir para você que o site está indisponível.

Como corrigir a situação usando o TRR (Trusted Recursive Resolver) e o DNS sobre HTTPS (DoH)?


Na Mozilla, acreditamos firmemente que somos responsáveis ​​por proteger os usuários e seus dados e, portanto, estamos trabalhando para solucionar essas vulnerabilidades.

Introduzindo dois novos recursos para remediar isso: Trusted Recursive Resolver (TRR) e DNS sobre HTTPS (DoH). Porque na verdade existem três ameaças:

  1. Você pode acabar usando um resolvedor não confiável que rastreia suas solicitações ou falsifica respostas de servidores DNS.
  2. Os roteadores ao longo do caminho podem rastrear solicitações ou intervir da mesma maneira.
  3. Servidores DNS podem rastrear consultas DNS.



Como evitar isso?

  1. Evite resolvedores não confiáveis ​​com o TRR.
  2. Proteja-se contra a escuta e a falsificação usando DNS sobre HTTPS.
  3. Transfira o mínimo de dados possível para proteger os usuários do cancelamento do anonimato.

Evite resolvedores não confiáveis ​​com TRR


As redes podem parar de recomendar resolvedores não confiáveis ​​que coletam dados do usuário ou consultas DNS falsas, porque muito poucos usuários estão cientes dos riscos ou de como se proteger.

Mesmo para usuários que estão cientes dos riscos, é difícil para um usuário individual concordar com seu provedor ou outra organização que será tratado de forma responsável com suas consultas DNS.

No entanto, estudamos esses riscos ... e temos alguma influência. Há muito tempo que procuramos uma empresa que nos ajude a proteger os dados DNS dos usuários. E eles encontraram um desses: Cloudflare .

O Cloudflare fornece um serviço de resolução recursiva com uma política de privacidade para os usuários. Eles se comprometeram a excluir todos os dados de identificação pessoal após 24 horas e nunca transferir esses dados para terceiros. Verificações regulares serão feitas para garantir que os dados sejam realmente excluídos conforme prometido.

Graças a isso, temos um resolvedor confiável para proteger a privacidade do usuário. Isso significa que o Firefox pode ignorar o resolvedor de rede e ir diretamente para o Cloudflare. Agora você não precisa se preocupar que os invasores usem um resolvedor para vender dados do usuário ou falsificação de DNS.

Por que escolhemos um resolvedor? Como nós, o Cloudflare está preocupado em criar um serviço DNS privado. Juntamente conosco, eles desenvolveram um bom resolvedor de DoH transparente. A empresa prontamente buscou proteção adicional do serviço, por isso estamos felizes em cooperar com eles.

Mas isso não significa que você deve usar o Cloudflare. Os usuários podem configurar o Firefox para usar qualquer resolvedor recursivo ativado por DoH. À medida que novos serviços se tornam disponíveis, planejamos implementar a descoberta simples e alternar entre eles.

Proteger contra escuta e falsificação usando DNS sobre HTTPS


Mas o resolvedor não é a única ameaça. Os roteadores no caminho podem rastrear e falsificar consultas DNS, porque também veem o conteúdo das consultas e respostas DNS. Felizmente, já existe tecnologia na Internet para proteger contra a escuta de roteadores no caminho. Esta é a criptografia que eu estava falando.

O uso do HTTPS para trocar pacotes DNS protege as consultas DNS de nossos usuários contra espionagem.

Transfira o mínimo de dados possível para proteger os usuários do cancelamento do anonimato


Além do resolvedor confiável executado sob o protocolo DoH, o Cloudflare e eu estamos trabalhando em medidas de segurança adicionais.

Normalmente, o resolvedor envia o nome de domínio completo para cada servidor: o DNS raiz, o domínio de nível superior, o servidor de nome de domínio de segundo nível etc. Mas o servidor Cloudflare fará diferente. Ele enviará apenas a parte relacionada a um servidor DNS específico. Isso é chamado de minimização de QNAME .


"Você não sabe como acessar o servidor .org?"

Freqüentemente, o resolvedor também inclui os primeiros 24 bits do seu endereço IP na solicitação. Isso ajuda o servidor DNS a descobrir onde você está e selecionar a CDN mais próxima. Mas os servidores DNS podem usar essas informações para vincular consultas díspares entre si.

Em vez disso, o Cloudflare fará uma solicitação a partir de um de seus próprios endereços IP, que fica ao lado do usuário. Isso fornece geolocalização sem referência a uma pessoa específica. Também estamos explorando como implementar um balanceamento de carga ainda melhor e mais preciso, com a privacidade em mente.

Tudo isso - removendo partes desnecessárias do domínio e do endereço IP - significa que o servidor DNS pode coletar muito menos dados sobre você.



O que resta do TRR com DoH?


Essas medidas de proteção reduzem o número de pessoas que podem ver o histórico das páginas que você visita. Mas eles não eliminam completamente o vazamento de dados.

Depois de fazer uma pesquisa de DNS, você ainda precisa se conectar ao servidor da Web nesse endereço para obter um endereço IP. Para fazer isso, envie uma solicitação. A solicitação inclui um SNI (indicação do nome do servidor) indicando o site específico no servidor. E essa solicitação não está criptografada.

Ou seja, seu ISP ainda pode descobrir quais sites você visita, porque eles estão listados ali no SNI. As informações também estão abertas para roteadores que transmitem a solicitação inicial do seu navegador para o servidor da web.

Mas assim que você se conecta ao servidor da Web, tudo é criptografado. E o mais importante, essa conexão criptografada pode ser usada para qualquer site neste servidor, e não apenas para o que você solicitou originalmente.

Às vezes, isso é chamado de conexão HTTP / 2, mesclando ou simplesmente reutilizando uma conexão. Quando você abre uma conexão com um servidor compatível, ele informa quais outros sites estão hospedados nele. Você pode visitar esses sites usando sua conexão criptografada existente.

Por que isso é útil? Porque você não precisa abrir uma nova conexão para se conectar a esses outros sites. Ou seja, você não precisa enviar outra solicitação inicial não criptografada, indicando o SNI e a divulgação de informações em qual site você está acessando. Assim, você pode visitar qualquer um dos outros sites no mesmo servidor sem revelá-los ao seu provedor e roteadores ao longo do caminho.

Com a crescente popularidade da CDN, mais e mais sites individuais são atendidos por um único servidor. E como você pode ter várias conexões unificadas abertas, conecte-se simultaneamente a vários servidores compartilhados ou CDNs, visitando todos os sites em servidores diferentes sem vazamento de dados. Portanto, essa função funciona cada vez mais efetivamente como uma tela de proteção.

Qual é o status?


Já no Firefox, você pode ativar o DNS por HTTPS, e recomendamos que você faça isso .

Por padrão, queremos ativar o DoH para todos os usuários, pois todos merecem privacidade e segurança, independentemente de saberem ou não sobre vazamentos de DNS.

Mas essa é uma mudança significativa e precisa ser testada primeiro. Portanto, estamos realizando um estudo. Metade dos usuários do Firefox Nightly está pedindo ajuda para coletar dados de desempenho.

Nos testes, o resolvedor padrão é usado, como agora, mas as solicitações também são enviadas ao resolvedor do Cloudflare DoH. Em seguida, comparamos o resultado para verificar se tudo está funcionando conforme o esperado.

Para os participantes do estudo, a resposta DNS do Cloudflare ainda não foi usada. Apenas verificamos que tudo funciona e, em seguida, descartamos a resposta do Cloudflare.



Obrigado aos usuários noturnos que ajudam a testar o Firefox todos os dias. Esperamos que você também nos ajude.

Source: https://habr.com/ru/post/pt413515/


All Articles