Bagaimana saya bisa mengubah hash-spec dan iter-waktu dari yang sudah ada perangkat LUKS dm-crypt?
Jelas saya bisa meneruskan opsi jika saya membuat perangkat baru , misalnya sesuatu seperti ini:
sudo cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 --iter-time 2100 --hash sha512 /dev/loop0
Tetapi jika perangkat sudah ada, bagaimana saya bisa mengubah misalnya sha256
untuk sha1
atau mengubah waktu iterasi tanpa "menghancurkan" perangkat. (Jelas Anda harus mengetik ulang kata sandi Anda karena hash baru akan dihasilkan.)
hash-spec
atauiter-time
pengaturan yang lebih spesifik.cryptsetup-reencrypt
. Daftar bullet terdengar seperti apa yang Anda coba lakukan kepada saya: "ubah parameter enkripsi sewenang-wenang".Jawaban:
Setiap slot kunci memiliki waktu iterasi sendiri. Jika Anda ingin mengubah jumlah iterasi, buat slot baru dengan frasa sandi yang sama dan nomor iterasi baru, kemudian lepaskan slot lama.
Saya pikir algoritma hash tidak dapat dikonfigurasi per slot, itu selalu PBKDF2 dengan fungsi hash yang dipilih secara global.
Versi terbaru cryptsetup termasuk alat
cryptsetup-reencrypt
, yang dapat mengubah kunci enkripsi utama dan semua parameter, tetapi itu dianggap eksperimental (dan itu memasukkan kembali seluruh perangkat meskipun ini tidak perlu hanya mengubah fungsi derivasi kunci berbasis kata sandi) .sumber
Jika semua yang ingin Anda ubah adalah hash, tidak perlu untuk mengenkripsi ulang. Anda masih harus membuat header LUKS baru. Sandi yang sama, kunci master yang sama, offset yang sama, hash yang berbeda.
Anda bisa mencobanya sendiri. Pertama-tama kita mengatur perangkat LUKS dengan pengaturan standar dan jumlah yang buruk:
Pada titik ini kami memiliki perangkat LUKS dengan data terenkripsi "Hello World I am LUKS". Secara khusus terlihat seperti ini:
Seperti yang Anda lihat, jumlah iterasi yang buruk, hash standar sha1.
Untuk mengalihkannya ke jumlah iterasi tinggi dan hash sha512, tanpa enkripsi ulang, kita membutuhkan header LUKS baru menggunakan kunci master yang sama, sandi yang sama, dan offset muatan yang sama.
Memperoleh kunci master: (Peringatan: contoh ini membocorkan kunci master Anda ke file yang dapat dibaca dunia, ke daftar proses, serta ke riwayat shell Anda. Agar aman, lakukan dalam RAM / pada CD Langsung / apa pun)
Buat tajuk LUKS baru menggunakan kunci ini: (kegagalan dimungkinkan - buat cadangan tajuk LUKS lama Anda dulu!)
Dan inilah tampilannya:
Sekarang kita memilikinya. Cipher yang sama, offset [jika berbeda Anda harus menentukannya bersama dengan luksFormat], hash baru dan jumlah iterasi yang tepat.
Tetapi apakah isinya masih ada?
Ini dia.
sumber
cryptsetup-reencrypt --keep-key --hash sha512
melakukan hal yang sama.