Seberapa tangguh volume terenkripsi VeraCrypt dan LUKS terhadap korupsi data?

19

Sebagian dari pertanyaan itu sudah dijawab, tetapi itu masih bukan yang tepatnya saya cari. Lihat untuk Perbarui 1 ke bawah

Saya berencana untuk mengenkripsi beberapa sistem file dengan VeraCrypt dan LUKS, tetapi ketakutan saya adalah bahwa jika satu masalah terjadi, saya tidak akan bisa me-mount partisi lagi sehingga kehilangan semua data yang tersimpan di dalamnya. (karena sektor / blok yang rusak, kegagalan daya selama operasi penulisan, kesalahan sistem file, dll)

Juga, VeraCrypt mungkin telah menggunakan alat perbaikan TrueCrypt, tetapi saya tidak mengandalkannya dan mencari lebih banyak tentang kasus nyata.

Saya juga tahu tentang RAID dan cadangan / kubah, tapi bukan itu yang saya cari.

Jadi pertanyaannya adalah: Bagaimana resilien partisi terenkripsi sendiri dengan VeraCrypt dan LUKS?

Pembaruan 1 :

Pertanyaan saya lebih tentang ketahanan partisi terenkripsi dan datanya, daripada tentang menyimpan kunci master, metadata atau header. Masalahnya mirip dengan arsip 7zip padat: jika satu bit rusak di tengah, maka Anda kehilangan seluruh arsip.

Apakah partisi terenkripsi akan menjadi sama rentan? (tidak termasuk kunci utama, metadata, dan tajuk)

PS: Maaf kalau saya tidak langsung menjawab, saya sedang bekerja dan berkeliling dunia - mereka membuat posting ini terkait - dan saya sering menghadapi masalah waktu. Tapi, saya pasti akan menjawab kembali pasti.

X.LINK
sumber

Jawaban:

13

Dalam praktiknya, hampir sama tangguh dengan enkripsi seperti tanpa itu, selama Anda membuat cadangan kunci master dan metadata dengan benar.

Selain metadata, korupsi hanya akan mempengaruhi blok bit yang rusak, dalam kebanyakan kasus hanya 16 byte.

Untuk sebagian besar situasi korupsi data, dengan kunci dan alat (seperti kata sandi dan Veracrypt / LUKS), Anda memiliki akses yang sama dengan disk yang tidak dienkripsi, sama seperti yang Anda lakukan secara normal dengan penggunaan disk terenkripsi setiap hari. Enkripsi hanya akan menambah langkah tambahan (buka partisi terenkripsi) dari biasanya. Jadi dalam hal ini, itu perilaku seperti data yang tidak terenkripsi.

Dengan Veracrypt atau Luks, Anda harus menyimpan kunci utama dalam disk, yang dienkripsi dengan kata sandi Anda. Merusak sektor ini akan menyebabkan data permanen hilang. Ini dapat dengan mudah dipecahkan dengan cadangan kunci utama (ukuran beberapa kilobyte), sesuatu yang mudah dilakukan dengan kedua perangkat lunak, dan sangat disarankan untuk semua orang.

Detail tentang data bukan meta

Baik Veracrypt dan Luks menggunakan XTS hari ini. Dalam mode ini, itu dihitung kunci untuk setiap blok. Dalam penyederhanaan, untuk mengenkripsi blok iAnda menggunakan kunci yang dihasilkan dengan Kunci Master dan nomor blok. Jadi, enkripsi satu blok tidak tergantung pada yang lain. Jika Anda merusak beberapa informasi, itu akan dibatasi pada blok itu.

Dalam XTS, itu memecah blok di sub-blok (biasanya 16 byte) dan membuat kunci, dan mengenkripsi sub-blok dengan itu. Itu berarti bahwa jika kita mengubahnya sedikit, hanya 16 byte ini yang akan terpengaruh.

Sebagai tes, mengubah satu bit dalam volume Luks, itu mengubah 16 byte dari file asli menjadi omong kosong, tetapi yang lain 496 masih tidak berubah. Dalam file 7zip, ia menggunakan metode stream, bahwa semua byte dirantai, sehingga satu byte perubahan akan mempengaruhi semua yang tersisa - ini tidak terjadi di sini.

Beberapa menganggap ini masalah, karena Anda bisa tahu dengan presisi 16 byte kapan dan di mana Anda mengubah teks biasa, hanya membandingkan data yang dienkripsi.

Informasi lebih menarik tentang ini dapat ditemukan di tautan ini:

/crypto/6185/what-is-a-tweakable-block-cipher

/security/39306/how-secure-is-ubuntus-default-full-disk-encryption

https://en.wikipedia.org/wiki/Disk_encryption_theory

