Veeam v13: Backup Encryption Best Practices

Veeam v13 - Installation Series
📅 March 2026  ·  ⏱ ~14 min read  ·  By Eric Black
Encryption VBR v13 Security AES-256 KMS Key Management

The Three Encryption Layers

Veeam encryption is not a single toggle. There are three distinct layers, and each one protects a different part of the data path. You can use any one of them in isolation or stack them together depending on your threat model.

The first is job-level encryption. This encrypts backup data at the source before it ever touches the network or lands on a repository. It is the most common configuration and the one you should be using for any backup that leaves your controlled environment. The second is storage-level encryption, which is configured at the repository rather than the job. This is the right approach when you want encryption to apply to all backups landing on a repository regardless of how the individual jobs are configured - it is also the mechanism that controls encryption for SOBR Capacity Tier offload to object storage. The third is in-transit encryption, which protects the backup data stream as it moves between Veeam components across the network.

The algorithm across all three layers is AES-256. For password-based encryption, Veeam derives the secret key using 600,000 HMAC-SHA256 iterations with a 512-bit salt, following PKCS #5 v2.0. For KMS-based encryption, data encryption keys are protected with RSA-4096. These are not Veeam-specific standards - they are the same algorithms you will find in any serious enterprise security product.

How Veeam Encryption Actually Works

Understanding the key hierarchy matters, especially when you are thinking about password rotation, password loss scenarios, and what happens during a restore. Veeam uses a layered key structure rather than encrypting each backup file directly with your password.

When you set an encryption password, Veeam derives a secret key from that password using PKCS #5. That secret key then encrypts a set of data encryption keys, which are the keys actually used to encrypt the backup data blocks. The data encryption keys themselves are stored in the configuration database, encrypted by the secret key. A new set of data encryption keys is generated for every job session, which means each backup session's data is encrypted with different keys even if the password has not changed.

This design has two important practical consequences. First, changing the password mid-chain creates a situation where different restore points in the same backup chain are encrypted with different user keys - Veeam handles this, but if you are ever importing a backup chain that has had its password changed you need to supply all of the passwords that were ever used. Second, if Password Loss Protection is enabled via Enterprise Manager, an additional copy of the session key is stored in the backup file itself, encrypted with the Enterprise Manager public key. This is the mechanism that allows Enterprise Manager to unlock a backup when the original password is gone.

ℹ️ Note

Encryption is not retroactive. If you enable encryption on an existing job, Veeam triggers a new active full backup on the next run. The previous unencrypted chain remains unencrypted. The same applies if you disable encryption - the next run produces a new unencrypted full. Plan password rotation and encryption changes accordingly.

Configuring Job-Level Encryption

Job encryption is configured per job in the job wizard. For both greenfield deployments and jobs migrated from v12, the path is the same: reach the Storage step in the backup or backup copy job wizard, click Advanced, and go to the Storage tab within the advanced settings dialog. Check Enable backup file encryption and either select an existing password record or add a new one.

Step 1

Create an Encryption Password Record

In the VBR console, go to Menu > Manage Passwords. Click Add and enter a password with a descriptive hint. The hint is stored in the backup file metadata. Keep the hint meaningful enough to identify which password was used, but not so specific that it gives anything away.

Veeam enforces a minimum of 8 characters, but their documented requirement for v13 is at least 12 characters with a mix of uppercase, lowercase, numeric, and punctuation characters. 8 will pass validation - 12 is what Veeam actually requires you to use. Use a password manager. Do not reuse passwords across jobs.

Step 2

Enable Encryption on the Job

In the backup job wizard, at the Storage step click Advanced. On the Storage tab, check Enable backup file encryption and select the password record you created. Save and close. The next run will produce a new active full backup - this is expected behavior, not an error.

Step 3

Verify Encryption Is Active

After the first encrypted run completes, right-click the backup in the Backups > Disk view and select Properties. The backup properties dialog shows whether encryption is enabled. You can also check the job session log - encrypted jobs show the encryption mode in the session statistics.

⚠️ Warning

