Derivation chain
Key types
| Key | Algorithm | Derivation | Stored |
|---|---|---|---|
| Vault key | AES-256-GCM | Argon2id from master password + salt | In-memory only |
| Family vault key | AES-256-GCM | Random generation | Wrapped with each member’s vault key (AES-KW) |
| Item key | AES-256-GCM | Random per-item | Wrapped with owner/recipient RSA public key |
| RSA keypair | RSA-OAEP 2048-bit | Generated client-side during vault setup | Encrypted private key stored server-side |
| Family recovery secret | Raw 32 bytes | Random generation | Split into Shamir shares, each encrypted |
| Server encryption key | AES-256-GCM | Environment variable | Server-side only, for legacy TOTP |
Sharing key flow
When sharing a credential:Store
The encrypted credential and wrapped item key are stored. Each recipient gets their own wrapped copy.
Recovery
If a user loses their master password, recovery is possible through Shamir secret sharing:- The Family Recovery Secret (FRS) is split into k-of-n Shamir shares
- Each share is encrypted with a guardian’s vault key
- When k guardians provide their shares, the FRS is reconstructed
- The FRS decrypts the family recovery configuration
- The user can re-derive their vault key with a new master password