Detail tentang Master Key

LUKS

LUKS memiliki beberapa sektor di awal partisi (atau disk) dengan metadata, menyimpan metode enkripsi, parameter lain, dan 8 slot kunci. Untuk mengenkripsi dan mendekripsi disk, ia menggunakan Kunci Master , angka acak besar yang dihasilkan saat membuat wadah LUKS. Untuk menyimpannya, ia mengenkripsi Master Key dengan kata sandi Anda, dengan mengulangi fungsi hash kriptografis berkali-kali di atas kata sandi dan menghasilkan kunci khusus untuk slot itu. Anda dapat memiliki 8 kata sandi yang berbeda untuk disk yang sama, masing-masing mengenkripsi kunci utama dengan kata sandi yang berbeda di dalam slot. Ketika Anda mengubah kata sandi, itu sederhana seperti mengenkripsi Kunci Utama, dan tidak mengubah semua partisi.

Jadi, ketika slot dan metadata ini rusak, Anda tidak dapat memulihkan kunci master yang benar-benar digunakan untuk mendekripsi, kehilangan semua data pada disk. Ini adalah cara mudah untuk menghancurkan semua data Anda dengan cepat. Tetapi jika Anda memiliki cadangan Volume Header, cukup mudah untuk memulihkannya.

Di bawah ini adalah salinan LUKS FAQ tentang cadangan yang diekstrak dari https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions#6-backup-and-data-recovery

6.2 Bagaimana cara membuat cadangan header LUKS?

Meskipun Anda bisa menyalin jumlah byte yang sesuai dari awal partisi LUKS, cara terbaik adalah dengan menggunakan opsi perintah "luksHeaderBackup" dari cryptsetup. Ini juga melindungi dari kesalahan ketika parameter non-standar telah digunakan dalam pembuatan partisi LUKS. Contoh:

cryptsetup luksHeaderBackup --header-backup-file <file> <device>

Untuk mengembalikan, gunakan perintah terbalik, yaitu

cryptsetup luksHeaderRestore --header-backup-file <file> <device>

Jika Anda tidak yakin tentang tajuk yang akan dipulihkan, buat cadangan yang sekarang lebih dulu! Anda juga dapat menguji file header tanpa mengembalikannya dengan menggunakan opsi - header untuk header terpisah seperti ini:

cryptsetup --header <file> luksOpen <device> </dev/mapper/ -name>

Jika itu membuka kunci-banyak Anda, Anda baik. Jangan lupa untuk menutup perangkat lagi.

Dalam beberapa keadaan (header rusak), ini gagal. Kemudian gunakan langkah-langkah berikut:

Pertama-tama tentukan ukuran kunci utama:

cryptsetup luksDump <device>

memberikan garis bentuk

MK bits:        <bits>

dengan bit sama dengan 256 untuk default lama dan 512 untuk default baru. 256 bit sama dengan ukuran total header 1'052'672 Bytes dan 512 bit salah satu dari 2MiB. (Lihat juga Butir 6.12) Jika luksDump gagal, asumsikan 2MiB, tetapi perlu diketahui bahwa jika Anda mengembalikannya, Anda juga dapat mengembalikan 1M pertama atau lebih dari sistem file. Jangan mengubah sistem file jika Anda tidak dapat menentukan ukuran header! Dengan itu, mengembalikan cadangan header yang terlalu besar masih aman.

Kedua, buang header ke file. Ada banyak cara untuk melakukannya, saya lebih suka yang berikut ini:

head -c 1052672 <device>  >  header_backup.dmp

atau

head -c 2M <device>  >  header_backup.dmp

untuk header 2MiB. Pastikan ukuran file dump untuk memastikan. Untuk mengembalikan cadangan seperti itu, Anda dapat mencoba luksHeaderRestore atau melakukan yang lebih mendasar

cat header_backup.dmp  >  <device>

Veracrypt

Veracrypt mirip dengan LUKS. Saya tidak terbiasa dengan Truecrypt, tetapi ide umumnya berlaku.

Veracrypt hanya memiliki satu slot kunci, sehingga Anda tidak dapat memiliki lebih dari satu kata sandi secara bersamaan. Tetapi Anda dapat memiliki volume tersembunyi: itu menyimpan metadata di akhir partisi (atau disk atau file). Volume tersembunyi memiliki Kunci Master yang berbeda dan akan menggunakan ujung partisi sebagai ruang yang tumpang tindih. Gagasan bahwa Anda harus membuat cadangan adalah sama. Ini bisa dilakukan dengan Tools -> Backup Volume Headerdan Tools -> Restore Volume Header. Dengan enkripsi sistem, digunakan untuk membuat disk yang dapat di-boot dengan cadangan kunci yang memulihkan pemuat dan tombol Truecrypt jika terjadi kerusakan. Ini dilakukan sebelum mengenkripsi apa pun, dan Sejauh yang saya tahu Veracrypt terus melakukan hal yang sama.

