EN JA
GBDE(4)
GBDE(4) FreeBSD Kernel Interfaces Manual GBDE(4)

名称

gbdegeom に基づくディスク暗号化

書式

options GEOM_BDE

解説

注意: このコードはまだ適格な暗号使用者による多くのレビューと分析を受け取っていません、したがって、わずかに疑わしい実験機能であると見なされるべきであることを承知してください。

私たちは、現時点ではオンディスクフォーマットがレビューかバグ修正に対応して変更しないことを保証できないので、将来のために呼び出されるかもしれない dump(8)/ restore(8) ベースの移行を準備するように潜在的ユーザにアドバイスします。

この機能の目的は“冷たい”記憶デバイスの内容への高度なアクセスの拒否を提供することです。

コンピュータが立ち上がって稼働している間に妥協し、 そして 記憶デバイスが有効なパスフレーズで活発にアタッチされオープンされるなら、この機能は記憶デバイスの内容へのどんな保護もアクセスの拒否も提供しないことを承知してください。

他方では、デバイスが“冷たい”なら、攻撃者によって有効なパスフレーズがないとき内容へのアクセスを得ることによる手ごわい挑戦が示されるかもしれません。

データへのアクセスを得るためには、 4 つの暗号のバリアを通過しなければなければなりません、そして有効なパスフレーズだけけがこのアクセスをもたらします。

パスフレーズが入力されるとき、それは 512 ビット“キー素材 (key-material)”に SHA2 と共にハッシュ化されます。これは、ユーザによって選択された予測できない長さの一般的にすべて ASCII のパスフレーズから暗号化された有用なキーを生産する方法です。

最初のバリア: "ロックセクタ"の位置。

初期化の間、最大 4 つの独立しているが互いに承知している“lock”セクタはランダムに選ばれた位置のデバイスに書き込まれます。これらのロックセクタは 2048 のランダムビットのマスタキーとレイアウトジオメトリ (後で詳細に述べる) 多くのパラメータを含んでいます。全体のデバイスが等方性のデータを含むので、ロックセクタを含むバイトのシーケンスを素早く決定するためのショートカット (手っ取り早い方法) はありません。

ロックセクタを位置付けるためには、“メタデータ”と呼ばれる小片のデータとキー素材が利用可能でなければなりません。キー素材は、対応するロックセクタが位置しているデバイスでバイトオフセットを含む、メタデータを復号化します。メタデータが無くなるか、または利用可能でないがキー素材が手元にあるなら、デバイスのそれぞれのバイトオフセットがロックセクタのデータを含むかどうかチェックされるところで総当たりのスキャンをすることは実行可能でしょう。

2 番目のバリア: キーマテリアルを使用するマスタキーの復号化。

ロックセクタはロック構造体のフィールドをコード化するアーキテクチャ中立のバイトシーケンスで暗号化されたコピーを含んでいます。コード化されたこれらのフィールドの順序はキー素材から決定されます。コード化されたバイトストリームは CBC モードで 256 ビットの AES で暗号化されます。

3 番目のバリア: セクタキーの復号化。

各セクタにおいて、ロックセクタとセクタ番号からの“salt (塩)”で MD5 ハッシュはマスタキーの部分集合の“cherry-pick (入念に選ぶ)”に使用されます。マスタキーは、セクタキーを暗号化するキー“kkey”を生成する MD5 を通してセクタオフセットと共にハッシュされます。

4 番目のバリア: セクタデータの復号化。

セクタの実際のペイロードは、単一使用のランダムなビットキーを使用して CBC モードで 128 ビットの AES で暗号化されます。訳注: ペイロードはヘッダ部を除いたデータの本体。

逆のパスを調査

攻撃者がプレーンテキストの量を知っていて、デバイスでの対応する暗号化されたセクタの場所を管理すると仮定すれば、他のセクタのプレーンテキストコンテキストへのアクセスを得ることは、困難な仕事です:

最初に、攻撃者は暗号化されたセクタと使用されたセクタキーの知られているプレーンテキストに由来しなければなりません。これを書いている時点で、2^80 の操作だけでオープンされた AES を破ることが多分可能であるかもしれないと推測されます。たとえそうでも、それは非常に不可能な仕事です。

