Byl zveřejněn vydání proxy serveru outline-ss-server 1.4, který používá protokol Shadowsocks k maskování charakteru provozu, obcházení firewallů a obelhávání systémů inspekce paketů. Server je vyvíjen projektem Outline, který navíc poskytuje wrapper pro klientské aplikace a ovládací rozhraní, umožňující rychlé nasazení víceuživatelských Shadowsocks serverů založených na outline-ss-server v veřejných cloudových prostředích nebo na vlastním hardwaru, spravovat je prostřednictvím webového rozhraní a organizovat přístup uživatelů pomocí klíčů. Vývojem a údržbou kódu se zabývá Jigsaw, oddělení v Google, vytvořené pro rozvoj nástrojů k obcházení cenzury a organizaci svobodné výměny informací.
Outline-ss-server je napsán v jazyce Go a distribuuje se pod licencí Apache 2.0. Jako základ byl použit kód proxy-serveru go-shadowsocks2, vytvořeného komunitou vývojářů Shadowsocks. V poslední době se hlavní aktivita projektu Shadowsocks soustředila na rozvoj nového serveru v jazyce Rust, zatímco implementace v jazyce Go již více než rok nebyla aktualizována a výrazně zaostává z hlediska funkcionality.
Rozdíly mezi outline-ss-server a go-shadowsocks2 spočívají v podpoře připojení několika uživatelů prostřednictvím jednoho síťového portu, možnosti otevření několika síťových portů pro příjem připojení, podpoře horkého restartu a aktualizace konfigurace bez přerušení spojení, integrovaných prostředcích sledování a změny provozu na základě platformy prometheus.io.

V outline-ss-server byla také přidána ochrana proti útokům souvisejícím se zasíláním ověřovacích dotazů a opětovným přehráváním provozu. Útok prostřednictvím ověřovacích dotazů je zaměřen na určení přítomnosti proxy, například útočník může posílat na cílový Shadowsocks server sady dat různých velikostí a analyzovat, jaký objem dat server přečte před určením chyby a uzavřením spojení. Útok s opětovným přehráváním provozu je založen na zachycení sezení mezi klientem a serverem následným pokusem o opětovné odeslání zachycených dat za účelem určení přítomnosti proxy.
Aby se chránil před útoky skrze testovací požadavky, server outline-ss-server při příjmu nesprávných dat neukončuje spojení a nevypisuje chybu, ale pokračuje v přijímání informací, funguje jako jakási černá díra. Pro ochranu před opakovaným vyzváněním jsou data přicházející od klienta navíc kontrolována na duplicity pomocí kontrolních součtů, které se uchovávají pro poslední několik tisíc handshake sekvencí (maximálně 40 tisíc, velikost je nastavena při spuštění serveru a spotřebovává 20 bajtů paměti na sekvenci). Pro blokaci opakovaných odpovědí ze serveru se ve všech serverových handshake sekvencích používají HMAC autentifikační kódy se 32bitovými tagy.
Pokud jde o úroveň skrývání provozu, protokol Shadowsocks v implementaci outline-ss-server je blízký připojitelnému transportu Obfs4 v anonymní síti Tor. Protokol byl vytvořen k obcházení cenzurního systému provozu v Číně ('Velký čínský firewall') a umožňuje poměrně efektivně skrývat provoz projíždějící přes jiný server (provoz je těžké identifikovat díky připojení náhodné šablony a simulaci nepřetržitého toku).
Protokol SOCKS5 je použit pro proxy požadavky — na lokálním systému se spouští proxy s podporou SOCKS5, která tuneluje provoz na vzdálený server, ze kterého jsou skutečně prováděny požadavky. Provoz mezi klientem a serverem je umístěn do šifrovaného tunelu (podporováno je autentizované šifrování AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM a AEAD_AES_256_GCM), jehož skrytí je primárním úkolem Shadowsocks. Podporována je organizace TCP a UDP tunelů, stejně jako vytváření libovolných tunelů, které nejsou omezeny SOCKS5, prostřednictvím použití pluginů připomínajících připojitelné transporty v Tor.
Zdroj: opennet.ru
