Product info
Про VCrypto Messenger
Технічний огляд платформи, криптографії та плану розвитку.
Beta. Приватні ключі не покидають пристрій. Plaintext не зберігається на сервері.
Web-клієнт працює через браузер (WebCrypto + IndexedDB).
Що вже працює
- Авторизація — телефон або email OTP, JWT-сесії, реєстрація пристроїв
- 1:1 чати — X3DH + Double Ratchet, safety number, read/delivered receipts
- Групові чати — Sender Keys, розповсюдження ключів на всі пристрої учасників
- Realtime — Socket.IO (повідомлення, typing, статуси, sender-key push)
- Файли — зашифровані вкладення (локальне шифрування перед upload)
- Клієнти — Next.js web, Flutter (Linux/Android), спільний протокол у monorepo
Криптографія
Identity
Ed25519
Key agreement
X25519 · X3DH
Messages
AES-256-GCM
KDF
HKDF-SHA256
1:1 sessions
Double Ratchet
Groups
Sender Keys
Реалізація протоколу: packages/protocol (TypeScript) та protocol_dart (Flutter).
Деталі — у docs/ENCRYPTION.md.
Архітектура
Monorepo: NestJS API + WebSocket gateway, PostgreSQL, Redis, MinIO (файли), Next.js web, Flutter mobile. Сервер — недовірений ретранслятор ciphertext і мінімальних метаданих маршрутизації.
┌─────────────┐ ┌─────────────┐ ┌──────────────┐
│ Flutter │ │ Next.js Web │ │ NestJS API │
│ mobile │ │ WebCrypto │ │ + Realtime │
└──────┬──────┘ └──────┬──────┘ └──────┬───────┘
│ E2EE (Double Ratchet / Sender Keys) │
└──────────────────┼──────────────────────┘
▼
PostgreSQL · Redis · MinIO
Roadmap
| Фаза | Scope | Статус |
|---|---|---|
| 1 | Auth, 1:1 E2EE, API, WebSocket, web + mobile UI | Done |
| 2 | Groups, files, contacts, push (Web Push), settings/privacy | In progress |
| 3 | 1:1 audio calls (WebRTC), linked devices, QR web login — video/SFrame later | Audio MVP done |
| 4 | Channels, admin panel, secure backup | Planned |
| 5 | Security audit, production, app stores | Planned |
Monorepo
apps/web— Next.js web clientapps/mobile— Flutter (Android, iOS, Linux)services/api— NestJS REST + WebSocketpackages/protocol— E2EE reference implementationpackages/shared— shared types & constantsinfra/docker— dev stack (Postgres, Redis, MinIO, coturn)