Hängen Sie verschlüsseltes HFS in Ubuntu ein

32

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

In einem älteren Beitrag wurde eine recht gute Vorgehensweise beschrieben, 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?

pagid
quelle
Nicht sicher, ob dies einen Unterschied macht, aber haben Sie es aes256stattdessen versucht aes-256?
Ansgar Wiechers
yes - dasselbe Ergebnis für beide - auch wenn nur "aes" verwendet wird, ergibt dies dasselbe Ergebnis
pagid

Antworten:

59

Sie können eine mit OS X verschlüsselte HFS + -Partition nicht mit mountder Option von bereitstellen encryption=aes. Der Grund dafür ist, dass verschlüsselte HFS + -Partitionen und -Volumes ein proprietäres Format verwenden.

Weder Cryptoloop noch Loop-AES , die zugrunde liegenden Entschlüsselungsmethoden von mountund encryption, verstehen dieses Format.

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:

Cryptoloops Nachfolger dm-cryptkann auch kein verschlüsseltes HFS + lesen.

Aber bevor alle Hoffnung verflogen ist:

Wie für die Fehlermeldungen, die Sie angetroffen haben:

Erster Fehler:

Error: Password must be at least 20 characters.

Überraschenderweise werden mountlange Kennwörter nicht nur für die Verschlüsselung, sondern auch für die Entschlüsselung erzwungen , 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 Paket installieren loop-aes-utilsSie nicht sind mit loop-AES.

Loop-AES verwendet mehrere modifizierte Benutzerraum Werkzeuge ( mount, umount, losetup, swaponund swapoff, sofern durch loop-aes-utils) und einem modifizierten loop.koKernel - Modul. Aktuelle 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 auf Ubuntu verwendet werden. Sie müssen den Kernel wie hier beschrieben patchen und neu kompilieren: http://loop-aes.sourceforge.net/loop-AES.README . Deswegen mountbraucht Cryptoloop noch.

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

jaume
quelle
1
+1 für die ausführlichen Informationen und Details in der Antwort.
Dämon des Chaos
4
Dies ist eine einfach phänomenale Antwort. Außergewöhnlich informativ, detailliert und anscheinend sehr gut recherchiert. Vielen Dank, dass Sie Jaume geteilt haben. Vielen Dank.
chmac
3
Ich wollte nur feststellen, dass ich dies gerade mit Erfolg unter OSX 10.10.3 ausprobiert habe. Ich stellte auch fest, dass das Entschlüsseln des Laufwerks keine Fortschritte machte, wenn ich viel mit dem Computer zu tun hatte. Nachdem der Laptop an der Wand und das Laufwerk angeschlossen waren, ließ ich den Deckel geschlossen (voller Ruhezustand) und beendete die Entschlüsselung, während er in PowerNap schlief.
Voxobscuro
14

Tatsächlich gibt es die Java-Anwendung hfsexplorer , die verschlüsselte .dmgDateien öffnen und entschlüsselte .dmgImages erstellen kann, die in Linux eingehängt werden können.

Ich konnte verschlüsselte .dmgDateien in OS X 10.9.5 erstellen und dann das Image von einer virtuellen Maschine mit 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 .dmgBild 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 .dmgvon hfsexplorerdem mountBefehl verstanden wird und möglicherweise in diesem implementiert werden könnte . Durch das Erstellen eines unverschlüsselten .dmgImages ist es möglich, das Image letztendlich in Linux zu mounten.

vfdecrypt hat auch bei mir nicht funktioniert.

Stark getippt
quelle