
No início de 2010, uma equipe conjunta de especialistas da Universidade de Stanford, da Universidade de Massachusetts, do The Tor Project e da SRI International apresentou os resultados de suas
pesquisas sobre como lidar com a censura na Internet.
Os cientistas analisaram os métodos de contornar os bloqueios que existiam na época e propuseram seu próprio método, chamado flash proxy. Hoje falaremos sobre sua essência e história de desenvolvimento.
1. Introdução
A Internet começou como uma rede aberta a qualquer tipo de dados, mas, com o tempo, muitos países começaram a filtrar o tráfego. Alguns estados bloqueiam determinados sites, como o YouTube ou o Facebook, enquanto outros bloqueiam o acesso ao conteúdo que contém determinados materiais. De uma forma ou de outra, os bloqueios são usados em dezenas de países de diferentes regiões, incluindo a Europa.
Usuários em regiões onde os bloqueios são usados tentam ignorá-los usando vários proxies. Existem várias direções para o desenvolvimento de tais sistemas, uma das tecnologias - Tor, foi usada durante o projeto.
Normalmente, os desenvolvedores têm proxies para ignorar bloqueios com três tarefas que precisam ser resolvidas:
- Protocolos de encontro. O protocolo de encontro permite que os usuários em um país com bloqueios enviem e recebam pequenas quantidades de informações para estabelecer uma conexão com um proxy - no caso do Tor, por exemplo, ele usa o encontro para distribuir o endereço IP dos relés Tor (pontes). Tais protocolos são usados para tráfego de baixa taxa e bloqueá-los não é tão simples.
- Criando um proxy. Os sistemas de bloqueio precisam de proxies fora da região com Internet filtrada para transferir o tráfego do cliente para os recursos de destino e vice-versa. Os organizadores de bloqueio podem, em resposta, impedir que os usuários reconheçam os endereços IP dos proxies e os bloqueiem. Para combater esse ataque Sibyl, um serviço de proxy deve poder criar constantemente novos proxies. É a rápida criação de novos proxies que é a principal essência do método proposto pelos pesquisadores.
- Camuflagem. Quando um cliente recebe o endereço de um proxy desbloqueado, ele precisa ocultar sua comunicação com ele de alguma forma, para que a sessão não possa ser bloqueada usando as ferramentas de análise de tráfego. Ele precisa ser camuflado para o tráfego "normal", como a troca de dados com uma loja online, jogos online etc.
Em seu trabalho, os cientistas propuseram uma nova abordagem para a rápida criação de proxies.
Como isso funciona
A idéia principal é usar muitos sites para criar uma quantidade enorme de proxies com uma vida útil curta de não mais do que alguns minutos.
Para fazer isso, crie uma rede de pequenos sites pertencentes a voluntários - como as páginas iniciais dos usuários, que vivem fora da região com bloqueios da Internet. Esses sites não estão de forma alguma associados aos recursos que o usuário deseja acessar.
Um pequeno emblema é instalado nesse site, que é uma interface simples criada usando JavaScript. Um exemplo desse código:
<iframe src="//crypto.stanford.edu/flashproxy/embed.html" width="80" height="15" frameborder="0" scrolling="no"></iframe>
É assim que o emblema se parece:

Quando um navegador de um local fora de uma região com bloqueios chega a um site com um crachá, ele começa a transmitir tráfego para essa região e vice-versa. Ou seja, o navegador do visitante se torna um proxy temporário. Depois que esse usuário sai do site, o proxy é destruído sem nenhum rastreio.
Como resultado, é possível obter desempenho suficiente para manter o túnel Tor.
Além do Tor Relay e do cliente, o usuário precisará de mais três elementos. O chamado facilitador, que recebe solicitações do cliente e o conecta ao proxy. A comunicação ocorre usando plug-ins de transporte no cliente (aqui está a
versão do Chrome ) e os comutadores de relé Tor do WebSockets para o TCP puro.

Uma sessão típica usando esse esquema se parece com isso:
- O cliente inicia o Tor, o cliente proxy flash (plug-in do navegador) e envia a solicitação de registro ao facilitador usando o protocolo de encontro. O plug-in começa a ouvir a conexão remota.
- Um proxy flash aparece on-line e entra em contato com o facilitador com uma solicitação para conectar-se ao cliente.
- O facilitador retorna o registro passando dados de proxy flash para a conexão.
- O proxy se conecta ao cliente cujos dados foram enviados para ele.
- O proxy se conecta ao plug-in de transporte e aos relés Tor e inicia a troca de dados entre o cliente e o relé.
A peculiaridade dessa arquitetura é que o cliente nunca sabe com antecedência exatamente onde ele precisará se conectar. De fato, o plug-in de transporte aceita o endereço de destino falso apenas para não violar os requisitos dos protocolos de transporte. Então esse endereço é ignorado e um túnel é criado para outro ponto de extremidade - o relé Tor.
Conclusão
O projeto de proxy flash está em desenvolvimento há vários anos e, em 2017, os criadores deixaram de apoiá-lo. O código do projeto está disponível
neste link . O proxy flash foi substituído por novas ferramentas de desvio de bloqueio. Um deles é o projeto Snowflake, construído sobre princípios semelhantes.