¿Qué es Shadowsocks?
Evita bloqueos con Shadowsocks, difícil de detectar; SOCKS5 y AEAD, diferencias con VPN, instalación y configuración sencilla de clientes y servidores.
Contenido del artículo
Shadowsocks es un protocolo gratuito de cifrado para la transmisión de datos, de código abierto y desarrollado con base en la tecnología SOCKS5.
Este protocolo fue creado en China para sortear el gran cortafuegos chino, y lo consigue con éxito.
Cuando un sitio está bloqueado, significa que no puedes acceder a su dirección IP. Por eso, al intentar abrir una página bloqueada, primero te conectas al servidor de tu proveedor de internet y luego al sitio, pero sin éxito. Con un proxy, primero te conectas al servidor de tu proveedor, luego al servidor proxy y sólo entonces accedes al sitio.
Shadowsocks se basa en el protocolo proxy SOCKS5, que protege la conexión mediante el cifrado AEAD, que funciona de manera similar a un túnel SSH. AEAD se considera un cifrado simple, por lo que es menos seguro.
Shadowsocks es parecido a una red privada virtual (VPN), pero esta última usa un cifrado más complejo, lo que la hace más segura. Sin embargo, el cifrado simple de Shadowsocks es más difícil de detectar porque se parece a una conexión HTTPS común.
Ventajas de Shadowsocks
- Fácil configuración del servidor: más abajo te mostraré que la configuración estándar son solo 5 líneas y no necesitas lidiar con certificados. Después de todo, no estamos creando una red bancaria.
- Fácil configuración del cliente. Hay clientes para todo, sin exagerar. La configuración del cliente también son esas 5 líneas.
- El cliente no necesita permisos de administrador para funcionar. Además, se puede instalar desde pip. Esto significa que cualquier programador puede conectarse desde su trabajo.
- Es fácil configurar el acceso a nivel de aplicaciones individuales. En el navegador, con complementos como FoxyProxy/OmegaSwitchy, puedes hacerlo por direcciones específicas con reglas complejas. Con una VPN, esto solo se logra levantando proxies locales en cada cliente.
- A diferencia de la VPN, que en la mayoría de sistemas funciona mediante una tarjeta de red virtual, el cliente Shadowsocks no desaparece si la conexión se corta. Así, tu tráfico no quedará desprotegido por accidente. Además, aunque falle la aplicación Shadowsocks, los programas no apuntan directamente, salvo que los configures para hacerlo. Con VPN tienes que usar un kill-switch, que suele ser poco fiable y con efectos secundarios, sobre todo en Windows.
- Comparado con un túnel SSH, ofrece mayor ancho de banda, soporta miles de clientes con múltiples conexiones cada uno. El túnel SSH, por ejemplo con torrents, se ralentiza notablemente; además, las pequeñas irregularidades de la red afectan su velocidad. A Shadowsocks no le importa.
- Envía menos información técnica por las conexiones, lo que beneficia la batería de dispositivos móviles.
- Existen versiones exóticas de servidores, creadas como librerías para distintos lenguajes. Esto permite integrar el servidor en tu propia aplicación para cifrar el acceso de tus clientes.
- Configuración gráfica de clientes. Puedes generar un código QR que, al escanearlo, configura automáticamente los clientes móviles y de Windows. Configuras un cliente en Windows, creas el código, y en un minuto lo distribuyes a 20 móviles. Puedes ponerlo en tu sitio web o colgarlo en una pared.
Desventajas de Shadowsocks
- A diferencia de OpenVPN, no ha pasado auditorías oficiales. Aunque ha sido revisado por mucha gente, ya que el código es abierto y pequeño, oficialmente no lo ha hecho.
- No separa a los usuarios. Se puede configurar para escuchar en varios puertos con diferentes contraseñas, pero en un mismo puerto solo una contraseña. Conocer la contraseña no permite (teóricamente) escuchar a otro usuario en ese puerto.
- No permite reenvío de puertos inverso. Es decir, todos se conectan como si estuvieran detrás de un NAT. Si es posible, tendrás que usar un túnel SSH.
- El cliente para Android muestra dos mensajes fijos que no se pueden quitar. Si no los ocultas, resultan muy molestos.
- Hay un par de programas tercos para Windows que no funcionan con Shadowsocks, sin importar cómo los configures. Tristemente, los desarrolladores pueden programar para que ignoren la configuración de proxy cuando verifican licencias. Más abajo te contaré un truco para identificar estos programas.
- La latencia de la conexión es mayor que con OpenVPN. No es mucho y puedes jugar sin problema, pero está ahí.
- No comprime el tráfico con archivadores. En la era del HTTPS esto no es crítico, pero para archivos de texto sin comprimir o imágenes reales de Ubuntu, hay diferencia.
- La documentación fue escrita por chinos en un inglés muy particular, con muchos puntos omitidos y contradicciones.
Diferencias entre Shadowsocks y VPN
La diferencia principal es que una VPN es una red totalmente cifrada, mientras que Shadowsocks cifra los datos solo entre tú y el servidor proxy, y no te ofrece anonimato completo en Internet.
Shadowsocks utiliza TCP y HTTPS, que no ofrecen el mismo nivel de seguridad que una VPN, pero permiten sortear restricciones con mejor velocidad de conexión.