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.

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.
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.
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.
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.
+----------------+-----------+-----------+-----------------------+
| 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.
Borg menyediakan borg key export untuk membuat salinan key:
borg key export /backup/borg /root/borg-key-backup.txtborg 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.
Kalau key hilang dari tempat semula, import dari cadangan:
borg key import /backup/borg /root/borg-key-backup.txtPassphrase bisa diganti kapan saja tanpa menyentuh data (key dienkripsi ulang):
borg key change-passphrase /backup/borgSejak episode 3 kita memakai BORG_PASSCOMMAND. Ini juga pintu masuk ke secret management:
export BORG_PASSCOMMAND='pass show backup/borg'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".
borg list dari environment bersih untuk memastikan akses bekerja.borg key export, termasuk --paper) adalah asuransi wajib.borg key import dan borg key change-passphrase untuk recovery dan rotasi.BORG_PASSCOMMAND.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.