How SafeLane keeps your passwords safe

SafeLane uses end-to-end encryption: the keys that decrypt your vault never leave your device. SafeLane's own servers store only encrypted ciphertext. Even a complete server compromise leaves your vault unreadable.

The key hierarchy

When you sign up, you choose a master passphrase. SafeLane never sees it.

  1. Your browser runs Argon2id (a memory-hard password-stretching algorithm) with a 32-byte random salt over your passphrase. This is intentionally slow — about 250 ms — to defeat offline brute-force attacks.
  2. The output is split into two 32-byte keys: an auth key (sent to the server as the Supabase Auth password, which Supabase re-hashes with bcrypt before storing) and a KEK (Key Encryption Key — never leaves your device).
  3. On signup, your browser generates a random 32-byte DEK (Data Encryption Key) and wraps (encrypts) it with your KEK using AES-256-GCM. The wrapped DEK is stored on SafeLane's servers — but only you can unwrap it.
  4. Every password item is encrypted with the DEK before it leaves your browser. The server stores opaque ciphertext.

What the server can see

What the server cannot see

Threat model

SafeLane is designed to defeat:

SafeLane does not protect against:

Cryptographic choices

Independent audits

SafeLane commissions an annual third-party security audit. Reports will be published here once available.