Публикувана версия на прокси-сървъра outline-ss-server 1.4, която използва протокола Shadowsocks за маскиране на характера на трафика, заобикаляне на защитни стени и измама на системите за инспекция на пакетите. Сървърът се разработва от проекта Outline, който предоставя допълнителна обвивка от клиентски приложения и управляващ интерфейс, позволяващ бързо внедряване на многопотребителски Shadowsocks-сървъри на база outline-ss-server в публични облачни среди или на собствено оборудване, управление чрез уеб интерфейс и организиране на достъпа на потребителите по ключове. Разработката и поддръжката на кода се осъществява от Jigsaw, подразделение на Google, създадено за развитието на средства за заобикаляне на цензурата и организация на свободен обмен на информация.
Outline-ss-server е написан на езика Go и се разпространява с лиценз Apache 2.0. За основа е използван кодът на прокси-сървър go-shadowsocks2, създаден от общността на разработчиците на Shadowsocks. В последно време основната активност на проекта Shadowsocks е концентрирана върху развитието на нов сървър на езика Rust, а реализацията на езика Go не е обновявана от повече от година и значително изостава по функционалност.
Разликите между outline-ss-server и go-shadowsocks2 се свеждат до поддържане на свързването на много потребители през един мрежови порт, възможността за отваряне на множество мрежови портове за прием на връзки, поддръжка на горещо презареждане и актуализиране на конфигурацията без прекъсване на връзките, вградени средства за мониторинг и промяна на трафика на базата на платформата prometheus.io.

В outline-ss-server също така е добавена защита срещу атаки, свързани с изпращане на проверочни заявки и повторно възпроизвеждане на трафика. Атаката чрез проверочни заявки е насочена към определяне наличието на прокси, например, атакуващият може да изпраща на целевия Shadowsocks-сървър набори от данни с различен размер и да анализира колко обем данни сървърът ще прочете преди да определи грешка и да затвори връзката. Атаката с повторно възпроизвеждане на трафика се основава на прихващане на сесия между клиента и сървъра. с последваща опит за повторно изпращане на прихванатите данни за определяне наличието на прокси.
За защита от атаки чрез проверочни заявки, сървърът outline-ss-server не прекъсва връзката и не показва грешка при получаване на некоректни данни, а продължава да приема информация, действайки като своеобразна черна дупка. За защита от повторно възпроизвеждане, данните, получавани от клиента, допълнително се проверяват за повтаряния по контролни суми, съхранявани за последните няколко хиляди handshake поредности (максимум 40 хиляди, размерът се задава при стартиране на сървъра и консумира 20 байта памет на поредност). За блокиране на повторни отговори от сървъра, във всички серверни handshake поредности се прилагат HMAC с 32-битови тагове.
По ниво на скриване на трафика, протоколът Shadowsocks в реализацията outline-ss-server е близък до транспортното обвиване Obfs4 в анонимната мрежа Tor. Протоколът е създаден за заобикаляне на системата за цензура на трафика в Китай („Великият китайски защитен екран“) и позволява достатъчно ефективно скриване на трафика, преминаващ през друг сървър (трафикът е труден за идентифициране благодарение на прикрепването на случайна посявка и симулацията на непрекъснат поток).
Като протокол за проксиране на заявки се използва SOCKS5 — на локалната система се стартира прокси с поддръжка на SOCKS5, който тунелира трафика към отдалечен сървър, от който фактически се изпълняват заявките. Трафикът между клиента и сървъра се помещава в криптиран тунел (поддържа се удостоверително криптиране AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM и AEAD_AES_256_GCM), скриването на факта за създаването на който е основната задача на Shadowsocks. Поддържат се TCP и UDP тунели, както и създаване на произволни тунели, неограничени от SOCKS5, чрез прилагане на приставки, наподобяващи транспортните обвивки в Tor.
Източник: opennet.ru
