La version 1.4 du serveur proxy outline-ss-server a été publiée, utilisant le protocole Shadowsocks pour masquer la nature du trafic, contourner les pare-feu et tromper les systÚmes d'inspection des paquets. Le serveur est développé par le projet Outline, qui fournit également une interface de gestion et une couche d'applications clientes, permettant de déployer rapidement des serveurs Shadowsocks multi-utilisateurs basés sur outline-ss-server dans des environnements cloud publics ou sur son propre matériel, de les gérer via une interface web et d'organiser l'accÚs des utilisateurs par des clés. Le développement et la maintenance du code sont assurés par Jigsaw, une filiale de Google créée pour développer des outils de contournement de la censure et favoriser l'échange d'informations libre.
Outline-ss-server est écrit en langage Go et distribué sous la licence Apache 2.0. Le code du proxy est basé surde serveurs go-shadowsocks2, développé par la communauté des développeurs de Shadowsocks. Récemment, l'activité principale du projet Shadowsocks s'est concentrée sur le développement d'un nouveau serveur en langage Rust, tandis que l'implémentation en Go n'a pas été mise à jour depuis plus d'un an et accuse un retard fonctionnel significatif.
Les différences entre outline-ss-server et go-shadowsocks2 portent sur le support de plusieurs utilisateurs connectés via un seul port réseau, la possibilité d'ouvrir plusieurs ports réseau pour accepter des connexions, le support du redémarrage à chaud et de la mise à jour de la configuration sans interrompre les connexions, ainsi que des outils de surveillance et de modification du trafic basés sur la plateforme prometheus.io.

Dans outline-ss-server, une protection contre les attaques liĂ©es Ă l'envoi de requĂȘtes de vĂ©rification et Ă la reproduction du trafic a Ă©galement Ă©tĂ© ajoutĂ©e. L'attaque par requĂȘte de vĂ©rification vise Ă dĂ©terminer la prĂ©sence d'un proxy, par exemple, un attaquant peut envoyer un ensemble de donnĂ©es de diffĂ©rentes tailles Ă un serveur Shadowsocks cible et analyser le volume de donnĂ©es que le serveur lira avant de dĂ©tecter une erreur et de fermer la connexion. L'attaque par reproduction du trafic repose sur l'interception de la session entre le client et serveur la tentative ultĂ©rieure de renvoyer les donnĂ©es interceptĂ©es pour dĂ©terminer la prĂ©sence d'un proxy.
Pour se protĂ©ger contre les attaques via des requĂȘtes de vĂ©rification, le serveur outline-ss-server, en cas de donnĂ©es incorrectes, ne rompt pas la connexion et ne renvoie pas d'erreur, mais continue Ă recevoir des informations, agissant comme une sorte de trou noir. Pour Ă©viter la reproduction, les donnĂ©es reçues du client sont Ă©galement vĂ©rifiĂ©es pour les rĂ©pĂ©titions par des sommes de contrĂŽle, sauvegardĂ©es pour les derniĂšres milliers de sĂ©quences de handshake (maximum 40 000, taille dĂ©finie lors du dĂ©marrage du serveur et consommant 20 octets de mĂ©moire par sĂ©quence). Pour bloquer les rĂ©ponses rĂ©pĂ©tĂ©es du serveur, des codes d'authentification HMAC avec des tags de 32 bits sont appliquĂ©s Ă toutes les sĂ©quences de handshake du serveur.
En ce qui concerne le niveau de dissimulation du trafic, le protocole Shadowsocks dans l'implémentation de l'outline-ss-server est proche du transport modulable Obfs4 dans le réseau anonyme Tor. Le protocole a été conçu pour contourner la censure du trafic en Chine (« Grand pare-feu chinois ») et permet de dissimuler assez efficacement le trafic qui transite par un autre serveur (le trafic est difficile à identifier grùce à l'ajout d'un leurre aléatoire et à la simulation d'un flux continu).
Le protocole utilisĂ© pour le proxy des requĂȘtes est SOCKS5 - un proxy prenant en charge SOCKS5 est lancĂ© sur le systĂšme local, qui tunnelise le trafic vers un serveur distant, Ă partir duquel les requĂȘtes sont rĂ©ellement effectuĂ©es. Le trafic entre le client et le serveur est placĂ© dans un tunnel chiffrĂ© (le chiffrement authentifiĂ© est supportĂ© par AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM et AEAD_AES_256_GCM), dissimuler le fait de sa crĂ©ation Ă©tant la tĂąche principale de Shadowsocks. La mise en place de tunnels TCP et UDP est supportĂ©e, ainsi que la crĂ©ation de tunnels arbitraires, non limitĂ©s Ă SOCKS5, via l'utilisation de plugins semblables aux transports modulables dans Tor.
Source : opennet.ru
