Montar HFS criptografado no ubuntu

32

Eu tento montar uma partição HFS + criptografada no Ubuntu.

Uma postagem mais antiga descreveu muito bem como fazê-lo, mas não possui informações sobre como usar partições criptografadas.

O que eu encontrei 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, eu tentei digitar duas vezes, mas isso resulta nisso:

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

Alguma sugestão?

pagid
fonte
Não sei se isso faz a diferença, mas você já tentou aes256em vez de aes-256?
Ansgar Wiechers
sim - o mesmo resultado para ambos - mesmo usando "aes" dá o mesmo resultado
pagid

Respostas:

59

Você não pode montar uma partição HFS + criptografada no OS X usando mounta opção 's encryption=aes. O motivo é que as partições e volumes HFS + criptografados usam um formato proprietário .

Nem o Cryptoloop nem o Loop-AES , que são os métodos subjacentes de descriptografia usados ​​por mounte encryption, não entendem esse formato.

Isto é o que eu descobri:

O Cryptoloop pode montar partições ou imagens de disco criptografadas como um único bloco AES (isso é chamado de modo de chave única, consulte 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  |
|           |                                                    |             |
|           |                                                    |             |
|           |                                                    |             |
+-----------+                                                    +-------------+

O AES-Loop pode montar partições ou imagens de disco criptografadas com chave única (como acima) e com várias chaves:

  /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:

O sucessor do Cryptoloop dm-crypt, também não pode ler o HFS + criptografado.

Mas antes que toda a esperança se vá:

Quanto às mensagens de erro que você encontrou:

Primeiro erro:

Error: Password must be at least 20 characters.

Surpreendentemente, mountaplica senhas longas, não apenas para criptografia, mas também para descriptografia , embora você possa não ter controle sobre a partição para descriptografar. Você só pode contornar esse incômodo baixando 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 Cryptoloop:

$ sudo modprobe cryptoloop

porque, embora você tenha instalado o pacote, loop-aes-utilsnão está usando o Loop-AES.

Loop-AES utiliza várias ferramentas espaço utilizador modificados ( mount, umount, losetup, swapone swapoff, fornecida por loop-aes-utils) e uma versão modificada loop.kodo módulo de kernel. Versões recentes do Ubuntu compilam um loopmódulo 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 imediatamente. Você precisa corrigir e recompilar o kernel como explicado aqui: http://loop-aes.sourceforge.net/loop-AES.README . É por isso que mountainda precisa do Cryptoloop.

Se você ainda receber uma mensagem de erro semelhante após o carregamento, cryptoloop.koo tipo de criptografia pode não ser reconhecido. Por exemplo, meu Ubuntu 12.04 não reconheceu aes-128, mas aes. O SLES apenas reconhece aes-128.

jaume
fonte
11
+1 para obter informações detalhadas e detalhes fornecidos na resposta.
Daemon of Chaos
4
Esta é uma resposta simplesmente fenomenal. Excepcionalmente informativo, detalhado e aparentemente extremamente bem pesquisado. Obrigado por compartilhar jaume, muito obrigado.
chmac
3
Só queria observar que eu tentei isso no OSX 10.10.3 com sucesso. Também descobri que o processo de descriptografar a unidade não faria nenhum progresso quando eu fazia muito com o computador. No entanto, com o laptop ligado à parede e a unidade conectada, deixei a tampa fechada (suspensão total) e finalizou a descriptografia enquanto dormia no PowerNap.
voxobscuro
14

Na verdade, existe o aplicativo Java hfsexplorer capaz de abrir .dmgarquivos criptografados e criar .dmgimagens descriptografadas que podem ser montadas no Linux.

Consegui criar .dmgarquivos criptografados no OS X 10.9.5 e depois explorar a imagem de uma máquina virtual executando o Ubuntu 14.04.2 LTS. A criptografia AES-128 e AES-256 funcionou nos meus casos de teste.

Foi assim que criei a .dmgimagem:

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

Na máquina virtual executando o Ubuntu, consegui abrir a imagem:

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

Ele solicita uma senha e mostra o conteúdo da imagem. Existe uma opção (Ferramentas -> criar imagem de disco) que cria uma imagem de disco descriptografada que pode ser montada com as ferramentas hfs do linux.

$ mount vault_decrypted.dmg /mnt/hfs/

Até os sistemas de arquivos registrados no HFS + Journal funcionaram. A única limitação é que o suporte de gravação para sistemas de arquivos HFS + J é desativado por padrão no Linux.

Isso demonstra que a criptografia de .dmgé entendida hfsexplorere pode ser implementada no mountcomando. Com a criação de um não criptografado .dmg, é possível montar a imagem no Linux.

vfdecrypt também não funcionou para mim.

Fortemente digitado
fonte