web-dev-qa-db-fra.com

Monter HFS crypté dans Ubuntu

J'essaie de monter une partition cryptée HFS + dans Ubuntu.

Un article plus ancien décrit très bien comment le faire, mais manque d'informations sur l'utilisation des partitions chiffrées.

Ce que j'ai trouvé jusqu'à présent c'est:

  # 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

Mais une fois que je lance ceci, j'obtiens l'erreur suivante:

  Error: Password must be at least 20 characters.

J'ai donc essayé de le taper deux fois, mais cela a pour résultat:

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

Aucune suggestion?

31
pagid

Vous ne pouvez pas monter une partition HFS + chiffrée sous OS X à l'aide de l'option mount 'encryption=aes. La raison en est que les partitions et les volumes HFS + chiffrés utilisent un format propriétaire .

Ni Cryptoloop ni Loop-AES , qui sont les méthodes de déchiffrement sous-jacentes utilisées par mount et encryption, comprenez ce format.

C'est ce que j'ai découvert:

Cryptoloop peut monter des partitions ou des images de disque chiffrées en tant que bloc AES unique (on parle de mode de clé unique, voir 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 peut monter des partitions ou des images disque à clé unique (comme ci-dessus) et multi-clé:

  /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|                                                    |             |
+------------+                                                    |             |
|    ...     |                                                    |             |
+------------+                                                    +-------------+

D'autre part, une partition cryptée HFS +:

Le successeur de Cryptoloop, dm-crypt, ne peut pas lire non plus HFS + crypté.

Mais avant que tout espoir soit parti:

En ce qui concerne les messages d'erreur que vous avez rencontrés:

Première erreur:

Error: Password must be at least 20 characters.

De manière surprenante, mount applique des mots de passe longs, non seulement pour le chiffrement, mais également pour le déchiffrement , bien que vous ne puissiez peut-être pas contrôler la partition à déchiffrer. Vous ne pouvez contourner ce problème qu'en téléchargeant et en modifiant la source et en le recompilant. (D'autres distributions, comme SuSE Linux Enterprise Server (SLES), n'ont pas cette restriction.)

Deuxième erreur:

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

Vous devez charger le module de noyau Cryptoloop:

$ Sudo modprobe cryptoloop

car bien que vous ayez installé le package loop-aes-utils, vous n'êtes pas à l'aide de Loop-AES.

Loop-AES utilise plusieurs outils d’espace utilisateur modifiés (mount, umount, losetup, swapon et swapoff, fournis par loop-aes-utils) et un module de noyau loop.ko modifié. Les versions récentes d'Ubuntu compilent un module loop non modifié dans le noyau:

    $ 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

donc, Loop-AES ne peut pas être utilisé tel quel avec Ubuntu. Vous devez patcher et recompiler le noyau comme expliqué ici: http://loop-aes.sourceforge.net/loop-AES.README . C'est pourquoi mount a toujours besoin de Cryptoloop.

Si vous recevez toujours un message d'erreur similaire après le chargement de cryptoloop.ko, le type de cryptage peut ne pas être reconnu. Par exemple, mon Ubuntu 12.04 ne reconnaissait pas aes-128, mais aes. SLES ne reconnaît que aes-128.

57
jaume

En fait, il existe une application Java hfsexplorer capable d’ouvrir des fichiers .dmg cryptés et de créer des images .dmg décryptées pouvant être montées sous Linux.

J'ai pu créer des fichiers .dmg chiffrés dans OS X 10.9.5, puis explorer l'image à partir d'une machine virtuelle exécutant Ubuntu 14.04.2 LTS. Le chiffrement AES-128 et AES-256 a fonctionné pour mes cas de test.

Voici comment j'ai créé l'image .dmg:

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

À partir de la machine virtuelle exécutant Ubuntu, j'ai pu ouvrir l'image:

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

Il vous invite à saisir un mot de passe, puis affiche le contenu de l'image. Il existe une option (Outils -> Créer une image disque) qui crée une image disque déchiffrée qui peut ensuite être montée avec les outils hfs de Linux.

$ mount vault_decrypted.dmg /mnt/hfs/

Même les systèmes de fichiers journalisés HFS + fonctionnaient. La seule limitation est que le support en écriture sur les systèmes de fichiers HFS + J est désactivé par défaut sous Linux.

Cela montre que le chiffrement de .dmg est compris par hfsexplorer et pourrait éventuellement être implémenté dans la commande mount. En créant un .dmg non crypté, il est possible de monter l’image sous Linux au final.

vfdecrypt n'a pas fonctionné pour moi non plus.

14
Strongly Typed