Security overview
How MGVault protects your data
A plain account of our cryptography, what our servers can and cannot see, how team sharing stays trustworthy — and the limits we haven't solved yet.
Where we stand today
MGVault is in beta. We'd rather tell you exactly what has and hasn't been done than make claims we can't back up.
- Product stage
- BetaRegistration is open. Features and design may still change before general availability.
- Independent security audit
- Not yet done — plannedAn independent audit and penetration test are planned before general availability. We'll publish an update here when they are complete.
- Internal security reviews
- OngoingWe review the design and code in focused rounds. Findings are fixed and covered by tests before release.
- Cryptography tests
- In placeOur crypto package is checked against standard test vectors (RFC 9106, RFC 7693, RFC 7748, XChaCha20-Poly1305) and against an independent reimplementation of our formats.
- Bug bounty
- PlannedNot running yet. Until then, please report issues directly (see below).
- Certifications
- None yetWe don't hold certifications such as ISO 27001 or SOC 2 at this time.
Cryptographic primitives
We use well-studied, modern primitives from libsodium, the same library in the web app and the browser extension.
| Purpose | Primitive | Parameters |
|---|---|---|
| Deriving keys from your master password | Argon2id | m = 64 MiB · t = 3 · p = 1 |
| Encrypting items and keys | XChaCha20-Poly1305 | 256-bit · 192-bit nonce |
| Sharing collection keys with members | X25519 sealed box | crypto_box_seal |
| Signing shared keys and key epochs | Ed25519 | RFC 8032 |
| Salts and key fingerprints | BLAKE2b | RFC 7693 |
Argon2id parameters are stored per account so they can be raised over time. Clients refuse parameters below a safe minimum, so a server can't weaken them.
How your keys fit together
Everything starts on your device. Here is the chain from your master password to an encrypted item.
- 1
Your master password is stretched with Argon2id
Together with a salt derived from your email, it produces 64 bytes on your device. Half becomes a login key, half becomes your key-encryption key.
- 2
Only the login key is sent — and hashed again
The server stores an Argon2id hash of the login key to check your login. The key-encryption key never leaves your device.
- 3
Your account key is wrapped
A random 256-bit account key is encrypted with your key-encryption key. It protects your private keys for sharing and signing.
- 4
Each collection has its own key
Personal and shared collections each use a random key, wrapped separately for every member with their X25519 public key.
- 5
Items are encrypted and bound to their place
Items are encrypted with XChaCha20-Poly1305. The item ID, collection and version are authenticated, so an encrypted item can't be swapped or rolled back unnoticed. Padding hides the exact length of your data.
What our servers can and cannot see
Zero-knowledge doesn't mean zero data. Here is the honest split.
- Your master password
- Your encryption keys and private keys
- Item titles, usernames, passwords, URLs and notes
- 2FA (TOTP) secrets stored in your vault, and the codes made from them
- Collection names in organizations
- Your email address and organization names
- Encrypted items, their IDs, approximate sizes and timestamps
- Who belongs to which organization and collection, and their roles
- Public keys, sessions and devices
- Security events in the audit log, with masked IP addresses
Account and session security
Protecting the way in matters as much as protecting the vault.
Two-step login
Add an authenticator app (TOTP) or passkeys (WebAuthn). The login TOTP secret is stored server-side, encrypted, because the server must check your code.
Short-lived sessions
Access tokens expire after 15 minutes. Refresh tokens rotate on every use, and reuse of an old token revokes the whole session.
Devices you control
See your active sessions and revoke any of them remotely. Security changes trigger an email notification.
Rate limits
Login, registration and recovery attempts are rate limited per IP address and per account, and responses don't reveal whether an account exists.
Automatic locking
Your vault locks after 15 minutes of inactivity, and keys are kept in memory only while it's unlocked.
Infrastructure
Layers that still protect you if one of them fails.
Hosting in Istanbul, Turkey
Database, backups and logs are kept in Turkey and handled under KVKK.
Row-level security
PostgreSQL row-level security separates organizations as a second line of defense behind the application's own checks.
Append-only audit log
Audit events can be added but not edited by the application. Retention is 7 days on Free and 365 days on Team.
Encrypted backups
Daily database backups are encrypted to a public key. The private key needed to restore them is kept offline, and restores are tested.
Strict browser policy
A strict Content Security Policy with per-request nonces. No third-party scripts, fonts, trackers or analytics.
Payments kept apart
When paid plans launch, card payments will be handled by iyzico on a separate origin. Card data won't touch our servers.
Known limitations
No system is perfect. These are the trade-offs we know about today.
- Lost master password and Emergency Kit. If you lose both, your data can't be recovered — by anyone, including us.
- Your master password matters. Argon2id slows guessing a lot, but a short or reused password can still be guessed offline by someone who obtains the encrypted data.
- First contact relies on trust. The first key you receive from a team member is trusted on first use unless you compare fingerprints out of band.
- Some audit events come from clients. Copy and autofill events are reported by members' apps and can't be verified by the server; they are labeled as such.
- Browser memory. We wipe keys from memory where JavaScript allows, but browsers may keep copies we can't erase.
Reporting a vulnerability
Found something? We want to hear about it and will respond quickly.
Email us with details and steps to reproduce. Please give us reasonable time to fix the issue before disclosing it publicly.
muhammed@aliguc.com
Start your vault in under a minute
Free for personal use. Your keys are created on your device, right now, in your browser.