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 difere de um serviço de VPN; e o que mudou desde que o documento de design técnico foi atualizado pela última vez.
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 alfa).
O Psiphon é de 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 difere dos serviços VPN padrão de algumas maneiras fundamentais:
- 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 alcançar, sem revelar toda a rede a um único usuário. Para atingir 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 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 listas de permissão baseadas em DPI para tráfego HTTP. 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 derrotar um adversário real no momento em que o implementamos.
- Adicionamos listas remotas de servidores para expandir os conceitos de servidores integrados e de descoberta. Enquanto a descoberta acontece apenas quando conectado a um servidor existente, as listas remotas de servidores podem ser baixadas mesmo quando todos os servidores estiverem bloqueados. As listas remotas de servidores são distribuídas no S3 e acessadas via https://s3.amazonaws.com sem um nome de bucket distintivo na URL. Dessa forma, é difícil para um adversário bloquear nossas listas remotas de servidores 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 personalizados do Psiphon por patrocinador/canal, dependendo do endereço de e-mail para o qual os usuários enviam mensagens.
- Lançamos um cliente Android em 2012. A primeira versão incluía um navegador integrado baseado no WebView do Android. Em 2012/2013, adicionamos suporte ao tunelamento de todo o dispositivo, que tunela todos os aplicativos Android pelo Psiphon. Temos um modo para todo o dispositivo via iptables (para dispositivos Android 2.2+ com root); e um modo para todo o dispositivo 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 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 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 auxilia 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 do cliente 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 um momento de bloqueio.