Last updated: March 22, 2026

Privacy Risks of Cloud Backups Explained

Cloud backups protect your data from hardware failure. But most backup services can read your files, hand them to law enforcement, and analyze your content for advertising. Understanding the threat model lets you choose when a commercial service is acceptable and when you need client-side encryption.

Table of Contents

The Encryption Spectrum

Cloud storage encryption exists on a spectrum from “trust us” to “we cannot access your data under any circumstances.”

Server-Side Encryption (No Privacy Protection)

Most cloud providers encrypt data “at rest” using their own keys:

Your files → [Provider encrypts with provider's key] → Stored on disk

This protects against a physical hard drive being stolen from a data center. It does not protect you from the provider, because the provider holds the key. Google Drive, iCloud (default), Dropbox, OneDrive, and most backup services work this way.

What this means in practice:

Zero-Knowledge / Client-Side Encryption

Your device encrypts the data before it leaves, using a key derived from your passphrase:

Your files → [Your device encrypts with your key] → Encrypted data sent to provider

The provider stores encrypted blobs it cannot read. Examples - Tresorit, ProtonDrive, Cryptomator + any provider.

Knowledge of What “Zero-Knowledge” Actually Means

A provider calling itself “zero-knowledge” means they claim not to have your decryption key. Verify this:

Metadata Exposure

Even with strong encryption, metadata leaks information:

Metadata What it reveals
File names Topics you care about, software you use
File sizes Type of content (videos vs. documents)
Timestamps When you created or modified files
Directory structure How you organize personal information
Backup frequency When you are active, what you do regularly
IP address at backup time Your physical location
See what metadata your backup tool sends
Restic shows what it backs up, in encrypted form
restic -r s3:backup-bucket/mybackup snapshots

But the snapshot metadata itself is encrypted
The provider only sees encrypted objects of various sizes

With Duplicati, you can verify encryption locally:
duplicati-cli test-filters --include-filter="" /local/backup/path

Services that provide full metadata encryption (filename encryption):

Government Access and Legal Requests

Cloud providers receive thousands of government data requests per year. The response depends on:

  1. Which country the provider is based in
  2. Which country you are in
  3. Whether the data is encrypted at rest with provider-held keys
Apple's 2023 transparency report showed
60,000+ government account requests globally
~80% compliance rate in the US

Check a provider's transparency report
Most major providers publish these annually

If you are subject to surveillance risk, client-side encryption means a warrant served to your provider returns encrypted blobs. useless without your passphrase.

Practical Secure Backup Setup

Option 1 - Restic with Encrypted Remote Backend

Install restic
sudo apt install restic   # or brew install restic

Initialize a repository (the encryption passphrase is your key)
restic -r s3:s3.amazonaws.com/my-backup-bucket init
Enter a strong passphrase. store it in your password manager

First backup
restic -r s3:s3.amazonaws.com/my-backup-bucket \
  --password-file ~/.restic-password \
  backup ~/Documents ~/Pictures

Scheduled backup (cron)
echo "0 2 * * * restic -r s3:s3.amazonaws.com/my-backup-bucket --password-file ~/.restic-password backup ~/Documents" | crontab -

Restore
restic -r s3:s3.amazonaws.com/my-backup-bucket \
  --password-file ~/.restic-password \
  restore latest --target /tmp/restore-test

The provider (AWS S3, Backblaze B2, etc.) stores only encrypted data. The passphrase never leaves your machine.

Option 2 - Cryptomator + Any Cloud

Cryptomator creates an encrypted virtual drive that syncs with any cloud provider.

Linux - install from cryptomator.org/downloads
Creates a vault directory. contents are encrypted before syncing

Structure on cloud:
Dropbox/my-vault/
  d/             (encrypted directory tree. names are random UUIDs)
  masterkey.cryptomator  (encrypted master key)
  vault.cryptomator      (config)

Attacker or Dropbox employee sees:
Random 36-char directories with encrypted filenames
Cannot determine file count, names, or structure

Option 3 - Borg Backup

Install
sudo apt install borgbackup

Initialize encrypted repository (repokey = key stored in repo, encrypted by passphrase)
borg init --encryption=repokey-blake2 user@backup-server:/backup/mybackup

Backup
export BORG_PASSPHRASE='your-strong-passphrase'
borg create user@backup-server:/backup/mybackup::'{hostname}-{now}' \
  ~/Documents ~/Pictures

List backups
borg list user@backup-server:/backup/mybackup

Export the repo key (back this up separately. losing it = losing all backups)
borg key export user@backup-server:/backup/mybackup ~/borg-key-backup.txt

What iCloud, Google, and Dropbox Can Access

iCloud Photos: Apple can read unless Advanced Data Protection is enabled
  → Enable: Settings → [Your Name] → iCloud → Advanced Data Protection

Google Drive - Google can read all files
  → Alternative: Use Google Drive with Cryptomator vault

Dropbox - Dropbox can read all files
  → Alternative: Cryptomator vault in Dropbox folder
  → Or switch to Tresorit, which is zero-knowledge by design

OneDrive - Microsoft can read all files (Personal Vault adds PIN, not E2E)
  → Same Cryptomator workaround applies

Threat Model Questions to Answer First

Before choosing a backup approach, decide:

  1. Who is your adversary? Random criminals accessing a breach = standard encryption is fine. Law enforcement with a warrant = zero-knowledge required. Nation-state adversary = self-hosted offline backup.

  2. What are you backing up? General files (photos, documents) vs. highly sensitive materials (medical, legal, source code with credentials).

  3. What is your recovery scenario? If your home burns down, can you restore from the cloud? Does your passphrase exist somewhere safe?

  4. What happens if you lose the passphrase? With zero-knowledge encryption, there is no password reset. Your data is gone.

Testing Your Backup Strategy

Before disaster strikes, verify your backup actually restores:

#!/bin/bash
backup-test.sh - Test backup recovery capability

BACKUP_LOCATION="s3:my-backup-bucket"
TEST_FILE="/tmp/backup-test-$(date +%s).txt"
TEST_DATA="Critical data - $(openssl rand -hex 32)"

echo "$TEST_DATA" > "$TEST_FILE"

Test 1 - Can you encrypt and back up?
echo "Testing backup encryption..."
restic -r "$BACKUP_LOCATION" --password-file ~/.restic-password \
  backup "$TEST_FILE"

if [ $? -ne 0 ]; then
    echo "ERROR: Backup failed"
    exit 1
fi

Test 2 - Can you restore?
RESTORE_DIR="/tmp/restore-test-$(date +%s)"
mkdir "$RESTORE_DIR"

echo "Testing restoration..."
restic -r "$BACKUP_LOCATION" --password-file ~/.restic-password \
  restore latest --target "$RESTORE_DIR"

if [ $? -ne 0 ]; then
    echo "ERROR: Restore failed"
    exit 1
fi

Test 3 - Is the data intact?
RESTORED_FILE=$(find "$RESTORE_DIR" -name "backup-test-*" | head -1)
RESTORED_DATA=$(cat "$RESTORED_FILE")

if [ "$TEST_DATA" == "$RESTORED_DATA" ]; then
    echo "SUCCESS: Backup and restore working correctly"
else
    echo "ERROR: Restored data does not match original"
    exit 1
fi

Cleanup
rm -rf "$RESTORE_DIR" "$TEST_FILE"

Run this test monthly. A backup you cannot restore is not a backup.

Encryption Strength Analysis

With zero-knowledge encryption, the provider cannot help you even if they wanted to:

Restic with S3 backend
The passphrase NEVER leaves your machine
The provider sees only encrypted blobs

Attacker with S3 access sees:
- Encrypted data (useless without passphrase)
- Backup timestamps
- Approximate backup sizes
Cannot see - filenames, content, directory structure

Even if AWS is breached:
- Your encrypted backups remain secure
- Attacker cannot read any data without your passphrase
- AWS cryptographic keys are irrelevant to your data

Comparing Services Side by Side

Service Encryption Type Metadata Protection Zero-Knowledge Cost (per TB/mo)
Tresorit E2E Full filename encryption Yes $12-20
ProtonDrive E2E Full encryption Yes $5-20
Cryptomator + Dropbox E2E Partial (filenames hidden) Yes $12+
Restic + S3 E2E Full encryption Yes $0.023
Borg + self-hosted E2E Full encryption Yes Server cost
Google Drive Server-side None No $2-10
iCloud (default) Server-side None No $1-7
Dropbox Server-side None No $10-20

Migrating From Cloud Provider to Self-Hosted

If you currently use Google Drive or iCloud and want to switch to encrypted backup:

Step 1 - Export from Google Drive
Use Google Takeout (takeout.google.com)
Downloads all data as encrypted backup file

Step 2 - Transfer to Restic
tar -xzf takeout.tar.gz
restic -r s3:my-secure-bucket \
  --password-file ~/.restic-password \
  backup ~/Downloads/Takeout/

Step 3 - Verify
restic -r s3:my-secure-bucket \
  --password-file ~/.restic-password \
  restore latest --target /tmp/verify-restore

Step 4 - Delete from cloud provider (optional)
Settings → Manage your Google Account → Data & Privacy → Delete...

Passphrase Security

Your backup is only as secure as your encryption passphrase:

Generate a strong passphrase using cryptography-grade randomness
openssl rand -base64 32
Output - aB3xY9kL2mN5oP8qR1sT4uV7wX0yZ

Or use diceware method (human-memorable, cryptographically strong)
Download diceware word list and roll dice
correct-horse-battery-staple
This is actually very strong (entropy comparable to random string)

Store securely:
1. Password manager (encrypted, backed up)
2. Physical safe (separate location from backups)
3. Never in plaintext on your computer

Test that you can remember or retrieve it
Losing the passphrase = losing all backups permanently

Avoiding Common Mistakes

Mistake Impact Fix
Backup encrypted on same device as data Single point of failure Store backups on separate hardware
Same passphrase for all backups One compromise = all loss Use unique passphrase per backup
Storing passphrase in email or cloud Trivial to compromise Physical safe or airgapped password manager
Never testing restore Discover failure only when needed Test monthly
Storing backup on ISP’s server ISP breach = data exposure Use commercial provider or self-hosted
Unencrypted backup metadata Metadata alone reveals patterns Use full metadata encryption

Related Articles