Zero-Knowledge Security

Your password NEVER leaves your device. We use smart cryptography to verify you without ever seeing your password - the most secure way to protect your account.

Zero-Knowledge Auth
Your Device
Password
Argon2id→ HKDF derivation
Password never leaves device

What is Zero-Knowledge?

When you log in to most websites, your password travels over the internet to the server. Even though it's encrypted during travel, the server still sees your password.

With Zero-Knowledge, your password stays on YOUR device. Instead, we use smart math to prove you know the password without ever sending it.

Regular Login

You show your ID card to get into a building

Zero-Knowledge Login

You prove you know a secret handshake, but never reveal what it is

Why Use Zero-Knowledge?

Password Never Sent

Even if hackers watched your internet connection, they cannot steal your password because it never travels over the network.

We Cannot See It

Not even anonym.legal staff can see your password. Your credentials remain completely private.

Better Protection

If our servers were ever compromised, your password would still be safe. We only store mathematical proofs, not passwords.

24-Word Recovery

You get special recovery words to regain access if you forget your password. No calling support - you control your account.

How It Works

Zero-Knowledge authentication in 4 simple steps

1

Create Password

You create a password on your device

2

Generate Secret Key

Your device creates a secret key from your password using special math

3

Send Proof

Only a mathematical proof is sent to us - never your password

4

Verify

We verify the proof - we can confirm it's you without seeing your password

It's like having a lock where you keep the only key, and we just check if your key works.

Your 24-Word Recovery Phrase

When you enable Zero-Knowledge, you receive 24 special words. These words are your master key to your account.

What are these words for?

  • Recover your account if you forget your password
  • Regain access if you lose your device
  • Log in on a new computer

DO

  • Write them down on paper
  • Store the paper somewhere safe (like a locked drawer)
  • Consider making a backup copy in a different safe place

DO NOT

  • Take a photo of them
  • Save them on your computer
  • Send them by email or text
  • Share them with anyone

Why 24 Words?

  • Words are easier to write down correctly
  • Words are easier to read and verify
  • 24 words provide extremely strong security

Important

Without your recovery phrase, we CANNOT help you get back into your account. This is by design - Zero-Knowledge means we don't have access to your password or keys.

Works Everywhere

Zero-Knowledge protection across all anonym.legal platforms

Technical Details

For the security-conscious

Argon2id Key Derivation

Memory-hard algorithm that makes password guessing extremely slow, even with specialized hardware.

XChaCha20-Poly1305

The same authenticated encryption used by security experts worldwide for maximum protection.

No Password Storage

We never store your password in any form - encrypted, hashed, or otherwise.

Constant-Time Verification

Security checks take the same time regardless of input, preventing timing attacks.

Frequently Asked Questions

Can anonym.legal staff see my password?

No. That's the whole point of Zero-Knowledge! Your password is processed on your device. We only receive a mathematical proof, never the actual password.

What if anonym.legal gets hacked?

Your password is still safe! Hackers would only find mathematical proofs, not passwords. Without your actual password, they cannot access your account.

Is Zero-Knowledge harder to use?

No! You won't notice any difference when logging in. The only extra step is saving your 24-word recovery phrase when you first set up your account.

Can I turn off Zero-Knowledge?

Zero-Knowledge is enabled by default for your protection. We recommend keeping it on for the best security.

What happens if I change my password?

When you change your password, your device creates new secret keys and you receive a new 24-word recovery phrase. Your old recovery phrase stops working, so save your new phrase immediately!

After the LastPass breach, how can I verify a vendor uses true zero-knowledge encryption?

anonym.legal uses Argon2id key derivation (64MB memory, 3 iterations) running entirely in the browser — the server never receives your password or encryption key. AES-256-GCM encryption happens before data leaves your device. Even a full server breach yields only encrypted blobs without the keys to decrypt them.

Technical Appendix

Cryptographic parameters and protocol details for security auditors and developers.

Cryptographic Parameters

ComponentAlgorithmParameters
Password HashingArgon2idMemory: 64 MB, Iterations: 3, Parallelism: 1, Salt: 16 bytes, Output: 32 bytes
Symmetric EncryptionXChaCha20-Poly1305AEAD, 256-bit key, 24-byte nonce (random per operation)
Key DerivationHKDF-SHA256Master Key → Auth Key + Encryption Key (domain separation)
Recovery PhraseBIP39256-bit entropy, 24 words, 2048-word wordlist
Random Number GenerationCSPRNGcrypto.getRandomValues (browser), libsodium.randombytes_buf (native)

Key Derivation Chain

User Password (never transmitted)
Argon2id (64MB, 3 iterations, salt)
Master Key (32 bytes)
HKDF("auth") → Auth Key

Sent to server for verification

HKDF("enc") → Encryption Key

Never leaves device

Protocol Flow

Registration

  1. 1Client generates random salt (16 bytes)
  2. 2Client derives Master Key via Argon2id(password, salt)
  3. 3Client derives Auth Key and Encryption Key via HKDF
  4. 4Client sends Auth Key + salt to server (password never sent)

Login

  1. 1Client requests salt from server (by email)
  2. 2Client re-derives Master Key via Argon2id(password, salt)
  3. 3Client sends Auth Key; server verifies with timing-safe comparison
  4. 4Server issues JWT session token; Encryption Key stays on device

Cross-Platform Compatibility

PlatformCrypto LibraryArgon2id Parallelism
Web App (Browser)libsodium.js (WebAssembly)1
Desktop App (Tauri)rust-argon2 + libsodium.js1
Office Add-inlibsodium.js (WebAssembly)1

Parallelism is set to 1 across all platforms to ensure cross-platform compatibility. A key derived on any platform works on all others.

Protect Your Account Now

Create an account with Zero-Knowledge security. Your password stays yours - always.