web-dev-qa-db-ja.com

7 Zipで報告された弱いIVの影響は何ですか?

7-Zipが弱い方法で IVs を生成することは 報告 でした。

これの実際の影響は何ですか?送信した過去のZipファイルについてお伺いします。これが修正されるまで、今後7 Zipを使用する予定はありません。

私が正しく理解していれば、7 ZipはAES-CBCを使用しているため、大きな影響はありません。ユーザーが同じパスワードを繰り返し使用したとしても、IVの少量のランダム性で暗号攻撃を防ぐことができます。

16
paj28

CBCモードでは、 初期化ベクトル(IV) は2つのプロパティを満たす必要があります。

  • Uniqueness:ここでは、IVは time(NULL) および gettimeofday() のために非常にユニークである可能性が高い=これは基本的にシステムの現在の時刻です。 CPUサイクルが関与しているため、Windowsプラットフォームではさらに可能性が高くなります。
  • 予測不可能性:このプロパティは、ユーザーが暗号化するメッセージを選択できる場合は必須ですが、ここではそうではありません。

IVが秘密である必要はないことに注意してください。実際には、暗号文の最初に平文として追加されることがよくあります。攻撃者がIVを回復できるという事実は脆弱性ではありません。IVは暗号化が行われた後は公開されていると想定されます。上記の2つのプロパティのみが必須です。

IVの生成は間違いなく(主にIVのサイズに対して)良くありませんが、OPの反応は誇張されており、影響はそれほど大きくありません。実際にはかなり小さいです。

より大きな影響は、攻撃者が同じマイクロテキスト内で暗号化された2つの暗号文を認識できることですそれらが同じマイクロ秒以内に暗号化されている場合に限り、同じキー。この状況でも、Windowsプラットフォームでは、CPUサイクルが同じである可能性は非常に低いため、IVは異なります。

あなたの懸念に答えるために:いいえ、この脆弱性はこの特定のケースでは大きな影響を及ぼしません。

17
Faulst

7-ZipはAES-256サポートを追加しました(7z形式)バージョン「2.30 Beta 25」( 2003年1月 )と、バージョン「4.48 beta」( 2007年6月 の「ランダム」IVに必要なサポート=)。

AESはブロック暗号です。つまり、暗号化中に、1ブロックの非暗号化データ(プレーンテキスト)を1ブロックの暗号化データ(暗号テキスト)に「変換」します。追加の拡張なしで、つまり ECBモード の場合、これにより、平文と暗号文の間、さらには両方の個々のブロック間で確定的なマッピングが作成されます。

CBCモード は、最初に平文の各ブロックを「ランダム化」することにより、このスキームを拡張します。これを行うには、プレーンテキストブロックと前のブロックの暗号文をXORします。したがって、結果として得られる平文ブロックの暗号文は、キーだけでなく、先行するすべてのブロックにも依存します。

最初のブロックには前のブロックがないため、 初期化ベクトル(IV) を使用します。 AESの場合、IVには128ビットまたは16バイトの「ランダム性」が必要です。

暗号化中にIVがまったくない場合でも、キーを知らなければ、暗号化されたファイル(何年も前に送信した可能性がある)を単純に復号化することはできません。しかし、あなたが観察し、試みた暗号文から知識を推測することは確かに可能です chosen-plaintext attack

ここで7-Zipで発生したように見えることは、特定の攻撃から完全に保護するわけではないことを意味しますが、暗号化テキストを簡単に復号化することはできません。それでも、この誤った実装を使用すると、攻撃(IVが保護することを目的としています)の推測と適用がはるかに簡単です

ちなみに、この問題が1週間後に報告されていれば、7-Zipに バグ報奨金 があり、350ユーロから15,000ユーロの報奨金が 欧州委員会のFOSSA 2プログラム 。しかし、これができるだけ早く報告されたことは素晴らしいことです。

3
caw