在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 中使用's 選項加密的 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軟體包不是使用循環 AES。

Loop-AES 使用幾個修改的使用者空間工具(mountumountlosetupswaponswapoff由 提供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.

答案2

其實有Java應用程式hfs資源管理器它能夠打開加密.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也不適合我。

相關內容