HAPP·Research

Зашифрованные подписки и vendor lock-in: как Happ стал экосистемой

Разбор happ://crypt-ссылок, привязки по HWID и панели happ-proxy.com: что может продавец VPN-подписки внутри чужого клиента, и почему это важно для доверия.

Happ начался как обычный клиент «подключись к своему серверу». Но экосистема, выросшая вокруг него, заметно сложнее — и она показывает, как клиентское приложение становится платформой с собственными рычагами контроля. Разбор основан на исследовании проекта Happwner (Xposed-модуль для экспорта подписок) и открытых данных.

Механика: как распространяются «конфиги»

Продавцы VPN-подписок не отправляют пользователям голые vless://-ссылки — те видны в логах, пересылаются, попадают в агрегаторы. Вместо этого используются зашифрованные ссылки happ://crypt… (форматы до crypt6):

  • конфигурация серверов шифруется одним из десяти ключей, встроенных в приложение Happ;
  • пользователь получает короткую ссылку, Happ расшифровывает её локально и показывает список серверов;
  • прямой экспорт конфига «наружу» штатно невозможен.

С одной стороны — защита инфраструктуры продавца от сканирования и перепродажи. С другой — перенос контроля: серверные адреса и параметры видит только клиент, одобренный экосистемой.

HWID: привязка подписки к железу

Happ передаёт провайдеру HWID — идентификатор устройства. Продавец ограничивает число устройств на подписку и может принудительно отвязать/заблокировать конкретное устройство.

Панель happ-proxy.com: что продавец управляет удалённо

Если в ссылке присутствует ProviderID, Happ раз в сутки сверяется с панелью продавца на happ-proxy.com. Согласно разбору Happwner, панель может дистанционно:

  • сменить URL подписки и форсировать конкретный сервер;
  • включить/выключить маршрутизацию, автозапуск, автопинг, мультиплексирование;
  • скрыть серверы по типу сети (Wi-Fi/мобильная);
  • навязать принудительный HWID.

Параметры передаются в HTTP-заголовках и теле ответа панели. Формально это функция «управления сервисом»; фактически — удалённое управление настройками клиентского приложения у конечного пользователя по решению третьей стороны.

Что это значит для модели доверия

  1. Трёхсторонняя зависимость. Пользователь доверяет и разработчику клиента (Happ), и продавцу подписки, и владельцу сервера. Это не то же самое, что «свой сервер + открытый клиент».
  2. Непрозрачность конфигурации. Зашифрованная подписка не даёт проверить, куда именно уходит трафик, без реверс-инжиниринга.
  3. Возможность удалённых изменений. Настройки клиента могут измениться после установки — не по вашему решению.

Инструменты вроде Happwner (расшифровка crypt-ссылок офлайн, спуфинг HWID, принудительный экспорт) появились именно как ответ сообщества на этот контроль. Их использование для обхода чужих ограничений — зона личной ответственности; для нашего исследования важен другой факт: само их существование документирует архитектуру контроля.

Аналогия и вывод

Это классический vendor lock-in, знакомый по корпоративным MDM: удобство управления против прозрачности для пользователя. Ничего преступного — но пользователь должен понимать: «клиент для своих серверов» и «клиент с магазином подписок и удалённым управлением» — разные продукты с разной моделью доверия.

Практическая рекомендация: если ваша модель — «максимальная прозрачность», выбирайте клиентов с явным разделением (v2rayNG, Hiddify с ручными конфигами) или вообще свой сервер (Amnezia, Outline). Если пользуетесь подписками — осознавайте, что оператор подписки видит и чем управляет.