Zamontuj zaszyfrowany HFS w Ubuntu

32

Próbuję zamontować zaszyfrowaną partycję HFS + w Ubuntu.

Starszy post opisane dość dobre, jak to zrobić, ale brakuje informacji jak korzystać z szyfrowanych partycji.

Do tej pory znalazłem:

  # 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

Ale gdy go uruchomię, pojawia się następujący błąd:

  Error: Password must be at least 20 characters.

Próbowałem więc wpisać go dwa razy, ale to powoduje:

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

Jakieś sugestie?

pagid
źródło
Nie jestem pewien, czy to robi różnicę, ale czy próbowałeś aes256zamiast tego aes-256?
Ansgar Wiechers,
tak - ten sam wynik dla obu - nawet samo użycie „aes” daje ten sam wynik
pagid

Odpowiedzi:

59

Nie można zamontować partycji HFS + zaszyfrowanej w OS X przy użyciu mountopcji encryption=aes. Powodem jest to, że zaszyfrowane partycje i woluminy HFS + używają zastrzeżonego formatu.

Ani Cryptoloop, ani Loop-AES , które są podstawowymi metodami deszyfrowania używanymi przez mounti encryption, rozumieją ten format.

Oto, co odkryłem:

Cryptoloop może montować partycje lub obrazy dysków zaszyfrowane jako pojedynczy blok AES (nazywa się to trybem jednego klucza, patrz 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 może montować zaszyfrowane partycje lub obrazy dysków z jednym kluczem (jak wyżej) i wieloma kluczami:

  /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|                                                    |             |
+------------+                                                    |             |
|    ...     |                                                    |             |
+------------+                                                    +-------------+

Z drugiej strony zaszyfrowana partycja HFS +:

Następca Cryptoloop dm-cryptrównież nie może odczytać zaszyfrowanego HFS +.

Ale zanim zniknie wszelka nadzieja:

Jeśli chodzi o napotkane komunikaty o błędach:

Pierwszy błąd:

Error: Password must be at least 20 characters.

Zaskakujące, mountwymusza długie hasła nie tylko do szyfrowania, ale także do deszyfrowania , chociaż możesz nie mieć kontroli nad partycją do odszyfrowania. Możesz ominąć tę niedogodność, pobierając i edytując źródło oraz ponownie kompilując. (Inne dystrybucje, takie jak SuSE Linux Enterprise Server (SLES), nie mają tego ograniczenia).

Drugi błąd:

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

Musisz załadować moduł jądra Cryptoloop:

$ sudo modprobe cryptoloop

ponieważ chociaż zainstalowałeś pakiet loop-aes-utils, nie używasz Loop-AES.

Loop-AES używa kilku zmodyfikowanych narzędzi przestrzeni użytkownika ( mount, umount, losetup, swaponi swapoff, o ile przez loop-aes-utils) i zmodyfikowany loop.komoduł jądra. Najnowsze wersje Ubuntu kompilują niezmodyfikowany loopmoduł do jądra:

    $ 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

więc Loop-AES nie może być używany na Ubuntu po wyjęciu z pudełka. Musisz załatać i ponownie skompilować jądro, jak wyjaśniono tutaj: http://loop-aes.sourceforge.net/loop-AES.README . Dlatego mountnadal potrzebuje Cryptoloop.

Jeśli po załadowaniu nadal pojawia się podobny komunikat o błędzie, cryptoloop.kotyp szyfrowania może nie zostać rozpoznany. Na przykład mój system Ubuntu 12.04 nie rozpoznał aes-128, ale aes. SLES rozpoznaje tylko aes-128.

jaume
źródło
1
+1 za szczegółowe informacje i szczegóły podane w odpowiedzi.
Daemon of Chaos
4
To jest po prostu fenomenalna odpowiedź. Wyjątkowo pouczające, szczegółowe i najwyraźniej bardzo dobrze zbadane. Dzięki za udostępnienie Jume'a, wielkie dzięki.
chmac 17.04.13
3
Chciałem tylko zauważyć, że właśnie wypróbowałem to na OSX 10.10.3. Odkryłem również, że proces odszyfrowywania dysku nie zrobiłby żadnego postępu, gdy robiłem dużo z komputerem. Jednak, gdy laptop był podłączony do zasilania i napęd był podłączony, zostawiłem zamkniętą pokrywę (pełny sen) i zakończyłem deszyfrowanie, gdy spałem w PowerNap.
voxobscuro,
14

W rzeczywistości istnieje aplikacja hfsexplorer Java, która może otwierać zaszyfrowane .dmgpliki i tworzyć odszyfrowane .dmgobrazy, które można zamontować w systemie Linux.

Udało mi się utworzyć zaszyfrowane .dmgpliki w systemie OS X 10.9.5, a następnie zbadać obraz z maszyny wirtualnej z systemem Ubuntu 14.04.2 LTS. Zarówno szyfrowanie AES-128, jak i AES-256 działało w moich przypadkach testowych.

Oto jak stworzyłem .dmgobraz:

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

Z maszyny wirtualnej z systemem Ubuntu mogłem otworzyć obraz:

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

Wyświetla monit o podanie hasła, a następnie wyświetla zawartość obrazu. Istnieje opcja (Narzędzia -> utwórz obraz dysku), która tworzy odszyfrowany obraz dysku, który można następnie zamontować za pomocą narzędzi hfs z systemu Linux.

$ mount vault_decrypted.dmg /mnt/hfs/

Działa nawet systemy plików HFS + Journaled. Jedynym ograniczeniem jest to, że obsługa zapisu w systemach plików HFS + J jest domyślnie wyłączona w systemie Linux.

To pokazuje, że szyfrowanie .dmgjest zrozumiałe hfsexploreri może zostać zaimplementowane w mountpoleceniu. Dzięki utworzeniu niezaszyfrowanego .dmgmożliwe jest ostatecznie zamontowanie obrazu w systemie Linux.

vfdecrypt też dla mnie nie działało.

Silnie wpisane
źródło