31

Я пытаюсь смонтировать зашифрованный раздел 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

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

2 ответа2

55

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

Ни Cryptoloop, ни Loop-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 Utility в OS 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/Mounting#Mouting_the_system_volume. Исходный код можно скачать здесь: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 .

14

На самом деле, есть 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .