質問: 暗号化されたhfsをubuntuにマウントする 暗号化された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 +パーティション: headerを含みます(xxdでダンプできます) 文書化されていない方法でseveralキーを使用します( 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ディスクイメージを復号化します(デバイスファイルでは機能しません)。 このツールは非常に有望に見えますが、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のみを認識します。