Bạn không thể gắn kết phân vùng HFS + được mã hóa trong OS X bằng mount
tùy chọn của encryption=aes
. Lý do là các phân vùng và khối lượng HFS + được mã hóa sử dụng định dạng độc quyền .
Cả Cryptoloop và Loop-AES , là các phương thức giải mã cơ bản được sử dụng bởi mount
và encryption
, hiểu định dạng đó.
Đây là những gì tôi tìm ra:
Cryptoloop có thể gắn kết các phân vùng hoặc hình ảnh đĩa được mã hóa thành một khối AES duy nhất (đây được gọi là chế độ một phím, xem http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/#cryptoloop-int sinhtion ):
/dev/sdXX
disk image /dev/loopX
+-----------+ +-------------+
| | | |
| | | |
| | | unencrypted |
| AES block | -AES passwd->AES key->decrypt I/O to loop device-> | partition |
| | | |
| | | |
| | | |
+-----------+ +-------------+
AES-Loop có thể gắn các khóa đơn (như trên) và các phân vùng được mã hóa đa khóa hoặc hình ảnh đĩa:
/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| | |
+------------+ | |
| ... | | |
+------------+ +-------------+
Mặt khác, phân vùng HFS + được mã hóa:
- bao gồm một tiêu đề (bạn có thể kết xuất nó với
xxd
)
- sử dụng một số khóa theo cách không có giấy tờ (xem http://events.ccc.de/congress/2006/Fahrplan/attachments/1244-23C3VileFault.pdf )
- bắt đầu với OS X 10.7 "Lion", nó được bao bọc trong Nhóm khối lượng logic của CoreStorage (xem
man diskutil
hoặc https://developer.apple.com/legacy/l Library / documentation / Darwin / Relerence / MakPages / man8 / displayutil.8.html )
sử dụng AES-XTS :
$ diskutil coreStorage list
(...)
+-> Logical Volume Family D1C4665F-EAC8-4DAB-B392-634842A59559
----------------------------------------------------------
Encryption Status: Unlocked
Encryption Type: AES-XTS
(...)
mà dường như không được hỗ trợ bởi Cryptoloop cũng như Loop-AES.
Người kế vị của Cryptoloop dm-crypt
, cũng không thể đọc HFS + được mã hóa.
Nhưng trước khi mọi hy vọng không còn nữa:
Đối với các thông báo lỗi bạn gặp phải:
Lỗi đầu tiên:
Error: Password must be at least 20 characters.
Đáng ngạc nhiên, mount
thực thi mật khẩu dài không chỉ để mã hóa mà còn để giải mã , mặc dù bạn có thể không có quyền kiểm soát phân vùng để giải mã. Bạn chỉ có thể khắc phục sự phiền toái này bằng cách tải xuống và chỉnh sửa nguồn và biên dịch lại. (Các bản phân phối khác, như SuSE Linux Enterprise Server (SLES), không có hạn chế này.)
Lỗi thứ hai:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
Bạn cần tải mô-đun hạt nhân Cryptoloop:
$ sudo modprobe cryptoloop
bởi vì mặc dù bạn đã cài đặt gói nhưng loop-aes-utils
bạn không sử dụng Loop-AES.
Loop-AES sử dụng một số công cụ không gian người dùng sửa đổi ( mount
, umount
, losetup
, swapon
và swapoff
, được cung cấp bởi loop-aes-utils
) và biến đổi loop.ko
mô-đun hạt nhân. Các phiên bản Ubuntu gần đây biên dịch một loop
mô-đun chưa sửa đổi vào 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
vì vậy Loop-AES không thể được sử dụng trên Ubuntu. Bạn cần vá và biên dịch lại kernel như được giải thích ở đây: http://loop-aes.sourceforge.net/loop-AES.README . Đó là lý do tại sao mount
vẫn cần Cryptoloop.
Nếu bạn vẫn nhận được một thông báo lỗi tương tự sau khi tải cryptoloop.ko
loại mã hóa có thể không được nhận ra. Ví dụ, Ubuntu 12.04 của tôi không nhận ra aes-128
, nhưng aes
. SLES chỉ nhận ra aes-128
.
aes256
thay vìaes-256
?