Você não pode montar uma partição HFS + criptografada no OS X usando a opção mount
de encryption=aes
. A razão é que as partições e volumes HFS + criptografados usam um formato proprietário .
Nem Cryptoloop nem Loop-AES , que são os métodos de descriptografia subjacentes usados por mount
e encryption
, entendem esse formato.
Isso é o que eu descobri:
Cryptoloop pode montar partições ou imagens de disco criptografadas como um único bloco AES (isso é chamado de modo de tecla única, veja link ):
/dev/sdXX
disk image /dev/loopX
+-----------+ +-------------+
| | | |
| | | |
| | | unencrypted |
| AES block | -AES passwd->AES key->decrypt I/O to loop device-> | partition |
| | | |
| | | |
| | | |
+-----------+ +-------------+
O AES-Loop pode montar partições criptografadas de chave única (como acima) e multi-chave ou imagens de disco:
/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| | |
+------------+ | |
| ... | | |
+------------+ +-------------+
Por outro lado, uma partição HFS + criptografada:
- inclui um cabeçalho (você pode fazer o dump com
xxd
) - usa várias chaves de maneira não documentada (veja link )
- começando com o OS X 10.7 "Lion", ele é incluído em um grupo de volumes lógicos do CoreStorage (consulte
man diskutil
ou link ) -
usa AES-XTS :
$ diskutil coreStorage list (...) +-> Logical Volume Family D1C4665F-EAC8-4DAB-B392-634842A59559 ---------------------------------------------------------- Encryption Status: Unlocked Encryption Type: AES-XTS (...)
que não parece ser suportado por Cryptoloop nem Loop-AES.
O sucessor do Cryptoloop, dm-crypt
, também não consegue ler o HFS criptografado.
Mas antes de toda a esperança se foi:
-
Um grupo de especialistas em criptografia criou
vfdecrypt
(incluído no O pacote do Ubuntudmg2img
, tar.gz está aqui: link ), que descriptografa imagens de disco FileVault criptografadas (não funcionará com arquivos de dispositivo).Esta ferramenta parece muito promissora, mas não funcionou com nenhum dos várias imagens de disco criptografadas que criei com
Disk Utility
no OS X 10.8.2 "Leão da montanha". Outras pessoas ( link ) parecem ter tido sucesso com imagens antigas criptografadas. -
Outros especialistas trabalham no projeto
libfvde
( link ), que inclui o comandofvdemount
para ler volumes do sistema criptografados FileVault. o fator limitante aqui é "volume do sistema". Não suporta partições em mídia removível. Se você está curioso, a descrição é Aqui: link . O código fonte pode ser baixado aqui: link .
Quanto às mensagens de erro encontradas:
Primeiro erro:
Error: Password must be at least 20 characters.
Surpreendentemente, mount
impõe senhas longas não apenas para criptografia, mas também para descriptografia , embora talvez você não tenha controle sobre a partição para descriptografar. Você só pode contornar esse incômodo fazendo o download e editando a fonte e recompilando. (Outras distribuições, como o SuSE Linux Enterprise Server (SLES), não possuem essa restrição.)
Segundo erro:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
Você precisa carregar o módulo do kernel do Cryptoloop:
$ sudo modprobe cryptoloop
porque embora você tenha instalado o pacote loop-aes-utils
você não está usando o Loop-AES.
O Loop-AES usa várias ferramentas de espaço do usuário modificadas ( mount
, umount
, losetup
, swapon
e swapoff
, fornecidas por loop-aes-utils
) e um módulo do kernel loop.ko
modificado. Versões recentes do Ubuntu compilam um módulo loop
não modificado no 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
então o Loop-AES não pode ser usado no Ubuntu fora da caixa. Você precisa corrigir e recompilar o kernel conforme explicado aqui: link . É por isso que mount
ainda precisa do Cryptoloop.
Se você ainda receber uma mensagem de erro semelhante após carregar cryptoloop.ko
, o tipo de criptografia poderá não ser reconhecido. Por exemplo, meu Ubuntu 12.04 não reconheceu aes-128
, mas aes
. O SLES reconhece apenas aes-128
.