Design Password Manager

Hard45 min
1 / 30
understanding6 min read

Problem Statement: Zero-Knowledge Password Vault

How Problem Statement: Zero-Knowledge Password Vault shapes architecture and interviewer follow-ups for Design Password Manager.

Problem Statement: Zero-Knowledge Password Vault

A password manager is a credential vault with synchronized clients (mobile, desktop, browser extension). Users expect autofill, secure notes, TOTP seeds, and family sharing without exposing plaintext secrets to the operator.

The canonical threat is database breach: attackers obtain encrypted blobs. Design must ensure offline cracking cost dominates breach value (Argon2id + high-entropy Secret Key).

Real-world scale (Bitwarden public stats, 1Password growth blogs): tens of millions of accounts, billions of vault items, sync bursts after password rotations.

Key points

  • Server stores only ciphertext vault blobs; unlock keys never leave client RAM during normal use
  • Master password + account secret key derive the vault encryption key via Argon2id
  • Autofill and sharing are separate threat surfaces with their own crypto boundaries

Deep dive

Interviewers at 1Password, LastPass, or Bitwarden expect you to articulate zero-knowledge precisely: the operator cannot decrypt vaults without the user's derived keys. That does not mean "no server trust"—it means compromise of the database yields opaque blobs. Pair that with sync conflict resolution (vector clocks on item revisions), secure sharing (asymmetric item keys wrapped per member), and breach monitoring that never uploads full passwords to a third party.

javaOne Dark Pro
1public final class VaultKeyMaterial {
2 private final byte[] symmetricKey;
3 public byte[] deriveSubkey(String purpose) {
4 return Hkdf.expand(symmetricKey, purpose.getBytes(StandardCharsets.UTF_8), 32);
5 }
6}
pythonOne Dark Pro
1@dataclass(frozen=True)
2class EncryptedVaultBlob:
3 version: int
4 nonce: bytes
5 ciphertext: bytes
6 aad: dict[str, str]
typescriptOne Dark Pro
1interface UnlockResult {
2 vaultKey: CryptoKey;
3 sessionExpiresAt: number;
4}
5
6export async function zeroizeBuffer(buf: ArrayBuffer): Promise<void> {
7 new Uint8Array(buf).fill(0);
8}

Operational notes

  • Section 1 note 1: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 2: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 3: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 4: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 5: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 6: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 7: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 8: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 9: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 10: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 11: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 12: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 13: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.
  • Section 1 note 14: understanding — document zero-knowledge unlock path, shard sync, and breach-monitor k-anonymity.

State one measurable SLO (unlock p95 < 400ms on mobile), one failure mode (lost Secret Key), and one containment action (session revoke + forced re-auth on all devices).

Why interviewers care

Password Manager interviews reward crisp scope, explicit trade-offs, and failure stories—not generic microservice diagrams.

Interview checkpoint

Name one failure story for Problem Statement: Zero-Knowledge Password Vault that proves you understand real outages, not happy-path diagrams.

Key Highlights

  • A password manager is a **credential vault** with synchronized clients (mobile,
  • Client-side KDF + AEAD; server stores ciphertext only
  • Measure unlock p95 and sync merge correctness
Interview tip
Lead Problem Statement: Zero-Knowledge Password Vault with threat model, then numbers, then diagram—never start with storage brands.
Sounds senior
Say explicitly: 'Operator cannot decrypt vault blobs; support cannot look up your passwords.'

Section Rescue Kit

Buzzwords to use:

Zero-knowledge vaultSecret KeyOPAQUE

Safe statements:

  • "For Problem Statement: Zero-Knowledge Password Vault, I will state threat model assumptions (honest client, compromised server) before picking sync vs local-only."
  • "If pressed on autofill phishing, I pivot to origin-bound matching and user-visible domain confirmation."
Design Password Manager - System Design | WinJob | WinJob