Смонтировать зашифрованный 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

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

2 ответа

Решение

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

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

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

Cryptoloop может монтировать разделы или образы дисков, зашифрованные как один блок AES (это называется одноключевым режимом, см. http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/):

  /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 dmg2imgtar.gz находится здесь: http://code.google.com/p/iphone-elite/downloads/list), который расшифровывает зашифрованные образы дисков FileVault (он не будет работать с файлами устройств).

    Этот инструмент выглядит очень многообещающе, но не работал ни с одним из нескольких зашифрованных образов дисков, которые я создал Disk Utility на OS X 10.8.2 "Горный лев". Другие люди ( 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. Исходный код можно скачать здесь: 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,

На самом деле, есть 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 у меня тоже не сработало.

Другие вопросы по тегам