2 pontos por GN⁺ 2023-07-31 | 1 comentários | Compartilhar no WhatsApp
  • Snowflake é uma ferramenta de contorno de censura que ajuda usuários em regiões onde o Tor está bloqueado a se conectar à rede Tor, podendo ser usada em apps baseados em Tor como Tor Browser, Orbot e Ricochet-Refresh
  • O usuário pode selecionar o Snowflake nas configurações do app para rotear a conexão por proxies voluntários, sem precisar instalar diretamente uma extensão no navegador
  • O Snowflake usa WebRTC para fazer o tráfego do Tor parecer chamadas de vídeo ou voz, dificultando a detecção por censores
  • Voluntários podem ativar extensões para Firefox, Chrome e Edge para fornecer largura de banda, e a página mostra que há 127.599 Snowflakes em operação
  • A extensão não é para quem quer contornar a censura diretamente, mas sim uma ferramenta de fornecimento de proxy para quem deseja ajudar o acesso ao Tor de outras pessoas

Usando o Snowflake em apps Tor

  • Snowflake é uma tecnologia de contorno de censura que permite acessar o Tor mesmo em redes onde ele está bloqueado
  • Ela já vem integrada a apps baseados em Tor, e quando a conexão é bloqueada, é possível selecionar o Snowflake nas configurações do app para contornar a restrição
    • Tor Browser: suporte para desktop e Android, criado pelo Tor Project
    • Orbot: suporte para Android e iOS, criado pelo Guardian Project
    • Ricochet-Refresh: suporte para desktop, criado pela Blueprint for Free Speech
  • Quem quiser contornar a censura só precisa baixar um app baseado em Tor, como Tor Browser ou Orbot, e ativar o Snowflake
  • A extensão do navegador não é uma ferramenta para acesso direto com contorno, mas um proxy voluntário que retransmite a conexão de outros usuários

Proxies voluntários e como o contorno funciona

  • Voluntários podem instalar e ativar a extensão do navegador para oferecer um proxy Snowflake
  • O Snowflake torna possível o acesso à rede Tor passando por proxies voluntários em países sem censura
  • Assim como uma VPN, ele ajuda a contornar a censura na internet, mas se destaca por disfarçar o tráfego para parecer vídeo ou chamadas de voz
  • A tecnologia base é o WebRTC, muito usado em software de videoconferência, fazendo os rastros de uso do Tor parecerem chamadas de áudio e vídeo
  • O Snowflake é uma tecnologia de contorno relativamente nova da família Pluggable Transports e continua sendo aprimorada
    • Pluggable Transports fazem o tráfego de bridges do Tor parecer uma conexão comum, disfarçando-o para que não pareça um acesso ao Tor
    • O Snowflake faz a conexão parecer uma videochamada, o meek-azure parecer uma conexão da Microsoft, e o WebTunnel parecer uma conexão HTTPS padrão
    • Esse disfarce aumenta o custo do bloqueio, porque para barrar a ferramenta de contorno os censores acabam tendo de bloquear também grandes partes da internet
  • A estrutura técnica pode ser consultada em technical overview, e quem quiser usar o Snowflake em uma aplicação pode entrar em contato com a anti-censorship team

