Montez le HFS chiffré dans Ubuntu

32

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

Un article plus ancien décrivait assez bien comment le faire, mais il manque les 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 j'exécute cela, j'obtiens l'erreur suivante:

  Error: Password must be at least 20 characters.

J'ai donc essayé de le taper deux fois, mais cela se traduit par ceci:

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

Aucune suggestion?

pagide
la source
Vous ne savez pas si cela fait une différence, mais avez-vous essayé aes256au lieu de aes-256?
Ansgar Wiechers
oui - même résultat pour les deux - même en utilisant "aes" donne le même résultat
pagid

Réponses:

59

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

Ni Cryptoloop ni Loop-AES , qui sont les méthodes de décryptage sous-jacentes utilisées par mountet encryption, ne comprennent ce format.

Voici ce que j'ai découvert:

Cryptoloop peut monter des partitions ou des images de disque cryptées comme un seul bloc AES (c'est ce qu'on appelle le mode à 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 de disque chiffrées à clé unique (comme ci-dessus) et à clés multiples:

  /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'un autre côté, une partition HFS + chiffrée:

Le successeur de Cryptoloop,, dm-cryptne peut pas non plus lire le HFS + chiffré.

Mais avant tout espoir:

Quant aux messages d'erreur que vous avez rencontrés:

Première erreur:

Error: Password must be at least 20 characters.

Étonnamment, mountapplique les mots de passe longs non seulement pour le chiffrement mais aussi pour le déchiffrement , bien que vous ne puissiez pas avoir le contrôle sur la partition à déchiffrer. Vous ne pouvez contourner cette nuisance qu'en téléchargeant et en éditant la source et en 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 du noyau Cryptoloop:

$ sudo modprobe cryptoloop

car bien que vous ayez installé le package, loop-aes-utilsvous n'utilisez pas Loop-AES.

Boucle-AES utilise plusieurs outils de l' espace utilisateur modifiés ( mount, umount, losetup, swaponet swapoff, fournies par loop-aes-utils) et une modification de loop.komodule de noyau. Les versions récentes d'Ubuntu compilent un loopmodule 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é sur Ubuntu prêt à l'emploi. Vous devez patcher et recompiler le noyau comme expliqué ici: http://loop-aes.sourceforge.net/loop-AES.README . C'est pourquoi il a mounttoujours besoin de Cryptoloop.

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

Jaume
la source
1
+1 pour les informations détaillées et les détails fournis dans la réponse.
Daemon of Chaos
4
C'est une réponse tout simplement phénoménale. Exceptionnellement instructif, détaillé et apparemment extrêmement bien documenté. Merci d'avoir partagé jaume, merci beaucoup.
chmac
3
Je voulais juste noter que je viens d'essayer avec succès sur OSX 10.10.3. J'ai également constaté que le processus de décryptage du disque ne progressait pas lorsque je faisais beaucoup avec l'ordinateur. Cependant, avec l'ordinateur portable sous tension et le lecteur branché, j'ai laissé le couvercle fermé (veille complète) et il a terminé le déchiffrement pendant qu'il dormait dans PowerNap.
voxobscuro
14

En fait, il existe une application Java hfsexplorer qui est capable d'ouvrir des .dmgfichiers cryptés et crée des .dmgimages décryptées qui peuvent être montées sous Linux.

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

Voici comment j'ai créé l' .dmgimage:

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

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

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

Il vous demande 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 la prise en charge de l'écriture dans les systèmes de fichiers HFS + J est désactivée par défaut sous Linux.

Cela démontre que le chiffrement de .dmgest compris par hfsexploreret pourrait éventuellement être implémenté dans la mountcommande. Avec la création d'un fichier non crypté, .dmgil est possible de monter l'image sous Linux en fin de compte.

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

Fortement tapé
la source