Bagaimana cara mengenkripsi file dengan aman di Linux dengan Dm-crypt? Bootloader Linux mendukung enkripsi disk penuh? Enkripsi disk Debian.

Pada artikel ini, saya akan memberi tahu Anda cara membuat wadah kripto tersembunyi. sarana standar OS Linux (LUKS dan cryptsetup). Fitur bawaan LUKS (seperti menggunakan header eksternal dan menempatkan data nyata pada offset tertentu) memungkinkan pengguna untuk mengakses data yang tersembunyi di dalam wadah yang ada, serta menolak keberadaan data tersebut.

UPD: Karena posting ini sudah siap sebulan yang lalu, maka saya bahkan tidak bisa membayangkan kematian proyek yang aneh dan tidak terduga. Yah, ya, mungkin itu belum sepenuhnya mati, mari kita lihat ... Namun, dalam teks ini, saya memutuskan untuk membiarkan semua referensi TrueCrypt apa adanya.

Apa itu "penyangkalan yang masuk akal"?

Anda dapat menemukan deskripsi yang sangat panjang dan terperinci tentang konsep ini di Wikipedia: http://en.wikipedia.org/wiki/Plausible_deniability . Singkatnya, ini berarti Anda dapat memiliki sesuatu (atau dapat melakukan sesuatu), yang keberadaannya tidak dapat dicurigai atau dibuktikan oleh siapa pun (kecuali jika Anda mengakuinya sendiri, tentu saja). Dan setelah itu Anda dapat menyangkal adanya (atau fakta melakukan) sesuatu ini, jika seseorang ingin menuduh Anda, karena (saya ulangi) fakta ini tidak dapat dibuktikan. Nah, misalnya, jika seorang anak menendang pantat adiknya, dan saudara laki-laki itu pergi mencari keadilan dari orang tuanya, apa yang akan terjadi dalam kasus ini?

Yah... Seolah tidak terjadi apa-apa. Karena pria ini akan menolak, dan orang tua, secara formal, tidak akan dapat menangkapnya (karena, pertama, tidak ada saksi bodoh, dan kedua, adik laki-laki dapat memainkan permainan kotornya). Dengan demikian, tidak ada yang akan dihukum. Yah, atau mereka akan menghukum keduanya untuk setiap petugas pemadam kebakaran. Ini hanyalah contoh penggunaan kemungkinan penyangkalan yang masuk akal oleh seorang anak yang rentan terhadap agresi. Tetapi Anda dan saya, tentu saja, berkulit putih dan halus, dan kami akan menggunakan wadah tersembunyi semata-mata untuk melindungi data pribadi kami dari orang jahat. Betul sekali? Tentu saja, "apa yang "baik" dan apa yang "buruk" adalah masalah yang terpisah ... Namun, lebih penting lagi.

Ide umum implementasi

Misalkan kita ingin menyimpan beberapa data penting di dalam file terenkripsi. Secara umum, kami akan menggunakan semacam program perlindungan kripto yang akan melakukan semua pekerjaan kotor untuk kami. Kami mungkin ingin memperlakukan file terenkripsi seolah-olah itu adalah disk virtual, dan ini sangat mempersempit jumlah kandidat potensial. Namun, ada satu "tetapi". Hampir semua program seperti itu bekerja dengan file seperti dengan satu bagian data terenkripsi. Mari saya jelaskan: pengguna biasanya memiliki satu kata sandi (dan mungkin beberapa "cadangan") untuk semua data di dalam wadah. Ini berarti bahwa setidaknya ada satu tautan lemah: kata sandi wadah. Saya tidak ingin menyebutkan bahwa kata sandi harus kuat secara kriptografis, karena itu adalah kebenaran umum. Maksud saya adalah jika pengguna memberikan kata sandi itu karena alasan tertentu (misalnya di bawah tekanan), semua data akan dibaca. Dan fakta ini tampaknya menyedihkan dan sepenuhnya salah bagi saya ...

