Блог

Shadowsocks: що це, як працює, порівняння з VPN

  • Feb 9, 2024, 9:58 AM
  • 8 хвилини

Ми розповімо про протокол, його механіку роботи, плюси, мінуси, а водночас порівняємо його з VPN.

Що таке Shadowsocks

Shadowsocks - це безкоштовний інструмент для тих, кому хочеться обійти блокування простим, але непопулярним способом. Це мережевий протокол з шифруванням даних. Він також допомагає з захистом трафіку та персональних даних. Оснований на технології SOCKS5, вихідний код є на GitHub.

Проект стартував у 2012 році. Китайський розробник під псевдонімом Clowwindy опублікував перші наробки Shadowsocks на GitHub. Протокол допомагав обійти обмеження "Золотого щита", того самого великого китайського файервола. Проект став популярним у всьому світі після видалення з GitHub, що привернуло увагу ЗМІ. Журналісти припустили зв'язок між видаленням і атакою на GitHub, яка сталася декілька днів потому.

Clowwindy припинив розробку у 2015 році за вимогою правоохоронних органів КНР. З тих пір Shadowsocks розвиває спільнота.

​​

​​

Карта з сайту Freedom House добре демонструє, в яких країнах точно пригодиться Shadowsocks.

Shadowsocks потрібний для схожих з VPN задач:

  • Обхід блокувань. Протоколи застосовують для доступу до заблокованих ресурсів як в країні, так і провайдерами та операторами.
  • Захист особистих даних. Складніше отримати доступ до трафіку та персональних даних.
  • Безпечне з'єднання з незахищених точок - наприклад, через безкоштовний Wi-Fi.

Як працює

При стандартному мережевому підключенні користувач виходить в інтернет безпосередньо через свого провайдера. Наприклад, якщо він хоче відвідати певний сайт, то він спочатку підключається до маршрутизатора провайдера, а потім вже до самого сайту. Якщо держава захоче заблокувати цей сайт, то провайдера просять заборонити доступ до його IP-адреси.

Щоб обійти це обмеження, використовують проксі. В цьому випадку між провайдером і сайтом утворюється «посередник» - проксі-сервер. З'єднання здійснюється так само через провайдера, але він лише знає, що запит йде на проксі. Тому підключення до сайту відбувається без обмежень, а трафік йде назад до пристрою користувача. Але тут є декілька проблем, наприклад:

  • Сайти і провайдери можуть визначити, що ви використовуєте обхідні інструменти
  • З'єднання не захищене. Хоча, ви можете використовувати проксі з шифруванням або VPN, який найчастіше шифрує трафік.

Shadowsocks потрібний для вирішення цих проблем. Він шифрує дані і видаватиме їх за звичайний HTML-трафік. Оснований протокол на SOCKS5, про який є стаття у нашому блозі. І допомагає з захистом з'єднання через AEAD-алгоритм.

У AEAD використовується той же принцип, що і при SSH-тунелюванні, тільки в зашифровані дані в разі AEAD входить ще інформація про джерело та отримувача. Це ускладнює життя зловмисникам. Навіть якщо він перехопить повідомлення, то не зможе підробити передачу даних.

Взагалі шифри AEAD вважають не такими безпечними, судячи з обговорень на Stack Exchange. Але їх вповні достатньо для надійного підключення і захисту даних.

Принцип роботи Shadowsocks: для програм SS до нього приходиться як звичайний SOCKS5, тільки з IP-адресою 127.0.0.1. Таку IP називають Localhost, а підключення відбувається локально. Тобто будь-яка програма, наприклад браузер, підключається до того ж пристрою, де запущений Shadowsocks. Далі йде підключення між локальним компонентом Shadowsocks і серверним, в цій зв'язці трафік вже шифрується.

Деталі можна дізнатися з відео про обхід китайського брандмауеру.

Ви можете підключати інші додатки до Shadowsocks, і проксі буде працювати тільки для обраних додатків. Якщо ж який-небудь з них не підтримує проксі, то використовуйте, наприклад Proxifier.

​​

​​

Щоб встановити і налаштувати Shadowsocks, трохи потрібно розбиратися у з"єднаннях. Що потрібно для початку:

  • Купити і налаштувати VPS-сервер в тій країні, де не заблокований потрібний контент, або скористатися готовим проксі-сервером, знайти їх можна на сайтах з Shadowsocks-проксі.
  • Клієнт-сервер. Мобільний додаток є в Google Play, програму для ПК можна завантажити для Windows і Linux.

​​

​​

Потім достатньо провести установку і запустити клиєнт, потім налаштувати з"єднання з сервером: додати IP-адресу сервера, порт, пароль і метод шифрування.

