Nie można zamontować partycji HFS + zaszyfrowanej w OS X przy użyciu mount
opcji encryption=aes
. Powodem jest to, że zaszyfrowane partycje i woluminy HFS + używają zastrzeżonego formatu.
Ani Cryptoloop, ani Loop-AES , które są podstawowymi metodami deszyfrowania używanymi przez mount
i encryption
, rozumieją ten format.
Oto, co odkryłem:
Cryptoloop może montować partycje lub obrazy dysków zaszyfrowane jako pojedynczy blok AES (nazywa się to trybem jednego klucza, patrz 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 może montować zaszyfrowane partycje lub obrazy dysków z jednym kluczem (jak wyżej) i wieloma kluczami:
/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| | |
+------------+ | |
| ... | | |
+------------+ +-------------+
Z drugiej strony zaszyfrowana partycja HFS +:
Następca Cryptoloop dm-crypt
również nie może odczytać zaszyfrowanego HFS +.
Ale zanim zniknie wszelka nadzieja:
Jeśli chodzi o napotkane komunikaty o błędach:
Pierwszy błąd:
Error: Password must be at least 20 characters.
Zaskakujące, mount
wymusza długie hasła nie tylko do szyfrowania, ale także do deszyfrowania , chociaż możesz nie mieć kontroli nad partycją do odszyfrowania. Możesz ominąć tę niedogodność, pobierając i edytując źródło oraz ponownie kompilując. (Inne dystrybucje, takie jak SuSE Linux Enterprise Server (SLES), nie mają tego ograniczenia).
Drugi błąd:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
Musisz załadować moduł jądra Cryptoloop:
$ sudo modprobe cryptoloop
ponieważ chociaż zainstalowałeś pakiet loop-aes-utils
, nie używasz Loop-AES.
Loop-AES używa kilku zmodyfikowanych narzędzi przestrzeni użytkownika ( mount
, umount
, losetup
, swapon
i swapoff
, o ile przez loop-aes-utils
) i zmodyfikowany loop.ko
moduł jądra. Najnowsze wersje Ubuntu kompilują niezmodyfikowany loop
moduł do jądra:
$ 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
więc Loop-AES nie może być używany na Ubuntu po wyjęciu z pudełka. Musisz załatać i ponownie skompilować jądro, jak wyjaśniono tutaj: http://loop-aes.sourceforge.net/loop-AES.README . Dlatego mount
nadal potrzebuje Cryptoloop.
Jeśli po załadowaniu nadal pojawia się podobny komunikat o błędzie, cryptoloop.ko
typ szyfrowania może nie zostać rozpoznany. Na przykład mój system Ubuntu 12.04 nie rozpoznał aes-128
, ale aes
. SLES rozpoznaje tylko aes-128
.
aes256
zamiast tegoaes-256
?