Šifrování záloh: Kompletní průvodce ochranou zálohovacích dat

Nešifrovaná záloha je bezpečnostní riziko. Naučte se správně šifrovat zálohy pomocí AES-256, spravovat šifrovací klíče a vybrat software s vestavěným šifrováním.

Proč šifrovat zálohy?

Zálohy obsahují kompletní kopii vašich dat -- včetně citlivých osobních údajů, obchodních tajemství, přihlašovacích údajů, finančních záznamů a dalšího. Nešifrovaná záloha na ztraceném externím disku nebo kompromitovaném cloudovém účtu znamená únik všech těchto dat.

Důvody pro šifrování záloh:

  • Ochrana při ztrátě nebo krádeži média -- ztracený nešifrovaný disk je otevřená kniha
  • Ochrana v cloudu -- poskytovatel cloudového úložiště by neměl mít přístup k vašim datům
  • Regulatorní požadavky -- GDPR, PCI DSS, HIPAA a další předpisy vyžadují šifrování citlivých dat
  • Ochrana při přenosu -- data přenášená po síti mohou být odposlouchaná
  • Snížení dopadu bezpečnostních incidentů -- únik šifrovaných dat je méně závažný z pohledu GDPR

Šifrování at rest vs. in transit

Šifrování při přenosu (in transit / in flight)

Chrání data během přenosu po síti -- z vašeho počítače na zálohovací server nebo do cloudu. Standardy:

  • TLS 1.3 -- nejnovější verze protokolu Transport Layer Security. Povinné minimum pro jakýkoli přenos záloh po síti.
  • SSH / SCP / SFTP -- šifrovaný přenos souborů přes SSH tunel. Používají ho nástroje jako rsync, BorgBackup, Restic (pro SFTP backend).
  • IPSec VPN -- šifrovaný tunel na síťové vrstvě. Vhodné pro zálohy mezi pobočkami přes internet.

Šifrování in transit je dnes standardem a většina nástrojů ho implementuje automaticky. Nestačí ale samo o sobě -- po přenosu jsou data na cílovém úložišti nešifrovaná.

Šifrování v klidu (at rest)

Chrání data uložená na zálohovacím médiu (disk, cloud, páska). Existují dvě úrovně:

  • Server-side encryption (SSE) -- poskytovatel šifruje data svým klíčem. Chrání při fyzické krádeži disků v datovém centru, ale poskytovatel (nebo útočník s přístupem k jeho systémům) může data dešifrovat.
  • Client-side encryption (CSE) -- data šifrujete vy na svém počítači před odesláním. Poskytovatel nikdy nevidí nešifrovaná data ani šifrovací klíč. Toto je doporučený přístup.
Vždy preferujte client-side encryption Server-side encryption chrání pouze proti fyzické krádeži disků v datovém centru. Nechrání proti kompromitaci účtu poskytovatele, zaměstnance poskytovatele s přístupem, soudního příkazu nebo hacknutí management konzole. Client-side encryption chrání proti všemu -- protože klíč má pouze zálohovací software na vaší straně.

AES-256: Zlatý standard šifrování záloh

AES (Advanced Encryption Standard) je symetrická bloková šifra schválená NIST. AES-256 používá 256bitový klíč a je považován za bezpečný i proti budoucím kvantovým počítačům (Groverův algoritmus snižuje efektivní bezpečnost na 128 bitů, což je stále dostatečné).

Režimy šifrování

  • AES-256-CTR (Counter Mode) -- rychlý, paralelizovatelný, vhodný pro velké objemy dat. Používá ho Restic.
  • AES-256-GCM (Galois/Counter Mode) -- authenticated encryption, kombinuje šifrování a ověření integrity. Moderní a doporučený režim. Používá ho Proxmox Backup Server.
  • AES-256-CBC (Cipher Block Chaining) -- starší režim, stále bezpečný, ale pomalejší a obtížněji paralelizovatelný.

Další šifrovací algoritmy

  • ChaCha20-Poly1305 -- moderní authenticated encryption, rychlejší než AES na zařízeních bez hardwarové AES akcelerace (ARM procesory). Používá ho BorgBackup.
  • XChaCha20-Poly1305 -- rozšířená varianta s delším nonce, odolnější proti kolizím při velkém počtu šifrovaných bloků.
  • Twofish, Serpent -- finalisté soutěže AES, stále bezpečné, ale méně rozšířené.

Heslo vs. klíčový soubor

Šifrování heslem

Nejběžnější přístup. Heslo je převedeno na šifrovací klíč pomocí KDF (Key Derivation Function):

  • Argon2id -- moderní KDF odolný proti GPU a ASIC útokům. Doporučený standard.
  • scrypt -- paměťově náročná KDF, odolná proti paralelním útokům.
  • PBKDF2 -- starší KDF, méně odolná, ale stále přijatelná s dostatečným počtem iterací (100 000+).

