Народный

Технологии цензуры

shadow-tls

Обёртка для Shadowsocks, маскирующая трафик под TLS-handshake к настоящему чужому сертификату (например, cloudflare.com или microsoft.com). Альтернатива Reality для Shadowsocks-2022.

Что это

shadow-tls — это транспортная обёртка над Shadowsocks/Shadowsocks-2022, при которой клиент и сервер выполняют видимый TLS-handshake к настоящему стороннему сайту (cloudflare.com, microsoft.com, apple.com), а после handshake переключаются на собственный шифр. Создан разработчиком ihciah в 2022 году, к 2026 — стандартный transport в sing-box и Clash.Meta для Shadowsocks-2022 в условиях агрессивного DPI.

Идея похожа на VLESS Reality, но проще: shadow-tls не подделывает сертификат через MITM-промежуточный handshake, а буквально проксирует первые 2 RTT к реальному cloudflare.com и переключается только после ServerHello.

Как это работает

shadow-tls v3 (актуальная версия 2026) выполняет следующий поток:

[1] Client → shadow-tls сервер: TLS ClientHello, SNI=cloudflare.com
[2] shadow-tls сервер открывает TCP к cloudflare.com:443, форвардит ClientHello
[3] cloudflare.com → shadow-tls сервер → клиент: ServerHello + Certificate
    (настоящий cloudflare-сертификат, валидный JA3/JA4)
[4] Клиент проверяет HMAC-маркер внутри TLS Application Data —
    если совпадает, обе стороны знают: "это shadow-tls"
[5] Соединение к cloudflare.com закрывается, поверх установленного TLS
    идёт обычный Shadowsocks-2022 шифр

Конфиг sing-box (клиент):

{
  "type": "shadowsocks",
  "method": "2022-blake3-aes-128-gcm",
  "password": "<server password>",
  "server": "vpn.example.com",
  "server_port": 443,
  "multiplex": { "enabled": true },
  "transport": {
    "type": "shadowtls",
    "version": 3,
    "password": "<shadow-tls password>",
    "server_name": "www.cloudflare.com"
  }
}

Сервер при probing-запросе (без HMAC-маркера) продолжает форвардить трафик в cloudflare.com — DPI не видит разницы с обычным reverse-proxy к Cloudflare.

Отличия от VLESS Reality

shadow-tlsVLESS Reality
Базовый протоколShadowsocks-2022VLESS
TLS-handshakeреальный к чужому сайтусинтетический с украденным сертификатом
ШифрованиеSS-2022 (chacha20/aes-gcm)XTLS Vision (zero-copy)
Active probingпроксируется на чужой сайтпроксируется на чужой сайт
Latency+1 RTT на handshake+0 (handshake идёт сразу к серверу)
Сложность серверной настройкисредняянизкая

shadow-tls дешевле по реализации (не нужен встроенный TLS-stack), но дороже по latency на первое подключение. Reality дороже инженерно, но handshake происходит “локально”.

Почему это важно для пользователя VPN

В РФ 2026 shadow-tls — рабочий fallback, когда Reality по каким-то причинам залочен. Сценарии:

  • Domain fronting через Cloudflare Workers — shadow-tls делает реальный handshake к Cloudflare, оператор не может отличить ваш VPN от обычного сайта на CF.
  • Shadowsocks-2022 без TLS-маскировки. В 2024 ТСПУ начала ловить голый SS-2022 по entropy-сигнатуре первых байт. shadow-tls закрывает эту дыру.
  • iOS/Android клиенты. sing-box поддерживает shadow-tls v3, конфиг распространяется как обычная подписка.

Юзеру: если ваш VPN-провайдер на 2026 продаёт Shadowsocks-конфиги и не упоминает shadow-tls — спросите, что мешает оператору заблокировать вас по entropy. Если ответ “ничего” — это плохой провайдер.

Связанные термины

Shadowsocks-2022 — базовый протокол, который оборачивает shadow-tls. VLESS Reality — концептуальный аналог для VLESS. SNI — что подделывает shadow-tls. TLS 1.3 — версия handshake. sing-box — основная серверная и клиентская реализация.

Источники