Shadowsocks: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
Строка 10: Строка 10:
 
Его работа была продолжена другими разработчиками, которые последовательно реализовали несколько доработок и расширений протокола.
 
Его работа была продолжена другими разработчиками, которые последовательно реализовали несколько доработок и расширений протокола.
  
Впоследствии код Shadowsocks неоднократно переписывался, имелись реализации на Python, C, C#, Rust.
+
Впоследствии код Shadowsocks неоднократно переписывался, в том числе на разные языки программирования. В разные годы имелись реализации на Python, C, C#, Rust, в настоящее время реализация на Rust выглядит наиболее проработанной.
  
 
Первоначально энтузиасты создали [[форк]] под названием ShadowsocksR и продолжили работу, первоначально, над тем же исходным кодом, заявляя большую его надёжность и устойчивость к атакам. Однако, эта работа была остановлена.  
 
Первоначально энтузиасты создали [[форк]] под названием ShadowsocksR и продолжили работу, первоначально, над тем же исходным кодом, заявляя большую его надёжность и устойчивость к атакам. Однако, эта работа была остановлена.  
Строка 21: Строка 21:
  
 
Все перечисленные версии протокола не совместимы между собой.
 
Все перечисленные версии протокола не совместимы между собой.
 +
 +
Старые версии Shadowsocks давно нельзя считать надежными и устойчивыми к выявлению. Разработчиками был выпущен ряд расширений протокола для маскировки его использования под TLS (Shadow-TLS) или Websockets,
 +
 +
Использование этих расширений превращает поток данных, [[Инкапсуляция сетевых протоколов|инкапсулированный]] в  Shadowsocks в относительно случайный двоичный поток данных, не опознаваемый [[Анализатор протоколов|анализаторами протоколов]] средств [[Deep Packet Inspection|DPI]].
 +
 +
В конце 2022 года группа исследователей [[GFW-report]] сообщила о том, что цензоры научились выявлять подобные протоколы методами статистического анализа, проверяя количества битов 1 и 0 в потоке данных.
 +
 +
После этого независимо от основной группы разработчиков Shadowsocks была выпущена специально пропатченная версия shadowsocks под названием ReducedIvHeadEntropy, совместимая только со старыми версиями протокола и поддержанная не всеми сторонними клиентами. Версия, ReducedIvHeadEntropy для Shadowsocks-2022 по состоянию на апрель 2023 всё ещё находилась в разработке. Использование ReducedIvHeadEntropy ломает совместимость с непропатченными версиями протокола.
 +
 +
== Развитие экосистемы 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, и другие]
 +
 
 
[[Категория:Технические средства преодоления интернет-цензуры]]
 
[[Категория:Технические средства преодоления интернет-цензуры]]
 
[[Категория:Сетевые протоколы]]
 
[[Категория:Сетевые протоколы]]

Версия от 11:42, 11 августа 2023

Shadowsocks — это семейство сетевых протоколов, реализованных в одноимённом ПО с открытым исходным кодом, который широко используется во всём мире для обхода интернет-цензуры.

Локальное ПО Shadowsocks работает как прокси-сервер SOCKS5, перенаправляя обращения пользовательского ПО на удалённый сервер по шифрованному каналу.

История

Первая версия 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

Поддержка в программном обеспечении

Наряду с оригинальным ПО Shadowsocks, протокол поддерживается клиентами и серверами V2Ray, XRay, SagerNet, Sing-box.

Ссылки