Monte HFS criptografado no Ubuntu

30

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

Uma postagem anterior descreveu muito bem como fazê-lo, mas não tem a informação de 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, tentei digitá-lo 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?

    
por pagid 21.09.2012 / 21:37

2 respostas

55

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 Ubuntu dmg2img , 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 comando fvdemount 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 .

    
por 05.11.2012 / 11:30
14

Na verdade, existe o aplicativo Java hfsexplorer que pode abrir arquivos .dmg criptografados e criar .dmg descriptografados que pode ser montado no Linux.

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

Foi assim que criei a .dmg image:

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

Na máquina virtual que executa 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 então ser montada com as ferramentas hfs do linux.

$ mount vault_decrypted.dmg /mnt/hfs/

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

Isso demonstra que a criptografia de .dmg é entendida por hfsexplorer e possivelmente poderia ser implementada no comando mount . Com a criação de um .dmg não criptografado, é possível montar a imagem no Linux.

vfdecrypt também não funcionou para mim.

    
por 22.02.2015 / 00:53