Mounten Sie verschlüsseltes HFS in Ubuntu

Mounten Sie verschlüsseltes HFS in Ubuntu

Ich versuche, eine verschlüsselte HFS+-Partition in Ubuntu zu mounten.

Einälterer Eintragbeschreibt ganz gut, wie es geht, es fehlen aber 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 wenn ich dies ausführe, erhalte ich die folgende Fehlermeldung:

  Error: Password must be at least 20 characters.

Ich habe also versucht, es zweimal einzugeben, aber das Ergebnis lautet:

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

Irgendwelche Vorschläge?

Antwort1

Dukann nicht mounteneine HFS+ Partition, die in OS X mit mountder Option verschlüsselt wurde encryption=aes. Der Grund dafür ist, dass verschlüsselte HFS+ Partitionen und Volumes eineproprietärFormat.

WederKryptoschleifenochLoop-AES, die zugrunde liegenden Entschlüsselungsmethoden von mountund encryption, verstehen dieses Format.

Das habe ich herausgefunden:

Cryptoloop kann Partitionen oder Disk-Images mounten, die als ein einziger AES-Block verschlüsselt sind (dies wird Single-Key-Modus genannt, siehehttp://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 sowohl mit einem Schlüssel (wie oben) als auch mit 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|                                                    |             |
+------------+                                                    |             |
|    ...     |                                                    |             |
+------------+                                                    +-------------+

Andererseits eine verschlüsselte HFS+-Partition:

Der Nachfolger von Cryptoloop dm-cryptkann verschlüsseltes HFS+ ebenfalls nicht lesen.

Doch bevor alle Hoffnung verloren ist:

Zu den Fehlermeldungen, die Ihnen angezeigt wurden:

Erster Fehler:

Error: Password must be at least 20 characters.

Überraschenderweise mounterzwingt lange Passwörter nicht nur für die Verschlüsselung, sondern auch fürEntschlüsselung, obwohl Sie möglicherweise keine Kontrolle über die zu entschlüsselnde Partition haben. Sie können dieses Problem nur umgehen, indem Sie die Quelle herunterladen, bearbeiten und neu kompilieren. (Andere Distributionen, wie SuSE Linux Enterprise Server (SLES), haben diese 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 installiert haben loop-aes-utils,sind nichtmit Loop-AES.

Loop-AES verwendet mehrere modifizierte Userspace-Tools ( mount, umount, losetup, swaponund swapoff, bereitgestellt von loop-aes-utils) und ein modifiziertes loop.koKernelmodul. Neuere Ubuntu-Versionen kompilieren ein unverändertes loopModul 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 unter Ubuntu verwendet werden. Sie müssen den Kernel wie hier beschrieben patchen und neu kompilieren:http://loop-aes.sourceforge.net/loop-AES.READMEAus diesem Grund mountwird Cryptoloop weiterhin benötigt.

Wenn Sie nach dem Laden immer noch eine ähnliche Fehlermeldung erhalten, cryptoloop.kowird der Verschlüsselungstyp möglicherweise nicht erkannt. Beispielsweise hat mein Ubuntu 12.04 nicht erkannt aes-128, aber aes. SLES erkennt nur aes-128.

Antwort2

Eigentlich gibt es Java-Anwendunghfsexplorerdas verschlüsselte Dateien öffnen kann .dmgund entschlüsselte Images erstellt .dmg, die in Linux gemountet werden können.

Ich konnte verschlüsselte .dmgDateien in OS X 10.9.5 erstellen und das Image dann von einer virtuellen Maschine aus untersuchen, auf der Ubuntu 14.04.2 LTS läuft. Sowohl die AES-128- als auch die AES-256-Verschlüsselung funktionierten für meine Testfälle.

So habe ich das .dmgBild erstellt:

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

Von der virtuellen Maschine mit Ubuntu aus 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 Images an. Es gibt eine Option (Tools -> Disk-Image erstellen), die ein entschlüsseltes Disk-Image erstellt, das dann mit den HFS-Tools von Linux gemountet 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 unter Linux standardmäßig deaktiviert ist.

Dies zeigt, dass die Verschlüsselung .dmgverstanden wird hfsexplorerund ggf. im mountBefehl umgesetzt werden kann. Durch das Erstellen einer unverschlüsselten Datei .dmgist es schließlich möglich, das Image in Linux zu mounten.

vfdecrypthat bei mir auch nicht funktioniert.

verwandte Informationen