2

私は、オープン ソースの暗号化ソフトウェアhttp://www.truecrypt.org/のメカニズムを理解しようとしている学生です。TrueCrypt には、プログラムで生成されたマスター キーだけでなく、ユーザーが作成したキーやキーファイルもあります。このユーザーが作成したパスワードがヘッダー ファイルのロックを解除する方法へのリンクまたは半技術的な説明が必要です。http://www.truecrypt.org/docs/?s=technical-detailsの TrueCrypt ドキュメント、[さらに投稿しますが、新しいユーザーには 2 つのリンクしか許可されていません]、およびその他の真の暗号ドキュメントを読みました。パスワードがヘッダー ファイルのロックを解除する方法の概要と、サイドバーとして、salt がレインボー攻撃の防止にどのように役立つかについての説明をお願いします。

質問に頻繁に追加して申し訳ありませんが、質問の主な核心はこれだと思います。パスワードを変更する方法を理解しようとしています。これを行うには、ヘッダー キーとマスター キーの関係を理解する必要があります。ヘッダー キーは変更できますが、特定のヘッダー キーのみがマスター キーで機能するためです。ヘッダー キーを使用してマスターを作成する必要がありますが、任意のパスワードを選択して、マスター キーでも機能するヘッダー キーを作成できます。

4

1 に答える 1

1

Truecrypt はパスワードを受け取り、それをPBKDF2経由で渡します。これはハッシュ関数に似ていますが、ブルート フォース攻撃を遅くするために、はるかに時間がかかり、遅くなります。同様のパスワード導出アルゴリズムは、bcrypt と scrypt です。これら 3 つは、パスワードの「ハッシュ化」に関して言えば、「ビッグ 3」です。パスワードの単純な SHA-1 や MD5 などは、一般的にすぎて安全ではありません。攻撃者は、SHA-1 のような単純なハッシュに対してブルート フォース攻撃を非常に迅速に実行できます。PBKDF2、bcrypt、および scrypt は非常に低速です。

ただし、理論的には、PBKDF2、bcrypt、および scrypt に対して、使用するパラメーターを使用してレインボー テーブルを作成できます (それぞれにいくつかのオプションのパラメーターがあります)。Truecrypt が使用するソルトは、それを防ぐように設計されています。

http://www.truecrypt.org/docs/header-key-derivationがこれに関する主なリファレンスです。

より具体的には、PBKDF2 とソルトの後のユーザー キーに対するヘッダー キー == ですか?

パスワードから派生したキーは、マスターキーを含むヘッダーを復号化するために使用されると思います。この方法では、マスター キーを新しいパスワードで再暗号化するだけで、パスワードを変更できます。

truecrypt.org/docs/?s=header-key-derivation は、ソルトが暗号化されていないと言っていますか? 暗号化されていないソルトをレインボー テーブルに追加して再試行するのは本当に難しいですか?

レインボー テーブルを構築するのは難しいです。力ずくで難しいと思いますが、よくわかりません。しかし、彼らは同じ球場にいます。つまり、あなたが考えている脅威モデルは、「自分のソルトを暗号化する必要がある!」ということです。実際には関係ありません。さらに、キーを導出し、ブロックを復号化し、ソルトを取得するには、ソルトが必要です。チキンとエッグ。

「512ビットのソルトが使用されている場合、つまり各パスワードに2 ^ 512個のキーがある」場合、ソルトの追加がどのように変換されるかはわかりません。

「password」というパスワードには、実際には 2^512 の組み合わせがあることを意味します: password0000001、password0000002、password0000003 など。

于 2011-06-27T15:20:58.840 に答える