1 つ以上のセクタキーを用意して、我慢強い攻撃者はセクタキーを暗号化するために使用されるキーを見つけるためにセクタキーと暗号化されたセクタキーを使用して、本質的には同じ課題を体験します。

これらの“kkeys”の 1 つ以上で武装することによって、攻撃者は MD5 によって背走しなければなりません。攻撃者が、MD5 への入力が 24 バイトであったことを知っていて、セクタ番号からこれらの 8 バイトの値を持っていたとしても、攻撃者はまだ 2^128 に等しいありそうな可能性に直面しています。

首尾よくそれを行うには、攻撃者は、首尾よくマスタキーの最大 16 バイトを発見しましたが、どの 16 バイトで kkey を導くこれらの知られているバイトのどれかが他のどのセクタにあるかまだ気づきません。

最後のビットを解くために、攻撃者は、マスタキーへのインデックスを復旧するためにロックセクタに格納された 16 バイトの乱数ビット salt (塩) を推測しなければなりません。

この攻撃を試みることさえ必要なマシンパワーへのアクセスできるどんな攻撃者も、しらみつぶしのパスフレーズの試みであきらめるしかありません。

ポジティブ拒否機能

上記の攻撃の不実行可能性を考えると、パスフレーズへのアクセスを得ることが攻撃者には最も重要なことであり、多くのシナリオでは、パスフレーズを暴くために過度の苦難が個人に加えられることが想像できます。

“悪い側面”の機能として、データへのアクセスがまだ拒絶されているけれども、パスフレーズが承認されるような方法でマスタキーを破壊するための機会の瞬間を与える方法をユーザに提供します。

実用的なアナロジ (類推)

人々にとってだれが暗号を考えるかは、保護されたデバイスのためのキーとなるスキームのアナロジ (類推) を発行する作者が謙虚にシリコン昇華を見つめるよりもう少し興味深いだけです。

厚さ数 100 メートルの鉄鋼の壁がある金庫でのインストールを想像してください。この金庫は、複雑さが 600 桁の数に匹敵するような、単一のキーを使用してうまくアクセスすることができるだけです。

このキーは 4 つのコピーが存在しています。 4 つの小さい金庫の 1 つにそれぞれのキーを格納します。複雑さが 80 桁の数に匹敵するようなユニークなキーでそれぞれのキーを開くことができます。

マスタキーに加えて、それぞれの 4 つの金庫は、またそれらがいつ閉じられるかを検出するのが実際に不可能である、金庫の外側でランダムに選ばれた場所に位置しているすべての 4 つのキーの金庫の正確な位置を含んでいます。

最終的に、各金庫はそれぞれの 4 つの金庫の中にダイナマイトの棒に配線される 4 つのスイッチを含んでいます。

これに加えて、キーの金庫をオープンした後のキーホルダは (それ自体のを含む) 任意のキーの金庫のマスタキーと再キーのコピーをインストールすることがでます。

通常の使用では、ユーザはキーを持っている金庫をオープンして、マスタキーを取り出して、金庫にアクセスします。終ったとき、ユーザは再び金庫にマスタキーを保管します。

keyholder-X がある理由で keyholder-Y を疑うなら、それには、それ自体の金庫を開けるオプションがあり、金庫 Y でスイッチの 1 つをはじき、ダイナマイトの棒を爆発させます。これは、その金庫でマスタキーの抹消して、その結果、 keyholder-Y に金庫へのアクセスを拒絶します。

機能が攻撃を受けるならば、keyholder のいずれも、 4 つすべてのダイナマイトの棒を爆発して、その結果、金庫へのアクセスが keyholder と攻撃者と同様に誰にでも拒絶されるのを確実にすることができます。機能が敵に落ち、keyholder が彼の個人的なキーを強制的に適用するならば、彼の金庫の内容が金庫にアクセスを譲らないで、敵ができれば個人的にそれ以上の圧力を加えることを実感することは金庫へのアクセスを与えないことを確実にすることができます。

ここで行われる最終的なポイントはマスタキーを含み、適合していると思える預けられるか隠されたこれらのキーの 1 つのデタッチされたコピーを作ることは完全に可能であるということです。

