В сфере прокси-протоколов часто выделяют VLESS с XHTTP как основное решение для обхода блокировок, однако существует несколько современных альтернатив. Одной из таких является протокол Naive, который отличается уникальным подходом к маскировке трафика и обеспечивает высокий уровень защиты.
ClientHello и uTLS: маскировка трафика
Большинство популярных прокси-протоколов пытаются выглядеть как обычный HTTPS-трафик, используя пакет ClientHello TLS для передачи настроек соединения. Однако стандартный ClientHello, генерируемый библиотекой Go (используемой в Xray и sing-box), легко обнаруживается. Для маскировки применяют библиотеку uTLS, которая имитирует ClientHello браузеров, но остаются отличия в поведении и длине пакетов.
Особенности NaiveProxy
Автор Naive решил использовать реальный сетевой стек Chromium, удалив из него всё лишнее и оставив лишь 0.3% кода, чтобы весь трафик, включая ClientHello, выглядел идентично браузерному. Мультиплексирование происходит через HTTP/2, а встроенный padding усложняет анализ длины пакетов и их характеристики.
Протокол поддерживает совместимость с обычными HTTP/2-прокси и клиентами, однако полноценная реализация требует использования Chromium/Cronet стека в sing-box. Padding добавляет случайные байты в первые DATA-фреймы, CONNECT-запросы и вставляет дополнительные END_STREAM фреймы для сбивания анализа.
Настройка sing-box и Caddy
Для клиента sing-box (версии 1.13 и выше) пример конфигурации включает настройки для Naive с указанием сервера, порта, логина и пароля, а также активацией TLS и UDP поверх TCP.
{
«type»: «naive»,
«tag»: «Proxy1»,
«server»: «1.2.3.4»,
«server_port»: 443,
«username»: «username»,
«password»: «password»,
«insecure_concurrency»: 1,
«udp_over_tcp»: { «enabled»: true },
«quic»: false,
«tls»: { «enabled»: true, «server_name»: «s1.example.com» }
}
Caddy используется как TLS-терминатор и проксирует запросы на sing-box. Он получает бесплатный сертификат, проверяет заголовок Proxy-Authorization и при корректных данных передает соединение дальше, иначе показывает заглушку. Конфигурация Caddy проста и включает настройки для домена и проверки авторизации.
Настройка сервера sing-box
На сервере sing-box настраивается inbound типа naive с указанием локального адреса и порта, а также учетных данных пользователей. После перезапуска службы сервер готов к работе.
Выводы
Протокол Naive предлагает эффективную маскировку, используя реальный сетевой стек браузера, что затрудняет блокировки. Однако выбор протокола зависит от стабильности и надежности работы в конкретных условиях. Наличие разнообразных качественных решений, таких как Naive и VLESS, повышает шансы обхода ограничений. История Reality показывает, что даже перспективные технологии могут столкнуться с неожиданными проблемами, поэтому важно иметь несколько альтернатив.