Shadowsocks

Shadowsocks
Типкомунікаційний протокол і Internet censorship circumventiond
Авториclowwindy та спільнота
РозробникиClowwindyd і zonyitood
ВерсіїWindows: 4.4.1.0 (8 лютого 2022)[1] і macOS: 1.10.2 (29 березня 2023)[2]
Операційна системаUNIX-подібні операційні системи, Windows, Android і IOS
Мова програмуванняC, C++, Perl, Rust, Go
ЛіцензіяGNU GPL 3[3][4], Apache Software License 2.0d[5][6], MIT[7] і GNU Lesser General Public License, version 3.0[8]
Репозиторійhttps://github.com/shadowsocks/shadowsocks-rust, https://github.com/shadowsocks/
Вебсайтshadowsocks.org

"Shadowsocks" - це безкоштовний та відкритий проект шифрування, який широко використовується в КНР для обходу інтернет-цензури. Його створив китайський програміст з ніком "clowwindy" у 2012 році, і з того часу було створено кілька реалізацій цього протоколу. Shadowsocks сам по собі не є проксі, але зазвичай виступає як клієнтське програмне забезпечення для підключення до стороннього проксі SOCKS5, схожого на SSH. Після підключення інтернет-трафік можна направити через проксі. На відміну від SSH-тунелю, Shadowsocks також може проксіювати трафік UDP.

Історія

[ред. | ред. код]

Протокол створено китайським програмістом "clowwindy" у 2012 році. 22 серпня 2015 року "clowwindy" оголосив у темі на GitHub, що до нього звернулися співробітники поліції, через що він більше не зможе підтримувати проект. Відповідний код проекту був в подальшому розгалужений з повідомленням про його припинення. Три дні потому, 25 серпня, інша проксі-програма, GoAgent, також була видалена з репозиторію GitHub. Видалення проектів привернуло увагу ЗМІ, і новинні видання робили припущення про можливий зв'язок між припиненням розробки протоколу і DDoS атакою на GitHub, яка сталася кілька днів пізніше. Денні О'Брайєн з Electronic Frontier Foundation опублікував заяву з цього приводу.

Незважаючи на припинення підтримки проєкту clowwindy, співавтори продовжили розробку протоколу.

Технічні деталі

[ред. | ред. код]

Наразі існує активні реалізації протоколу п'ятьма мовами програмування: С, С++, Rust, Go та Perl(Net::Shadowsocks). Усі вони підтримують роботу як у режимі серверу, так і у режимі клієнту. Оригінальна реалізація протоколу мовою програмування Python, яку створив clowwindy, була видалена з GitHub. Також доступні реалізації тільки для клієнта для Windows (shadowsocks-win), macOS (ShadowsocksX-NG), Android (shadowsocks-android) та iOS (Wingy). Багато клієнтів, включаючи shadowsocks-win та shadowsocks-android, підтримують перенаправлення всього системного трафіку через Shadowsocks, не тільки застосунків, які були явно налаштовані на це, що дозволяє використовувати Shadowsocks подібно до VPN. Якщо додаток не підтримує проксі-сервери, можна використовувати проксифікатор для перенаправлення додатка до клієнта Shadowsocks. Деякі проксифікатори, такі як Proxycap, підтримують безпосередньо Shadowsocks, уникнувши таким чином потреби у клієнті Shadowsocks, але деякі вимагають наявності клієнта.

Shadowsocks схожий на концепцію протоколу "Pluggable Transport" (PT) проекту Tor. PT робить складним виявлення трафіку Tor інтернет-провайдерами. Обидва протоколи також використовують інтерфейс socks-проксі. За розрізненням, Shadowsocks простіший, а Obfs4, що використовується у PT, більш захований. На відміну від Obfs4, Shadowsocks не стійкий до "Active Probing". Найбільш схожий PT до Shadowsocks - це Obfs3.

ShadowsocksR

[ред. | ред. код]

ShadowsocksR - це форк Shadowsocks. Його розробники вказують на покращену безпеку та стабільність. Під час випуску було встановлено, що він порушує ліцензію, не маючи відкритого початкового коду клієнта на мові програмування C#. Також його критикували за спосіб вирішення питань щодо загальновідомих проблем безпеки в джерелі вихідного проекту. Shadowsocks наразі знаходиться в розробці, тоді як розробка ShadowsocksR припинена.

Посилання

[ред. | ред. код]

Див.також

[ред. | ред. код]
  1. Release 4.4.1.0
  2. Release v1.10.2 · shadowsocks/ShadowsocksX-NG · GitHub
  3. https://api.github.com/repos/shadowsocks/shadowsocks-windows
  4. https://api.github.com/repos/shadowsocks/ShadowsocksX-NG
  5. https://api.github.com/repos/shadowsocks/go-shadowsocks2
  6. https://api.github.com/repos/shadowsocks/shadowsocks-go
  7. https://api.github.com/repos/shadowsocks/shadowsocks-rust
  8. https://api.github.com/repos/shadowsocks/shadowsocks-qt5