Shadowsocks пропонує три режими підключення.

  1. Режим прямого підключення не перенаправляє ваш трафік через проксі-сервер. Передустановлені налаштування для деяких додатків працюють у цьому режимі.
  2. Режим PAC: трафік буде проходити через проксі-сервер при доступі до заблокованих веб-сайтів.
  3. У глобальному режимі весь трафік перенаправляється через проксі-сервер.

Shadowsocks вміє імітувати HTTPS-з'єднання до віддаленого серверу. Це необхідно для маскування трафіку. Так провайдер не зрозуміє, що переглядає користувач і що обходить блокування. Такий прийом можливий після установки на сервер плагіна обфускації трафіку simple-obfs.

Обфускація - це маскування та заплутування трафіку. З її допомогою можна захистити його від виявлення: провайдер не зможе дізнатися, що ви використовуєте Shadowsocks. Зазвичай для цього застосовують шифрування коду, перейменування змінних в незмисливість, додавання зайвого коду, або просто використовують рішення типу Cloak, Stunnel, OpenVPN Scramble і інші.

Китайці вмудрилися відстежувати роботу Shadowsocks за допомогою пасивного аналізу трафіку і активного "вщупування", а потім блокувати з'єднання, незважаючи на обфускацію. Спочатку фаєрвол шукає можливі з'єднання Shadowsocks, а на другому етапі підключається до серверів-учасників цих з'єднань, зі своїх IP-адрес, ніби він клієнт Shadowsocks, і спостерігає за відповідями сервера.

На GitHub можна прочитати деталі та механіку вирішення проблеми, але в будь-якому випадку Shadowsocks все одно працює краще VPN.

Плюси

1) Вибіркове маскування трафіку. Можна вказати, який трафік відправляти через провайдера, а який через Shadowsocks. Це допоможе одночасно обійти блокування та зберегти доступ до деяких сервісів.

Приклад: одночасна робота сайтів типу Instagram і державних онлайн-сервісів. Перший може бути недоступний для вашої країни, а решта працюють тільки з місцевими IP-адресами. Якщо використовувати VPN, то зможете сидіти в Instagram, але не вийде запустити місцеві сервіси. Втім, деякі VPN підтримують окреме тунелювання. З Shadowsocks вдасться вирішити цю проблему: можна замаскувати трафік з Instagram і паралельно використовувати інші служби.

2) Захист від DPI. DPI - це технологія перевірки трафіку для відстеження роботи з конкретними додатками. Shadowsocks майже неможливо виявити і заблокувати, оскільки він імітує звичайне підключення по HTTPS. Тому провайдер не зможе виявити "нестандартну" поведінку користувача.

3) Надійність. Shadowsocks нікуди не зникне навіть при розриві зв'язку, якщо налаштувати з'єднання тільки через нього. При втраті з'єднання з VPN-сервером трафік піде напряму, і провайдер побачить усю інформацію. Частково цей проблему вирішує KillSwitch: аварійна кнопка обриває з'єднання з інтернетом. Але іноді вона не спрацьовує або її немає.

4) Хороша пропускна спроможність. Shadowsocks при грамотній настройці працює швидше за інші методи шифрування, наприклад, SSH-тунелювання і VPN. Приблизні втрати швидкості - не більше 3-5%.

5) Універсальність. Є клієнтські програми для будь-яких операційних систем - Windows, MacOS, Linux (різних дистрибутивів), Android і iOS.

6) Зменшена обчислювальна навантаження при шифруванні. З точки зору клієнта - економія заряду батареї (актуально для мобільних пристроїв), з точки зору сервера - економія на хостингу VPS/VDS для Shadowsocks.

7) Економія. Для Shadowsocks підійде найбільш дешевий VPS-сервер. Ідеально, якщо хостинг-провайдер надає безлімітний трафік з використанням VPS/VDS. Це набагато вигідніше, ніж платний VPN-сервіс. Також можете використовувати і чужі проксі, але варіанти від WannaFlix, 12VPN набагато дорожче власного сервера, близько 10$ на місяць.

Для порівняння: можна орендувати VPS з 5 ГБ пам'яті, 0,5 ГБ RAM і безлімітним трафіком за $0.87. Цього вповні достатньо для Shadowsocks. А найдешевші VPN-сервіси зазвичай обходяться приблизно $2 на місяць, тобто вдвічі дорожче, при цьому потрібно одразу оплатити підписку на 2-3 роки. Безкоштовні VPN не розглядаємо - вони передають дані, обмежують швидкість та трафік.

Мінуси

1) Складність в використанні. Потрібно розуміти, як працюють ПК і з"єднання, але конфігурація вміщується в 5 рядків. VPN набагато простіше.

2) Ризик падіння швидкості з'єднання.Залежно від використаних обфускаторів, існує ймовірність, що Shadowsocks суттєво знизить швидкість інтернету.

