xah30 f26ed7fce0 feat(cli,transport): Let's Encrypt outer-cert support on TLS-443/QUIC
Server admins can now point the outer TLS layer at a real CA-signed cert
(e.g. Let's Encrypt fullchain.pem) so the on-wire HTTPS camouflage is
indistinguishable from a normal CA-trusted HTTPS server. The inner Aura
mutual-auth handshake still uses the Aura CA (necessarily — that's where
the PQ mutual auth lives).

- aura-cli config: optional [server.outer_cert] {cert_path, key_path}.
  Both fields together (or neither); resolve() reads PEMs and returns
  (cert, key) tuple. Absent section -> falls back to reusing the Aura
  server cert (v2 behavior, fully back-compat).
- aura-transport: additive MultiServer::bind_with_outer and
  TcpServer::bind_with_outer that accept an optional separate outer cert.
  Old MultiServer::bind / TcpServer::bind preserved as thin wrappers
  (back-compat: existing callers untouched). AuraServer::bind already
  took outer cert separately.
- UDP transport doesn't have outer TLS, so outer cert is irrelevant
  there — only QUIC + TCP layers benefit.
- 4 new tests (parsing, back-compat, partial-section validation, two-CA
  loopback verifying inner peer_id is the inner CN). Workspace: 257 tests
  passed (+4), clippy -D warnings clean, fmt clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 19:35:22 +03:00

Aura VPN

Aura — гибридный пост-квантовый VPN на Rust. Внутреннее рукопожатие гибридное и взаимно аутентифицированное (X25519 + ML-KEM-768 по FIPS 203 со взаимной X.509-проверкой), данные шифруются ChaCha20-Poly1305 с explicit-nonce, обфускация — паддинг датаграмм под «корзины» HTTPS-размеров.

На проводе по умолчанию идёт собственный UDP-транспорт Aura (без QUIC и без внешнего TLS на основном пути). Если сеть режет UDP, клиент автоматически переключается на TCP/443 или QUIC (мимикрия HTTP/3), последовательно пробуя транспорты из настраиваемого [transport] order. На стороне клиента есть TUN-интерфейс и split-tunnel (longest-prefix matching по CIDR + правила по доменам), которым можно управлять на лету через admin-сокет.

Крейты

Крейт Что внутри
aura-crypto Гибридный KEM (X25519 + ML-KEM-768), HKDF, AEAD ChaCha20-Poly1305, helpers
aura-pki Самоподписанный CA, выпуск server/client-сертификатов, проверка, плоский CRL
aura-proto Рукопожатие Aura, фрейминг, датаграмный/потоковый кодек данных
aura-transport Транспорты: собственный UDP, TCP/443, QUIC; единый dialer с handover
aura-tunnel TUN, маршрутизатор, split-tunnel (CIDR + домены), DNS-резолв в host-маршруты
aura-cli Бинарь aura: pki, server, client, route, status, bench-crypto

Быстрый старт

Подъём сервера на удалённой машине и подключение клиента описаны в docs/deployment.md. Это основная точка входа для развёртывания.

Документация

  • docs/deployment.md — руководство по развёртыванию (сервер + клиент)
  • docs/protocol.md — wire-протокол: рукопожатие, кадры, выбор транспорта
  • docs/pki.md — модель PKI, команды aura pki, верификация и CRL
  • docs/split-tunnel.md — split-tunnel, статика и admin-сокет на лету
  • docs/sing-box.md — план интеграции с sing-box (для мобильных клиентов)
S
Description
No description provided
Readme 1.5 MiB
Languages
Rust 92.3%
Go 6.5%
TypeScript 0.8%
CSS 0.4%