Выпуск outline-ss-server 1.4, рэалізацыі Shadowsocks-проксі ад праекту Outline

Апублікаваны выпуск проксі-сервера outline-ss-server 1.4, які выкарыстоўвае пратакол Shadowsocks для ўтойвання характару трафіку, абыходу міжсеткавых экранаў і падману сістэм інспектавання пакетаў. Сервер развіваецца праектам Outline, дадаткова якія прадстаўляюць абвязку з кліенцкіх прыкладанняў і кіраўніка інтэрфейсу, які дазваляе хутка разгортваць шматкарыстальніцкія Shadowsocks-серверы на базе outline-ss-server у публічных хмарных асяроддзях або на сваім абсталяванні, кіраваць імі праз web-інтэрфейс і арганізаваць. . Распрацоўкай і суправаджэннем кода займаецца Jigsaw, падраздзяленне ў Google, створанае для развіцця сродкаў абыходу цэнзуры і арганізацыі свабоднага абмену інфармацыяй.

Outline-ss-server напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй Apache 2.0. У якасці асновы выкарыстаны код проксі-сервера go-shadowsocks2, створанага супольнасцю распрацоўшчыкаў Shadowsocks. У апошні час асноўная актыўнасць праекта Shadowsocks засяроджана на развіцці новага сервера на мове Rust, а рэалізацыя на мове Go ўжо больш за год не абнаўлялася і прыкметна адстае па функцыянальнасці.

Адрозненні outline-ss-server ад go-shadowsocks2 зводзяцца да падтрымкі падлучэння некалькіх карыстачоў праз адзін сеткавы порт, магчымасці адкрыцця некалькіх сеткавых партоў для прыёму злучэнняў, падтрымцы гарачага перазапуску і абнаўленні канфігурацыі без парыву злучэнняў, убудаванымі сродкамі маніторынгу і змены трафіку .io.

Выпуск outline-ss-server 1.4, рэалізацыі Shadowsocks-проксі ад праекту Outline

У 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

Дадаць каментар