Namun, umumnya ada harapan. :) Misalnya, ada program seperti , yang cukup pintar. Pengguna dapat membuat dua wadah dalam satu file: satu adalah "dummy" dengan sejumlah "terlarang", tetapi file yang relatif aman, dan yang lainnya adalah yang asli, dengan data yang tidak boleh diekspos dalam keadaan apa pun. Jadi, TrueCrypt meminta dua kata sandi yang berbeda ketika pengguna ingin membuat wadah "ganda" seperti itu. Selama operasi, pengguna hanya memasukkan satu kata sandi untuk bagian "nyata" dan bekerja dengannya. Jika, di bawah tekanan dari keadaan eksternal, pengguna dipaksa untuk mengungkapkan isi wadah kepada pihak ketiga, ia cukup memasukkan kata sandi yang berbeda, dan TrueCrypt membuka "palsu". Saya tekankan (dan ini sangat penting) bahwa tidak ada cara untuk membuktikan keberadaan bagian yang tersembunyi jika peneliti tidak mengetahui kata sandi yang sesuai.

Dan sekarang mari kita cepat mencari tahu bagaimana sampah ini bekerja ... Faktanya, semuanya sangat sederhana. Perangkat lunak membagi file kontainer menjadi dua bagian (secara umum, tidak sama). Bagian pertama, yang mungkin relatif kecil, berisi data yang disiapkan secara khusus; yang kedua nyata. Dengan demikian, program harus dapat bekerja dengan dua header (konfigurasi) yang berbeda untuk dua bagian yang berbeda, dan juga dapat memilih bagian mana yang akan didekripsi tergantung pada kata sandi yang dimasukkan oleh pengguna. Dan ini, harus saya katakan, bukanlah bagian pekerjaan yang paling sepele. Yah, hanya karena "secara resmi" hanya satu konfigurasi "palsu" yang harus terlihat: jika penampung memiliki header standar, seharusnya hanya header "palsu"; jika parameter penampung disimpan dalam konfigurasi terpisah, konfigurasi ini seharusnya memungkinkan dekripsi hanya bagian "palsu". Dan setelah menguraikan bagian "palsu", seharusnya tidak ada satu pun petunjuk tentang keberadaan yang asli. Mereka harus benar-benar mandiri. Selain itu, ketika bagian "palsu" dibuka, perangkat lunak harus menunjukkan kapasitas penuh wadah kripto, meskipun volume bagian ini jauh lebih kecil.

Lalu bagaimana dengan LUKS?

Nah, di sini kita punya kabar baik dan… erm… bahkan lebih banyak kabar baik.

Kabar baiknya adalah cryptsetup dapat mendekripsi dan memasang volume yang dibuat oleh TrueCrypt ". Hanya baca, tetapi ini tidak masuk akal. Karena ada berita yang lebih baik. Yaitu, kita dapat membuat wadah "tersembunyi" secara eksklusif menggunakan . Selain itu, utilitas ini memungkinkan Anda untuk membuat sejumlah bagian "tersembunyi". Tentu saja, dalam batas yang wajar. Dan di sini adalah bagaimana hal itu bisa dilakukan.

Namun sebelum melanjutkan,

PERINGATAN MENAKUTKAN LEMAK BESAR!!!

  • Apa pun yang dijelaskan di bawah ini dapat menyebabkan kehilangan data yang tidak dapat diubah.
  • Di negara Anda, penggunaan kriptografi yang kuat mungkin dilarang, jadi Anda mungkin dipenjara bukan karena informasi sebenarnya, tetapi hanya karena memiliki wadah kripto yang akan ditemukan di sekrup Anda.
  • Kriptografi dapat melindungi data Anda, tetapi tidak akan melindungi Anda dari siksaan. Wadah tersembunyi dapat membantu menyimpan informasi berharga, tetapi Anda tidak dapat menyangkal kehadirannya jika terjadi pengkhianatan atau penolakan.
  • Orang-orang yang tertarik dengan data terenkripsi Anda mungkin tidak sebodoh yang Anda harapkan. Bahkan jika mereka tidak dapat membuktikan keberadaan bagian tersembunyi dari wadah, mereka mungkin mengunci Anda di sel yang sama dengan penjahat berpengalaman, dan dalam beberapa hari Anda akan mengingat semua kata sandi untuk semua data tersembunyi.
  • Jika Anda memiliki orang-orang dekat (pacar/pacar, saudara, teman), mereka juga bisa menjadi sasaran tekanan keras dengan cara yang sama. Dan ini pasti akan membantu Anda mengingat semuanya secara umum lebih cepat, termasuk apa yang bahkan tidak Anda ketahui.

Jadi lebih baik untuk berpikir dua kali tentang berapa banyak informasi yang lebih berharga daripada hidup Anda dan kehidupan orang yang Anda cintai. Dan buat cadangan. Untuk berjaga-jaga.

