Pasang HFS terenkripsi di ubuntu

32

Saya mencoba me-mount partisi HFS + terenkripsi di Ubuntu.

Sebuah posting yang lebih tua digambarkan cukup baik bagaimana melakukannya, tetapi tidak memiliki informasi bagaimana menggunakan partisi terenkripsi.

Apa yang saya temukan sejauh ini adalah:

  # install required packages
  sudo apt-get install hfsprogs hfsutils hfsplus loop-aes-utils
  # try to mount it
  mount -t hfsplus -o encryption=aes-256 /dev/xyz /mount/xyz

Tapi begitu saya menjalankan ini saya mendapatkan kesalahan berikut:

  Error: Password must be at least 20 characters.

Jadi saya mencoba mengetiknya dua kali, tetapi hasilnya adalah ini:

  ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel

Ada saran?

pagid
sumber
Tidak yakin apakah ini membuat perbedaan, tetapi apakah Anda mencoba aes256bukan aes-256?
Ansgar Wiechers
ya - hasil yang sama untuk keduanya - bahkan hanya menggunakan "aes" memberikan hasil yang sama
pagid

Jawaban:

59

Anda tidak dapat memasang partisi HFS + yang dienkripsi di OS X menggunakan mountopsi encryption=aes. Alasannya adalah bahwa partisi dan volume HFS + terenkripsi menggunakan format berpemilik .

Baik Cryptoloop atau Loop-AES , yang merupakan metode dekripsi yang digunakan oleh mountdan encryption, memahami format itu.

Inilah yang saya temukan:

Cryptoloop dapat memasang partisi atau gambar disk yang dienkripsi sebagai blok AES tunggal (ini disebut mode kunci tunggal, lihat http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/#cryptoloop-introduction ):

  /dev/sdXX                                                        
  disk image                                                       /dev/loopX
+-----------+                                                    +-------------+
|           |                                                    |             |
|           |                                                    |             |
|           |                                                    | unencrypted |
| AES block | -AES passwd->AES key->decrypt I/O to loop device-> |  partition  |
|           |                                                    |             |
|           |                                                    |             |
|           |                                                    |             |
+-----------+                                                    +-------------+

AES-Loop dapat memasang partisi terenkripsi atau disk gambar kunci tunggal (seperti di atas):

  /dev/sdXX                                                        
  disk image                                                         /dev/loopX
+------------+                                                    +-------------+
|AES block #1|                                                    |             |
+------------+                                                    |             |
|AES block #2|                                                    | unencrypted |
+------------+ -AES passwd->AES key(s)->decrypt I/O to loop dev-> |  partition  |
|AES block #3|                                                    |             |
+------------+                                                    |             |
|    ...     |                                                    |             |
+------------+                                                    +-------------+

Di sisi lain, partisi HFS + terenkripsi:

Pengganti Cryptoloop dm-crypt,, tidak dapat membaca HFS + terenkripsi.

Tapi sebelum semua harapan hilang:

Adapun pesan kesalahan yang Anda temui:

Kesalahan pertama:

Error: Password must be at least 20 characters.

Anehnya, mountmemberlakukan kata sandi yang panjang tidak hanya untuk enkripsi tetapi juga untuk dekripsi , walaupun Anda mungkin tidak memiliki kendali atas partisi yang akan didekripsi. Anda hanya dapat menyiasati gangguan ini dengan mengunduh dan mengedit sumber dan mengkompilasi ulang. (Distribusi lain, seperti SuSE Linux Enterprise Server (SLES), tidak memiliki batasan ini.)

Kesalahan kedua:

ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel

Anda perlu memuat modul kernel Cryptoloop:

$ sudo modprobe cryptoloop

karena meskipun Anda menginstal paket, loop-aes-utilsAnda tidak menggunakan Loop-AES.

Loop-AES menggunakan beberapa alat ruang pengguna dimodifikasi ( mount, umount, losetup, swapondan swapoff, yang disediakan oleh loop-aes-utils) dan dimodifikasi loop.komodul kernel. Versi Ubuntu terbaru mengkompilasi loopmodul yang tidak dimodifikasi ke dalam kernel:

    $ cd /usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/block/
    $ diff -q /tmp/loop.c-3.x.patched loop.c
    Files /tmp/loop.c-3.x.patched and loop.c differ

jadi Loop-AES tidak dapat digunakan pada Ubuntu di luar kotak. Anda perlu menambal dan mengkompilasi ulang kernel seperti yang dijelaskan di sini: http://loop-aes.sourceforge.net/loop-AES.README . Itu sebabnya mountmasih perlu Cryptoloop.

Jika Anda masih mendapatkan pesan kesalahan yang sama setelah memuat cryptoloop.kojenis enkripsi mungkin tidak dikenali. Sebagai contoh, Ubuntu 12.04 saya tidak mengenali aes-128, tetapi aes. SLES hanya mengenali aes-128.

Jaume
sumber
1
+1 untuk informasi dan detail mendalam yang disediakan dalam jawaban.
Daemon of Chaos
4
Ini adalah jawaban yang sangat fenomenal. Sangat informatif, terperinci, dan tampaknya diteliti dengan sangat baik. Terima kasih sudah berbagi jaume, terima kasih banyak.
chmac
3
Hanya ingin mencatat bahwa saya baru saja mencoba ini di OSX 10.10.3 dengan sukses. Saya juga menemukan bahwa proses mendekripsi drive tidak akan membuat kemajuan ketika saya melakukan banyak hal dengan komputer. Namun, dengan laptop di dinding daya dan drive terpasang, saya meninggalkan tutupnya tertutup (tidur penuh) dan selesai dekripsi saat tidur di PowerNap.
voxobscuro
14

Sebenarnya, ada aplikasi Java hfsexplorer yang dapat membuka .dmgfile yang dienkripsi dan membuat .dmggambar yang didekripsi yang dapat dipasang di Linux.

Saya bisa membuat .dmgfile terenkripsi di OS X 10.9.5 dan kemudian menjelajahi gambar dari mesin virtual yang menjalankan Ubuntu 14.04.2 LTS. Enkripsi AES-128 dan AES-256 bekerja untuk kasus pengujian saya.

Inilah cara saya membuat .dmggambar:

$ hdiutil create -size 10m -layout NONE -fs HFS+ -encryption AES-256 -volname "Vault" vault.dmg

Dari mesin virtual yang menjalankan Ubuntu saya dapat membuka gambar:

$ ./hfsexplorer-0/bin/hfsexplorer.sh /tmp/vault.dmg

Ini meminta kata sandi dan kemudian menampilkan konten gambar. Ada opsi (Tools -> create disk image) yang membuat disk image yang didekripsi yang kemudian dapat dipasang dengan alat hfs dari linux.

$ mount vault_decrypted.dmg /mnt/hfs/

Bahkan sistem file HFS + Journal bekerja. Satu-satunya batasan adalah bahwa dukungan penulisan untuk sistem file HFS + J dinonaktifkan secara default di Linux.

Ini menunjukkan bahwa enkripsi .dmgdipahami oleh hfsexplorerdan mungkin dapat diimplementasikan dalam mountperintah. Dengan membuat yang tidak terenkripsi .dmgadalah mungkin untuk me-mount gambar di Linux pada akhirnya.

vfdecrypt tidak bekerja untuk saya juga.

Sangat Diketik
sumber