If you are running backup copy jobs with WAN accelerators and enable job encryption, data encryption keys are passed to the target side as part of that process. This is expected behavior documented by Veeam, but it means both the source and target backup servers need to be trusted infrastructure. Do not enable job encryption across a WAN accelerator path that terminates in an untrusted environment.

Storage-Level and Repository Encryption

Storage-level encryption is configured at the repository rather than the job. It applies to all backup data written to that repository, regardless of whether the individual jobs have job-level encryption enabled or not. There are two specific scenarios where this is the right configuration.

The first is hardened Linux repositories. When you configure a Linux hardened repository in VBR, you have the option to enable encryption at the repository level. This protects the data at rest independent of any job-level settings. If your hardened repo is also your immutability target, having repository-level encryption means even if someone physically removes the drives they cannot read the data without the key.

The second is SOBR Capacity Tier encryption. When you configure a Scale-Out Backup Repository and add a Capacity Tier (object storage target), there is a separate encryption setting specifically for data being offloaded to object storage. Enable this whenever the object storage target is outside your security perimeter - cloud storage buckets, off-site S3 targets, anything that crosses a trust boundary. If your source jobs are already encrypting, enabling Capacity Tier encryption as well means data gets encrypted twice - once at the job level and again before the upload. The Veeam best practice guide is direct about this: the double encryption has a performance cost and consumes extra compute, so if source jobs are already encrypted and the object storage is adequately secured, you can skip the redundant layer. If source jobs are not encrypted, always enable Capacity Tier encryption before offloading anywhere outside your control.

💡 Tip

Block cloning on Microsoft ReFS and Linux XFS is fully compatible with Veeam encryption. You do not have to choose between storage efficiency and data confidentiality on those filesystems. The one platform where encryption creates real problems is deduplication appliances - see the dedicated section below.

In-Transit Encryption

In-transit encryption protects the backup data stream as it moves between Veeam infrastructure components - proxy to repository, proxy to backup server, and so on. It is not enabled by default and the performance overhead is low on modern hardware, but whether you need it depends on your network topology.

If all Veeam components live on the same isolated management network with no traffic crossing untrusted segments, in-transit encryption is less critical. If backup proxies or repositories are separated from the backup server by a WAN link, a shared network segment, or anything that could be monitored by a third party, turn it on.

Configure it in Configuration > Network Traffic Rules. You can apply network traffic rules globally or per source/target IP range. The setting is labeled Encrypt backup traffic in the rule configuration. Veeam uses TLS for this traffic. The cipher suites and protocol versions supported are documented at helpcenter.veeam.com under Communications Encryption Standards for v13.

KMS Integration

Instead of managing encryption passwords manually, you can connect Veeam to an external Key Management Server that speaks KMIP. With KMS integration, Veeam requests keys from the KMS rather than deriving them from a password you store somewhere. The KMS manages key rotation automatically - Veeam only sends requests, it does not hold the master keys.

When a KMS key is used, Veeam protects the data encryption keys with RSA-4096 rather than the AES-256 CBC key derivation used for password-based encryption. The KMS also provides the audit trail: every key request is logged by the KMS, giving you a record of when backups were encrypted and when they were accessed for restore.

KMS configuration lives under Configuration > Key Management Servers. Add your KMIP-compliant KMS server, configure the certificate for mutual TLS authentication, and then select the KMS option when you enable encryption on a job instead of entering a password.

ℹ️ Note

KMS is available with Veeam Universal License (VUL) or legacy Enterprise Plus socket-based license. If you are on a lower license tier, KMS integration is not available and you are limited to password-based key management. The v13 REST API also adds the ability to check and update encryption passwords programmatically, which helps with automated rotation workflows in environments that cannot use a KMS.

Password Loss Protection and Enterprise Manager Keys

Password Loss Protection is the feature that lets you recover data from an encrypted backup without knowing the original password. It relies on Enterprise Manager and requires the backup server to be connected to a Veeam Backup Enterprise Manager instance.

The way it works: when Password Loss Protection is active, Veeam stores an additional copy of the session key inside every encrypted backup file. That copy is encrypted with the Enterprise Manager public key rather than the user password. If the password is ever lost, you initiate a key restore request from the VBR console. Enterprise Manager receives the request, verifies the requesting backup server is authorized, and issues a response key. The backup server uses that response key to unlock the backup without needing the original password.