Požadavky na heslo: minimálně 16 znaků, kombinace velkých/malých písmen, číslic a speciálních znaků. Ideálně passphrase (např. "Correct Horse Battery Staple" -- ale unikátní a nezveřejněný).

Šifrování klíčovým souborem (key file)

Místo hesla se používá soubor obsahující náhodný šifrovací klíč. Výhody:

  • Vyšší entropie (256 bitů náhodných dat vs. typické heslo s 40-80 bity entropie)
  • Odolnost proti brute-force útokům
  • Vhodné pro automatizované zálohy (skript může načíst klíč ze souboru)

Nevýhoda: klíčový soubor musí být bezpečně uložen. Ztráta klíčového souboru = trvalá ztráta přístupu k zálohám.

# Generování náhodného klíčového souboru
openssl rand -out /etc/backup/encryption.key 256
chmod 600 /etc/backup/encryption.key

# Použití s Restic
restic -r /backup/repo --password-file /etc/backup/restic-password init

# Použití s BorgBackup
export BORG_PASSPHRASE="moje-silne-heslo-pro-zalohy"
borg init --encryption=repokey-blake2 /backup/borg-repo

Správa šifrovacích klíčů

Správa klíčů je nejkritičtější aspekt šifrování záloh. Špatná správa klíčů znehodnotí i nejsilnější šifru.

Zásady správy klíčů

  1. Uložte klíč na více místech -- správce hesel + tištěná kopie v trezoru + kopie u důvěryhodné osoby
  2. Oddělte klíč od zálohy -- klíč nesmí být uložen na stejném médiu jako záloha
  3. Pravidelně ověřujte přístup ke klíči -- ujistěte se, že klíč je stále dostupný a funkční
  4. Dokumentujte, kdo má přístup ke klíčům a kde jsou uloženy
  5. Zvažte key escrow -- u firemních záloh by mělo být zajištěno, že klíč je dostupný i při odchodu zaměstnance
Ztráta klíče = ztráta dat Pokud ztratíte šifrovací klíč nebo heslo, vaše zálohy jsou trvale nedostupné. Neexistuje žádný "reset" nebo "obnovení hesla". Proto je správa klíčů důležitější než samotné šifrování. Vždy mějte alespoň dvě nezávislé kopie klíče na různých místech.

Nástroje pro správu klíčů

  • Správce hesel (Bitwarden, 1Password, KeePassXC) -- pro ukládání hesel a klíčových souborů
  • HashiCorp Vault -- enterprise řešení pro centralizovanou správu secrets a šifrovacích klíčů
  • AWS KMS / Azure Key Vault / Google Cloud KMS -- cloudové HSM pro správu klíčů
  • Hardware Security Module (HSM) -- fyzické zařízení pro bezpečné generování a ukládání klíčů

Software s vestavěným šifrováním

Restic

Open-source zálohovací nástroj s povinným šifrováním (nelze ho vypnout). Každý repozitář je šifrován pomocí AES-256-CTR s Poly1305-AES autentizací:

# Inicializace šifrovaného repozitáře
restic -r /backup/repo init
# Zadáte heslo, které se použije pro derivaci šifrovacího klíče

# Záloha (data jsou automaticky šifrována před zápisem)
restic -r /backup/repo backup /home /etc

# Záloha do cloudu (stejné šifrování)
restic -r s3:s3.amazonaws.com/muj-bucket backup /home

# Obnova
restic -r /backup/repo restore latest --target /tmp/restore

# Změna hesla (re-enkrypce klíče, ne celých dat)
restic -r /backup/repo key passwd

Restic ukládá hlavní šifrovací klíč (master key) zašifrovaný vaším heslem. Při změně hesla se re-šifruje pouze klíč, ne celý repozitář. To umožňuje rychlou změnu hesla i pro terabytové zálohy.

BorgBackup

Borg nabízí několik režimů šifrování:

  • repokey -- AES-256-CTR + HMAC-SHA256, klíč uložen v repozitáři (chráněn heslem)
  • keyfile -- stejné jako repokey, ale klíč uložen lokálně (~/.config/borg/keys/)
  • repokey-blake2 -- AES-256-CTR + BLAKE2b (rychlejší autentizace)
  • authenticated -- pouze autentizace, bez šifrování (pro důvěryhodné úložiště)
  • none -- bez šifrování a autentizace (nedoporučeno)
# Inicializace s šifrováním (doporučený režim)
borg init --encryption=repokey-blake2 /backup/borg-repo

# Export klíče pro zálohu (DŮLEŽITÉ!)
borg key export /backup/borg-repo /safe/location/borg-key-backup

# Záloha s kompresí a šifrováním
borg create --compression zstd,6 /backup/borg-repo::backup-{now} /home /etc

# Informace o repozitáři (včetně šifrování)
borg info /backup/borg-repo

Duplicati

Duplicati je open-source zálohovací řešení s grafickým rozhraním, které podporuje šifrování AES-256 nebo GPG. Ideální pro méně technické uživatele:

  • Šifrování AES-256-CBC ve výchozím nastavení
  • Volitelné GPG šifrování pro kompatibilitu s PGP ekosystémem
  • Podpora mnoha cloudových úložišť (S3, B2, Azure, Google Drive, OneDrive aj.)
  • Webové rozhraní pro konfiguraci

