Монтировать зашифрованный HFS в Ubuntu

Монтировать зашифрованный HFS в Ubuntu

Я пытаюсь смонтировать зашифрованный раздел HFS+ в Ubuntu.

Анстарый постдовольно хорошо описано, как это сделать, но не хватает информации о том, как использовать зашифрованные разделы.

Вот что я пока обнаружил:

  # 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

Но как только я это запускаю, я получаю следующую ошибку:

  Error: Password must be at least 20 characters.

Поэтому я попытался ввести его дважды, но в результате получилось следующее:

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

Какие-либо предложения?

решение1

Тыне могу смонтироватьраздел HFS+, зашифрованный в OS X с помощью mountопции encryption=aes. Причина в том, что зашифрованные разделы и тома HFS+ используютзапатентованныйформат.

Ни одинКриптопетляниПетля-AES, которые являются основными методами дешифрования, используемыми mountи encryption, понимают этот формат.

Вот что я узнал:

Cryptoloop может монтировать разделы или образы дисков, зашифрованные как один блок AES (это называется режимом с одним ключом, см.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 может монтировать зашифрованные одним ключом (как выше) и несколькими ключами разделы или образы дисков:

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

С другой стороны, зашифрованный раздел HFS+:

Преемник Cryptoloop, dm-crypt, также не может читать зашифрованные HFS+.

Но прежде чем исчезнет всякая надежда:

  • Группа экспертов по криптографии создала vfdecrypt(входит в пакет Ubuntu dmg2img, tar.gz находится здесь): http://code.google.com/p/iphone-elite/downloads/list), который расшифровывает зашифрованные образы дисков FileVault (не работает с файлами устройств).

    Этот инструмент выглядит очень многообещающим, но не сработал ни с одним из нескольких зашифрованных образов дисков, которые я создал в Disk UtilityOS X 10.8.2 "Mountain Lion". Другие люди (http://bre.klaki.net/blog/2011/08/17/), похоже, имели успех со старыми зашифрованными изображениями.

  • Другие эксперты работают над проектом libfvde (https://code.google.com/p/libfvde), которая включает команду fvdemountдля чтения зашифрованных системных томов FileVault. Ограничивающим фактором здесь является "системный том". Он не поддерживает разделы на съемных носителях. Если вам интересно, описание здесь: https://code.google.com/p/libfvde/wiki/Монтаж#Монтаж_системного_тома. Исходный код можно скачать здесь: https://code.google.com/p/libfvde/downloads/list.

Что касается сообщений об ошибках, с которыми вы столкнулись:

Первая ошибка:

Error: Password must be at least 20 characters.

Удивительно, но mountдлинные пароли требуются не только для шифрования, но и длярасшифровка, хотя у вас может не быть контроля над разделом для расшифровки. Вы можете обойти эту неприятность, только загрузив и отредактировав исходный код и перекомпилировав его. (Другие дистрибутивы, такие как SuSE Linux Enterprise Server (SLES), не имеют этого ограничения.)

Вторая ошибка:

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

Вам необходимо загрузить модуль ядра Cryptoloop:

$ sudo modprobe cryptoloop

потому что хотя вы установили пакет, loop-aes-utilsвынес использованием Loop-AES.

Loop-AES использует несколько модифицированных инструментов пользовательского пространства ( mount, umount, losetup, swaponи swapoff, предоставленных loop-aes-utils) и модифицированный loop.koмодуль ядра. Последние версии Ubuntu компилируют немодифицированный loopмодуль в ядро:

    $ 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 не может быть использован в Ubuntu из коробки. Вам нужно пропатчить и перекомпилировать ядро, как описано здесь:http://loop-aes.sourceforge.net/loop-AES.README. Вот почему mountвсе еще нужен Cryptoloop.

Если вы все еще получаете похожее сообщение об ошибке после загрузки, cryptoloop.koтип шифрования может быть не распознан. Например, мой Ubuntu 12.04 не распознал aes-128, но aes. SLES распознает только aes-128.

решение2

На самом деле, есть Java-приложениеhfsexplorerкоторый способен открывать зашифрованные .dmgфайлы и создавать расшифрованные .dmgобразы, которые можно монтировать в Linux.

Мне удалось создать зашифрованные .dmgфайлы в OS X 10.9.5, а затем исследовать образ с виртуальной машины под управлением Ubuntu 14.04.2 LTS. Шифрование AES-128 и AES-256 работало для моих тестовых случаев.

Вот как я создал это .dmgизображение:

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

Из виртуальной машины под управлением Ubuntu мне удалось открыть образ:

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

Он запрашивает пароль, а затем показывает содержимое образа. Есть опция (Инструменты -> Создать образ диска), которая создает расшифрованный образ диска, который затем можно смонтировать с помощью инструментов hfs из Linux.

$ mount vault_decrypted.dmg /mnt/hfs/

Даже файловые системы HFS+ Journaled работали. Единственное ограничение заключается в том, что поддержка записи в файловые системы HFS+J по умолчанию отключена в Linux.

Это показывает, что шифрование .dmgпонимается hfsexplorerи может быть реализовано в mountкоманде. С созданием незашифрованного образа .dmgв конечном итоге можно смонтировать образ в Linux.

vfdecryptМне тоже не помогло.

Связанный контент