1 comentários

 
GN⁺ 2023-07-31
Opiniões no Hacker News
  • O Snowflake usa domain fronting para o rendezvous[1]. No mundo digital, é como um espião organizar uma reunião secreta na casa de um amigo que não sabe de nada, e no fim isso sempre acaba mal para esse amigo
    Essa técnica é muito usada por agentes maliciosos, e alguns provedores de nuvem até a bloqueiam por padrão[2]. Quando o Signal tentou distribuí-la amplamente, a AWS enviou um alerta forte, com receio de que países como Irã ou China bloqueassem a AWS inteira[3]

    1. https://en.wikipedia.org/wiki/Domain_fronting
    2. https://azure.microsoft.com/en-us/updates/generally-availabl...
    3. https://signal.org/blog/looking-back-on-the-front/
    • Rodei um servidor Snowflake em casa por um tempo, mas desliguei porque consumia CPU demais, e não vi nenhum impacto negativo
      Domain fronting não é uma chave mestra. Signal e Tor tiveram problemas quando provedores de nuvem bloquearam domain fronting — mais precisamente, quando deixaram de dar suporte a um recurso que nunca foi pensado para funcionar daquele jeito —, mas é difícil dizer que havia a intenção de atrapalhar algo. “Fazer o load balancer apresentar um certificado correspondente ao domínio configurado” não é, por si só, um recurso problemático
      Domain fronting é simples a ponto de bastar uma chamada ao openssl e um servidor nginx, e também é fácil de quebrar: basta validar o certificado de fato. Esses certificados são autoassinados ou pertencem a alguma cadeia arbitrária de autoridade certificadora em que sistemas reais não confiariam
      Em vez de “um espião organizando uma reunião secreta na casa de um amigo que não sabe de nada”, está mais para colocar uma placa na frente de um armazém qualquer no Brasil dizendo “Casa Branca, residência do presidente dos EUA, entrada proibida”
      Software enganado por domain fronting ou não se importa com certificados e sua validade, ou tem um bug e deveria ser corrigido. Parte disso pode até ser software de segurança, mas, se um agente malicioso consegue fazer um software de segurança confiar nele usando apenas algumas strings legíveis, domain fronting é uma das menores preocupações
    • Da última vez que vi, a intenção era que endpoints ECH acabassem oferecendo o mesmo serviço efetivo que domain fronting, mas sem bagunçar o backend de um jeito que atrapalhe provedores de nuvem, permitindo que eles deem suporte
      Encrypted Client Hello é um trabalho em andamento para criptografar até o primeiro contato do cliente com um servidor HTTPS
      https://datatracker.ietf.org/doc/draft-ietf-tls-esni/
      O motivo de ECH ser aceitável e domain fronting não é que, no domain fronting, você só descobre a solicitação real tarde demais. Parece uma solicitação normal para this-thing.example, você se prepara todo para processá-la, e de repente vira “desculpe, mudei de ideia; na verdade minha solicitação era para hidden-service.example”
      Com ECH, um atacante bisbilhotando a conexão não sabe, mas nós sabemos desde o início que a solicitação é para hidden-service.example, então não perdemos tempo nos preparando para o trabalho errado
    • Esse é exatamente o ponto. Para bloquear isso, seria preciso bloquear uma parte gigantesca da internet útil. Idealmente, deveríamos conseguir fazer com que, para censurar alguma coisa, fosse necessário bloquear a internet inteira
      Talvez haja um limite para a tirania que eles conseguem impor? No fim, o dano colateral pode ficar tão grande que desistam da tentativa de censura. Ou a sociedade ficará opressiva demais para as pessoas aceitarem
    • É preciso uma fonte para a afirmação de que “essa técnica é muito usada por agentes maliciosos”
  • Isto é um relay de guarda comum, ou seja, um relay que permite que usuários do Tor se conectem ao Tor quando o primeiro salto de um circuito Tor está bloqueado, e usa domain fronting e WebRTC
    Com base na tradução alemã fornecida por padrão, a redação estava bem confusa. O destino também precisa oferecer suporte a WebRTC, então não dá para acessar qualquer site HTTP(S) arbitrário apenas com um proxy dentro do navegador; ainda é necessário outro servidor que aceite a conexão WebRTC e encaminhe o tráfego. O ponto central, que o texto não menciona, é permitir acesso indireto a esse outro servidor
    Chega a dizer que não é necessário software para visitar sites censurados

    Im Gegensatz zu VPNs musst du keine separate Anwendung installieren, um dich mit einem Snowflake-Proxy zu verbinden und die Zensur zu umgehen.
    Mas, na prática, é necessário. Sem um cliente Tor, esse proxy Snowflake é inútil. Entrando nos detalhes técnicos, o link marcado com o aviso “este conteúdo está em inglês” diz o seguinte

    1. User in the filtered region wishes to access the free and open internet. They open Tor Browser, selecting snowflake as the Pluggable Transport.
      O texto principal dizia que “ao contrário de VPNs, não é preciso instalar software separado para contornar a censura”, mas a visão geral técnica diz exatamente o oposto: para usar um proxy Snowflake, é preciso um cliente Tor
    • Não sei quanto à tradução alemã, mas o ponto da versão em inglês é que você não instala o Snowflake em si, e sim software que usa o Snowflake, normalmente o Tor Browser
      Parece uma tentativa de explicar o funcionamento para usuários que podem ficar confusos sobre como instalar o Snowflake, como se fosse um app de proxy ou VPN
      Citando diretamente, fica bem claro: “Ao contrário de VPNs, você não precisa instalar um aplicativo separado para se conectar a um proxy Snowflake e contornar a censura. Geralmente, trata-se de um recurso de circumvenção incorporado a apps existentes.”
  • Se Tor for ilegal no seu país, só tentar usar já parece bastante arriscado. Como qualquer pessoa pode rodar um proxy Snowflake, registrar os endereços IP de conexão é muito fácil. Então, a cada conexão, vira uma aposta em que a chance de sair ileso diminui

    • Até seria possível bloquear Snowflakes com IPs vindos de redes de países inseguros, mas, se o atacante comprar um VPS ou nós de botnet em um país mais livre, isso é facilmente contornado
      Dei uma olhada no Technical Overview[0] e não vi nada que reduza o risco mencionado acima
      O objetivo do Snowflake parece não ser impedir a detecção do uso do Tor, mas sim contornar o bloqueio do Tor. Para isso, ele usa domain fronting e WebRTC
      [0] https://gitlab.torproject.org/tpo/anti-censorship/pluggable-...
    • Na maioria das regiões onde o Snowflake é útil, acessar o Tor é legal ou, mesmo quando há leis proibindo, elas muitas vezes não são aplicadas. Em geral, quem acaba sendo punido são as pessoas que criam ou contribuem para ferramentas de contorno da censura
      Ainda assim, o Tor Project enfatiza de forma consistente que todos os transportes plugáveis têm finalidade de contornar censura, não de esteganografia. Eles dificultam o bloqueio, mas não impedem que um operador de rede descubra que o usuário está se conectando ao Tor. No fim, cabe ao usuário decidir se pode assumir esse risco
    • Basta “simplesmente” conectar a partir de um IP que não possa ser associado a você, usar um chip de mercado paralelo em um celular separado, acessar de um lugar que você normalmente não frequenta e mantê-lo desligado quando não estiver usando. O custo cresce rápido
  • Também não tenho certeza se entendi corretamente a frase “ative o Snowflake abaixo e mantenha a aba do navegador aberta, e usuários poderão se conectar por meio de um novo proxy!”
    Se eu colocar um iframe no meu site, o tráfego de usuários do Tor passa a ser tunelado pelo IP dos visitantes? Como o consentimento é tratado no relay.love? O IP dos visitantes do meu site aparece como um nó de saída do Tor?

    • Não é uma saída. Por padrão, alguém precisa executar conscientemente o applet Snowflake, mas um webmaster poderia modificar o código para, na prática, iniciar automaticamente um guard do Tor no navegador de alguém. Claro que abusar assim dos recursos alheios é muito malicioso
      Esse exemplo pede consentimento do usuário antes de iniciar
    • Se esse tipo de abuso preocupa, é possível desativar o WebRTC na maioria dos bons navegadores. O WebRTC pode ser usado tanto para coisas piores, como varredura de portas na rede interna, quanto para coisas boas, como chamadas de vídeo com latência de milissegundos ou o Peertube
      Porém, esse mecanismo não permite criar sockets remotos arbitrários via JavaScript. Ele só consegue se comunicar com servidores que usem alguma versão de WebRTC/WebSockets, ou com serviços em texto puro que ignorem o overhead adicional do protocolo como lixo e façam o parse do restante. Alguns servidores IRC e WebSockets são bons exemplos
      Como mostra a visão técnica, as pessoas usam tecnologia P2P para se conectar ao navegador do usuário, e o navegador se comunica via WebSockets com um servidor WebSocket que funciona como ponto de entrada comum do Tor
    • É estranho que isso não exija consentimento do navegador
  • Isso me lembra o antigo “armazenar arquivos no YouTube”[0], e fico curioso para saber quanta largura de banda daria para obter aplicando o mesmo conceito a uma solução de conferência de voz amplamente usada, como o Zoom
    Seria ainda melhor se fosse possível transmitir dados durante uma chamada real, usando algo como esteganografia em vídeo, para se misturar de forma mais natural
    [0] https://github.com/DvorakDwarf/Infinite-Storage-Glitch

    • Se isso acontecesse, seria incrível. Mas, se funcionasse independentemente da rede, consigo imaginar pessoas configurando nós e depois levando-os por engano para a empresa ou outra rede pública. Não sei se isso seria melhor ou pior do que usar uma conexão persistente
    • A abordagem sugerida poderia atrair a aplicação do Online Safety Bill do Reino Unido. Por causa do meio de codificação/esteganografia, isso poderia ser classificado não como assunto do OfCom, o órgão regulador do governo, mas como caso de polícia, envolvendo a equipe governamental de criptoanálise do GCHQ
      O governo britânico diz que é apenas uma função do regulador, mas o OSB parece se estender para além das fronteiras simplesmente por poder ser usado no Reino Unido
  • Não sei o quanto isso é novo, mas é muito legal que usuários possam fazer hospedagem de nós apenas alternando um iframe ou instalando uma extensão de navegador. Também fico curioso se esse método tem limites de largura de banda muito menores que a versão CLI

  • Também há uma versão Go autônoma que pode ser implantada em servidores[0]
    Dizem que “uma das principais vantagens do proxy Snowflake standalone é que ele pode ser instalado em servidores e oferece uma opção de maior largura de banda e mais estável para usuários atrás de NATs e firewalls restritivos”
    [0] https://community.torproject.org/relay/setup/snowflake/stand...

  • Instalei e gosto de ver os números subindo. Número maior = dopamina
    Tive sorte de nascer na Escandinávia e, por enquanto, a censura na internet é praticamente zero

    • Você tem sorte apenas porque “você” ainda não foi afetado. Basta perguntar a um jogador de pôquer que ganhou dinheiro legalmente em torneios no exterior, mas não consegue transferir para um banco norueguês
      O mesmo vale para quem ganhou dinheiro com criptomoedas e quer usá-lo como garantia para financiar um apartamento, para quem quer transferir ganhos de cassinos online legais no exterior, ou para quem quer acessar sites que as autoridades norueguesas não gostam e bloquearam via DNS. Técnicos conseguem contornar isso facilmente, mas o abuso de poder por governos e políticos e a restrição das liberdades individuais já começaram e estão aumentando
      Quando isso começar a afetar “a maioria das pessoas”, normalmente será muito mais difícil reverter. O governo norueguês já aprovou leis que permitem vigilância eletrônica em massa e também tenta restringir o acesso público a registros governamentais. Como em grande parte da UE, é uma ladeira muito escorregadia rumo à “social-democracia” de esquerda, isto é, uma ditadura burocrática. As pessoas precisam abrir os olhos e enfrentar agora o excesso de intervenção do governo
  • Bloqueia todos os IPs do Tor que consegue encontrar. Isso porque não há tempo nem paciência para lidar com 99% do spam do Burp Suite vindo desses servidores. É uma solução muito barata e eficaz