Shadowsocks: различия между версиями
(не показано 9 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Shadowsocks — это семейство сетевых протоколов, реализованных в одноимённом ПО с открытым исходным кодом, который широко используется во всём мире для | + | '''Shadowsocks''' — это семейство сетевых протоколов, реализованных в одноимённом ПО с открытым исходным кодом, который широко используется во всём мире для создания сетевых туннелей. |
Локальное ПО Shadowsocks работает как прокси-сервер [[SOCKS5]], перенаправляя обращения пользовательского ПО на удалённый сервер по шифрованному каналу. | Локальное ПО Shadowsocks работает как прокси-сервер [[SOCKS5]], перенаправляя обращения пользовательского ПО на удалённый сервер по шифрованному каналу. | ||
+ | |||
+ | Современные версии Shadowsocks могут утилизировать в качестве транспорта как [[TCP]], так и [[UDP]]. | ||
== История == | == История == | ||
Первая версия Shadowsocks была создана в 2012 году анонимным китайским программистом скрывавшимся под псевдонимом clowwindy. | Первая версия Shadowsocks была создана в 2012 году анонимным китайским программистом скрывавшимся под псевдонимом clowwindy. | ||
− | В 2015ом году он [https://chinadigitaltimes.net/2015/08/circumvention-tool-deleted-after-police-visit-developer/ написал] в своём репозитории на Github о том, что, после общения с китайскими правоохранительными органами вынужден удалить свой код и прекратить работу над проектом. | + | В 2015ом году он [https://chinadigitaltimes.net/2015/08/circumvention-tool-deleted-after-police-visit-developer/ написал] в своём репозитории на [[Github]] о том, что, после общения с китайскими правоохранительными органами вынужден удалить свой код и прекратить работу над проектом. |
Его работа была продолжена другими разработчиками, которые последовательно реализовали несколько доработок и расширений протокола. | Его работа была продолжена другими разработчиками, которые последовательно реализовали несколько доработок и расширений протокола. | ||
− | Впоследствии код Shadowsocks неоднократно переписывался, имелись реализации на Python, C, C#, Rust. | + | Впоследствии код Shadowsocks неоднократно переписывался, в том числе на разные языки программирования. В разные годы имелись реализации на Python, C, C#, Rust, в настоящее время реализация на Rust выглядит наиболее проработанной. |
Первоначально энтузиасты создали [[форк]] под названием ShadowsocksR и продолжили работу, первоначально, над тем же исходным кодом, заявляя большую его надёжность и устойчивость к атакам. Однако, эта работа была остановлена. | Первоначально энтузиасты создали [[форк]] под названием ShadowsocksR и продолжили работу, первоначально, над тем же исходным кодом, заявляя большую его надёжность и устойчивость к атакам. Однако, эта работа была остановлена. | ||
Строка 21: | Строка 23: | ||
Все перечисленные версии протокола не совместимы между собой. | Все перечисленные версии протокола не совместимы между собой. | ||
+ | |||
+ | Старые версии Shadowsocks давно нельзя считать надежными и устойчивыми к выявлению. Разработчиками был выпущен ряд расширений протокола для маскировки его использования под TLS ([[Shadow-TLS]]) или Websockets, | ||
+ | |||
+ | Использование этих расширений превращает поток данных, [[Инкапсуляция сетевых протоколов|инкапсулированный]] в Shadowsocks в относительно случайный двоичный поток данных, не опознаваемый [[Анализатор протоколов|анализаторами протоколов]] средств [[Deep Packet Inspection|DPI]]. | ||
+ | |||
+ | В конце 2022 года группа исследователей [[GFW-report]] сообщила о том, что цензоры научились выявлять подобные протоколы методами статистического анализа, проверяя количества битов 1 и 0 в потоке данных. | ||
+ | |||
+ | После этого независимо от основной группы разработчиков Shadowsocks была выпущена специально пропатченная версия Shadowsocks под названием ReducedIvHeadEntropy, совместимая только со старыми версиями протокола и поддержанная не всеми сторонними клиентами. Версия, ReducedIvHeadEntropy для Shadowsocks-2022 по состоянию на апрель 2023 всё ещё находилась в разработке. Использование ReducedIvHeadEntropy ломает совместимость с непропатченными версиями протокола. | ||
+ | |||
+ | == Развитие экосистемы Shadowsocks == | ||
+ | Дальнейшее развитие проекта сообщество разработчиков осуществляет через механизм [https://shadowsocks.org/doc/what-is-sip.html SIP - Shadowsocks Improvement Proposal], предлагаемых пользователями расширений или дополнения стандарта, по механизму действия аналогичных [[RFC]] [[IETF]] (то есть не обязательных к использованию). | ||
+ | |||
+ | Среди наиболее важных SIP можно назвать [https://shadowsocks.org/doc/sip002.html SIP02], определяющий стандарт ссылок на сервера Shadowsocks, которыми могут делиться между собой пользователи. | ||
+ | |||
+ | == Поддержка в программном обеспечении == | ||
+ | Наряду с оригинальным ПО Shadowsocks, протокол поддерживается клиентами и серверами [[V2Ray]], [[XRay]], [[SagerNet]], [[Sing-box]]. | ||
== Ссылки == | == Ссылки == | ||
− | Официальный сервер одной из версий проекта - https://shadowsocks.org | + | |
− | [[ | + | * Официальный сервер одной из версий проекта - https://shadowsocks.org |
+ | * [https://habr.com/ru/articles/727868/ Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все] | ||
+ | * [https://habr.com/ru/articles/728696/ Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие] | ||
[[Категория:Сетевые протоколы]] | [[Категория:Сетевые протоколы]] | ||
+ | [[Категория:Сетевые туннели]] | ||
+ | [[Категория:VPN в России]] |
Текущая версия от 12:39, 18 ноября 2023
Shadowsocks — это семейство сетевых протоколов, реализованных в одноимённом ПО с открытым исходным кодом, который широко используется во всём мире для создания сетевых туннелей.
Локальное ПО Shadowsocks работает как прокси-сервер SOCKS5, перенаправляя обращения пользовательского ПО на удалённый сервер по шифрованному каналу.
Современные версии Shadowsocks могут утилизировать в качестве транспорта как TCP, так и UDP.
История[править | править код]
Первая версия Shadowsocks была создана в 2012 году анонимным китайским программистом скрывавшимся под псевдонимом clowwindy.
В 2015ом году он написал в своём репозитории на Github о том, что, после общения с китайскими правоохранительными органами вынужден удалить свой код и прекратить работу над проектом.
Его работа была продолжена другими разработчиками, которые последовательно реализовали несколько доработок и расширений протокола.
Впоследствии код Shadowsocks неоднократно переписывался, в том числе на разные языки программирования. В разные годы имелись реализации на Python, C, C#, Rust, в настоящее время реализация на Rust выглядит наиболее проработанной.
Первоначально энтузиасты создали форк под названием ShadowsocksR и продолжили работу, первоначально, над тем же исходным кодом, заявляя большую его надёжность и устойчивость к атакам. Однако, эта работа была остановлена.
Также развитие протокола продолжилось другой группой энтузиастов под оригинальным названием.
В первоначальной версии протокола исследователями были обнаружены несколько уязвимостей, позволявших представителям цензуры индентифицировать и блокировать его удалённые сервера. В частности он оказался неустойчив к replay-атаке. В 2017 году разработчиками был предложен протокол Shadowsocks-AEAD, в котором был изменен алгоритм аутентификации.
В 2022 году ими же была выпущена новая версия протокола под названием Shadowsocks-2022.
Все перечисленные версии протокола не совместимы между собой.
Старые версии Shadowsocks давно нельзя считать надежными и устойчивыми к выявлению. Разработчиками был выпущен ряд расширений протокола для маскировки его использования под TLS (Shadow-TLS) или Websockets,
Использование этих расширений превращает поток данных, инкапсулированный в Shadowsocks в относительно случайный двоичный поток данных, не опознаваемый анализаторами протоколов средств DPI.
В конце 2022 года группа исследователей GFW-report сообщила о том, что цензоры научились выявлять подобные протоколы методами статистического анализа, проверяя количества битов 1 и 0 в потоке данных.
После этого независимо от основной группы разработчиков Shadowsocks была выпущена специально пропатченная версия Shadowsocks под названием ReducedIvHeadEntropy, совместимая только со старыми версиями протокола и поддержанная не всеми сторонними клиентами. Версия, ReducedIvHeadEntropy для Shadowsocks-2022 по состоянию на апрель 2023 всё ещё находилась в разработке. Использование ReducedIvHeadEntropy ломает совместимость с непропатченными версиями протокола.
Развитие экосистемы Shadowsocks[править | править код]
Дальнейшее развитие проекта сообщество разработчиков осуществляет через механизм SIP - Shadowsocks Improvement Proposal, предлагаемых пользователями расширений или дополнения стандарта, по механизму действия аналогичных RFC IETF (то есть не обязательных к использованию).
Среди наиболее важных SIP можно назвать SIP02, определяющий стандарт ссылок на сервера Shadowsocks, которыми могут делиться между собой пользователи.
Поддержка в программном обеспечении[править | править код]
Наряду с оригинальным ПО Shadowsocks, протокол поддерживается клиентами и серверами V2Ray, XRay, SagerNet, Sing-box.