Three things to keep in mind here. First, this only works if the Enterprise Manager instance that holds the private key is available. If Enterprise Manager goes down and you have not exported a copy of the active keyset, the mechanism fails. Export keysets regularly and store the exports in a separate secure location. Second, Enterprise Manager itself needs to be backed up. If you lose the EM server and have no backup, you lose the ability to recover via Password Loss Protection. The Enterprise Manager backup should also be encrypted - but make absolutely sure that password is never lost, because there is no Password Loss Protection for Enterprise Manager's own backups. Third, rotate Enterprise Manager keysets regularly. When you activate a new keyset, the public key propagates to all connected backup servers automatically. Old keysets should be retained until all backup chains encrypted under the old public key have been retired.

🚨 Danger

If you lose both the job encryption password and the Enterprise Manager private key for a backup chain, that data is unrecoverable. There is no backdoor. This is not a Veeam support case - it is a permanent data loss event. Treat Enterprise Manager keyset exports and EM configuration backups with the same priority as your most critical production data.

Step 1

Connect Backup Server to Enterprise Manager

In VBR, go to Configuration > Enterprise Manager and add the address of your Enterprise Manager server. Once connected, Password Loss Protection is enabled by default. You can verify the status under the same configuration section.

Step 2

Export the Active Keyset

In Veeam Backup Enterprise Manager, navigate to Configuration > Key Management. Select the active keyset and click Export. Store the exported keyset file in a secure, separate location from the Enterprise Manager server. A hardware security module, an encrypted offline drive, or a separate secrets manager are all appropriate choices. A copy on the same VM as Enterprise Manager is not.

Step 3

Schedule Keyset Rotation

Create a new keyset in Enterprise Manager on a regular schedule - quarterly is a reasonable baseline for most environments, more frequently if you have compliance requirements. When you activate the new keyset, all backup servers connected to Enterprise Manager receive the new public key automatically. Existing backups encrypted under the old keyset can still be decrypted using the old keyset - retain old keysets until the backup chains they cover are fully expired.

Encrypting the Configuration Backup

This one catches people out. The moment you enable job-level encryption in VBR, Veeam automatically disables the configuration backup. It does this because the configuration database contains encryption keys and metadata - sending an unencrypted configuration backup offsite would undermine the protection you just turned on for your job backups.

You need to re-enable the configuration backup with encryption turned on. Go to Configuration > Configuration Backup and check Encrypt configuration backup, then set a password. Once this is done, the configuration backup runs again and includes credentials and key metadata in the encrypted backup. In large environments with many managed servers, application-aware processing configurations, and service accounts, the configuration backup is the difference between a fast restore and spending days manually re-entering everything.

⚠️ Warning

The password used to encrypt the configuration backup has no Password Loss Protection fallback. If you lose this password, you cannot restore the configuration backup. There is no Enterprise Manager key mechanism for config backups. Write this password down, store it in a vault, and treat it as a critical recovery credential.

The Deduplication Appliance Problem

If your repository target is a deduplication appliance - Dell Data Domain, HPE StoreOnce, ExaGrid, or similar - job-level encryption will destroy your dedup ratios. The reason is straightforward: Veeam generates unique data encryption keys for every job session. Two identical data blocks from two different job sessions get encrypted with different keys and produce different ciphertext. The deduplication appliance sees them as unique blocks and cannot deduplicate them. In practice, dedup ratios on an encrypted workload can drop from 3:1 or 4:1 down to 1.1:1 or worse.

The right approach for dedup appliances is to disable job-level encryption and instead use the hardware encryption capability built into the appliance itself. Most enterprise dedup appliances support hardware-accelerated encryption that operates after deduplication, so you get both storage efficiency and encryption. Configure encryption on the appliance directly and disable it on the Veeam job side. This is the documented Veeam recommendation and the correct architecture for this scenario.

If you are offloading to a SOBR Capacity Tier with a dedup appliance as the performance tier, the same logic applies: keep the performance tier unencrypted for dedup efficiency, and enable Capacity Tier encryption separately for the object storage offload target.

Upgrading from v12 - What Changes

