В статье рассматривается протокол Naive как современная альтернатива популярному VLESS с XHTTP для работы прокси в условиях блокировок. В отличие от большинства прокси, которые маскируют трафик под HTTPS, используя библиотеку uTLS для подмены ClientHello, Naive применяет оригинальный сетевой стек браузера Chromium, что делает весь трафик идентичным реальному браузерному.

Автор Naive взял исходный код Chromium, сократив его до 0.3% от оригинала, сохранив мультиплексирование HTTP/2 и добавив простой padding — добавление случайных байтов в пакеты для усложнения анализа трафика. Padding реализован через заполнение первых DATA-фреймов, добавление заголовков с случайными данными в CONNECT-запросах и дополнительные END_STREAM-фреймы перед RST_STREAM.

При использовании sing-box обнаружились утечки данных из-за неочищенных буферов в padding, что было исправлено через патчи, уже принятые в проект.

Настройка клиента sing-box требует версии 1.13+, где в конфигурации указывается тип «naive», IP и порт сервера, логин с паролем, а также параметры TLS и UDP. В качестве сервера используется Caddy, который обеспечивает бесплатный TLS-сертификат и проверяет авторизацию Proxy-Authorization, направляя трафик в sing-box по HTTP/2 Cleartext или отдавая заглушку.

Конфигурация Caddy проста и включает указание домена, email администратора и правила маршрутизации запросов с авторизацией. Сервер sing-box настраивается на работу с localhost и портом 1080 с учётом тех же учётных данных.

В заключение автор отмечает, чт Naive — не единственный вариант и не обязательно срочно заменять VLESS на Naive. Главное — стабильность и отсутствие блокировок. История с Reality показывает, что даже продуманные решения могут столкнуться с новыми ограничениями, поэтому наличие нескольких качественных протоколов — залог успешного обхода блокировок.