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.

そこで 2 回入力してみましたが、結果は次のようになります。

  ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel

助言がありますか?

答え1

あなたマウントできませんOS XでHFS+パーティションを暗号化するには、mountのオプション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+ を読み取ることができません。

しかし、すべての希望が失われる前に:

  • 暗号化の専門家グループが作成しました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/) は、古い暗号化された画像では成功したようです。

  • 他の専門家がプロジェクトに取り組んでいますlibfvdehttps://code.google.com/p/libfvde) には、 fvdemountFileVault で暗号化されたシステム ボリュームを読み取るコマンドが含まれています。ここでの制限要因は「システム ボリューム」です。リムーバブル メディア上のパーティションはサポートされていません。興味があれば、説明はここにあります: 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) などの他のディストリビューションには、この制限はありません。)

2番目のエラー:

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だからこそ、mountCryptoloop が必要なのです。

ロード後も同様のエラー メッセージが表示される場合は、cryptoloop.ko暗号化タイプが認識されていない可能性があります。たとえば、Ubuntu 12.04 は を認識しませんでしたaes-128が、aes.SLES は のみを認識しますaes-128

答え2

実はJavaアプリケーションがあるhfsエクスプローラ暗号化されたファイルを開き.dmg.dmgLinux にマウントできる復号化されたイメージを作成できます。

OS X 10.9.5 で暗号化されたファイルを作成し、Ubuntu 14.04.2 LTS を実行している仮想マシンからイメージを調べることができました.dmg。私のテストケースでは、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私の場合も効果がありませんでした。

関連情報