Intento montar una partición HFS+ cifrada en Ubuntu.
UnEntrada antiguaDescribió bastante bien cómo hacerlo, pero carece de 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 intenté escribirlo dos veces, pero el resultado es esto:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
¿Alguna sugerencia?
Respuesta1
Túno puedo montaruna partición HFS+ cifrada en OS X usando mount
la opción encryption=aes
. La razón es que las particiones y volúmenes HFS+ cifrados utilizan unpropiedadformato.
NiCriptobucleniBucle-AES, cuáles son los métodos de descifrado subyacentes utilizados por mount
y encryption
, entienden ese formato.
Esto es lo que descubrí:
Cryptoloop puede montar particiones o imágenes de disco cifradas como un único bloque AES (esto se llama modo de clave ú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 puede montar particiones o imágenes de disco cifradas de clave única (como arriba) y de clave múltiple:
/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 HFS+ cifrada:
- incluye unencabezamiento(puedes tirarlo con
xxd
) - usosvariosclaves de forma no documentada (verhttp://events.ccc.de/congress/2006/Fahrplan/attachments/1244-23C3VileFault.pdf)
- A partir de OS X 10.7 "Lion", está envuelto en un grupo de volúmenes lógicos CoreStorage (ver
man diskutil
ohttps://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/diskutil.8.html) usosAES-XTS:
$ diskutil coreStorage list (...) +-> Logical Volume Family D1C4665F-EAC8-4DAB-B392-634842A59559 ---------------------------------------------------------- Encryption Status: Unlocked Encryption Type: AES-XTS (...)
que no parece ser compatible con Cryptoloop ni Loop-AES.
El sucesor de Cryptoloop, dm-crypt
, tampoco puede leer HFS+ cifrado.
Pero antes de que se acabe toda esperanza:
Un grupo de expertos en criptografía ha creado
vfdecrypt
(incluido en el paquete de Ubuntudmg2img
, tar.gz está aquí): http://code.google.com/p/iphone-elite/downloads/list), que descifra imágenes de disco cifradas de FileVault (no funcionará con archivos de dispositivos).Esta herramienta parece muy prometedora, pero no funcionó con ninguna de las varias imágenes de disco cifradas que creé en
Disk Utility
OS X 10.8.2 "Mountain Lion". Otra gente (http://bre.klaki.net/blog/2011/08/17/) parecen haber tenido éxito con imágenes cifradas antiguas.Otros expertos trabajan en el proyecto
libfvde
(https://code.google.com/p/libfvde), que incluye un comandofvdemount
para leer volúmenes del sistema cifrados FileVault. El factor limitante aquí es el "volumen del sistema". No admite particiones en medios extraíbles. Si tienes curiosidad, la descripción está aquí: https://code.google.com/p/libfvde/wiki/Mounting#Mouting_the_system_volume. El código fuente se puede descargar aquí: https://code.google.com/p/libfvde/downloads/list.
En cuanto a los mensajes de error que encontró:
Primer error:
Error: Password must be at least 20 characters.
Sorprendentemente, mount
impone contraseñas largas no sólo para el cifrado sino también paradescifrado, aunque es posible que no tengas control sobre la partición a descifrar. Sólo puedes evitar esta molestia descargando y editando el código fuente y recompilándolo. (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 kernel Cryptoloop:
$ sudo modprobe cryptoloop
porque aunque instalaste el loop-aes-utils
paqueteno sonutilizando Loop-AES.
Loop-AES utiliza varias herramientas de espacio de usuario modificadas ( ,, y mount
, proporcionadas por ) y un módulo de kernel modificado. Las versiones recientes de Ubuntu compilan un módulo no modificado en el 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
por lo que Loop-AES no se puede usar en Ubuntu de forma inmediata. Necesita parchear y recompilar el kernel como se explica aquí:http://loop-aes.sourceforge.net/loop-AES.README. Por eso mount
todavía se necesita Cryptoloop.
Si aún recibe un mensaje de error similar después de cargar, cryptoloop.ko
es posible que no se reconozca el tipo de cifrado. Por ejemplo, mi Ubuntu 12.04 no reconoció aes-128
, pero aes
. SLES sólo reconoce aes-128
.
Respuesta2
En realidad, existe una aplicación Java.hfexploradorque puede abrir .dmg
archivos cifrados y crear .dmg
imágenes descifradas que se pueden montar en Linux.
Pude crear .dmg
archivos 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 en mis casos de prueba.
Así es como creé la .dmg
imagen:
$ 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 con registro HFS+ funcionaron. La única limitación es que la compatibilidad con escritura en sistemas de archivos HFS+J está deshabilitada de forma predeterminada en Linux.
Esto demuestra que el cifrado .dmg
se entiende hfsexplorer
y posiblemente podría implementarse en el mount
comando. Al crear un archivo sin cifrar, .dmg
finalmente es posible montar la imagen en Linux.
vfdecrypt
A mi tampoco me funcionó.