Untuk detail lebih lanjut lihat tautan ini https://veracrypt.codeplex.com/wikipage?title=Program%20Menu

Pertimbangan Keamanan Tentang Kunci Cadangan

Misalnya, jika Anda memiliki kata sandi yang bocor, dan mengubah kata sandi volume menjadi kata sandi yang baru, kuat dan aman, seseorang dengan akses ke cadangan masih dapat mendekripsi file dengan kata sandi lama. Cadangan pada dasarnya adalah Master Key yang dienkripsi dengan kata sandi (lama). Jadi, ketika mengganti kata sandi, perlu juga membuat cadangan baru dan menghancurkan yang lama. Dan menghancurkan data secara permanen bisa sangat menipu.

Untuk setiap cadangan yang Anda miliki dengan kata sandi itu, adalah cara yang mungkin untuk mendekripsi data dengan kata sandi itu. Ini dapat digunakan di Veracrypt misalnya, menggunakan "Kata Sandi Universal" (seperti di perusahaan), mencadangkannya dan mengubah kata sandi lain. Jadi dept IT. dapat memulihkan akses ke volume itu bahkan jika seseorang kehilangan kata sandi (anggap sebagai Kata Sandi Utama, tetapi jangan bingung dengan Kunci Master dari sebelumnya).

Pikiran Final (TL; DR)

Kemungkinan merusak sektor spesifik dengan kunci master lebih kecil kemungkinannya daripada Anda mengalami kerusakan disk lengkap. Jadi, jika data ini penting, Anda harus memiliki cadangannya alih-alih hanya header volume (Master Key).

Dan korupsi data menyebar sedikit (16 byte), sehingga dapat diterima untuk sebagian besar penggunaan.

Jadi blok buruk di tengah partisi atau disk hanya akan mempengaruhi blok itu. Dan beberapa kesalahan bit dalam suatu sektor terbatas pada sektor itu, dan bahkan tidak akan mempengaruhi sepenuhnya sektor 512 byte.

Pembaruan (23/01/2017): tambahkan informasi lebih lanjut berdasarkan komentar OP.

Allan Deamon
sumber
1
Wow, itu jawaban yang sangat luas dan informatif, terima kasih banyak! Namun, pertanyaan saya lebih tentang ketahanan partisi terenkripsi dan datanya sendiri, bukan kunci utama dan metadata. Masalahnya mirip dengan arsip 7zip padat: jika satu bit rusak di tengah, maka Anda kehilangan seluruh arsip. Apakah partisi terenkripsi akan bertindak sama? (kunci master dan metadata dikecualikan)
X.LINK
4

Saya telah mengumpulkan beberapa informasi di bawah ini tentang ketahanan wadah VeraCrypt / TrueCrypt.

Dari korupsi data Veracrypt :

TC / VC menyimpan volume header di dua tempat: di awal dan di akhir volume. Yang di awal adalah yang utama dan yang di akhir adalah untuk cadangan. Mekanisme ini biasanya cukup untuk memungkinkan akses ketika bagian dari drive rusak atau rusak karena kerusakannya sering bersifat lokal. jika kerusakan terjadi pada awal dan akhir drive, maka drive hampir pasti mati.

Harap perhatikan bahwa jika drive rusak atau rusak, Anda akan kehilangan data yang sama dengan ketika Anda tidak menggunakan enkripsi. Ini berarti bahwa bahkan jika Anda dapat me-mount volume, membaca data di sana mungkin rusak. Jadi, selalu pikirkan cadangan data karena enkripsi tidak melindungi dari korupsi data.

Dari FAQ VeraCrypt :

Apa yang akan terjadi ketika bagian dari volume VeraCrypt menjadi rusak?

Dalam data terenkripsi, satu bit rusak biasanya merusak seluruh blok ciphertext di mana itu terjadi. Ukuran blok ciphertext yang digunakan oleh VeraCrypt adalah 16 byte (yaitu, 128 bit). Mode operasi yang digunakan oleh VeraCrypt memastikan bahwa jika korupsi data terjadi di dalam blok, blok yang tersisa tidak terpengaruh.

Apa yang saya lakukan ketika sistem file terenkripsi pada volume VeraCrypt saya rusak?

