Panduan Pengguna Enkripsi Disk
Apa itu enkripsi perangkat blok?
Enkripsi perangkat blok mengenkripsi/mendekripsi data secara transparan saat data ditulis/dibaca dari perangkat blok, sehingga perangkat blok yang mendasarinya hanya melihat data yang terenkripsi.
Untuk menghubungkan perangkat blok terenkripsi, administrator sistem (atau pengguna, tergantung pada konteks) harus memasukkan frasa sandi untuk mengaktifkan kunci dekripsi.
Enkripsi memberikan keamanan tambahan di luar mekanisme keamanan sistem operasi yang sudah ada, karena enkripsi melindungi isi perangkat bahkan jika perangkat tersebut telah dipisahkan secara fisik dari sistem. Beberapa sistem mengharuskan kunci enkripsi sama dengan kunci dekripsi, sementara sistem lain mengharuskan kunci enkripsi yang spesifik dan kunci dekripsi yang spesifik untuk mengaktifkan proses dekripsi.
Mengenkripsi perangkat blok menggunakan dm-crypt/LUKS
LUKS (Linux Unified Key Setup) adalah spesifikasi untuk enkripsi perangkat blok. Spesifikasi ini menetapkan format data di disk, serta kebijakan pengelolaan frasa sandi/kunci.
LUKS menggunakan subsistem pemetaan perangkat kernel melalui modul dm-crypt. Konfigurasi ini menyediakan pemetaan tingkat rendah yang menangani enkripsi dan dekripsi data perangkat. Operasi tingkat pengguna, seperti membuat dan mengakses perangkat terenkripsi, dilakukan melalui penggunaan utilitas cryptsetup.
Ringkasan tentang LUKS
-
Apa yang dilakukan LUKS:
-
LUKS mengenkripsi seluruh perangkat blok
-
LUKS sangat cocok untuk melindungi konten perangkat seluler seperti:
-
Media penyimpanan yang dapat dilepas
-
Hard disk laptop
-
-
-
Isi yang mendasari dari perangkat blok terenkripsi bersifat sembarang.
-
Hal ini membuatnya berguna untuk mengenkripsi perangkat swap.
-
Hal ini juga dapat berguna untuk beberapa basis data yang menggunakan perangkat blok berformat khusus untuk penyimpanan data.
-
-
LUKS menggunakan subsistem pemetaan perangkat kernel yang sudah ada.
-
Ini adalah subsistem yang sama yang digunakan oleh LVM, jadi sudah teruji dengan baik.
-
-
LUKS menyediakan penguatan frasa sandi.
-
Ini melindungi dari serangan kamus.
-
-
Perangkat LUKS memiliki beberapa slot kunci.
-
Hal ini memungkinkan pengguna untuk menambahkan kunci cadangan/frasa sandi.
-
-
-
Apa yang tidak dilakukan oleh LUKS:
-
LUKS tidak cocok untuk aplikasi yang memerlukan banyak pengguna (lebih dari delapan) untuk memiliki kunci akses yang berbeda ke perangkat yang sama.
-
LUKS tidak cocok untuk aplikasi yang memerlukan enkripsi tingkat file.
-
Bagaimana cara mengakses perangkat yang dienkripsi setelah instalasi? (Proses Booting Sistem)
Saat sistem dimulai, Anda akan diminta untuk memasukkan frasa sandi. Setelah frasa sandi yang benar dimasukkan, sistem akan melanjutkan proses booting secara normal. Jika Anda menggunakan frasa sandi yang berbeda untuk beberapa perangkat terenkripsi, Anda mungkin perlu memasukkan lebih dari satu frasa sandi selama proses booting.
| Pertimbangkan untuk menggunakan frasa sandi yang sama untuk semua perangkat blok terenkripsi dalam sistem yang sama. Hal ini akan mempermudah proses booting sistem dan Anda tidak perlu mengingat banyak frasa sandi. Pastikan Anda memilih frasa sandi yang kuat! |
Memilih Kata Sandi yang Baik
Meskipun dm-crypt/LUKS mendukung baik kunci (keys) maupun frasa sandi (passphrases), installer Anaconda hanya mendukung penggunaan frasa sandi untuk membuat dan mengakses perangkat blok terenkripsi selama proses instalasi.
LUKS memang menyediakan penguatan frasa sandi, tetapi tetap disarankan untuk memilih frasa sandi yang baik (artinya “sulit ditebak”). Perhatikan penggunaan istilah “frasa sandi”, bukan “kata sandi”. Hal ini disengaja. Memberikan frasa yang terdiri dari beberapa kata untuk meningkatkan keamanan data Anda sangat penting.
Membuat Perangkat Blok Terenkripsi di Anaconda
Anda dapat membuat perangkat terenkripsi selama proses instalasi sistem. Hal ini memungkinkan Anda untuk dengan mudah mengonfigurasi sistem dengan partisi terenkripsi.
To enable block device encryption, check the "Encrypt System" checkbox when selecting automatic partitioning or the "Encrypt" checkbox when creating an individual partition, software RAID array, or logical volume. After you finish partitioning, you will be prompted for an encryption passphrase. This passphrase will be required to access the encrypted devices. If you have pre-existing LUKS devices and provided correct passphrases for them earlier in the install process the passphrase entry dialog will also contain a checkbox. Checking this checkbox indicates that you would like the new passphrase to be added to an available slot in each of the pre-existing encrypted block devices.
| Mencentang kotak centang “Encrypt System” pada layar “Automatic Partitioning” dan kemudian memilih “Create custom layout” tidak akan menyebabkan perangkat blok apa pun dienkripsi secara otomatis. |
Anda dapat menggunakan kickstart untuk menetapkan frasa sandi terpisah untuk setiap perangkat blok terenkripsi baru.
|
Jenis-jenis perangkat blok apa saja yang dapat dienkripsi?
Sebagian besar jenis perangkat blok dapat dienkripsi menggunakan LUKS. Dari anaconda, Anda dapat mengenkripsi partisi, volume fisik LVM, volume logis LVM, dan array RAID perangkat lunak.
Batasan Dukungan Enkripsi Perangkat Blok di Anaconda
-
Mengisi Perangkat dengan Data Acak Sebelum Mengenkripsi
Mengisi perangkat dengan data acak sebelum mengenkripsi dapat meningkatkan kekuatan enkripsi. Namun, proses mengisi perangkat dengan data acak dapat memakan waktu yang sangat lama. Karena persyaratan waktu tersebut, Anaconda tidak menyediakan opsi ini. Langkah ini dapat dilakukan secara manual menggunakan skrip
kickstart %pre. Petunjuk dapat ditemukan di sini. -
Menggunakan Kunci yang Terdiri dari Data yang Dihasilkan Secara Acak untuk Mengakses Perangkat Terenkripsi
Selain frasa sandi, perangkat LUKS dapat diakses menggunakan kunci yang terdiri dari data yang dihasilkan secara acak. Pengaturan satu atau lebih kunci untuk mengakses perangkat terenkripsi dapat dilakukan pada sistem yang terinstal atau melalui penggunaan skrip
kickstart %post. Petunjuk dapat ditemukan di sini.
Membuat Perangkat Blok Terenkripsi pada Sistem yang Telah Diinstal Setelah Instalasi
Perangkat blok terenkripsi dapat dibuat dan dikonfigurasi setelah instalasi.
Buat perangkat blok
Buat perangkat blok yang ingin Anda enkripsi menggunakan parted, pvcreate, lvcreate, dan mdadm.
Opsional: Isi perangkat dengan data acak
Mengisi <perangkat> (misalnya: /dev/sda3) dengan data acak sebelum mengenkripsinya dapat secara signifikan meningkatkan kekuatan enkripsi. Kelemahannya adalah proses ini dapat memakan waktu yang sangat lama.
| Perintah di bawah ini akan menghapus semua data yang ada di perangkat. |
-
Cara terbaik, yang menghasilkan data acak berkualitas tinggi tetapi memakan waktu lama (beberapa menit per gigabyte pada kebanyakan sistem)
dd if=/dev/urandom of=<device>
-
Cara tercepat, yang menghasilkan data acak dengan kualitas lebih rendah
badblocks -c 10240 -s -w -t random -v <device>
Format perangkat sebagai perangkat terenkripsi dm-crypt/LUKS
| Perintah di bawah ini akan menghapus semua data yang ada di perangkat. |
cryptsetup luksFormat <device>
Untuk informasi lebih lanjut, baca halaman manual cryptsetup(8).
|
Setelah memasukkan frasa sandi dua kali, perangkat akan diformat untuk digunakan. Untuk memverifikasi, gunakan perintah berikut:
cryptsetup isLuks <device> && echo Success
Untuk melihat ringkasan informasi enkripsi untuk perangkat, gunakan perintah berikut:
cryptsetup luksDump <device>
Buat pemetaan untuk memungkinkan akses ke konten yang telah didekripsi pada perangkat
Untuk mengakses konten yang telah didekripsi pada perangkat, perlu dibuat pemetaan menggunakan modul kernel device-mapper.
Memilih nama yang bermakna untuk pemetaan ini sangat berguna. LUKS menyediakan UUID (Universally Unique Identifier) untuk setiap perangkat. Berbeda dengan nama perangkat (misalnya: /dev/sda3), UUID ini dijamin tetap konstan selama header LUKS tetap utuh. Untuk menemukan UUID perangkat LUKS, jalankan perintah berikut:
cryptsetup luksUUID <device>
Contoh nama pemetaan yang andal, informatif, dan unik adalah luks-<uuid>, di mana <uuid> diganti dengan LUKS UUID perangkat (misalnya: luks-50ec957a-5b5a-47ee-85e6-f8085bbc97a8). Konvensi penamaan ini mungkin terlihat rumit, tetapi tidak perlu sering mengetiknya.
cryptsetup luksOpen <device> <name>
Sekarang seharusnya ada node perangkat, /dev/mapper/<name>, yang mewakili perangkat yang telah didekripsi. Perangkat blok ini dapat dibaca dan ditulis seperti perangkat blok tidak terenkripsi lainnya.
Untuk melihat informasi tentang perangkat yang telah dipetakan, gunakan perintah berikut:
dmsetup info <name>
Untuk informasi lebih lanjut, baca halaman manual dmsetup(8).
|
Buat sistem berkas pada perangkat yang telah dipetakan, atau lanjutkan untuk membangun struktur penyimpanan yang kompleks menggunakan perangkat yang telah dipetakan
Gunakan node perangkat yang dipetakan (/dev/mapper/<name>) seperti perangkat blok lainnya. Untuk membuat sistem berkas ext2 pada perangkat yang dipetakan, gunakan perintah berikut:
mke2fs /dev/mapper/<name>
Untuk menghubungkan sistem berkas ini ke /mnt/test, gunakan perintah berikut:
Direktori /mnt/test harus sudah ada sebelum menjalankan perintah ini.
|
mount /dev/mapper/<name> /mnt/test
Tambahkan informasi pemetaan ke /etc/crypttab
Agar sistem dapat membuat pemetaan untuk perangkat, harus ada entri di berkas /etc/crypttab. Jika berkas tersebut tidak ada, buatlah berkas tersebut dan ubah pemilik dan grupnya menjadi root (root:root) serta ubah mode menjadi 0744. Tambahkan baris ke berkas dengan format berikut:
<name> <device> none
Kolom <device> harus ditulis dalam format “UUID=<luks_uuid>”, di mana <luks_uuid> adalah UUID LUKS yang diberikan oleh perintah cryptsetup luksUUID <device>. Hal ini memastikan perangkat yang benar akan teridentifikasi dan digunakan meskipun node perangkat (misalnya: /dev/sda5) berubah.
Untuk detail mengenai format berkas /etc/crypttab, bacalah halaman manual crypttab(5).
|
Tambahkan entri ke /etc/fstab
Tambahkan entri ke berkas /etc/fstab. Hal ini hanya diperlukan jika Anda ingin membuat hubungan permanen antara perangkat dan titik mount. Gunakan perangkat yang telah didekripsi, /dev/mapper/<name>, dalam berkas /etc/fstab.
Dalam banyak kasus, disarankan untuk mencantumkan perangkat di /etc/fstab menggunakan UUID atau label sistem berkas. Tujuan utama dari hal ini adalah untuk menyediakan identifikasi yang tetap dalam kasus di mana nama perangkat (misalnya: /dev/sda4) berubah. Nama perangkat LUKS dalam bentuk /dev/mapper/luks-<luks_uuid> didasarkan hanya pada UUID LUKS perangkat, dan oleh karena itu dijamin tetap konstan. Fakta ini membuatnya cocok untuk digunakan dalam /etc/fstab.
| Untuk detail mengenai format berkas /etc/fstab, baca halaman manual fstab(5). |
Tugas-tugas Umum Setelah Instalasi
Cadangkan header LUKS
Jika sektor yang mengandung header LUKS rusak - akibat kesalahan pengguna atau kegagalan perangkat keras - semua data dalam perangkat blok terenkripsi akan hilang. Membackup header dapat membantu memulihkan data dalam kasus seperti itu.
Untuk membackup header LUKS, gunakan perintah berikut:
cryptsetup luksHeaderBackup --header-backup-file <file> <device>
Untuk memulihkan header LUKS, gunakan perintah berikut:
| Perintah di bawah ini dapat menghapus data jika header yang salah diterapkan atau perangkat yang salah dipilih! Pastikan untuk membackup header dari perangkat yang akan dipulihkan terlebih dahulu. |
cryptsetup luksHeaderRestore --header-backup-file <file> <device>
Tetapkan kunci yang dihasilkan secara acak sebagai metode tambahan untuk mengakses perangkat blok terenkripsi
-
Buat kunci + Ini akan menghasilkan kunci 256-bit dalam berkas
$HOME/keyfile.dd if=/dev/urandom of=$HOME/keyfile bs=32 count=1 chmod 600 $HOME/keyfile
-
Tambahkan kunci ke slot kunci yang tersedia pada perangkat terenkripsi
cryptsetup luksAddKey <device> ~/keyfile
-
Tambahkan frasa sandi baru ke perangkat yang sudah ada
cryptsetup luksAddKey <device>
+ Setelah diminta untuk memasukkan salah satu frasa sandi yang sudah ada untuk otentikasi, Anda akan diminta untuk memasukkan frasa sandi baru.
Want to help? Learn how to contribute to Fedora Docs ›