Srovnání šifrování v zálohovacích nástrojích

Software Šifra Povinné KDF Zero-knowledge
Restic AES-256-CTR + Poly1305 Ano scrypt Ano
BorgBackup AES-256-CTR + BLAKE2b Volitelné Argon2 Ano
Duplicati AES-256-CBC / GPG Volitelné PBKDF2 Ano
Veeam AES-256 Volitelné Proprietární Ne (server-managed)
Kopia AES-256-GCM / ChaCha20 Ano scrypt Ano
rclone crypt XSalsa20 + Poly1305 Volitelné scrypt Ano

Výkonnostní dopad šifrování

Šifrování záloh má výkonnostní dopad, ale na moderním hardwaru je minimální díky hardwarové akceleraci AES (instrukce AES-NI):

  • S AES-NI (všechny moderní x86 procesory od ~2011): dopad na propustnost typicky 5-15 %. AES-256 dosahuje rychlostí přes 3 GB/s na jednom jádře.
  • Bez AES-NI (starší procesory, některé ARM): dopad 30-50 %. V tomto případě je ChaCha20 výrazně rychlejší než AES.
  • CPU zátěž: šifrování přidává CPU overhead, ale u záloh je typickým bottleneckem I/O (disk nebo síť), ne CPU.
# Ověření podpory AES-NI na vašem procesoru
grep -o aes /proc/cpuinfo | head -1
# Výstup "aes" = AES-NI je podporováno

# Benchmark šifrování pomocí OpenSSL
openssl speed -evp aes-256-gcm
# Typický výstup (moderní CPU):
# aes-256-gcm: 2847.12 MB/s (16384 byte bloky)
Šifrování vs. komprese Šifrovaná data nelze efektivně komprimovat (šifrovaná data vypadají jako náhodný šum). Proto zálohovací software jako Restic a BorgBackup nejdříve data komprimuje a pak šifruje. Pokud používáte vlastní šifrovací vrstvu (např. rclone crypt nad nekomprimovanými daty), můžete přijít o úsporu kompresí.

Zero-knowledge poskytovatelé

Zero-knowledge (nebo zero-access) znamená, že poskytovatel cloudového úložiště nemá žádnou možnost přistupovat k vašim datům. Toho se dosahuje výhradně client-side šifrováním, kde klíč nikdy neopustí vaše zařízení.

Jak poznat zero-knowledge řešení

  • Šifrovací klíč je odvozen z vašeho hesla na vašem zařízení
  • Na server se odesílají pouze šifrovaná data
  • Poskytovatel nemá funkci "reset hesla" (protože klíč nezná)
  • Pokud ztratíte heslo, poskytovatel vám nemůže pomoci

Zero-knowledge zálohovací služby

  • Restic + jakékoli úložiště -- Restic šifruje data na klientu, úložiště (S3, B2, SFTP) vidí jen šifrované bloby
  • BorgBackup -- stejný princip jako Restic
  • Kopia -- moderní zálohovací nástroj s povinným šifrováním
  • Arq Backup -- komerční zálohovací software pro macOS/Windows s client-side šifrováním
  • SpiderOak One -- cloudová záloha s zero-knowledge architekturou

Doporučené postupy

  1. Vždy šifrujte zálohy, zejména cloudové a na přenosných médiích
  2. Používejte client-side encryption -- server-side encryption nestačí
  3. Volte AES-256-GCM nebo ChaCha20-Poly1305 jako šifrovací algoritmus
  4. Používejte silná hesla (16+ znaků) nebo klíčové soubory
  5. Bezpečně uložte klíče na více místech -- správce hesel + tištěná kopie v trezoru
  6. Pravidelně testujte obnovu ze šifrovaných záloh
  7. Ověřte AES-NI podporu na vašem procesoru pro optimální výkon
  8. Komprimujte před šifrováním (většina zálohovacích nástrojů to dělá automaticky)
  9. Dokumentujte šifrovací postup -- v krizi nemáte čas přemýšlet, kde je klíč
  10. Nikdy nepoužívejte vlastní šifru -- používejte ověřené knihovny a nástroje

Závěr

Šifrování záloh je nezbytné bezpečnostní opatření, které chrání vaše data při ztrátě média, kompromitaci cloudového účtu nebo v případě bezpečnostního incidentu. Díky moderním zálohovacím nástrojům jako Restic, BorgBackup nebo Kopia je šifrování transparentní -- data jsou automaticky šifrována před uložením s minimálním výkonnostním dopadem.

Nejdůležitější je správa šifrovacích klíčů. Zálohujte klíče na více nezávislých místech, pravidelně ověřujte jejich dostupnost a dokumentujte postup obnovy. Ztráta klíče je horší než ztráta záloh -- protože zálohy máte, ale nedostanete se k nim.