在 ubuntu 中挂载加密的 HFS

在 ubuntu 中挂载加密的 HFS

我尝试在 Ubuntu 中挂载加密的 HFS+ 分区。

一个旧帖描述了如何操作相当好,但缺少如何使用加密分区的信息。

我目前发现的是:

  # 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

无法挂载mount在 OS X 中使用选项加密的 HFS+ 分区encryption=aes。原因是加密的 HFS+ 分区和卷使用所有权格式。

两者都不加密循环也不环路AESmount,它们是和使用的底层解密方法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+。

但在所有希望消失之前:

至于您遇到的错误消息:

第一个错误:

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 使用几个经过修改的用户空间工具(由 提供的mountumountlosetupswapon)和一个经过修改的内核模块。最近的 Ubuntu 版本将未修改的模块编译到内核中:swapoffloop-aes-utilsloop.koloop

    $ 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,但aesSLES 仅识别aes-128

答案2

实际上,有 Java 应用程序高速文件系统它能够打开加密.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

它会提示输入密码,然后显示映像的内容。有一个选项(工具 -> 创建磁盘映像)可以创建解密的磁盘映像,然后可以使用 Linux 中的 hfs 工具安装该映像。

$ mount vault_decrypted.dmg /mnt/hfs/

甚至 HFS+ 日志文件系统也能正常工作。唯一的限制是 Linux 默认禁用对 HFS+J 文件系统的写入支持。

.dmg这表明命令可以理解加密,hfsexplorer并且可能实现加密mount。通过创建未加密的,.dmg最终可以在 Linux 中安装映像。

vfdecrypt对我来说也不起作用。

相关内容