Шифрование AGE
Шифрование AGE защищает конфиг прокси-подписки так, что только клиент с соответствующим секретным ключом может его прочитать. Даже если кто-то перехватит HTTPS-трафик или получит ссылку на подписку — он увидит только зашифрованные данные.
Принцип работы
Заголовок раздела «Принцип работы»┌─────────────────────────────────────────────────────────────────┐│ 1 · Генерация ключей (один раз, на стороне администратора) ││ ││ Методы генерации ключей указаны ниже ││ ││ AGE-SECRET-KEY-… (секретный) → клиенту (Prizrak-Box) ││ age1… (публичный) → серверу (Remnawave) │└───────────────────────┬─────────────────────────────────────────┘ │ Публичный ключ ──────────────────────► Remnawave (сервер) Секретный ключ ──────────────────────► Prizrak-Box (клиент)
┌─────────────────────────────────────────────────────────────────┐│ 2 · Remnawave (сервер подписок) ││ ││ Определяет запрос от Prizrak-Box по заголовку User-Agent ││ Получает YAML-конфиг → шифрует через age1pq1… ││ Отдаёт ASCII-armored .age файл │└───────────────────────┬─────────────────────────────────────────┘ │ HTTPS (зашифрованные данные)┌───────────────────────▼─────────────────────────────────────────┐│ 3 · Prizrak-Box (клиент) ││ ││ Хранит AGE-SECRET-KEY-PQ-1… в настройках профиля ││ age.SetGlobalSecretKeys(key) ││ Расшифровывает armor → разбирает YAML → применяет профиль │└─────────────────────────────────────────────────────────────────┘Используется гибридная схема ML-KEM-768 + X25519 (age1pq1… / AGE-SECRET-KEY-PQ-1…).
Классические ключи X25519 (age1… / AGE-SECRET-KEY-1…) также поддерживаются.
Генерация ключевой пары
Заголовок раздела «Генерация ключевой пары»Способ генерации в Desktop версии Prizrak-Box
Настройки → Настройки ядра
Найдите раздел Генерация AGE ключей и нажмите Сгенерировать. Приложение отобразит публичный и секретный ключи. Скопируйте секретный ключ — он потребуется при настройке Remnawave.
Способ генерации в Android версии Prizrak-Box
Настройки → Функции Мета → Генерация ключей AGE (внизу списка)
Нажмите Сгенерировать ключевую пару.
Скопируйте секретный ключ (AGE-SECRET-KEY-PQ-1…) — вставьте в Remnawave.
Публичный ключ (age1pq1…) отображается отдельно и нужен на стороне сервера.
Способ генерации через Remnawave CLI
-
Запустите CLI:
Окно терминала docker exec -it remnawave remnawave -
Выберите Generate keypairs → age1pq1 (hybrid post-quantum).
-
CLI выведет:
- PUBLIC KEY (
age1pq1…) — вставьте в полеencryption.keyправила ответа. - PRIVATE KEY (
AGE-SECRET-KEY-PQ-1…) — передайте клиенту для ввода в настройках Prizrak-Box.
- PUBLIC KEY (

Настройка Remnawave
Заголовок раздела «Настройка Remnawave»Шаг 1 — Создать правило ответа
Заголовок раздела «Шаг 1 — Создать правило ответа»В панели администратора Remnawave откройте раздел Response Rules и создайте новое правило. Добавьте его в начало списка — это обеспечит приоритет над остальными правилами.
Используйте следующий JSON как шаблон, подставив свои значения:
{ "name": "Prizrak-Box", "description": "Prizrak-Box for Desktop & Android — age encrypted config", "enabled": true, "operator": "AND", "conditions": [ { "headerName": "user-agent", "operator": "CONTAINS", "value": "Clash-Meta/Prizrak-Box (", "caseSensitive": false } ], "responseType": "MIHOMO", "responseModifications": { "encryption": { "method": "age1pq1", "key": "age1pq1…" } }}| Поле | Что указывать |
|---|---|
responseType | MIHOMO — тип ответа mihomo-конфиг (шифрование задаётся отдельно через responseModifications) |
responseModifications.encryption.method | age1pq1 для post-quantum ключа или age1 для классического X25519 |
responseModifications.encryption.key | Публичный ключ (age1pq1… или age1…), сгенерированный на предыдущем шаге |
Шаг 2 — Отключить обычный эндпоинт /mihomo
Заголовок раздела «Шаг 2 — Отключить обычный эндпоинт /mihomo»После включения шифрования отключите доступ к конфигу в открытом виде, чтобы клиенты не могли обойти шифрование напрямую через /mihomo.
В том же правиле ответа добавьте поле settings перед rules:
{ ... "settings": { "disableSubscriptionAccessByPath": true }, "rules": [ ... ]}Это отключает доступ по путям /json, /stash, /mihomo для всех пользователей панели.
Настройка Prizrak-Box
Заголовок раздела «Настройка Prizrak-Box»После генерации ключевой пары введите секретный ключ в клиент:
Prizrak-Box Desktop — нажмите иконку с ключиком в левом нижнем углу, чтобы активировать поле ввода секретного ключа, вставьте AGE-SECRET-KEY-PQ-1… и нажмите кнопку Подтвердить для добавления профиля.
Prizrak-Box Android — нажмите иконку с ключиком в правом верхнем углу, чтобы активировать поле ввода секретного ключа, вставьте AGE-SECRET-KEY-PQ-1… и нажмите иконку сохранения профиля.
