Shadowsocks — открытый прокси-протокол с собственным шифрованием, появившийся в 2012 году. Он передаёт трафик приложений на сервер в зашифрованном виде без отдельного слоя TLS.
Как работает
Клиент и сервер знают общий пароль и метод шифрования. Из пароля получается ключ, и каждый поток данных шифруется алгоритмом AEAD — например, chacha20-ietf-poly1305 или aes-256-gcm. Версия Shadowsocks 2022 добавила методы с префиксом 2022 и защиту от повторной отправки перехваченных пакетов. Сервер принимает только данные, которые удалось расшифровать общим ключом.
Где применяется
Ключ Shadowsocks — ссылка вида ss:// с методом шифрования, паролем, адресом и портом сервера. Протокол поддерживают почти все сторонние клиенты, а также ядра Xray и sing-box. На Shadowsocks основан Outline — набор серверных и клиентских приложений, в котором доступ выдаётся в виде такой же ссылки.
Чем отличается от Trojan и VLESS
Shadowsocks шифрует данные сам и не требует домена или сертификата — серверу достаточно IP-адреса и порта. Trojan и VLESS, наоборот, доверяют шифрование слою TLS или Reality. Настройка Shadowsocks проще, а ключ короче, поэтому его легко добавить в клиент вручную. Взамен у протокола нет встроенной проверки сервера по сертификату: подлинность сервера подтверждает только знание общего пароля.