Uma Descrição Técnica do Psiphon
03/12/2014 - 4 min de leitura
Atualizado: 04/06/2021
Aqui está uma atualização para responder a duas perguntas recentes: em termos simples, o que é o Psiphon e como ele se diferencia de um serviço VPN; e o que mudou desde a última atualização do documento de design técnico.
O Psiphon 3 é uma rede gerenciada centralmente e geograficamente diversificada de milhares de servidores proxy. A maior parte da nossa infraestrutura é hospedada em provedores de nuvem. O Psiphon 3 possui uma arquitetura de "salto único" com criptografia de link segura entre clientes e servidores. Oferecemos clientes para as plataformas mais populares: Windows, Android e iOS (em versão alfa).
O Psiphon é código aberto. Nosso serviço oferece uma sólida política de privacidade; não há contas de usuário e os endereços de rede dos usuários não são registrados.
O Psiphon se diferencia dos serviços VPN convencionais de algumas maneiras principais:
- Implementamos estratégias para distribuir subconjuntos de servidores aos usuários, com o objetivo de fornecer a cada usuário um punhado de servidores que eles possam acessar, sem revelar toda a rede a um único usuário. Para alcançar esse objetivo, o tamanho da nossa rede — e, em particular, a diversidade dos nossos endereços de rede — não é simplesmente uma função da nossa carga de tráfego.
- Usamos ofuscação de protocolo para contornar o bloqueio por DPI.
O documento de design técnico do Psiphon está desatualizado e o que se segue é um resumo muito breve das principais mudanças técnicas que implementamos desde o lançamento do projeto em 2011.
- Adicionamos o protocolo de SSH ofuscado para mitigar o fingerprinting por DPI. Esse protocolo de aparência totalmente aleatória é implementado com uma chave de ofuscação exclusiva por servidor Psiphon.
- Adicionamos um prefixo HTTP opcional ao nosso protocolo para mitigar a criação de listas de permissões de tráfego HTTP com base em DPI. Esse prefixo simples é suficiente para que DPIs baseados em regex (nDPI e l7-filter) classifiquem o tráfego do Psiphon como HTTP; e foi suficiente para superar um adversário real na época em que o implementamos.
- Adicionamos listas de servidores remotos para complementar os conceitos de servidores integrados e de descoberta. Enquanto a descoberta ocorre apenas quando conectado a um servidor existente, as listas de servidores remotos podem ser baixadas mesmo quando todos os servidores estiverem bloqueados. As listas de servidores remotos são distribuídas no S3 e acessadas via https://s3.amazonaws.com sem um nome de bucket específico na URL. Dessa forma, é difícil para um adversário bloquear nossas listas de servidores remotos sem bloquear todo o S3 ou implementar análise de tráfego HTTPS.
- O e-mail agora é um importante mecanismo de propagação de clientes. Temos um respondedor automático que retorna links e anexos para clientes do Psiphon personalizados por patrocinador/canal, dependendo do endereço de e-mail para o qual os usuários enviam mensagens.
- Lançamos um cliente para Android em 2012. A primeira versão incluía um navegador integrado baseado no WebView do Android. Em 2012/2013 adicionamos suporte para tunelamento de todo o dispositivo, que direciona todos os aplicativos Android pelo Psiphon. Temos um modo de dispositivo completo com iptables (para dispositivos Android 2.2+ com root); e um modo de dispositivo completo que usa o VpnService do Android com o tun2socks (para qualquer dispositivo Android 4+). Recursos adicionais adicionados incluem seleção de região de saída e encadeamento de proxies.
- Temos um cliente para iOS agora em testes alfa. Este aplicativo possui um navegador integrado.
- Nosso mecanismo de feedback no aplicativo nos envia mensagens e diagnósticos opcionais dos usuários. Esse sistema nos ajudou a depurar muitos problemas de plataforma e problemas de bloqueio.
- Mudanças nos algoritmos de descoberta: nossos algoritmos de descoberta evoluem como parte de um processo contínuo de otimização da nossa rede. As principais alterações incluem o compartilhamento de servidores de descoberta entre canais de propagação; e a adição da hora do dia como uma dimensão.
- Otimizações nos algoritmos de conexão: nossos clientes agora iniciam conexões com muitos servidores ao mesmo tempo ao se conectar e mantêm a "melhor" conexão. Isso ajuda no balanceamento de carga, além de reduzir o tempo de espera do usuário, já que servidores individuais bloqueados não interrompem a sequência de conexão.
- A atualização automática de clientes foi aprimorada para usar download incremental e sites de download fora de banda (autenticados com assinaturas digitais). Essas mudanças tornaram mais provável que um novo cliente possa ser distribuído em momentos de bloqueio.