Yah, man cryptsetup dapat memberi tahu kami banyak hal detail menarik tentang opsi baris perintah dari utilitas ini. Nah, sebagai contoh, mari kita lihat opsi --header:

Yah, oke. Ini berarti bahwa kita sekarang dapat memiliki volume data yang diisi dengan sampah acak, tanpa tanda tangan yang berarti sama sekali. Deskripsi opsi ini berisi sedikit lebih banyak informasi, peringatan, dan peringatan, tetapi pada intinya, hanya ini yang diperlukan. Namun, saya sangat merekomendasikan membaca panduan yang sangat baik ini.

Opsi lain yang sangat berguna adalah --align-payload , yang memungkinkan Anda memposisikan data sebenarnya pada offset tertentu relatif terhadap awal volume:

Dan ini juga keren, karena sekarang kita dapat dengan bebas memindahkan data kita ke bagian mana pun dari volume. Anda mendapatkan ide, kan?

  1. Kami menginisialisasi volume untuk enkripsi: kami sepenuhnya menimpanya dengan data acak.
  2. Kami membuat volume terenkripsi "resmi" dan turun sedikit varese yang terinfeksi, muzla melingkar, pron perangkat lunak gratis yang berguna, rekaman dari band rock amatir Anda, film cinta, dll., secara umum, yang untuknya Anda akan diberikan masa percobaan tidak lebih dari dua tahun.
  3. Menggunakan opsi cryptsetup esoterik di atas, kami membuat volume tersembunyi (di dalam "resmi") dan mentransfer judulnya ke media eksternal. Di sini Anda dapat menyimpan informasi yang sangat berbahaya (seperti foto taman kanak-kanak Anda atau rencana untuk menaklukkan dunia).

Sebenarnya, itu saja. Tidak ada sihir. Secara alami, Anda tidak dapat memasukkan disk terenkripsi "resmi" ke kapasitas karena alasan sederhana bahwa sebagian dari ruangnya diberikan ke wadah tersembunyi. Dan, seperti yang saya katakan di awal, Anda dapat, jika mau, membuat beberapa drive tersembunyi dengan mengikuti logika yang sama.

Di sini ... Dan jika Anda masih membutuhkan detail, maka khusus untuk Anda -

Panduan

Perhatian!

Perintah berikut akan menghancurkan data Anda jika dijalankan tanpa menyalakan otak. Informasi yang hilang tidak dapat dipulihkan karena utilitas seperti dd beroperasi pada level rendah (yaitu, di bawah level sistem file). Oleh karena itu, tidak mungkin untuk mengembalikan perubahan atau membatalkan efeknya, bahkan jika Anda membatalkan segera setelah peluncuran.

Singkatnya, jangan lakukan ini kecuali Anda dapat memikirkan penjelasan yang berarti tentang bagaimana setiap langkah berhubungan dengan tujuan Anda. Dan buat cadangan. Sekarang.

Jadi katakanlah kita memiliki perangkat dengan banyak partisi. Biarkan, misalnya, /dev/sdb. Dan biarkan /dev/sdb1 menjadi partisi yang relatif kecil (8GB) yang didedikasikan untuk enkripsi. Kami akan membaginya 5 menjadi 3, di mana bagian 5 GB akan menjadi "resmi" dan bagian 3 GB akan disembunyikan. Mari kita asumsikan juga bahwa kita akan menyimpan kunci untuk disk terenkripsi di /etc/keys, dan header wadah tersembunyi, masing-masing, pada drive USB eksternal, yang akan kita pasang di /media/user/ExtUSBStick. Saya berasumsi Anda sudah tahu izin apa yang perlu Anda atur di keystore, cara mengonfigurasi encfs / ecryptfs untuk menyimpan data rahasia dengan aman di perangkat yang tidak aman, dan juga masuk akal untuk menyalin kunci rahasia asli dan menyimpannya di beberapa brankas yang terpisah secara geografis.

