// Legal
Security
Last updated: May 18, 2026
Threat model
We assume a fully compromised server. Even with database and backups, an attacker should not be able to read your messages or impersonate members of your Circle.
Cryptography
- Identity: X25519 keypair, generated client-side.
- Private key at rest: Argon2id-derived passphrase + XSalsa20-Poly1305.
- Circle key: 32-byte symmetric, wrapped per-member via sealed boxes.
- Invites: ephemeral keypair, ciphertext on server, private fragment in URL anchor.
Recovery
The recovery passphrase is the only way to unlock a new device. We do not store it, hash it, or transmit it. Write it down.
Reporting
Found a vulnerability? security@maib.tech — coordinated disclosure appreciated.