3) Обмеженість у використанні.Shadowsocks можна спробувати для зміни регіону Netflix, але така схема працюватиме недовго: сервіс стежить за різними системами обходу. Для торрент-файлів також не найрозумніше рішення: якщо орендуєте сервер, то легко вираховувати ваше ім'я і карту, а потім звинуватити в порушенні авторських прав.

4) Обмежена доступність..Незважаючи на популярність Shadowsocks, в деяких регіонах важко придбати або підключитися до надійних VPS-серверів.

5) Немає офіційного аудиту. Відкритого вихідного коду Shadowsocks перевірило багато спеціалістів.. Але офіційну перевірку він не пройшов, на відміну від того ж OpenVPN. Офіційний аудит міг би зробити фонд OSTIF (Open Source Technology Improvement Fund), який саме й створювали для підсилення захисту подібних проектів. При цьому код Shadowsocks досить простий - це створює ризик поширення підроблених пакетів ПЗ.

VPN проти Shadowsocks

VPN і Shadowsocks - це різні інструменти. Перший - це віртуальна приватна мережа, а другий - проксі-протокол. Технічно, вони обидва:

  • Шифрують трафік
  • Допомагають обходити блокування

Але Shadowsocks передбачає більш просте шифрування і не дозволяє досягнути анонімності в Інтернеті. Проект початково розробляли не стільки для безпеки, скільки для обходу китайського файервола. Але в ShadowsocksR проблему частково виправили, про нього розповімо в кінці статті. У VPN же зазвичай застосовують складний алгоритм AES-256.

Ще у VPN-сервісів часто є багато додаткових функцій. Наприклад, KillSwitch. VPN - це "подвійка", тому якщо він перестане працювати, то трафік піде напряму. У цьому випадку легко скомпрометувати справжній IP-адресу. KillSwitch захищає від цього: він миттєво обриває інтернет-з'єднання, якщо втрачений доступ до VPN-сервера.

Нарешті, у VPN велика мережа серверів. Можна виходити в інтернет з різних країн - кожного разу IP-адреса міняється на країну обраного сервера.

Висновок: VPN зручніше, безпечніше і простіше. Якщо ви маєте до нього доступ і він справляється з завданнями, використовуйте його. Якщо є складнощі, то Shadowsocks повинен вирішити проблему: він набагато краще в країнах, де блокують VPN і де складно обійти обмеження. З ним дані схожі на HTTPS-трафік і не викликають підозр. Використання кількох TCP-підключень допомагає досягти високої швидкості. Для простого обходу блокувань він і вигідніше.

Shadowsocks проти VPN


Shadowsocks
VPN
Шифрування
Шифрування слабше, ніж у більшості VPN
Надійне шифрування тільки між вашим пристроєм і сервером
Доступ до контенту
Обходить інтернет-цензуру і відкриває доступ до блокованого контенту
Також обходить цензуру, але легше виявити факт використання
Швидкість роботи
Швидше завдяки меншому шифруванню та меншому шляху до пункту призначення
Повільніше через шифрування і зайву відстань до VPN-сервера
Складність налаштування
Складніше налаштувати і використовувати для звичайних користувачів
Відносно легко налаштувати і використовувати
Вартість
Низька вартість або навіть безкоштовні варіанти
Дорожче, особливо за якісний

сервіс

Для чого підійде
Для обходу складних файерволів, наприклад у Китаї, і доступу до блокованого контенту
Для тих, хто одночасно заботиться про конфіденційність і доступ до блокованого контенту

SSR (ShadowsocksR)

Зараз у Shadowsocks є спільнота і свій сайт. Тому ентузіасти можуть запускати свої рішення на його основі. Наприклад, після закриття Shadowsocks у 2015 році інший розробник breakwa11 заявив, що SS легко виявити. Він створив ShadowsocksR на основі Shadowsocks з підтримкою обфускації. Таким чином, ShadowsocksR - це відгалуження оригінального протоколу, написане на Python, з обфускацією трафіку.

Але частіше користувачі рекомендують використовувати актуальну версію Shadowsocks-Rust на основі мови Rust.

Висновок

Shadowsocks - це доступний за ціною і зручний інструмент для обходу блокувань. Можливо, комусь пригодиться і для захисту з'єднання. Звичайно, він включає менше функцій, ніж VPN-сервіс, але трохи швидше. Але для вирішення простих задач - наприклад, відновлення доступу до заблокованих сайтів - він оптимальний. Він простий в використанні і налаштуванні: в мережі є багато інструкцій, як все зробити.

Спробуйте наші мобільні проксі

У OnlineProxy ви знайдете мобільні проксі з усього світу з добовою тарифікацією від 0.7 $ та ротацією IP. Проксі чудово підходять для робочих завдань. Ми гарантуємо якість чи повертаємо гроші.

Зареєструватись