Большинство современных протоколов обхода DPI действуют по принципу «надень маскарадный костюм». Shadowsocks шифрует всё, но маскарад заметен — энтропия трафика выдаёт его с головой. Trojan притворяется HTTPS, но любой инспектор может проверить: а есть ли там настоящий TLS-сервер? Если нет — привет, блокировка.
Reality пошёл другим путём. Он не маскируется, он заимствует личность. Суть: клиент Reality подключается не к вашему серверу напрямую, а к реальному сайту (например, microsoft.com или bing.com), и «вклинивается» в его TLS-рукопожатие. Со стороны DPI выглядит так, будто пользователь открыл легитимный сайт. Никаких лишних сертификатов, никаких самоподписанных «подделок» — используется настоящий TLS-сертификат того самого сайта.
Технически это работает через RPRX-расширение протокола TLS (да, того самого, на котором держится весь HTTPS). Reality подменяет ServerHello на лету: вместо того чтобы отдавать свой ключ, сервер «передаёт» клиенту сессионные параметры, украденные у реального сайта. DPI видит: рукопожатие прошло, сертификат валидный, SNI правильный — всё чисто. Никто не заметил, что внутри этого TLS-туннеля уже летят ваши данные.
Ключевое отличие от Trojan или VLESS: Reality не требует никакого статического ключа или пароля для входа — аутентификация происходит через публичный ключ сервера (публичный ключ X25519), который вы задаёте один раз. Никаких SMS, QR-кодов, одноразовых ссылок. Достаточно двух команд: `openssl genpkey -algorithm X25519 -out key.pem` и `openssl pkey -in key.pem -pubout` — получил публичный ключ, скормил конфигу сервера и клиента. Готово.
Сильные стороны:
— Максимальная скрытность: трафик неотличим от обычного HTTPS до тех пор, пока DPI не лезет внутрь туннеля (а это отдельная история).
— Нет необходимости в фейковом сайте на сервере: маскировка идёт на внешний ресурс.
— Простота настройки: связка Xray-Core + Reality ставится за 10 минут.
Слабые стороны:
— Зависимость от внешнего сайта: если он ляжет или изменит TLS-настройки — Reality может перестать работать.
— Выше задержка (первое рукопожатие дольше из-за двойного проксирования).
— Требуется современная версия Xray-core (не ниже 1.8.0).
Текущий статус: активно развивается, протокол стабилен, но всё ещё имеет статус «экспериментального» в документации Xray. Массово внедряется в кастомные сборки и кастомные клиенты.
Финальная мысль: Reality — это, по сути, «межсетевой экран для DPI». Он не прячет факт передачи данных, он делает так, чтобы эти данные было невозможно отличить от обычного веб-сёрфинга. Вопрос не в том, «сможет ли DPI его обнаружить», а в том — «когда появятся методы анализа поведения, а не заголовков». И вот тогда Reality, как и любой другой протокол, превратится в очередной артефакт.