Shadowsocks появился в 2012 году как простой зашифрованный SOCKS5-прокси, созданный китайским разработчиком "clowwindy" для обхода Great Firewall. За 14 лет протокол эволюционировал, неоднократно был на грани блокировки GFW, и в 2022 году получил кардинальное обновление — SS2022 (AEAD-2022), которое возродило его актуальность.
Shadowsocks appeared in 2012 as a simple encrypted SOCKS5 proxy created by "clowwindy" to bypass the Great Firewall. Over 14 years it evolved, nearly got killed by GFW, and in 2022 received a major update — SS2022 (AEAD-2022).
История Shadowsocks / History
- 2012 — clowwindy публикует первую версию на GitHub. Простой AES-шифрованный SOCKS5
- 2015 — GFW начинает детектировать стандартное шифрование. Появляются "stream ciphers" для обфускации
- 2017 — clowwindy вынужден удалить проект по требованию китайских властей, но форки продолжают жить
- 2018 — переход на AEAD-шифрование (AES-GCM, ChaCha20-Poly1305), устранение stream cipher уязвимостей
- 2020 — GFW активно пробит SS-серверы, обнаруживая по характеристикам handshake
- 2022 — выход SS2022 с кардинальными улучшениями
Проблемы старого Shadowsocks / Old Problems
Классический AEAD-Shadowsocks уязвим к нескольким атакам:
- Replay-атаки — GFW мог переиграть захваченные пакеты и по поведению сервера определить его как SS
- Длина-профилирование — фиксированная длина ответов выдавала протокол
- Active probing — GFW подключался как клиент с неверным паролем и по характеру ответа понимал, что это SS
- Session management — отсутствие полноценных сессий, каждое соединение — новый handshake
Что нового в SS2022 / What's New
- AEAD-2022 cipher suite — новые шифры:
2022-blake3-aes-128-gcm,2022-blake3-aes-256-gcm,2022-blake3-chacha20-poly1305. Используют Blake3 для key derivation - Replay protection — каждый пакет содержит timestamp и nonce, сервер отвергает повторы
- Session-based UDP — UDP-пакеты связаны в сессии с общим ключом, устраняя overhead
- Header обфускация — первые байты рандомизируются через Blake3, ломая сигнатурный анализ
- Padding — пакеты дополняются случайной длиной
- Request/Response разделение — разные ключи для клиент→сервер и сервер→клиент
SS2022 adds: AEAD-2022 cipher suite with Blake3, replay protection with timestamps, session-based UDP, header obfuscation, random padding, separate keys for request/response.
SS2022 vs VLESS+Reality / Comparison
Оба протокола современны и хорошо обходят DPI, но у них разные ниши:
- VLESS+Reality: идеальная маскировка под HTTPS к реальному сайту. Лучший выбор против ТСПУ и GFW. Больше overhead
- SS2022: легковесный, быстрый, SOCKS5-режим в браузере. Немного проще настройка. Ниже устойчивость к active probing
Подробнее о VLESS+Reality — в отдельной статье.
Где работает SS2022 / Where It Works
- Россия (ТСПУ) — работает, но VLESS+Reality надёжнее
- Китай (GFW) — работает с обфускацией через
shadow-tlsилиsimple-obfs - Иран — работает стабильно
- Турция, ОАЭ — работает без нареканий
SS2022 в OmniShield / In OmniShield
OmniShield использует SS2022 с шифром 2022-blake3-aes-256-gcm на всех 9 серверах как один из 5 протоколов. Это легковесная альтернатива VLESS+Reality для пользователей, которым нужна SOCKS5-совместимость (например, для браузерных расширений SwitchyOmega). Экосистема Omnixploit автоматически ротирует порты для обхода port-based блокировок.