the basics

applies to: your account

Your passphrase, Secret Key & recovery code

Pock hands you a few different secrets when you create a vault, and asks for two of them to unlock. Here's what each one is, why it exists, and which ones you must never lose.

The one-sentence version

To unlock your vault you need two things: your passphrase (something you remember) and your Secret Key (something your devices hold). Neither one alone can open the vault, whoever is holding it: you, an attacker, or us. The recovery code is your backup if you forget the passphrase.

Try it

Toggle the two factors, or step through what different attackers actually hold. The vault only opens when both are present at once.

+
🔓
Vault open

Your passphrase and Secret Key are both present, so the vault opens.

The secrets, one by one

1. Passphrase - something you know

The password you choose and memorize. It's never sent to our servers - it's used, on your device, as one of two ingredients that derive your unlock key. You can change it whenever you like. Because it's only half of the recipe, a weak or phished passphrase on its own can't open your vault.

2. Secret Key - something you have

A long, random, high-entropy key (128 bits) that Pock generates once, on your device, when you first create your vault. It looks like HzBwwy7i4WD8nSAq-6QXHw. It's the second ingredient in your unlock key, and it never touches our servers. It gets stored on the devices you sign in from (your browser, the desktop app's keychain, the CLI's ~/.pock/vault.json), so you usually only type it once per device.

Why a random key and a passphrase? Because people pick guessable passphrases. If your unlock key were derived from the passphrase alone, then anyone who grabbed our database could run an offline guessing attack against it. Mixing in a 128-bit Secret Key that we never see makes that attack pointless - even a weak passphrase is safe, because the attacker is still missing a key they can't guess and can't steal from us. This is the same "two-secret" design 1Password popularized.

3. Recovery code - your backup

A second one-time code (like 9F5Vtzim5tMViyoxEomlA3NEo6k) shown once at setup. It wraps your vault key a second way, so if you ever forget your passphrase you can still get back in with the recovery code. Store it somewhere safe and separate - a password manager you trust, a printout in a drawer. If you lose both your passphrase and your recovery code, no one can recover your vault, including us. That's the point of zero-knowledge.

Your passphrase + Secret Key are the everyday path; the recovery code is a second, independent way into the same lock.

4. API token - how tools sign in (not a key)

When you run pock login or connect the browser extension, Pock issues an API token. This only proves who you are to the server - it is not a decryption key and can't open your vault by itself. Unlocking still needs your passphrase + Secret Key on the device. You can revoke a token any time with pock logout or from the web, without touching your encryption.

A token opens the door (proves who you are). It never opens the safe (your encrypted vault).

How the two fit together

Your passphrase and Secret Key are combined - on your device - into a single unlock key (we call it the Account Unlock Key). That key doesn't decrypt your secrets directly; it unwraps your identity, the actual keypair that encrypts and decrypts every secret. The server stores only the wrapped identity, so without both of your ingredients it's an unreadable blob.

passphrase + Secret Key → derive → unlock key → unwraps → your identity (keypair) → decrypts → your secrets

The recovery code is a parallel path to the same unlock key. The API token sits entirely outside this chain.

What each defends against

  • Our servers get breached - the attacker gets wrapped blobs and no Secret Key. Can't unlock.
  • Someone phishes your passphrase - still missing your Secret Key, which never left your devices. Can't unlock.
  • A device is stolen - the Secret Key is there, but not your passphrase (and biometric unlock adds your fingerprint). Can't unlock.
  • You forget your passphrase - use the recovery code, set a new one.

Quick reference

  • Passphrase - memorize it, needed every unlock, changeable.
  • Secret Key - save it once, stored per device, never on our servers. Losing it (and your recovery code) means no recovery.
  • Recovery code - save it somewhere separate; your only way back if you forget the passphrase.
  • API token - convenience for tools, revocable, not a decryption key.

New machine or a borked local vault? pock vault link re-attaches a device using your passphrase + Secret Key. For CI, the same two factors go in as POCK_SECRET_KEY + POCK_PASSPHRASE - see the CLI.