Tento montar uma partição HFS+ criptografada no Ubuntu.
Umpostagem mais antigadescreveu muito bem como fazê-lo, mas não possui informações sobre como usar partições criptografadas.
O que descobri até agora é:
# 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
Mas depois de executar isso, recebo o seguinte erro:
Error: Password must be at least 20 characters.
Então tentei digitá-lo duas vezes, mas o resultado foi o seguinte:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
Alguma sugestão?
Responder1
Vocênão consigo montaruma partição HFS+ criptografada no OS X usando mount
a opção encryption=aes
. A razão é que partições e volumes criptografados HFS+ usam umproprietárioformatar.
NenhumCriptoloopnemLoop-AES, que são os métodos de descriptografia subjacentes usados por mount
e encryption
, entendem esse formato.
Isto é o que descobri:
O Cryptoloop pode montar partições ou imagens de disco criptografadas como um único bloco AES (isso é chamado de modo de chave única, consultehttp://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 pode montar partições criptografadas de chave única (como acima) e de múltiplas chaves 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 umcabeçalho(você pode despejá-lo com
xxd
) - usadiversoschaves de forma não documentada (vejahttp://events.ccc.de/congress/2006/Fahrplan/attachments/1244-23C3VileFault.pdf)
- começando com OS X 10.7 "Lion", ele é agrupado em um grupo de volumes lógicos CoreStorage (consulte
man diskutil
ouhttps://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/diskutil.8.html) usaAES-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 pelo Cryptoloop nem pelo Loop-AES.
O sucessor do Cryptoloop, dm-crypt
também não consegue ler HFS+ criptografado.
Mas antes que toda a esperança acabe:
Um grupo de especialistas em criptografia criou
vfdecrypt
(incluído no pacote Ubuntudmg2img
, tar.gz está aqui: http://code.google.com/p/iphone-elite/downloads/list), que descriptografa imagens de disco criptografadas do FileVault (não funciona com arquivos de dispositivos).Esta ferramenta parece muito promissora, mas não funcionou com nenhuma das várias imagens de disco criptografadas que criei no
Disk Utility
OS X 10.8.2 "Mountain Lion". Outras pessoas (http://bre.klaki.net/blog/2011/08/17/) parecem ter tido sucesso com imagens criptografadas antigas.Outros especialistas trabalham no projeto
libfvde
(https://code.google.com/p/libfvde), que inclui comandofvdemount
para leitura de volumes de sistema criptografados do FileVault. O fator limitante aqui é o “volume do sistema”. Não oferece suporte a partições em mídia removível. Se você estiver curioso, a descrição está aqui: https://code.google.com/p/libfvde/wiki/Mounting#Mouting_the_system_volume. O código fonte pode ser baixado aqui: https://code.google.com/p/libfvde/downloads/list.
Quanto às mensagens de erro que você encontrou:
Primeiro erro:
Error: Password must be at least 20 characters.
Surpreendentemente, mount
impõe senhas longas não apenas para criptografia, mas também paradescriptografia, embora você possa não ter controle sobre a partição a ser descriptografada. Você só pode contornar esse incômodo baixando e editando o código-fonte e recompilando. (Outras distribuições, como SuSE Linux Enterprise Server (SLES), não têm 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 Cryptoloop:
$ sudo modprobe cryptoloop
porque embora você tenha instalado o pacote loop-aes-utils
vocênão sãousando Loop-AES.
Loop-AES usa várias ferramentas de espaço de usuário modificadas ( ,,, e mount
, fornecidas por ) e um módulo de kernel modificado. Versões recentes do Ubuntu compilam um módulo não modificado no kernel:umount
losetup
swapon
swapoff
loop-aes-utils
loop.ko
loop
$ 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 imediatamente. Você precisa corrigir e recompilar o kernel conforme explicado aqui:http://loop-aes.sourceforge.net/loop-AES.README. É 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 pode não ser reconhecido. Por exemplo, meu Ubuntu 12.04 não reconheceu o aes-128
, mas o aes
. O SLES reconhece apenas arquivos aes-128
.
Responder2
Na verdade, existe um aplicativo Javahfsexexplorerque é capaz de abrir .dmg
arquivos criptografados e criar .dmg
imagens descriptografadas que podem ser montadas no Linux.
Consegui criar .dmg
arquivos criptografados no OS X 10.9.5 e depois explorar a imagem de uma máquina virtual rodando Ubuntu 14.04.2 LTS. A criptografia AES-128 e AES-256 funcionaram em meus casos de teste.
Foi assim que criei a .dmg
imagem:
$ hdiutil create -size 10m -layout NONE -fs HFS+ -encryption AES-256 -volname "Vault" vault.dmg
Na máquina virtual rodando Ubuntu consegui abrir a imagem:
$ ./hfsexplorer-0/bin/hfsexplorer.sh /tmp/vault.dmg
Ele solicita uma senha e depois mostra o conteúdo da imagem. Existe uma opção (Ferramentas -> criar imagem de disco) que cria uma imagem de disco descriptografada que pode então ser montada com as ferramentas hfs do Linux.
$ mount vault_decrypted.dmg /mnt/hfs/
Até mesmo os sistemas de arquivos HFS+ Journaled funcionaram. A única limitação é que o suporte de gravação para sistemas de arquivos HFS+J está desabilitado por padrão no Linux.
Isso demonstra que a criptografia .dmg
é compreendida hfsexplorer
e possivelmente pode ser implementada no mount
comando. Com a criação de um arquivo não criptografado .dmg
é possível montar a imagem no Linux.
vfdecrypt
também não funcionou para mim.