4

そのため、ドキュメントのリストを AES アルゴリズムで暗号化しています。PBKDF2 を使用して、ユーザー パスワードからキーを決定します。ストア データと IV/salt についていくつか質問があります。

書類の保管方法:

  • すべてのドキュメントを 1 つの AES キー、IV、ソルトで暗号化
  • 各ドキュメントを 1 つの AES キーで暗号化しますが、IV とソルトは分離します

IV と塩の保管/取り出し方法:

  • PBKDF2 (AES キーなど) から IV を取得し、どこかに保存する必要はありません
  • すべてのドキュメント暗号化の前に IV を生成し、プレーン テキストとして保存します
  • 塩の場合、オプションはないと思います-とにかくプレーンテキストとして保存する必要があります

私がその記事(http://adamcaudill.com/2013/04/16/1password-pbkdf2-and-implementation-flaws/)および他のいくつかから理解しているように:

  • IV とソルトをプレーン テキストとして保存しても問題ありません。
  • 異なる IV は最初の暗号ブロック (CBC モードの場合) のみを「歪める」ことができますが、すべてではないため、AES メソッドにマッシュ セキュリティはもたらされません。
4

1 に答える 1

2

各ドキュメントには、独自の IV とソルトが必要です。ソルトが異なるため、各ドキュメントの AES キーも異なります。同じキーと IV で 2 つのドキュメントを暗号化しないでください。最も一般的なモード (CBC) では、IV + キーを再利用すると、セキュリティがいくらか低下します。一部のモード (CTR) では、IV+Key を再利用すると暗号化のセキュリティが破壊されます。(CTR の「IV」は「ナンス」と呼ばれますが、通常、ほとんどの暗号化 API では「IV」と呼ばれるものに渡されます。)

通常、IV をランダムに生成し、ファイルの先頭にプレーン テキストで保存します。PBKDF2 を使用して IV を生成する場合は、別のソルトが必要になるため (とにかく保存する必要があります)、その意味はあまりありません。

また、AES の最も一般的なモード (特に CBC) は、変更に対する保護を提供しないことを覚えておく必要があります。誰かがあなたの平文が何であるかを知っている (またはそれが何であるかを推測できる) 場合、彼らはあなたの暗号文を変更して、選択した他の値に復号化できます。(これは、記事の「CBCモードで復号化するときに間違ったIVを使用すると、最初のブロックが破損する」の実際の意味です。「破損」とは「ゴミ」を意味するように言いますが、実際には最初のブロックを引き起こすことができます特定の方法で破損する。)

この問題を解決するには、認証された暗号化モード (CCM や EAX など) を使用するか、HMAC を追加します。

于 2013-10-25T18:20:26.823 に答える