Ich versuche, eine verschlüsselte HFS + -Partition in Ubuntu zu mounten.
Ein älterer Beitrag beschreibt die Vorgehensweise recht gut, es fehlen jedoch die Informationen zur Verwendung verschlüsselter Partitionen.
Was ich bisher gefunden habe ist:
# 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
Aber sobald ich das starte, bekomme ich den folgenden Fehler:
Error: Password must be at least 20 characters.
Also habe ich versucht, es zweimal einzugeben, aber das führt dazu:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
Irgendwelche Vorschläge?
Sie können eine HFS + -Partition, die in OS X mit der Option encryption=aes
von mount
verschlüsselt wurde, nicht mounten . Der Grund dafür ist, dass verschlüsselte HFS + -Partitionen und -Volumes ein proprietäres Format verwenden.
Weder Cryptoloop noch Loop-AES , die den verwendeten Entschlüsselungsmethoden zugrunde liegen Verstehe dieses Format unter mount
und encryption
.
Folgendes habe ich herausgefunden:
Cryptoloop kann als einzelner AES-Block verschlüsselte Partitionen oder Disk-Images bereitstellen (dies wird als Single-Key-Modus bezeichnet, siehe 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 kann mit einem Schlüssel (wie oben) und mehreren Schlüsseln verschlüsselte Partitionen oder Disk-Images mounten:
/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| | |
+------------+ | |
| ... | | |
+------------+ +-------------+
Auf der anderen Seite eine verschlüsselte HFS + -Partition:
xxd
ausgeben)man diskutil
oder https://developer.Apple.com/legacy/library/documentation/Darwin/Reference) /ManPages/man8/diskutil.8.html )verwendet AES-XTS :
$ diskutil coreStorage list
(...)
+-> Logical Volume Family D1C4665F-EAC8-4DAB-B392-634842A59559
----------------------------------------------------------
Encryption Status: Unlocked
Encryption Type: AES-XTS
(...)
dies scheint weder von Cryptoloop noch von Loop-AES unterstützt zu werden.
Cryptoloops Nachfolger dm-crypt
kann auch kein verschlüsseltes HFS + lesen.
Aber bevor alle Hoffnung verflogen ist:
Eine Gruppe von Kryptographie-Experten hat vfdecrypt
erstellt (im Ubuntu-Paket dmg2img
enthalten, tar.gz ist hier: http://code.google.com/p/iphone-Elite/downloads/list ), der verschlüsselte FileVault-Datenträgerabbilder entschlüsselt (funktioniert nicht mit Gerätedateien).
Dieses Tool sieht vielversprechend aus, hat aber mit keinem der verschlüsselten Disk-Images funktioniert, die ich mit Disk Utility
unter OS X 10.8.2 "Mountain Lion" erstellt habe. Andere Leute ( http://bre.klaki.net/blog/2011/08/17/ ) scheinen Erfolg mit alten verschlüsselten Bildern gehabt zu haben.
Andere Experten arbeiten am Projekt libfvde
( https://code.google.com/p/libfvde ), das den Befehl fvdemount
zum Lesen von mit FileVault verschlüsselten Systemvolumes enthält . Der begrenzende Faktor ist hier das "Systemvolumen". Partitionen auf Wechselmedien werden nicht unterstützt. Wenn Sie neugierig sind, finden Sie die Beschreibung hier: https://code.google.com/p/libfvde/wiki/Mounting#Mouting_the_system_volume . Der Quellcode kann hier heruntergeladen werden: https://code.google.com/p/libfvde/downloads/list .
In Bezug auf die Fehlermeldungen, auf die Sie gestoßen sind:
Erster Fehler:
Error: Password must be at least 20 characters.
Überraschenderweise erzwingt mount
lange Passwörter nicht nur zur Verschlüsselung, sondern auch zur Entschlüsselung , obwohl Sie möglicherweise nicht die Kontrolle über die zu entschlüsselnde Partition haben. Sie können dieses Ärgernis nur umgehen, indem Sie die Quelle herunterladen, bearbeiten und neu kompilieren. (Andere Distributionen wie SuSE Linux Enterprise Server (SLES) unterliegen dieser Einschränkung nicht.)
Zweiter Fehler:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
Sie müssen das Cryptoloop-Kernelmodul laden:
$ Sudo modprobe cryptoloop
denn obwohl Sie das Paket loop-aes-utils
installiert haben, verwenden Sie nicht Loop-AES.
Loop-AES verwendet mehrere modifizierte User-Space-Tools (mount
, umount
, losetup
, swapon
und swapoff
, bereitgestellt von loop-aes-utils
) und ein modifiziertes loop.ko
-Kernelmodul. Aktuelle Ubuntu-Versionen kompilieren ein unverändertes Modul loop
in den Kernel:
$ 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
loop-AES kann daher nicht sofort auf Ubuntu verwendet werden. Sie müssen den Kernel wie hier beschrieben patchen und neu kompilieren: http://loop-aes.sourceforge.net/loop-AES.README . Deshalb benötigt mount
immer noch Cryptoloop.
Wenn nach dem Laden von cryptoloop.ko
immer noch eine ähnliche Fehlermeldung angezeigt wird, wird der Verschlüsselungstyp möglicherweise nicht erkannt. Zum Beispiel hat mein Ubuntu 12.04 aes-128
nicht erkannt, aber aes
. SLES erkennt nur aes-128
.
Tatsächlich gibt es die Java-Anwendung hfsexplorer , die verschlüsselte .dmg
-Dateien öffnen und entschlüsselte .dmg
-Images erstellen kann, die in Linux eingehängt werden können.
Ich konnte verschlüsselte .dmg
-Dateien in OS X 10.9.5 erstellen und dann das Image von einer virtuellen Maschine unter Ubuntu 14.04.2 LTS untersuchen. Sowohl die AES-128- als auch die AES-256-Verschlüsselung funktionierten für meine Testfälle.
So habe ich das .dmg
-Image erstellt:
$ hdiutil create -size 10m -layout NONE -fs HFS+ -encryption AES-256 -volname "Vault" vault.dmg
Auf der virtuellen Maschine, auf der Ubuntu ausgeführt wird, konnte ich das Image öffnen:
$ ./hfsexplorer-0/bin/hfsexplorer.sh /tmp/vault.dmg
Es fordert zur Eingabe eines Passworts auf und zeigt dann den Inhalt des Bildes an. Es gibt eine Option (Extras -> Disk-Image erstellen), die ein entschlüsseltes Disk-Image erstellt, das dann mit den hfs-Tools von Linux bereitgestellt werden kann.
$ mount vault_decrypted.dmg /mnt/hfs/
Sogar HFS + Journaled-Dateisysteme funktionierten. Die einzige Einschränkung besteht darin, dass die Schreibunterstützung für HFS + J-Dateisysteme in Linux standardmäßig deaktiviert ist.
Dies zeigt, dass die Verschlüsselung von .dmg
von hfsexplorer
verstanden wird und möglicherweise im Befehl mount
implementiert werden kann. Durch das Erstellen eines unverschlüsselten .dmg
ist es möglich, das Image letztendlich in Linux zu mounten.
vfdecrypt
hat auch bei mir nicht funktioniert.