Yah, oke, saya mengikat gerutuan dan beralih ke inti masalah.

    Inisialisasi perangkat /dev/sdb1:

    Dd if=/dev/urandom of=/dev/sdb1 bs=16M

    Kami membuat kunci untuk volume terenkripsi. 512 bit (64 byte) untuk tujuan kita melalui atap:

    Dd if=/dev/urandom bs=64 count=1 >/etc/keys/secret.key 2>/dev/null

    Enkripsi volume menggunakan kunci yang baru dibuat:

    Cryptsetup luksFormat /dev/sdb1 /etc/keys/secret.key

    Buka perangkat terenkripsi dan konfigurasikan pemetaan di secretdata:

    Cryptsetup luksOpen --key-file /etc/keys/secret.key \ /dev/sdb1 secretdata

    Buat pada volume terenkripsi berkas sistem(misalnya btrfs):

    Mkfs.btrfs -L SecretData /dev/mapper/secretdata

    ... dan pasang:

    Pasang /dev/mapper/secretdata /var/secretdata/

    Mengingat batas 5 pertunjukan, tetapkan kuota subvolume:

    Kuota btrfs aktifkan /var/secretdata/

    Karena kuota btrfs hanya berlaku untuk subvolume, mari buat satu hal seperti itu:

    brfs subvolume buat /var/secretdata/workingvolume

    ... dan menerapkan kuota yang ditentukan untuk itu (perhatikan bahwa subvolume btrfs dapat dipasang sebagai sistem file biasa, jadi Anda mungkin merasa lebih nyaman untuk memasang subvolume khusus ini daripada seluruh fs nanti):

    btrfs qgroup batas 5G /var/secretdata/workingvolume

    Kami mengisinya dengan beberapa data:

    debootstrap --variant=buildd testing /var/secretdata/workingvolume

    Itu saja, sekarang Anda bisa melupakan bagian ini:

    Umount /var/secretdata cryptsetup luksTutup secretdata

    Sekarang mari kita buat "ikan" untuk tajuk dan masukkan sampah acak ke dalamnya:

    Dd if=/dev/urandom of=/media/user/ExtUSBStick/hidden.head bs=4M count=1

    Dan sekarang tibalah saat keajaiban yang sebenarnya dimulai. (Apa? Apakah saya mengatakan tidak ada sihir? Jadi saya berbohong.) Kami menggunakan kunci rahasia yang sama, namun, tidak secara keseluruhan, tetapi hanya setengah (dari offset 32 ​​byte). Namun, 256 bit acak yang tersisa cukup mampu membuat kunci yang bagus. Kemudian kita akan memisahkan header dan meletakkannya di flash drive. Akhirnya, kami memberi tahu cryptsetup "y" bahwa kami ingin mengimbangi wadah tersembunyi kami dengan 5GB (yaitu 10485760 blok 512-byte) dari awal volume:

    Cryptsetup --keyfile-offset 32 ​​--header /media/user/ExtUSBStick/hidden.head \ --align-payload 10485760 luksFormat /dev/sdb1 /etc/keys/secret.key

    Ya, sesederhana itu. Sekarang mari kita buka perangkat terenkripsi baru:

    Cryptsetup luksOpen --key-file /etc/keys/secret.key --keyfile-offset 32 ​​\ --header /media/user/ExtUSBStick/hidden.head /dev/sdb1 realsecretdata

    Mari kita putar fs yang kita inginkan:

    Mkfs.btrfs /dev/mapper/realsecretdata

tautan yang bermanfaat

Bagi mereka yang ingin tahu lebih banyak, berikut adalah beberapa sumber informasi tambahan:

  • enkripsi disk, informasi umum tentang enkripsi disk: https://wiki.archlinux.org/index.php/Disk_encryption
  • Enkripsi yang Ditolak, konsepnya agak lebih sempit daripada "penyangkalan yang masuk akal", hanya mengacu pada bidang kriptografi: https://en.wikipedia.org/wiki/Deniable_encryption
  • TrueCrypt

Disk (ala TrueCrypt). Saya tahu ada pekerjaan untuk menambahkan dukungan enkripsi ke GRUB2, tetapi belum siap. Ada pilihan lain?

(Perhatikan bahwa yang saya maksud adalah enkripsi disk penuh di sini, termasuk /boot)

Sebagian besar jawaban menjelaskan pengaturan di mana /boot tidak dienkripsi, dan beberapa dari mereka mencoba menjelaskan mengapa /boot yang tidak dienkripsi seharusnya baik-baik saja.

Tanpa membahas mengapa saya benar-benar membutuhkan /boot untuk dienkripsi, berikut adalah artikel yang menjelaskan dengan tepat apa yang saya butuhkan, berdasarkan versi GRUB2 yang dimodifikasi:

  • http://xercestech.com/full-system-encryption-for-linux.geek

