diff --git a/docs/deployment.md b/docs/deployment.md index 1b759b4..5aaaf27 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -379,6 +379,34 @@ aura status - ✓ **Admin-сокет на Windows.** Cfg-gated транспорт: на Unix — Unix socket (`/tmp/aura-admin.sock`), на Windows — Tokio named pipe (`\\.\pipe\aura-admin`). 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 --out ` — выпускает 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- header/UDP padding-профиль) детерминированно меняется раз в сутки. И сервер, и клиент выводят одинаковый `MaskSet` из общего seed (SHA-256 от CA-сертификата) + UTC-даты через @@ -393,11 +421,8 @@ aura status минимизирует окно работы под root, но саму операцию обойти нельзя. - **IPv6 в OS-маршрутах и iptables MASQUERADE** не реализован — только IPv4 (план v3). - **Windows OS-маршруты** — заглушка с лог-warning (план v3). Windows admin pipe **работает**. -- **CRL** пока распространяется out-of-band (плоский файл `revoked.crl` на сервере и клиенте); - in-band пуш сервером → клиенту запланирован (отдельная v2-задача, не реализована в этом - раунде). - **Нативного Go-клиента для телефона нет** — через sing-box (Option B нативный Go-outbound, по `protocol.md` + KAT из Rust, см. [`sing-box.md`](sing-box.md)). Сейчас доступен только - десктоп-клиент / process-bridge. -- **Автоопределение egress-интерфейса** для NAT не реализовано: `[server.nat] egress_iface` - обязательно задавать вручную, если `auto = true` (план v3). + десктоп-клиент / process-bridge. Это явно исключённый из v2 пункт. +- **Multi-hop / onion routing**: пока один сервер на путь (план v3 — цепочка из 2-3 + серверов так, чтобы entry-узел не знал destination, а exit-узел не знал клиентский IP).