ステガノグラフィ (電子迷彩技術) サポート

デバイスが初期化されるとき、暗号化されたデータをデバイスの一つの連続した領域に制限することは可能です。慎重に設定されるなら、この領域はシステム操作によって後に残される、ある種の有効データかランダムなくずに見せかけるかもしれません。

デバイスのこの特定の領域が、事実上暗号化されたデータを格納するために使用されランダムなくずだけではないことを検証することが不可能である存在のもっともらしい否認権を提供するためにこれを使用することができます。

これの主な障害はソルト (塩) の価値があるどんな暗号化アルゴリズムからの出力が少なくともある種の構造を含むか、またはバイトシーケンスを識別する事実上いかなる他の種類のデータの中で目立って突出するように完全にランダムに見えるかということです。

ELF のような特定のファイル形式は複数の区別されたセクションを含みます、そして、大きな実行形式のファイルシステムでパーティションを含んでいるような方法でデバイスがちょうどよいものを位置付けることは可能でしょう。大きな実行形式、 (“私のカーネルのバックアップコピー”) は、ロードされない ELF セクションがデバイスに連続してレイアウトされ、その結果 gbde に暗号化されたデバイスを含むためにに使用することができます。

gbde に命令する能力は別として、それらのセクタがそのようなセットアップを作成するサポートは行われません。

配備提案

個人的な使用では、マスタキーのバックアップコピーを作るか、またはバックアップとして 4 つのキーの 1 つを使用することは賢明です。このキーの保護に適合することは利用者自身、利用者のローカルな周囲の事情、と利用者の想像、次第です。

会社または制度上の使用において、マスタキーのコピーを作って、利用者の手段で保護するものは何でも管理下に置くことを強く勧めます。利用者がこれを行わないなら、不満な従業員は“偶然に”利用者のデータへのアクセスを拒絶することができます。 (従業員はまだ故意に別の暗号化スキームをデータに適用することによって、アクセスを拒絶することができますが、その問題には技術的な解決法がありません。)

暗号化の強さ

このセクションは gbde の暗号の強さに貢献する特定の要素をリストしています。

ペイロードは、128 ビットのランダムの単一使用のキー (“the skey”) を使用して CBC モードの AES で暗号化されます。 AES はよく文書化されています。

IV はセクタの暗号化で、キーがランダムなビットで単一の使用であるので、 IV は AES のセキュリティに何も加えないことの仮定使用しません。

ランダムキーは、予測できないバイトを生産においてちゃんとしたジョブを行うことを確信している arc4rand(9) で生成されます。

skey は暗号化されたペイロードデータの位置から得ることができる位置のデバイスに格納されます。格納されたコピーは、16 バイトのランダムビットの静的なソルト (塩) とセクタオフセットを越えて MD5 ハッシュの出力によって選ばれたマスタキーの部分集合から来ている 128 ビットのキー (“the kkey”) を使用して CBC モードで AES で暗号化されます。 (2048 ビットの中から 16 バイトの) マスタキーの最大 6.25% は、 kkey を生成するセクタオフセットで MD5 を通して選択され、ハッシュされます。

コピーのマスタキーの最大 4 つのコピーと関連しているジオメトリ情報はは静的なランダムに選ばれたセクタでデバイスに格納されます。セクタの内側の正確な位置はランダムに選ばれます。フィールドがコード化される順番はキー素材に依存します。コード化されたバイトストリームは、256 ビットのキー素材を使用して CBC モードの AES で暗号化されます。

キーの素材は 512 ビット SHA2 を使用するユーザによって入力されたパスフレーズに由来します。

チェーンは、通常、貧弱なパスフレーズである、最も弱いリンクより強くはありません。

関連項目

gbde(8)

歴史

このソフトウェアは、 DARPA CHATS 研究プログラムの一環として、 DARPA/SPAWAR 契約 N66001-01-C-8035 (“CBOSS”) の下で Poul-Henning Kamp と NAI Labs、 Security Research Division of Network Associates, Inc. によって FreeBSD プロジェクトのために開発されした。

作者

Poul-Henning Kamp <phk@FreeBSD.org>
October 19, 2002 FreeBSD