Masalahnya adalah bahwa modifikasi ini tampaknya tidak didukung dalam basis kode GRUB2 saat ini (atau mungkin saya melewatkan sesuatu).

8 Solusi mengumpulkan formulir web untuk "bootloader Linux yang mendukung enkripsi disk penuh?"

Saya pikir itu Versi sekarang GRUB2 tidak mendukung memuat dan mendekripsi partisi LUKS dengan sendirinya (berisi beberapa sandi, tapi saya pikir mereka hanya digunakan untuk mendukung kata sandi). Saya tidak dapat memeriksa cabang pengembangan eksperimental, tetapi ada beberapa petunjuk di halaman GRUB bahwa beberapa pekerjaan direncanakan untuk dilaksanakan yang ingin Anda lakukan.

Pembaruan (2015) : versi terbaru GRUB2 (2.00) sudah berisi kode untuk mengakses partisi terenkripsi LUKS dan GELI. (Tautan xercestch.com yang disediakan OP menyebutkan perbaikan pertama untuk ini, tetapi sekarang termasuk dalam versi terbaru).

Namun, jika Anda mencoba untuk mengenkripsi seluruh drive untuk alasan keamanan, harap perhatikan bahwa bootloader yang tidak terenkripsi (seperti TrueCrypt, BitLocker, atau GRUB yang dimodifikasi) tidak memberikan perlindungan lebih dari partisi /boot yang tidak terenkripsi (seperti yang dicatat oleh SP di bagian komentar di atas). Siapa pun yang memiliki akses fisik ke komputer dapat dengan mudah menggantinya dengan versi khusus. Itu bahkan disebutkan dalam artikel xercestech.com yang Anda tautkan:

Untuk lebih jelasnya, ini sama sekali tidak membuat sistem Anda kurang rentan terhadap serangan offline jika penyerang mengganti bootloader Anda dengan milik mereka atau mengarahkan ulang proses boot untuk mem-boot sendiri. kode sendiri, sistem Anda mungkin masih disusupi.

Perhatikan bahwa semua produk perangkat lunak enkripsi disk penuh memiliki kelemahan ini, apakah mereka menggunakan bootloader yang tidak terenkripsi atau partisi boot/preboot yang tidak terenkripsi. Bahkan produk yang mendukung chip TPM (Trusted Platform Module), seperti BitLocker, dapat digunakan tanpa mengubah perangkat keras.

Pendekatan terbaik adalah:

  1. mendekripsi pada tingkat BIOS (dalam papan utama atau adaptor drive atau perangkat keras eksternal [kartu pintar], dengan atau tanpa chip TPM), atau
  2. membawa kode otorisasi PBA (otorisasi pra-booting) (partisi /boot dalam kasus ini) pada perangkat yang dapat dilepas (misalnya, kartu pintar atau drive USB).

Untuk melakukan cara kedua, Anda dapat memeriksa proyek Linux Full Enkripsi Disk(LFDE) di: http://lfde.org/ yang menyediakan skrip pasca-instalasi untuk memindahkan partisi /boot ke drive USB eksternal dengan mengenkripsi kunci dengan GPG dan menyimpannya di USB juga. Dengan cara ini, bagian yang lemah dari jalur boot (partisi /boot tidak terenkripsi) selalu bersama Anda (Anda akan menjadi satu-satunya dengan akses fisik untuk dekripsi kode dan kunci). ( Catatan: situs ini telah hilang dan blog penulis juga telah hilang, namun Anda dapat menemukan file lama di https://github.com/mv-code/lfde hanya dengan mencatat bahwa pengembangan terakhir dilakukan 6 tahun yang lalu). Sebagai alternatif yang lebih mudah, Anda dapat memasang partisi boot yang tidak terenkripsi pada drive USB saat Anda menginstal OS.

Hormat kami, M.V.

Jadikan RAMdisk dan /boot folder pertama Anda tidak terenkripsi.

Ini akan memanggil kernel "minimal" dengan driver dan dukungan untuk beralih ke sistem file root "asli" yang dienkripsi.

