Skip to content

Backup encryption keys and recovery kits

Every Outpost backup is encrypted on the endpoint with a key the endpoint generates. This page explains who holds a copy of that key, how to switch a client to zero-knowledge keys so Outpost holds none, and how to download the recovery kit that restores a backup without Outpost. Read it before the first backup runs, because the choice decides what you can recover after losing an endpoint.

Each copy of each endpoint, primary or secondary, is a separate repository with its own key: 32 random bytes the endpoint creates when it first writes to the destination. Backups are encrypted with AES-256-GCM, in the format of the open-source kopia tool.

Every key exists in up to three places:

WhereHeld by defaultHeld in zero-knowledge mode
On the endpoint, protected with DPAPI on Windows and in a file only root can read on Linux and macOSYesYes
In Outpost, sealed with the client’s own encryption key (escrow)YesNo
In a recovery kit you download and keepWhen you download oneOnly the kits offered when you turn zero-knowledge on

An endpoint does not write its first snapshot until Outpost confirms it has received the key, or, in zero-knowledge mode, confirms it will not keep one. Until then, runs show Skipped with waiting for Depot to hold the key.

Zero-knowledge is set for a whole client, on Backup > Settings. It is not a profile setting, so no profile can override it.

What you can doEscrow (default)Zero-knowledge
Restore onto the source endpointYesYes. The endpoint uses its own key.
Browse a snapshot’s files in the consoleYesYes, through the source endpoint while it is online
Download files as a zip in the browserYesNo
Restore onto another endpointYesNo
Recover after the endpoint is lost or rebuiltYes. Outpost delivers the key to the endpoint that restores.Only with a recovery kit
Download a recovery kit at any timeYesNo

Zero-knowledge suits a client whose policy forbids a service provider from holding backup keys. It moves the job of keeping keys safe to whoever keeps the recovery kits.

  • You need the backup:keys permission. Among the built-in roles, only the owner holds it. On the MSP plan, practice-level roles with storage:manage hold it too.
  • You need a second factor on your console account. Outpost asks for it before changing key custody or downloading a kit.
  • On the MSP plan, open the client’s workspace first. The setting belongs to one client.
  • Decide where the recovery kits will be kept, such as a password manager or a safe. A kit holds a backup key in plain text.
  1. Go to Backup > Settings.
  2. On the Zero-knowledge keys card, read the warning Depot will hold no backup keys.
  3. Select Turn on zero-knowledge.
  4. Confirm your second factor if Outpost asks for it.
  5. Outpost makes a recovery kit for every repository from its own copy of the key, then deletes its copies. The Recovery kits card lists one kit for each repository, including earlier repositories a copy has moved away from, by endpoint id and copy. Select Download kit for each one.

Each kit link works once, for 15 minutes. Outpost cannot make the kits again, so download every one before you leave the page. If no endpoint had a key in Outpost’s keeping, the page says so instead, and each endpoint still holds its own key.

  1. Go to Backup > Settings.
  2. Select Turn off zero-knowledge, and confirm your second factor if Outpost asks for it.

Outpost asks every endpoint to send its keys again. Endpoints that are offline send theirs when they next connect. Until an endpoint has sent its keys, browsing, downloads, and restores onto another endpoint still fail for its backups.

With escrow, you can download a kit for any repository at any time.

  1. Open the endpoint and select its Backups tab.
  2. Under Recovery kit, select Primary kit (JSON) or Primary kit (PDF). If the endpoint has a secondary copy, the Secondary buttons download its kit.
  3. Confirm your second factor if Outpost asks for it.

The kit is saved as recovery-kit-<hostname>-<copy>.json or .pdf. Every download, and every change to zero-knowledge mode, is recorded in the audit log.

In zero-knowledge mode, the download is refused with This client uses zero-knowledge backup keys, so Depot holds no key to put in a kit.

FieldContents
EndpointThe endpoint’s id and hostname, and whether this is the primary or secondary copy
RepositoryThe storage provider, endpoint URL, region, bucket, and prefix, or the network share path
PasswordThe repository’s key
kopiaThe kopia version the repository was written with (0.23.0), and the commands to connect to the repository, list its snapshots, and restore one

The kit never contains credentials for the storage itself. To use it, you supply an access key that can read the bucket, or an account that can read the network share. For backups on Outpost Cloud Storage, you hold no credentials for the bucket, so a kit is a complete way out only for backups in storage you own.

  • Backup > Settings shows Zero-knowledge is on for this client. with the time it changed, or off.
  • On an endpoint’s Backups tab, each repository with no key in Outpost shows Zero-knowledge.
  • Each kit you downloaded opens and names the expected endpoint and repository.

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.