暗号化された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.
だから私はそれを2回入力しようとしました、しかしそれはこれをもたらします:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
助言がありますか?
OSXでmount
のオプションencryption=aes
を使用して暗号化されたHFS +パーティションをマウントできません。その理由は、暗号化されたHFS +パーティションとボリュームがproprietary形式を使用するためです。
mount
およびencryption
で使用される基本的な復号化メソッドである Cryptoloop も Loop-AES も、その形式を理解していません。
これは私が見つけたものです:
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
でダンプできます)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ディスクイメージを復号化します(デバイスファイルでは機能しません)。
このツールは非常に有望に見えますが、OS X 10.8.2「Mountain Lion」でDisk Utility
を使用して作成した暗号化されたディスクイメージのいくつかでは機能しませんでした。他の人々( http://bre.klaki.net/blog/2011/08/17/ )は、古い暗号化された画像で成功したようです。
他の専門家がプロジェクトlibfvde
( https://code.google.com/p/libfvde )に取り組んでいます。これには、FileVault暗号化システムボリュームを読み取るためのコマンドfvdemount
が含まれています。ここでの制限要因は「システムボリューム」です。リムーバブルメディア上のパーティションはサポートしていません。興味があれば、説明はこちらです 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
は、暗号化だけでなくdecryptionにも長いパスワードを適用しますが、復号化するパーティションを制御できない場合があります。この迷惑を回避するには、ソースをダウンロードして編集し、再コンパイルする必要があります。 (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
および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
のみを認識します。
実際には、Javaアプリケーション hfsexplorer があり、暗号化された.dmg
ファイルを開いて、Linuxにマウントできる復号化された.dmg
イメージを作成できます。 。
OS X 10.9.5で暗号化された.dmg
ファイルを作成し、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
も私にとってはうまくいきませんでした。