Sebelum Anda menyatakan "ini adalah peretasan", ingat - sebagian besar (jika tidak semua) distribusi Linux di-boot secara default hari ini. Ini secara eksplisit memungkinkan sistem Anda untuk memuat dan memuat FS root menggunakan modul yang perlu dimuat dari sistem file. (Semacam masalah ayam dan telur). Misalnya, jika sistem file root Anda menggunakan volume RAID perangkat keras dan Anda perlu memuat drivernya sebelum Anda dapat memasang FS root.

Saya melihat tautan yang Anda posting - meskipun partisi boot tidak, hard drive masih memiliki bootloader tidak terenkripsi yang dapat diakses dan disusupi oleh serangan berbahaya. Saya telah mencari pengaturan serupa yang tidak memiliki data tidak terenkripsi pada hard drive, tetapi sejauh ini saya hanya berhasil menjalankan bootloader dari drive yang dapat dilepas.

Saya percaya bahwa sebagian besar yang Anda butuhkan adalah instruksi tentang cara menginstal OS dengan HD terenkripsi.

Ubuntu memiliki halaman yang bagus dengan instruksi tentang cara membuat partisi terenkripsi, LMVP, folder, dll, hanya versi distro Anda...

Tidak, saya rasa tidak.

Apakah Anda benar-benar perlu mengenkripsi/mengunggah? Saya menduga tidak. Sistem file lainnya dapat dienkripsi dengan normal perangkat lunak Linux yang berada di initramfs di /boot dan meminta pengguna yang sesuai.

Anda sepertinya meminta sesuatu yang tidak bisa dilakukan dan membandingkannya dengan Solusi Windows, yang menyembunyikan implementasi dari Anda, tetapi sebenarnya melakukan hal yang sama seperti yang dilakukan Linux.

Solusi terdekat yang dapat saya pikirkan adalah menggunakan HDD, yang mengimplementasikan keamanan dan enkripsi kata sandi. Beberapa laptop Thinkpad gunakan solusi perangkat keras ini.

Jawabannya ada di artikel. "Ini sekarang dimungkinkan dengan ekstensi ke bootloader GRUB2 generasi berikutnya yang telah ditambal untuk mendukung lebih dari sekadar" dan "kami ingin menginstal gambar baru yang mendukung luks grub2 nanti", dan "Sekarang kami akan mengkompilasi sumber GRUB2 dengan LUKS mendukung. Tampaknya ada perbaikan atau ekstensi yang perlu Anda dapatkan dan aktifkan dengan GRUB2 atau sumber bercabang GRUB2.