If you are upgrading an existing VBR v12 deployment to v13, existing encryption configurations carry over without changes. Jobs that were encrypted in v12 continue to use the same passwords and key hierarchy. No re-keying is required and no new full backups are triggered by the upgrade itself.

The areas worth reviewing post-upgrade are KMS and the REST API. The v13 REST API adds the ability to programmatically check and update encryption passwords, which was not available in v12. If you have a v12 environment where password rotation is manual and error-prone, v13 gives you the tooling to automate that via the REST API or PowerShell. Review the helpcenter.veeam.com/references/vbr/13/rest/ REST API reference for the encryption password management endpoints.

Also review any jobs that were configured to use password-based encryption in v12 and consider whether they should be moved to KMS now that you are on v13. The migration path is straightforward - add your KMS server, update the job encryption setting to use the KMS key instead of the password, and the next job run will re-key under KMS management.

ℹ️ Note

For greenfield v13 deployments on the Linux Software Appliance, everything above applies identically. The Linux appliance deployment does not change how job encryption, storage encryption, or Enterprise Manager key management work - the configuration paths in the VBR console are the same whether your backup server is running on Windows or the Linux appliance.

Key Decisions Reference

Use this table to map your deployment scenario to the right encryption configuration.

Scenario Recommended Approach Notes
Backups staying on-premises on a trusted network In-transit encryption optional; job encryption recommended for defense in depth Low risk if network is isolated. Still good practice to encrypt jobs.
Backups going offsite via rotated drives Job-level encryption required Without encryption, anyone with a Veeam install can read those drives.
Backups going to cloud object storage (S3, Azure Blob, Wasabi) SOBR Capacity Tier encryption or job-level encryption At least one layer of encryption before data leaves your perimeter. Both is fine but has compute cost.
Backups targeting a deduplication appliance Disable job encryption; use appliance hardware encryption Job encryption destroys dedup ratios. Use the appliance's built-in encryption post-dedup.
Backups targeting ReFS or XFS repository Job-level encryption safe to enable Block cloning is compatible with Veeam encryption on ReFS and XFS.
Large environment, many jobs, compliance requirements KMS integration Automatic key rotation, audit trail, centralized key management. Requires VUL or Enterprise Plus license.
No KMS available, password-based encryption in use Connect to Enterprise Manager, enable Password Loss Protection, export keyset Non-negotiable. Without this, a lost password means permanently lost data.
Backup copy jobs over WAN accelerators Enable in-transit encryption; job encryption keys pass to target side Target backup server must be trusted infrastructure.
Key Takeaways
  • Veeam uses AES-256 for data at rest; key derivation uses 600,000 HMAC-SHA256 iterations with a 512-bit salt (PKCS #5 v2.0); KMS keys are protected with RSA-4096
  • A new set of data encryption keys is generated every job session - different sessions use different keys even if the password has not changed
  • Enabling encryption on an existing job triggers an active full backup on the next run - this is expected, not an error
  • Job encryption kills deduplication appliance ratios - use appliance hardware encryption instead and disable Veeam job encryption for those targets
  • Block cloning on ReFS and XFS is fully compatible with Veeam encryption
  • The moment you enable job encryption, Veeam disables the configuration backup - re-enable it with encryption turned on
  • Connect backup servers to Enterprise Manager and enable Password Loss Protection before you need it, not after you have lost a password
  • Export Enterprise Manager keysets and store them separately - losing the EM private key with no export means no recovery path for encrypted backups
  • KMS gives you automatic key rotation and an audit trail; it requires VUL or Enterprise Plus license
  • v13 adds REST API support for checking and updating encryption passwords - useful for automated rotation workflows without a full KMS

Getting encryption right at the start of your deployment is significantly easier than retrofitting it later. Adding encryption to existing jobs forces a full backup cycle across every job you modify, which can be disruptive in large environments. If you are deploying v13 fresh or doing a clean v12 upgrade, treat encryption configuration as a Day 0 task rather than something to come back to. The key management side - Enterprise Manager connections, keyset exports, configuration backup encryption - is the part that gets skipped under time pressure and the part that matters most when something actually goes wrong.

Read more