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?
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 +:
xxd
)man diskutil
ou https://developer.Apple.com/legacy/library/documentation/Darwin/Reference /ManPages/man8/diskutil.8.html )utilise AES-XTS :
$ diskutil coreStorage list
(...)
+-> Logical Volume Family D1C4665F-EAC8-4DAB-B392-634842A59559
----------------------------------------------------------
Encryption Status: Unlocked
Encryption Type: AES-XTS
(...)
qui ne semble pas être supporté par Cryptoloop ni Loop-AES.
Le successeur de Cryptoloop, dm-crypt
, ne peut pas lire non plus HFS + crypté.
Mais avant que tout espoir soit parti:
Un groupe d'experts en cryptographie a créé vfdecrypt
(inclus dans le paquet Ubuntu dmg2img
, tar.gz est ici: http://code.google.com/p/iphone-Elite/downloads/list ), qui déchiffre les images de disque FileVault chiffrées (cela ne fonctionnera pas avec les fichiers de périphérique).
Cet outil semble très prometteur mais ne fonctionne avec aucune des nombreuses images de disque chiffrées que j'ai créées avec Disk Utility
sous OS X 10.8.2 "Mountain Lion". D'autres personnes ( http://bre.klaki.net/blog/2011/08/17/ ) semblent avoir eu du succès avec de vieilles images cryptées.
D'autres experts travaillent sur le projet libfvde
( https://code.google.com/p/libfvde ), qui inclut la commande fvdemount
pour la lecture des volumes système cryptés FileVault. . Le facteur limitant ici est le "volume du système". Il ne supporte pas les partitions sur un support amovible. Si vous êtes curieux, la description est la suivante: https://code.google.com/p/libfvde/wiki/Mounting#Mouting_the_system_volume . Le code source peut être téléchargé ici: https://code.google.com/p/libfvde/downloads/list .
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
.
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.