Skip to content

Encrypted Subscriptions ru

Nemu-x edited this page Jul 9, 2026 · 1 revision

Шифрованные подписки (age)

🌐 English · Русский · 中文

ClashFest умеет импортировать подписки, зашифрованные age — конфиг едет от панели до устройства зашифрованным блобом, и CDN, кэши и любой, кто смотрит трафик по пути, не видят ничего.

📱 Пользователям

Знать, как это работает, не нужно. Если ваш провайдер использует шифрование:

  1. Скопируйте полную ссылку подписки из личного кабинета (или отсканируйте QR). Она выглядит так:
    https://panel.example.com/sub/TOKEN#AGE-SECRET-KEY-1XXXX…
    
  2. Импортируйте её в ClashFest как обычно. Приложение само распознает ключ после #, сохранит его в профиле, а URL оставит чистым. Всё — обновления дальше работают автоматически.

Если импорт падает с ошибкой «подписка зашифрована… [E-30]» — вы импортировали ссылку без ключа. Вернитесь в кабинет и скопируйте полную ссылку, либо вставьте ключ вручную: Свойства профиля → Секретный ключ age.

Часть ссылки после # никогда не покидает устройство — браузеры и HTTP-клиенты отрезают fragment перед отправкой запроса.

🏢 Операторам

На вашей стороне два шага: зашифровать конфиг и доставить ключ.

1. Сгенерируйте пару ключей

В ClashFest: Настройки → Meta Features → Ключи age → выберите X25519 (или постквантовый MLKEM768-X25519) → Сгенерировать. Скопируйте оба ключа. Либо на сервере:

age-keygen
# Public key: age1…            ← на панель
# AGE-SECRET-KEY-1…            ← пользователю

2. Шифруйте тело подписки

Панель (или middleware перед ней) шифрует отдаваемый YAML публичным ключом пользователя:

age -r age1… -a -o subscription.yaml.age subscription.yaml

Отдавайте armor-вывод (-----BEGIN AGE ENCRYPTED FILE-----…) как тело подписки. Заголовки (subscription-userinfo, X-Brand-*, …) остаются открытыми — ClashFest читает их как обычно.

3. Доставьте секретный ключ в ссылке

Приклейте секретный ключ как fragment к ссылке, которую выдаёте пользователю:

https://panel.example.com/sub/TOKEN#AGE-SECRET-KEY-1XXXX…

Fragment не уходит в сеть, не попадает в логи и CDN. Пользователь импортирует одну ссылку — и всё работает.

Рекомендации

  • Пара ключей на пользователя — генерируйте пару на аккаунт. Отзыв пользователя = удаление его ключа, остальных это не касается.
  • Расшифрованный конфиг хранится на устройстве в приватном хранилище приложения (тот же уровень защиты, что и у учёток нод внутри него).
  • Файлы rule-/proxy-провайдеров тоже можно отдавать зашифрованными — движок расшифрует их тем же ключом.

Clone this wiki locally