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


32

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

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


Не уверен, если это имеет значение, но вы пробовали aes256вместо aes-256?
Ансгар Вичерс

да - одинаковый результат для обоих - даже простое использование «aes» дает одинаковый результат
pagid

Ответы:


59

Вы не можете смонтировать раздел 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.

Петля-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.


1
+1 за подробную информацию и детали, предоставленные в ответе.
Демон Хаоса

4
Это просто феноменальный ответ. Исключительно информативный, подробный и, по-видимому, чрезвычайно хорошо проработанный. Спасибо за обмен Jaume, большое спасибо.
Chmac

3
Просто хотел отметить, что я только что попробовал это на OSX 10.10.3 с успехом. Я также обнаружил, что процесс расшифровки диска не будет прогрессировать, когда я много работаю с компьютером. Однако, когда ноутбук был подключен к электросети и подключен накопитель, я оставил крышку закрытой (полный сон), и она завершила расшифровку, пока он спал в PowerNap.
voxobscuro

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.