Privacy Tools Guide

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
# Example: 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):

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
# Example: 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:

# Example: 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
# Example: 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