Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Zero-Knowledge Security

Vault implements a zero-knowledge architecture where your data remains encrypted end-to-end. The server never has access to your plaintext passwords.

What is Zero-Knowledge?

Zero-knowledge means the server:

  • Never sees your master password
  • Never sees your vault key
  • Never sees your decrypted entries
  • Cannot decrypt your data even if compromised
┌─────────────────────────────────────────────────────────────────┐
│                        Your Device                               │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐                     │
│  │ Master   │──▶│ Derive   │──▶│ Decrypt  │──▶ Plaintext        │
│  │ Password │   │ Keys     │   │ Entries  │   Passwords         │
│  └──────────┘   └──────────┘   └──────────┘                     │
└─────────────────────────────────────────────────────────────────┘
        │                               │
        │ Never transmitted             │ Never transmitted
        ▼                               ▼
┌─────────────────────────────────────────────────────────────────┐
│                        Vault Server                              │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐                     │
│  │ Wrapped  │   │ Encrypted │   │ WebAuthn │                    │
│  │ Vault Key│   │ Vault     │   │ Credential│                   │
│  └──────────┘   └──────────┘   └──────────┘                     │
└─────────────────────────────────────────────────────────────────┘

Security Model

Client-Side Encryption

All encryption and decryption happens on your device:

  1. Master Password → Never leaves your device
  2. Key Derivation → PBKDF2 runs locally
  3. Vault Encryption → AES-GCM encryption runs locally
  4. Vault Decryption → Only your device can decrypt

What the Server Stores

DataEncryptionServer Access
EmailPlaintext✅ Required for login
WebAuthn CredentialSigned✅ Required for passkey auth
Wrapped Vault KeyEncrypted❌ Cannot decrypt
Encrypted VaultAES-GCM❌ Cannot decrypt
PBKDF2 SaltPlaintext⚠️ Useless without password

What Stays Local

DataStoragePersisted
Master PasswordMemory onlyNever
Vault KeyMemory onlyNever
Decrypted EntriesMemory onlyNever
Derived KEKMemory onlyNever

Threat Model

What We Protect Against

Server Breach - Attacker gets database dump

  • All vault data is encrypted
  • No master passwords stored
  • WebAuthn credentials require physical authenticator

Man-in-the-Middle - Attacker intercepts traffic

  • HTTPS/TLS encryption in transit
  • Data already encrypted before transmission
  • WebAuthn prevents phishing

Malicious Server - Server operator turns evil

  • Cannot decrypt vault data
  • Cannot derive master passwords from salts
  • Cannot forge WebAuthn authentication

What Requires User Vigilance

⚠️ Weak Master Password - Brute-force attack on wrapped key

  • Use strong, unique master password
  • Salt + PBKDF2 provides some protection

⚠️ Compromised Device - Malware on your machine

  • Master password exposed in memory
  • Use device security features
  • Enable biometric unlock to avoid typing password

⚠️ Social Engineering - Tricked into revealing credentials

  • Never share your master password
  • Verify you're on the real Vault domain

Cryptographic Primitives

PurposeAlgorithmKey Size
Key DerivationPBKDF2-SHA256256-bit
Vault EncryptionAES-256-GCM256-bit
Key WrappingAES-256-GCM256-bit
AuthenticationWebAuthn ECDSAP-256
SharingECDH P-256256-bit

Security Sections

Encryption

How vault encryption works with AES-GCM and key derivation.

Passkeys

WebAuthn/Passkey authentication and why it's phishing-resistant.

ECDH Sharing

How vault sharing maintains zero-knowledge properties.

Audit Status

ComponentStatusNotes
Crypto Library✅ Web Crypto APIBrowser-native, FIPS-validated
Server Code🔄 PendingCommunity review welcome
Client Code🔄 PendingOpen source on GitHub

Best Practices

Master Password

  • Use 12+ characters with mixed case, numbers, symbols
  • Or use a 5+ word passphrase
  • Never reuse across services
  • Consider writing down and storing securely

Biometrics

  • Enable Touch ID / Face ID when available
  • Reduces keyboard exposure of master password
  • Still requires master password as fallback

Backup

  • Test that you can unlock with master password
  • Store master password backup securely offline
  • Recovery without master password is impossible

Related