PersonalPremiumFamilyTeamBusinessEnterprise
Security architecture overview
A map of PulsVault's security model — the zero-knowledge key hierarchy, the two-gate authentication model, tamper-evident auditing, abuse protection, and the invariants we never break.
This is the security overview for evaluators, security teams, and curious users. It links to the deeper references for each topic.
Design goals#
- The server can't read your secrets. All encryption/decryption of secret fields, Notes and attachments is client-side. Item names and non-secret fields are stored readable — see what is end-to-end encrypted.
- Compromise is contained. Per-vault keys, short vault sessions, and device-bound trust limit blast radius.
- Actions are accountable. A tamper-evident audit log records security-relevant events.
- Abuse is resisted. Rate limiting and IP blocking protect the authentication surface.
How the pieces fit#
| Layer | Mechanism | Reference |
|---|---|---|
| Data confidentiality | Client-side key hierarchy (PDS → KEK → UMK → DEK) | Encryption architecture |
| Access | Two gates: authentication + vault session | Two-gate model |
| Sharing | Per-recipient DEK re-wrapping | Vault sharing |
| Devices | X25519 device-bound trust & relayed unlock | Trusted-device unlock |
| Accountability | Hash-chained, tamper-evident events | Audit log |
| Abuse resistance | Rate limiting & IP blocking | Abuse protection |
Security invariants we never break#
The non-negotiables
- Raw UMK, DEK, and PDS never reach the server — only encrypted forms are stored.
- The primary vault is always AES-256-GCM and is never shareable.
- Changing your password only re-wraps the UMK — it never re-encrypts items.
- The Access Key is unrecoverable by design — your browser generates it and the server never sees it, only a hash of a one-way verifier; recovery needs the Recovery Key.
- Every AES-GCM encryption uses a unique 12-byte IV — never reused under the same key.
- DEK rotation is client-side — the server can't re-encrypt items on revoke.
- A secure link's key lives only in the URL fragment — it never reaches the server.
- OWNER is never assignable via sharing — the maximum granted level is EDITOR.
The complete list lives in Security invariants.
What we ask of you#
Security is shared. Keep your Emergency Kit safe, enable two-factor auth, and review your Security Center periodically.
Related#
Was this page helpful?