Grub2 versi 2.02~beta3 dapat melakukan banyak hal yang tidak dapat dilakukan oleh Grub2 versi 2.02~beta2, diverifikasi oleh saya:

  1. Booting menggunakan disk Super Grub 2
  2. Ketik "c" untuk pergi ke baris perintah
  3. Masukkan perintah untuk memasang partisi terenkripsi yang saya inginkan
    • insmod lux
    • cryptomount (hd0, #) // di mana # mewakili partisi terenkripsi
  4. Memasuki kata kunci dan masukkan beberapa perintah
    • multiboot (crypto0) /grub/i386-pc/core.img
    • sepatu

Ini akan mem-boot Grub2 lain yang ada di dalam partisi terenkripsi, tidak ada serangan gila yang jahat di sini... Saya mem-boot dari CD (hanya-baca) dan kemudian memasang partisi terenkripsi (bukan frasa sandi, apa pun!), lalu mem-boot dari dalam partisi terenkripsi dan mem-boot Grub2 dengan menunya sendiri, dll.

Peringatan: Grub2 versi 2.02~beta2 tidak dapat melakukan hal yang sama karena memiliki beberapa bug (yang tampaknya diperbaiki di Grub2 versi 2.02~beta3) terkait dengan perintah cryptomount...

bug beta2 yang saya bicarakan adalah:

  1. Itu tidak benar-benar memasang partisi terenkripsi, sehingga tidak memungkinkan Anda mengakses (crypto0)/*
  2. Jika ada lebih dari satu partisi terenkripsi, menggunakan cryptomount -a hanya membutuhkan satu frasa sandi
  3. Setelah memulai cryptomount sekali, itu dimulai lagi, tidak melakukan apa-apa

pada versi beta 3:

  1. Ini sebenarnya memasang partisi terenkripsi dan memungkinkan Anda untuk mengakses file melalui (crypto0)/* atau (crypto1)/* dll jika lebih dari satu dipasang pada saat yang sama
  2. Ia meminta setiap frasa sandi (satu per bagian terenkripsi)
  3. Ini memungkinkan Anda untuk menjalankannya sebanyak yang Anda suka, Anda dapat menginstal satu, lalu yang lain, dll.

Catatan tambahan: Saya belum menemukan cara melepasnya selain me-reboot atau memuat yang lain atau yang lain pemuat boot grub2/lainnya dll.

Saya harap ini membantu menyelesaikan masalah, dan saya berharap Grub2 versi 2.02~beta3 terintegrasi ke dalam LiveCD sehingga kita dapat menginstalnya tanpa harus mengompilasinya sendiri.

PD: Dengan drive Super Grub 2, saya tidak melihat cara untuk menginstal Grub2 versi 2.02~beta3 pada partisi MBR/boot, dll.

Pada artikel ini, saya akan mencoba membandingkan kinerja berbagai sistem enkripsi di bawah linux. Secara teori, tentu saja diketahui sistem mana yang lebih produktif, dan upaya untuk menghitung kinerjanya sistem yang berbeda adalah (). Truecrypt bahkan berisi benchmark built-in (yang menunjukkan, bagaimanapun, kinerja pada RAM, hanya dapat digunakan untuk mengevaluasi kecepatan algoritma enkripsi yang berbeda). Tetapi saya akan melakukan sesuatu yang berbeda - saya akan mengukur kecepatan sistem file yang dienkripsi dengan berbagai cara, sebagai persentase dibandingkan dengan sistem file tidak terenkripsi konvensional.


Kami akan mengenkripsi partisi terpisah pada HDD terpisah yang tidak berisi sistem file root dengan algoritme yang digunakan secara default dalam setiap kasus tertentu. Sebagai pengguna biasa, saya tidak mengerti nuansa standar enkripsi (misalnya, bagaimana RIPEMD-160 hashing berbeda dari Whirpool, mode mana yang lebih cepat, mana yang berkontribusi pada keamanan yang lebih tinggi), jadi kami hanya mengandalkan fakta bahwa produsen masing-masing produk perangkat lunak memilih parameter default yang cukup tahan terhadap kripto. Mungkin ini tidak sepenuhnya benar, karena kinerja berbagai algoritma enkripsi tidak sama. Jika diinginkan, tentu saja, Anda dapat mengubah jenis enkripsi, tetapi saya tidak yakin bahwa di semua produk yang diuji, ada serangkaian algoritma yang benar-benar identik. Kami akan menguji:

3) eCryptfs adalah sistem default yang ditawarkan kepada pengguna Ubuntu untuk mengenkripsi direktori home, itulah sebabnya ia disertakan dalam pengujian ini. Bekerja di atas sistem file yang ada. Mengenkripsi setiap file secara terpisah, sehingga semua orang dapat melihat hak, tanggal modifikasi, jumlah file terenkripsi; secara default, nama file juga terlihat, meskipun ada opsi untuk mengenkripsinya. Alat yang paling tidak berfungsi.

4) EncFS - analog perkiraan eCryptfs, tetapi menggunakan FUSE.

Jadi, untuk pengujian, mesin terpisah dengan usia yang agak lanjut dialokasikan dalam konfigurasi berikut: CPU - Intel Celeron 2000Mhz, RAM - 512 Mb DDR PC2700, sistem HDD- WD Caviar SE 5400 RPM 80Gb, HDD uji - WD Caviar SE 7200 RPM 80Gb.
OS - Ubuntu 12.04 LTS, versi semua perangkat lunak relevan untuk repositori OS ini pada saat penulisan ini (Truecrypt 7.1a-linux-x86 bukan dari repositori).

Kami akan menguji sistem file ext4 default untuk sebagian besar distribusi. Untuk pengujian kinerja, kami akan menggunakan utilitas iozone3 dan skrip shell yang ditulis "berlutut" untuk mengukur perbedaan persentase dalam pengujian.

Menghitung naskah. Tidak ada perhatian khusus yang diberikan pada kebersihan kode, satu-satunya kriteria untuk penulisan adalah adanya hasil yang benar.

#!/bin/sh gendifffile () ( #prosedur menghasilkan file yang nyaman untuk diurai. Pertama, baris yang tidak dapat diuraikan akan dipotong; kedua, dua angka pertama di setiap baris terpotong, menunjukkan #ukuran dan catatan file size, masing-masing ; ketiga, seluruh file adalah output baris demi baris - #satu hasil tes per baris cat $1 | while read LINE ; do echo $LINE| grep "^[[:space:]]*[[:digit:] ]" | awk "(untuk (i=3;i<=NF;i++) {print $i}}" done > > $2 ) getline () ( #procedure mengeluarkan nomor baris $2 dari file $1 head -n $2 "$1" | tail -n 1 ) compare () ( #procedure membandingkan file $1 dan $2 baris demi baris, menghitung persentase perbedaan masing-masing pasangan tes #kemudian hitung rata-rata aritmatika, berapa persentase yang lebih cepat atau lebih lambat #file yang berisi grup tes pertama, file yang berisi grup kedua P=0 MAX=0 L1=`cat "$1" | wc -l` # jumlah tes dalam file L2=`cat "$2" | wc -l` if [ $L1 -ne $L2 ]; maka #jika file berisi jumlah tes yang berbeda, maka kami tidak akan membandingkannya echo error return fi STEP=$(($L1*5/100)) J=0 for I in `seq 1 $L1`; do J=$(($J+1)) if [ $J -eq $STEP ]; then J =0 echo "$((100*$I/$ L1))% selesai ($I dari $L1)" fi A=`getline "$1" $I` B=`getline "$2" $I` if [ ` echo $A \> $B|bc -l` - eq 1 ]; then D=`echo "100-($B*100/$A)"|bc -l` if [ `echo $D \> $MAX | bc -l` -eq "1" ]; maka MAX=$D sleep 5 fi else D=`echo "100-($A*100/$B)"|bc -l` if [ `echo $D \ > $MAX| bc -l` -eq "1" ]; the n MAX=$D sleep 5 fi D="-$D" #jika nilainya memiliki tanda "-", tes ini lebih cepat #pada file kedua daripada yang pertama fi P=`echo "$P+$D "| bc -l`done P=`echo $P/$L1| bc -l` #hitung rata-rata aritmatika echo PERCENT=$P MAX_PERCENT=$MAX ) genaverage () ( #prosedur untuk menghasilkan file yang disiapkan untuk analisis, setiap barisnya adalah #rata-rata aritmatika dari baris yang sesuai dari semua laporan file yang terletak di direktori yang dianalisis AVG=` mktemp` F=`ls "$1"|wc -l` #jumlah file dengan laporan di direktori yang ditentukan #asalkan hanya file tersebut yang disimpan di sana dan tidak ada yang lain #kami tidak akan memeriksa kebenaran asumsi ini jika [ ! -d " $1" -o $F -lt 2 ]; then echo error >/dev/stderr #dalam prosedur ini, kami akan menampilkan semua pesan ke stderr, karena #stdout diganti dengan yang lain procedure rm -f $AVG exit fi TMP=` mktemp` temukan "$1" -ketik f| saat membaca FILE; lakukan #untuk setiap file laporan iozone di direktori yang diberikan I=`mktemp` #gendifffile "$FILE" "$I " #names tulis semua file tersebut ke "TMP" baris demi baris echo "$I">>$TMP done L=`cat \`getline "$TMP" 1\`|w c -l` cat "$TMP"| saat membaca LINE; lakukan #sedikit memeriksa itu baik L1=`cat "$LINE"| wc -l` #do semua file berisi jumlah tes yang sama jika [ $L -ne $L1 ]; lalu echo error >/dev/stderr exit fi done LANGKAH=$(($L*5/100)) J=0 for I in `seq 1 $L`; lakukan J=$(($J+1)) if [ $J -eq $STEP ]; lalu J=0 echo "$((100*$I/$L))% done ($I dari $L)" >/dev/stderr fi SUMFILE=`mktemp` #dengan cara ini saya mendapatkan nilai dari variabel SUM dari loop bersarang SUM=0 cat "$TMP"| saat membaca LINE; lakukan SUM=$((`getline "$LINE" $I`+$SUM)) echo $SUM > "$SUMFILE" done echo `tail -n 1 "$SUMFILE"`/$F|bc -l >> $ AVG #dapatkan mean aritmatika #dan tuliskan ke lokasi yang sesuai #dari file AVG rm -f "$SUMFILE" done cat "$TMP"| saat membaca LINE; lakukan #hapus file sementara rm -f "$LINE" done rm -f "$TMP" echo $AVG ) printf %b "\\033)