Sistem file dalam volume VeraCrypt dapat rusak dengan cara yang sama seperti sistem file normal yang tidak dienkripsi. Ketika itu terjadi, Anda dapat menggunakan alat perbaikan sistem file yang disertakan dengan sistem operasi Anda untuk memperbaikinya. Di Windows, ini adalah alat 'chkdsk'. VeraCrypt menyediakan cara mudah untuk menggunakan alat ini pada volume VeraCrypt: Klik kanan volume yang terpasang di jendela VeraCrypt utama (dalam daftar drive) dan dari menu konteks pilih 'Repair Filesystem'.

Korupsi data kecil seharusnya hanya memiliki efek lokal dan tidak akan menghancurkan seluruh wadah. Namun, saya menyarankan agar tidak mengenkripsi seluruh volume / partisi dan terutama drive sistem, karena pemulihan kemudian bisa lebih rumit. Ambil cadangan yang bagus, terutama untuk header volume. Dan ingat bahwa, seperti halnya disk atau folder nyata, korupsi pada header disk / file dapat mempersulit pemulihan data dan mungkin memerlukan utilitas canggih.

Saya percaya bahwa LUKS tidak memiliki header kedua pada disk, jadi Anda harus lebih berhati-hati menjaga cadangan.

harrymc
sumber
Saya sudah membaca itu tetapi ini masih agak membingungkan. Terlepas dari pemulihan yang dilakukan melalui header dan sistem file kontainer di dalam wadah, apakah itu berarti bahwa sektor buruk tepat di tengah-tengah wadah itu sendiri tidak akan membuatnya benar-benar mati dan tidak mungkin untuk dipasang? Seperti yang saya pahami benar, apakah blok ciphertext bekerja persis seperti di dalam arsip 7-zip non-padat / ext3 tidak terenkripsi masih dapat dipasang memiliki sektor buruk fisik?
X.LINK
Saya tidak dapat berbicara untuk volume yang dienkripsi, tetapi mengubah satu bit di cyphertext terenkripsi hanya akan memuntahkan sampah untuk seluruh blok. Ukuran blok mungkin 128 byte atau 256 byte atau 4kb. Itu tidak akan mencegah sisa cyphertext dari didekripsi. Tidak ada cara bagi algoritma enkripsi untuk mengetahui sampah itu buruk. Tidak ada checksum atau apapun (untuk AES-CBC). Jika blok itu ada di dalam file teks, itu hanya akan terlihat seperti sampah di Notepad. Jika itu adalah bagian dari struktur direktori, maka sistem file akan terlihat kacau dan membutuhkan chkdsk.
Chloe
@ X.LINK: Bit yang buruk akan merusak keseluruhan "sektor" 16 byte. Bergantung di mana sektor itu berada, hasilnya bisa apa-apa jika jatuh di area yang tidak digunakan, atau sampah di tempat itu dalam file atau, dalam kasus terburuk, struktur direktori yang buruk membutuhkan penggunaan utilitas pemulihan. Ini sangat mirip dengan disk fisik di mana Anda memiliki sektor yang tidak digunakan, file data dan tabel disk, dan cadangan Anda harus mengikuti pedoman serupa.
harrymc
0

Berkat semua jawaban yang diberikan orang, jawaban pasti adalah 100% selesai.

Saya tidak punya banyak waktu hari ini, jadi saya akan mengedit jawaban "sendiri" saya nanti. Karena semua jawaban yang diberikan orang di sini benar-benar bermanfaat, ini hanya akan menjadi rekap dari apa yang mereka katakan, plus temuan saya juga.

Ngomong-ngomong, inilah salah satu temuan saya yang akan menghilangkan banyak kebingungan yang saya temui, dan sebagian besar menyangkut ... apa arti blok, karena ini adalah istilah yang terlalu sering digunakan dan keliru:

https://sockpuppet.org/blog/2014/04/30/you-dont-want-xts/

Selain itu, Anda akan menemukan cara "standar" untuk membicarakan hal-hal di sini, dan menghindari kebingungan 'blok':

/superuser/1176839/what-are-every-possible-names-of-hard-drives-structure-parts

Dalam jangka pendek, Anda dapat mengubah blok terenkripsi yang mengandung kata "400" menjadi "800". Ini berarti lapisan level blok terenkripsi benar-benar tidak solid, daripada percaya bahwa "ini akan bertindak seperti sistem file normal" (yaitu Veracrypt FAQ).

Juga, saya seharusnya menemukan tautan itu dua bulan lalu:

/unix/321488/full-image-of-internal-hdd-drive-dd-dd-rescue-with-truecrypt-bad-sectors/

Karena VeraCrypt adalah garpu TrueCrypt, pasti akan berfungsi sama.

PS:

Setiap jawaban tambahan masih diterima, dan akan ditambahkan ke jawaban "milik saya".

X.LINK
sumber