Shadowsocks (SS)

clowwindy · 2012 · сегодня почти умер

Что это

Shadowsocks (SS) — прокси-протокол для обхода GFW. Придуман китайским разработчиком clowwindy в 2012 году. Долгие годы был главным инструментом обхода Великого Файрвола Китая. Простой, быстрый, минималистичный. Сегодня — почти умер из-за детекта по behavioral-анализу.

Как работает

По сути это SOCKS5, но с шифрованием:

  1. Клиент шифрует запрос AEAD-шифром (обычно ChaCha20-IETF-Poly1305 или AES-256-GCM)
  2. Отправляет на сервер
  3. Сервер расшифровывает, делает запрос от своего имени, возвращает

Простой пароль (не сертификат) в качестве секрета. Никакого TLS в самом протоколе.

Почему умирает

Основная проблема — entropy analysis:

Обфускация (плагины)

Чтобы SS выжил, поверх него навешивают обфускацию:

С плагинами SS ещё жив, но:

Транспорты для SS в современных ядрах

SS в Xray/Sing-box поддерживает те же транспорты, что VLESS: TCP, WebSocket, gRPC, HTTPUpgrade. Но по факту это уже не «настоящий Shadowsocks», а VLESS с shadowsocks-совместимым payload-ом.

В РФ

Голый SS не работает — ТСПУ дропает соединение через 5-10 секунд после старта передачи данных (шейпит до нуля). Только с плагинами или в обвязке современных транспортов — но тогда проще взять протокол, изначально подходящий для маскировки.

История clowwindy

В августе 2015 года clowwindy был вызван китайской полицией. После этого удалил все репозитории Shadowsocks и написал только: «Я больше не могу разрабатывать этот проект. Спасибо всем». Проект продолжило сообщество — форки на GitHub (shadowsocks-libev, shadowsocks-rust, shadowsocks-android, ShadowsocksX-NG и др.).

См. также