Una descripción técnica de Psiphon
3/12/2014 - 4 min de lectura
Actualizado: 4/6/2021
Aquí tiene una actualización para responder a dos preguntas recientes: en términos sencillos, qué es Psiphon y en qué se diferencia de un servicio VPN; y qué ha cambiado desde la última actualización del documento de diseño técnico.
Psiphon 3 es una red gestionada de forma centralizada y geográficamente diversa de miles de servidores proxy. La mayor parte de nuestra infraestructura está alojada en proveedores en la nube. Psiphon 3 es una arquitectura de "un solo salto" con cifrado de enlace seguro entre clientes y servidores. Ofrecemos clientes para las plataformas más populares: Windows, Android e iOS (en fase alfa).
Psiphon es de código abierto. Nuestro servicio ofrece una sólida política de privacidad; no hay cuentas de usuario y no se registran las direcciones de red de los usuarios.
Psiphon se diferencia de los servicios VPN estándar en un par de aspectos clave:
- Implementamos estrategias para distribuir subconjuntos de servidores a los usuarios con el objetivo de proporcionar a cada usuario un puñado de servidores a los que pueda acceder, sin revelar toda la red a un solo usuario. Para lograr este objetivo, el tamaño de nuestra red -- y en particular la diversidad de nuestras direcciones de red -- no es simplemente una función de nuestra carga de tráfico.
- Utilizamos ofuscación de protocolos para eludir el bloqueo por DPI.
El documento de diseño técnico de Psiphon está desactualizado y a continuación figura un resumen muy breve de los principales cambios técnicos que hemos implementado desde que se lanzó el proyecto en 2011.
- Añadimos el protocolo SSH ofuscado para mitigar la toma de huellas digitales por DPI. Este protocolo, que parece completamente aleatorio, se implementa con una clave de ofuscación única por cada servidor de Psiphon.
- Añadimos un prefijo HTTP opcional a nuestro protocolo para mitigar las listas blancas de tráfico HTTP basadas en DPI. Este simple prefijo es suficiente para que el DPI basado en expresiones regulares (nDPI y l7-filter) clasifique el tráfico de Psiphon como HTTP; y fue suficiente para vencer a un adversario real en el momento en que lo implementamos.
- Añadimos listas remotas de servidores para complementar los conceptos de servidores integrados y de descubrimiento. Mientras que el descubrimiento solo ocurre al estar conectado a un servidor existente, las listas remotas de servidores se pueden descargar incluso cuando todos los servidores están bloqueados. Las listas remotas de servidores se distribuyen en S3 y se accede a ellas a través de https://s3.amazonaws.com sin un nombre de bucket distintivo en la URL. De esta manera, resulta difícil para un adversario bloquear nuestras listas remotas de servidores sin bloquear todo S3 o implementar análisis de tráfico HTTPS.
- El correo electrónico es ahora un mecanismo importante de propagación de clientes. Tenemos un contestador automático que devuelve enlaces y archivos adjuntos a clientes personalizados de Psiphon por patrocinador/canal según la dirección de correo electrónico a la que escriban los usuarios.
- Lanzamos un cliente para Android en 2012. La primera versión incluía un navegador integrado basado en el WebView de Android. En 2012/2013 añadimos compatibilidad con la tunelización de todo el dispositivo, que canaliza todas las aplicaciones de Android a través de Psiphon. Tenemos un modo de dispositivo completo con iptables (para dispositivos Android 2.2+ con root); y un modo de dispositivo completo que utiliza el VpnService de Android con tun2socks (para cualquier dispositivo Android 4+). Las funciones adicionales agregadas incluyen selección de región de salida y encadenamiento de proxies.
- Tenemos un cliente para iOS actualmente en pruebas alfa. Esta aplicación cuenta con un navegador integrado.
- Nuestro mecanismo de comentarios en la aplicación nos envía mensajes y diagnósticos opcionales de los usuarios. Este sistema nos ha ayudado a depurar muchos problemas de la plataforma y problemas de bloqueo.
- Cambios en los algoritmos de descubrimiento: nuestros algoritmos de descubrimiento evolucionan como parte de un proceso continuo de optimización de nuestra red. Los cambios principales incluyen compartir servidores de descubrimiento entre canales de propagación; y añadir la hora del día como una dimensión.
- Optimizaciones en los algoritmos de conexión: nuestros clientes ahora inician conexiones con muchos servidores a la vez al conectarse, y mantienen la "mejor" conexión. Esto ayuda al equilibrio de carga además de reducir el tiempo de espera del usuario, ya que los servidores bloqueados individualmente no detienen la secuencia de conexión.
- La actualización automática del cliente se mejoró para utilizar descargas incrementales y sitios de descarga fuera de banda (autenticados con firmas digitales). Estos cambios aumentaron la probabilidad de que se pueda distribuir un nuevo cliente en momentos de bloqueo.