Se ha publicado la versión del servidor proxy outline-ss-server 1.4, que utiliza el protocolo Shadowsocks para ocultar la naturaleza del tráfico, eludir cortafuegos y engañar a los sistemas de inspección de paquetes. El servidor está desarrollado por el proyecto Outline, que también proporciona un marco de aplicaciones cliente y una interfaz de gestión que permite desplegar rápidamente servidores Shadowsocks multiusuario basados en outline-ss-server en entornos cloud públicos o en su propio hardware, gestionarlos a través de una interfaz web y organizar el acceso de los usuarios mediante claves. La codificación y el mantenimiento del código están a cargo de Jigsaw, una división de Google creada para desarrollar herramientas de evasión de censura y facilitar el libre intercambio de información.
Outline-ss-server está escrito en Go y se distribuye bajo la licencia Apache 2.0. Como base se utilizó el código proxy-servidores go-shadowsocks2, creado por la comunidad de desarrolladores de Shadowsocks. Recientemente, la actividad principal del proyecto Shadowsocks se ha centrado en el desarrollo de un nuevo servidor en Rust, y la implementación en Go no se ha actualizado durante más de un año, quedando notablemente detrás en funcionalidad.
Las diferencias entre outline-ss-server y go-shadowsocks2 se resumen en el soporte para múltiples conexiones de usuario a través de un puerto de red único, la posibilidad de abrir múltiples puertos de red para recibir conexiones, el soporte para reinicios en caliente y la actualización de la configuración sin romper las conexiones, y las herramientas integradas de monitoreo y modificación del tráfico basadas en la plataforma prometheus.io.

En outline-ss-server también se ha añadido protección contra ataques relacionados con el envío de solicitudes de verificación y la reproducción de tráfico. El ataque a través de solicitudes de verificación está dirigido a determinar la existencia de un proxy; por ejemplo, un atacante puede enviar al servidor Shadowsocks objetivo conjuntos de datos de diferentes tamaños y analizar qué volumen de datos el servidor lee antes de determinar un error y cerrar la conexión. El ataque de reproducción de tráfico se basa en la interceptación de la sesión entre el cliente y el servidor con un intento posterior de reenviar los datos interceptados para determinar la existencia de un proxy.
Para protegerse contra ataques a través de solicitudes de verificación, el servidor outline-ss-server no interrumpe la conexión ni muestra un error al recibir datos incorrectos, sino que continúa aceptando información, actuando como una especie de agujero negro. Para evitar la reproducción de datos, la información proveniente del cliente se verifica adicionalmente por duplicados a través de sumas de verificación almacenadas para las últimas miles de secuencias de handshake (máximo 40 mil, el tamaño se establece al iniciar el servidor y consume 20 bytes de memoria por secuencia). Para bloquear respuestas repetidas del servidor, se aplican códigos de autenticación HMAC con etiquetas de 32 bits a todas las secuencias de handshake del servidor.
En cuanto al nivel de ocultamiento del tráfico, el protocolo Shadowsocks en la implementación del outline-ss-server es similar al transporte plugable Obfs4 en la red anónima Tor. El protocolo fue creado para eludir el sistema de censura del tráfico en China (el 'Gran Cortafuegos Chino') y permite ocultar de manera bastante efectiva el tráfico que se envía a través de otro servidor (el tráfico es problemático de identificar gracias a la anexión de una semilla aleatoria y la simulación de un flujo continuo).
Se utiliza SOCKS5 como protocolo para el proxy de solicitudes; se inicia un proxy en la sistema local que admite SOCKS5, el cual túneliza el tráfico hacia un servidor remoto desde el cual se realizan realmente las solicitudes. El tráfico entre el cliente y el servidor se coloca en un túnel cifrado (se admite cifrado autenticado AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM y AEAD_AES_256_GCM), ocultar la creación de este túnel es la tarea primordial de Shadowsocks. Se admite la organización de túneles TCP y UDP, así como la creación de túneles arbitrarios no limitados a SOCKS5 mediante el uso de plugins, similares a los transportes plugin en Tor.
Fuente: opennet.ru
