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+ パーティション:
- 含まれるものヘッダ(ダンプするには
xxd
) - 用途いくつかの文書化されていない方法でキーを複製する(http://events.ccc.de/congress/2006/Fahrplan/attachments/1244-23C3VileFault.pdf)
- OS X 10.7 "Lion"以降では、CoreStorage論理ボリュームグループにラップされています(
man diskutil
またはを参照)。https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/diskutil.8.html) 用途AES-XTS:
$ diskutil coreStorage list (...) +-> Logical Volume Family D1C4665F-EAC8-4DAB-B392-634842A59559 ---------------------------------------------------------- Encryption Status: Unlocked Encryption Type: AES-XTS (...)
これは Cryptoloop や Loop-AES ではサポートされていないようです。
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) などの他のディストリビューションには、この制限はありません。)
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 は、いくつかの変更されたユーザー空間ツール (によって提供されるmount
、umount
、losetup
、swapon
および) と変更されたカーネル モジュールを使用します。最近の Ubuntu バージョンでは、変更されていないモジュールがカーネルにコンパイルされます。swapoff
loop-aes-utils
loop.ko
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 にマウントできる復号化されたイメージを作成できます。
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
私の場合も効果がありませんでした。