docs(deployment): v2 complete - in-band CRL + anti-surveillance + automation

deployment.md §6 updated:
- Moved CRL from "remaining" to "resolved" (now in-band via signed
  control-envelope with magic prefix).
- Added bullets for the new v2 features: port-knocking + cover traffic
  (anti-surveillance), `aura server-init` / `aura provision-client`
  (automation), `no_logs` field redaction, `bridges` list.
- Remaining honest limits trimmed to genuine v3 work: native Go phone
  client (sing-box, explicitly excluded by user) and multi-hop routing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
xah30
2026-05-27 12:36:00 +03:00
parent 35d94dee33
commit b98752b3eb
+31 -6
View File
@@ -379,6 +379,34 @@ aura status
-**Admin-сокет на Windows.** Cfg-gated транспорт: на Unix — Unix socket -**Admin-сокет на Windows.** Cfg-gated транспорт: на Unix — Unix socket
(`/tmp/aura-admin.sock`), на Windows — Tokio named pipe (`\\.\pipe\aura-admin`). (`/tmp/aura-admin.sock`), на Windows — Tokio named pipe (`\\.\pipe\aura-admin`).
JSON-протокол и команды (`route add/list/remove`, `status`) идентичны. JSON-протокол и команды (`route add/list/remove`, `status`) идентичны.
-**In-band CRL.** Сервер сразу после handshake пушит подписанный CA CRL клиенту
через мультиплексированный control-envelope с magic-префиксом
`[0xAA,0xAA,0xC0,0x01]` (не конфликтует с IPv4/v6, которые начинаются с
`0x4X`/`0x6X`). Клиент проверяет подпись ECDSA-P256 против CA, применяет к
`AuraCertVerifier`, кэширует на диск. Конфиг `[pki] crl_push = true` /
`accept_pushed_crl = true` (по умолчанию).
-**Анти-надзор v2 (NEW в ответ на дрегнет операторов):**
- **Port-knocking** на UDP-транспорте: сервер молчит на скан-зондах, отвечает
только на валидный 16-байтный HMAC-SHA256 «стук» с ±1-минутным окном (ключ
из CA fingerprint). Сканер видит закрытый порт. `[transport.knock]
enabled = true`.
- **Cover traffic / chaff**: при простое UDP-соединение шлёт `Ping` каждые
~500мс±50% (jitter). Defeats volume/timing-fingerprinting. Под нагрузкой
подавляется автоматически. `[transport.cover] enabled = true`.
-**Автоматизация развёртывания:**
- `aura server-init --domain ... --pki-dir ...` — одна команда: CA +
серверный cert + готовый `server.toml` (с авто-определением egress-iface).
- `aura provision-client --id <UUID> --out <dir>` — выпускает client cert и
собирает готовый бандл (`ca.crt` + `client.crt` + `client.key` +
`client.toml`). `--id` опционален — дефолт UUID v4 (имя пользователя не
привязано к сертификату).
-**Минимизация идентификаторов:**
- `[server] no_logs = true` / `[client] no_logs = true` — поля `peer_id`,
`client_ip`, `source_addr`, `client_id`, `local_ip`, `user`, `id`,
`assigned_ip` редактируются из tracing-вывода через field-level фильтр
(события фиксируются, идентификаторы вычищаются).
- `[client] bridges = [...]` — список запасных серверов, клиент пробует
случайный порядок. Блокировка одного IP не убивает доступ.
-**НОВОЕ: ежедневная ротация масок в 05:00 МСК.** Внешний фингерпринт (SNI/UA/Server- -**НОВОЕ: ежедневная ротация масок в 05:00 МСК.** Внешний фингерпринт (SNI/UA/Server-
header/UDP padding-профиль) детерминированно меняется раз в сутки. И сервер, и клиент header/UDP padding-профиль) детерминированно меняется раз в сутки. И сервер, и клиент
выводят одинаковый `MaskSet` из общего seed (SHA-256 от CA-сертификата) + UTC-даты через выводят одинаковый `MaskSet` из общего seed (SHA-256 от CA-сертификата) + UTC-даты через
@@ -393,11 +421,8 @@ aura status
минимизирует окно работы под root, но саму операцию обойти нельзя. минимизирует окно работы под root, но саму операцию обойти нельзя.
- **IPv6 в OS-маршрутах и iptables MASQUERADE** не реализован — только IPv4 (план v3). - **IPv6 в OS-маршрутах и iptables MASQUERADE** не реализован — только IPv4 (план v3).
- **Windows OS-маршруты** — заглушка с лог-warning (план v3). Windows admin pipe **работает**. - **Windows OS-маршруты** — заглушка с лог-warning (план v3). Windows admin pipe **работает**.
- **CRL** пока распространяется out-of-band (плоский файл `revoked.crl` на сервере и клиенте);
in-band пуш сервером → клиенту запланирован (отдельная v2-задача, не реализована в этом
раунде).
- **Нативного Go-клиента для телефона нет** — через sing-box (Option B нативный Go-outbound, - **Нативного Go-клиента для телефона нет** — через sing-box (Option B нативный Go-outbound,
по `protocol.md` + KAT из Rust, см. [`sing-box.md`](sing-box.md)). Сейчас доступен только по `protocol.md` + KAT из Rust, см. [`sing-box.md`](sing-box.md)). Сейчас доступен только
десктоп-клиент / process-bridge. десктоп-клиент / process-bridge. Это явно исключённый из v2 пункт.
- **Автоопределение egress-интерфейса** для NAT не реализовано: `[server.nat] egress_iface` - **Multi-hop / onion routing**: пока один сервер на путь (план v3 — цепочка из 2-3
обязательно задавать вручную, если `auto = true` (план v3). серверов так, чтобы entry-узел не знал destination, а exit-узел не знал клиентский IP).