Zero-Knowledge Password Managers Explained
Every password manager says it: "zero-knowledge." Here is what that actually means technically, how client-side key derivation works, and a 5-point checklist to verify any vendor is claim for yourself.

Zero-Knowledge Password Managers Explained
Every password manager's landing page says it. "Zero-knowledge architecture." "Military-grade encryption." "We can never see your data." None of that tells you whether it's true, or what it would actually mean if the vendor's servers were breached tomorrow.
- Zero-knowledge means the provider's servers only ever store ciphertext — encryption and decryption happen on your device, using a key derived from your master password that never leaves it.
- The mechanism behind the marketing term is a key derivation function (KDF) like PBKDF2 or Argon2id, which turns your master password into an encryption key through deliberately slow, repeated computation.
- A true zero-knowledge design still leaks metadata in a breach — your email, how many items you store, login timestamps — just never the plaintext contents of your vault.
- You can check any vendor's claim yourself: does it name a specific KDF, publish its parameters, link a public third-party audit, and state what a breach would expose?
- As covered in our password manager decision guide, the honest vendors are the ones that publish this detail instead of just repeating the phrase.
What "Zero-Knowledge" Actually Means
Stripped of marketing language, zero-knowledge means one specific thing: the company running the servers that sync your vault never holds the key needed to decrypt it. Your data is encrypted before it leaves your device, the server stores only that ciphertext, and decryption happens back on your device when you unlock the app. According to Bitwarden's own explanation of end-to-end encryption and zero-knowledge, the company can confirm you know your master password without ever learning what it is or seeing what it protects.
Note
the term "zero-knowledge" has no single enforced technical standard — it's a description, not a certification. That's exactly why the checklist later in this article matters more than the phrase itself.
The Architecture Underneath: Client-Side Key Derivation
Your master password never travels to a server as-is. Instead, your device runs it through a key derivation function (KDF) — a deliberately slow, computationally expensive process that turns a password into an encryption key, and makes brute-forcing that key far more expensive for an attacker than guessing the password alone.
Two KDFs dominate the password-manager space:
- PBKDF2-HMAC-SHA256 — repeats a hashing operation thousands of times. Bitwarden's documentation sets its current default at 600,000 iterations, in line with OWASP's recommendation, for accounts still on this algorithm.
- Argon2id — a newer, memory-hard function that also forces an attacker to spend RAM, not just CPU time, per guess. Bitwarden's default Argon2id parameters are 32 MiB of memory, 6 iterations, and 4 parallel threads, per the same documentation.
1Password takes a different approach on top of this: your Account Password is combined locally with a separate, device-generated 128-bit Secret Key, and the two together derive the encryption key — meaning even a perfect guess of your account password alone isn't enough. Per 1Password's own description of this model, the Secret Key is generated on your device and never transmitted anywhere. Authentication itself runs over the Secure Remote Password (SRP) protocol, which proves you know your credentials without ever sending them over the network.
Tip
if a vendor's security page won't name a specific KDF (just "advanced encryption" or "bank-level security"), that's a gap worth noticing — not because the product is necessarily weak, but because you can't verify a claim that isn't specific.
What Published Vendors Actually Disclose
The honest way to compare vendors isn't to trust the word "zero-knowledge" — it's to compare what each one actually publishes about its own architecture.
| Vendor | KDF named | Published parameters | Public third-party audit |
|---|---|---|---|
| Bitwarden | Argon2id (default) or PBKDF2-SHA256 | Argon2id: 32 MiB memory / 6 iterations / 4 threads; PBKDF2: 600,000 iterations minimum (source) | Yes, linked from its security pages |
| 1Password | Account Password + 128-bit Secret Key, combined via SRP | Secret Key generated on-device, never transmitted (source) | Yes |
| NordPass | Argon2 (key derivation) + XChaCha20 (vault encryption) | Algorithm named; specific iteration/memory parameters are not itemized on its public features page | Yes — Cure53 audits in 2020, 2022, and 2024 |
Notice the gap in the last row: naming an algorithm ("we use Argon2") is not the same disclosure level as publishing the exact parameters ("6 iterations, 32 MiB"). The first is a marketing fact; the second is something a security researcher could actually try to verify.
What a Server Breach Would and Wouldn't Expose
This is the detail most landing pages skip entirely. A true zero-knowledge design still leaks metadata in a server-side breach, even though it protects vault contents:
- Would still be exposed: your account email address, approximately how many items are in your vault, device and login timestamps, and the encrypted ciphertext blob itself (unreadable without your key).
- Would not be exposed: the plaintext passwords, notes, card numbers, or any other vault contents — provided the KDF and encryption were implemented correctly and your master password wasn't reused somewhere else that got breached separately.
Warning
zero-knowledge architecture protects your vault's contents, not your master password's strength. If your master password is weak or reused, a slow KDF buys you time against brute-forcing, but it doesn't rescue a password an attacker can simply guess or already has from another breach. The architecture is only half the defense — the other half is still yours.
A Checklist to Verify Any Vendor's Claim
Run this against any password manager's own security page before trusting the phrase "zero-knowledge":
- Does it name a specific KDF? ("Argon2id" or "PBKDF2" — not just "encryption.")
- Does it publish the parameters? (Iteration count, memory cost, or thread count — not just the algorithm name.)
- Is there a public third-party security audit you can actually read? (Not just "we've been audited" — a linked report, or at minimum a named auditor and year.)
- Does its documentation state what a server breach would and wouldn't expose? (If it only ever talks about what's protected and never what metadata leaks, that's an incomplete picture, not a dishonest one — but it's incomplete.)
- Is the client open-source, or has it been independently reviewed? (Open-source clients, like Bitwarden vs 1Password vs KeePassXC vs Dashlane covers, let anyone verify the encryption actually works the way the vendor says.)
A vendor that answers all five with specifics — the way Bitwarden's own KDF documentation and 1Password's SRP writeup do — has earned the term. A vendor that answers zero of them, and just repeats "zero-knowledge" on a marketing page, hasn't shown you anything yet. For a feature-by-feature look at where that leaves Google's built-in option specifically, see Is Google Password Manager Safe?
FAQ
Is zero-knowledge encryption actually secure?
It's a strong architecture when implemented correctly — the provider genuinely cannot read your vault even if compelled to, because it never holds the key. Security still depends on your master password's strength and the specific KDF parameters the vendor publishes; the architecture alone doesn't guarantee a strong implementation.
Can a password manager company see my passwords?
In a correctly implemented zero-knowledge design, no — encryption and decryption happen on your device, and the server only ever stores ciphertext it cannot decrypt. The company can still see metadata like your account email and roughly how many items you store.
What happens if a zero-knowledge password manager gets hacked?
An attacker who breaches the server gets encrypted vault blobs and account metadata, not plaintext passwords — provided the KDF and encryption were implemented as documented. They would still need to brute-force each user's master password against the published KDF to decrypt any individual vault, which is deliberately slow and expensive by design.
Is Bitwarden really zero-knowledge?
Bitwarden publishes its KDF choices and parameters directly — Argon2id by default (32 MiB memory, 6 iterations, 4 threads) or PBKDF2-SHA256 at a 600,000-iteration minimum for older accounts — which is the level of disclosure the checklist above is looking for, rather than just the unverifiable phrase itself.
More from Self-Hosting & Privacy

Duplicate keys, mixed env syntax, unquoted booleans - none of them throw an error. A structural walkthrough of docker-compose.yml with YAML anchors to cut repetition and the docker compose config habit that catches mistakes before they reach a running container.

A new phone demanded a Google Password Manager PIN before your logins synced. Here's exactly what it protects, what it doesn't, and what happens if you lose it.

depends_on orders container starts, not readiness — Postgres can still be mid-recovery seconds after its container 'started'. Real log timestamps proving the gap, plus the condition: service_healthy fix that closes it.
Stay in the loop
Get the latest articles delivered to your inbox. No spam, unsubscribe anytime.
Docker Compose YAML File Explained
Duplicate keys, mixed env syntax, unquoted booleans - none of them throw an error. A structural walkthrough of docker-compose.yml with YAML anchors to cut repetition and the docker compose config habit that catches mistakes before they reach a running container.
Continue Reading