Montar HFS encriptado en ubuntu

32

Intento montar una partición HFS + encriptada en Ubuntu.

Una publicación anterior describía bastante bien cómo hacerlo, pero carece de la información sobre cómo usar particiones cifradas.

Lo que encontré hasta ahora es:

  # 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

Pero una vez que ejecuto esto me sale el siguiente error:

  Error: Password must be at least 20 characters.

Así que traté de escribirlo dos veces, pero eso resulta en esto:

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

¿Alguna sugerencia?

pagid
fuente
No estoy seguro si esto hace la diferencia, pero ¿lo has intentado en aes256lugar de hacerlo aes-256?
Ansgar Wiechers
sí, el mismo resultado para ambos, incluso el solo uso de "aes" da el mismo resultado
pagido el

Respuestas:

59

No puede montar una partición HFS + encriptada en OS X usando mountla opción ' encryption=aes. La razón es que las particiones y volúmenes HFS + encriptados usan un formato propietario .

Ni Cryptoloop ni Loop-AES , que son los métodos de descifrado subyacentes utilizados por mounty encryption, entienden ese formato.

Esto es lo que descubrí:

Cryptoloop puede montar particiones o imágenes de disco encriptadas como un solo bloque AES (esto se llama modo de clave ú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  |
|           |                                                    |             |
|           |                                                    |             |
|           |                                                    |             |
+-----------+                                                    +-------------+

AES-Loop puede montar particiones o imágenes de disco encriptadas con una sola clave (como arriba) y con varias claves:

  /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 otro lado, una partición cifrada HFS +:

El sucesor de Cryptoloop dm-crypt, tampoco puede leer HFS + cifrado.

Pero antes de que toda la esperanza se haya ido:

En cuanto a los mensajes de error que encontró:

Primer error:

Error: Password must be at least 20 characters.

Sorprendentemente, mountimpone contraseñas largas no solo para el cifrado sino también para el descifrado , aunque es posible que no tenga control sobre la partición para descifrar. Solo puede evitar esta molestia descargando y editando la fuente y volviendo a compilar. (Otras distribuciones, como SuSE Linux Enterprise Server (SLES), no tienen esta restricción).

Segundo error

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

Necesita cargar el módulo del núcleo Cryptoloop:

$ sudo modprobe cryptoloop

porque aunque instaló el paquete, loop-aes-utilsno está utilizando Loop-AES.

Loop-AES utiliza varias herramientas de espacio de usuario modificados ( mount, umount, losetup, swapony swapoff, proporcionado por loop-aes-utils) y una modificada loop.komódulo del núcleo. Las versiones recientes de Ubuntu compilan un loopmódulo no modificado en el núcleo:

    $ 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

por lo que Loop-AES no se puede usar en Ubuntu fuera de la caja. Debe parchear y volver a compilar el núcleo como se explica aquí: http://loop-aes.sourceforge.net/loop-AES.README . Es por eso que mounttodavía necesita Cryptoloop.

Si aún recibe un mensaje de error similar después de cargar cryptoloop.koel tipo de cifrado, es posible que no se reconozca. Por ejemplo, mi Ubuntu 12.04 no reconoció aes-128, pero aes. SLES solo reconoce aes-128.

jaume
fuente
1
+1 por la información detallada y los detalles proporcionados en la respuesta.
Daemon of Chaos
44
Esta es una respuesta simplemente fenomenal. Excepcionalmente informativo, detallado y aparentemente extremadamente bien investigado. Gracias por compartir jaume, muchas gracias.
chmac
3
Solo quería señalar que acabo de probar esto en OSX 10.10.3 con éxito. También descubrí que el proceso de descifrar la unidad no progresaba cuando hacía mucho con la computadora. Sin embargo, con la computadora portátil en la pared y la unidad conectada, dejé la tapa cerrada (suspensión total) y terminó el descifrado mientras dormía en PowerNap.
voxobscuro
14

En realidad, existe la aplicación Java hfsexplorer que puede abrir .dmgarchivos cifrados y crea .dmgimágenes descifradas que se pueden montar en Linux.

Pude crear .dmgarchivos cifrados en OS X 10.9.5 y luego explorar la imagen desde una máquina virtual que ejecuta Ubuntu 14.04.2 LTS. Tanto el cifrado AES-128 como el AES-256 funcionaron para mis casos de prueba.

Así es como creé la .dmgimagen:

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

Desde la máquina virtual que ejecuta Ubuntu pude abrir la imagen:

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

Solicita una contraseña y luego muestra el contenido de la imagen. Hay una opción (Herramientas -> crear imagen de disco) que crea una imagen de disco descifrada que luego se puede montar con las herramientas hfs de linux.

$ mount vault_decrypted.dmg /mnt/hfs/

Incluso los sistemas de archivos HFS + Journaled funcionaron. La única limitación es que el soporte de escritura para sistemas de archivos HFS + J está deshabilitado de manera predeterminada en Linux.

Esto demuestra que el cifrado .dmges entendido hfsexplorery posiblemente podría implementarse en el mountcomando. Con la creación de un encriptado .dmges posible montar la imagen en Linux en última instancia.

vfdecrypt tampoco funcionó para mí.

Fuertemente tipado
fuente