Security architecture

Plain-language version. The full technical design document ships with the source.

The one-sentence version

Your 2FA secrets are encrypted on your device with keys only you hold — KeyNesta’s servers store ciphertext they cannot open, and generating codes never requires the internet at all.

How your vault is encrypted

When you create a vault, your device generates a random 256-bit master key. That key — never your passphrase directly — encrypts your vault with AES-256-GCM, an authenticated cipher that detects any tampering.

Your passphrase protects the master key: it is stretched with scrypt (a deliberately memory-hard function that makes GPU brute-force attacks expensive) and the result wraps the master key. Changing your passphrase re-wraps one small block; your data is never re-encrypted or exposed in the process.

Entering a wrong passphrase simply fails authentication. There is no hint, no partial decryption, no oracle.

Zero-knowledge sync

Sync is optional. When enabled, every object — each account entry, group, space — is individually encrypted with your master key before upload. The server sees opaque ciphertext plus the minimum it needs to sync: object IDs, version numbers, timestamps. It never sees secrets, code values, account names, notes, or your folder structure.

Your account password authenticates you to the sync service; it can’t decrypt anything. Your vault passphrase never leaves your devices. Signing in on a new device downloads ciphertext that only your passphrase can unwrap — locally.

On your devices

What we deliberately do not do

Honest limits

Security claims without caveats are marketing. Here are ours:

Questions?

Write to security@keynesta.com — vulnerability reports are welcome and taken seriously.