Belajar Borg Backup - Enkripsi & Key Management
Episode 7 of 23

Belajar Borg Backup - Enkripsi & Key Management

Enkripsi adalah garis pertahanan terakhir backup: tanpa key atau passphrase yang benar, repository tidak terbaca. Episode ini membedah mode repokey, keyfile, dan authenticated, mengajarkan export dan import key, serta strategi menyimpan passphrase dan keyfile agar kalian tidak mengunci data sendiri.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Di episode 3 kalian memilih mode enkripsi saat borg init. Sekarang kita bedah enkripsi itu secara utuh: apa yang sebenarnya diamankan, di mana key disimpan, dan bagaimana mengelola key agar tidak kehilangan akses. Ingat prinsip episode 2: tanpa key, repository tidak terbaca — bahkan oleh kalian sendiri. Bagian ini adalah yang paling menentukan nasib data kalian.

Mode Enkripsi dalam Satu Pandangan

Repokey: Key di Dalam Repository

Pada mode repokey, key enkripsi disimpan di dalam repository dan dilindungi passphrase. Keuntungannya praktis: tidak ada file terpisah yang harus dijaga. Risikonya: siapa pun yang mencuri repository dan berhasil menebak passphrase bisa membaca data. Passphrase yang kuat dan unik menjadi harga mati.

Keyfile: Key di File Terpisah

Pada mode keyfile, key disimpan di file terpisah (biasanya ~/.config/borg/keys/). Pencuri repository tidak membawa key — lapisan keamanan ekstra. Konsekuensinya jelas: file key wajib dibackup. Kehilangan keyfile = kehilangan akses ke semua backup, sekali pun passphrase masih diingat.

Authenticated: Integritas Tanpa Enkripsi

Mode authenticated tidak mengenkripsi data (membuatnya terbaca di server), tetapi tetap memverifikasi integritas. Cocok jika penyimpanan sudah dienkripsi di lapisan bawah (ZFS encryption, LUKS, encrypted cloud volume) dan kalian ingin menghindari overhead CPU. Sebaliknya, mode none tidak memberikan keamanan apa pun — hanya untuk eksperimen.

Pilihannya Diringkas

Ringkasan mode enkripsi
+----------------+-----------+-----------+-----------------------+
| Mode           | Enkripsi  | Integritas| Key disimpan di       |
+----------------+-----------+-----------+-----------------------+
| repokey-blake2 | ya        | ya        | repository (passphrase)|
| keyfile-blake2 | ya        | ya        | file terpisah         |
| authenticated  | tidak     | ya        | -                     |
| none           | tidak     | tidak     | -                     |
+----------------+-----------+-----------+-----------------------+

Warning

Mode enkripsi ditetapkan saat borg init dan tidak bisa diubah tanpa membuat repository baru. Keputusan paling aman untuk produksi: repokey-blake2 dengan passphrase kuat, atau keyfile-blake2 dengan file key yang dibackup di tempat terpisah.

Manajemen Key: Export, Import, dan Password

Export Key

Borg menyediakan borg key export untuk membuat salinan key:

Export key repository
borg key export /backup/borg /root/borg-key-backup.txt
Export key untuk dicetak
borg key export --paper /backup/borg

--paper menghasilkan format base64 yang bisa dicetak dan disimpan di lokasi fisik terpisah. Simpan hasil export di tempat yang berbeda dari repository — prinsip yang sama dengan 3-2-1 untuk data.

Import Key

Kalau key hilang dari tempat semula, import dari cadangan:

Import key
borg key import /backup/borg /root/borg-key-backup.txt

Ganti Passphrase

Passphrase bisa diganti kapan saja tanpa menyentuh data (key dienkripsi ulang):

Ganti passphrase
borg key change-passphrase /backup/borg

Menyimpan Passphrase dan Keyfile dengan Benar

Aturan Dasarnya

  • Jangan simpan passphrase di repositori git, di script, atau di dotfiles yang ikut ter-backup.
  • Gunakan password manager (KeePassXC, bitwarden, pass) atau secret management (Vault, sops) untuk menyimpan passphrase.
  • Untuk mode keyfile: backup file key di media terpisah, plus salinan fisik (paper backup) untuk kasus ekstrem.

BORG_PASSCOMMAND untuk Otomasi

Sejak episode 3 kita memakai BORG_PASSCOMMAND. Ini juga pintu masuk ke secret management:

Passphrase dari password manager
export BORG_PASSCOMMAND='pass show backup/borg'
Passphrase dari file mode 600
export BORG_PASSCOMMAND='cat /root/.borg-passphrase'

Dengan pola ini, passphrase tidak pernah muncul di history, di ps, atau di log — hanya dibaca saat dibutuhkan.

Warning

Tidak ada "lupa passphrase? bisa di-reset" di Borg. Tidak ada backdoor. Satu-satunya jalan jika passphrase hilang adalah restore dari backup key (borg key export) — itulah kenapa ekspor key harus menjadi bagian dari ritual setup, bukan sesuatu yang "nanti saja".

Pitfall Umum

  • Keyfile ikut ter-backup ke repository yang sama: menaruh keyfile di direktori yang dibackup repo yang sama — melindungi apa? Pisahkan.
  • Passphrase pendek dan mudah ditebak: key repokey hanya sekuat passphrase-nya. Pakai 20+ karakter acak.
  • Test akses setelah setup: setelah menyimpan key di tempat baru, langsung uji borg list dari environment bersih untuk memastikan akses bekerja.
  • Membagikan key antar host: untuk multi-host, setiap host sebaiknya punya repo dan key sendiri (episode 14).

Penutup

  • Repokey praktis (key di repo), keyfile lebih aman (key terpisah), authenticated tanpa enkripsi.
  • Ekspor key (borg key export, termasuk --paper) adalah asuransi wajib.
  • borg key import dan borg key change-passphrase untuk recovery dan rotasi.
  • Simpan passphrase di password manager; akses lewat BORG_PASSCOMMAND.
  • Tanpa key/passphrase, repository tidak terbaca — kelola keduanya seperti menangani aset.

Di episode 8 kita mengelola riwayat: prune & compact (retention) — menghapus archive lama secara terukur dengan borg prune, mengembalikan ruang lewat borg compact, menyusun kebijakan retention sesuai RPO/RTO, dan memakai --keep-tag untuk archive yang ditandai.

Belajar Borg Backup - Enkripsi & Key Management | Belajar Borg Backup