Змонтувати зашифровані 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?
Ansgar Wiechers

так - однаковий результат для обох - навіть використання "айс" дає однаковий результат
жорстокий

Відповіді:


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 UtilityOS 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#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.