web-dev-qa-db-ja.com

完全性攻撃と保管時の暗号化

AES-GCMアルゴリズムは機密性だけでなく完全性も提供します。完全性は全体的にセキュリティの重要な部分であることを理解していますが、起こり得る攻撃に関して考えるときは常に、POODLEのような転送中の暗号化に対する攻撃のみです。

AES-GCMおよび静止時の暗号化に適したユースケースはありますか?

1

もちろんです。保管されているデータはおそらく最終的に何かに使用され、その使用が攻撃者の影響を受けないようにする必要があります。 ほとんどデータの整合性に対する攻撃は、攻撃者が少なくともプレーンテキストの構造と、理想的にはコンテンツの一部を知っている場合に最もよく機能するものです(たとえば、HTTPSでは簡単ですが、既知のオフセットなどを使用する多くのファイルタイプ)。

そのような攻撃の容易さは、多くの要因に依存します。あなた(攻撃者)は暗号文への書き込みアクセス権を持っていますか?攻撃者は、ストリーム暗号(ビットを反転するのは簡単です。暗号テキストの各変更は、副作用のないプレーンテキストの変更に直接対応します)またはブロック暗号のようなものを使用しましたか?約、あなたはおそらくファイルの他の部分をスクランブルするでしょう?データの長さを編集せずに希望の変更を加えることができますか(おそらく解読が失敗します)?

この種の攻撃は、転送中のデータに対しても機能することに注意してください。パディングオラクルなどを利用すると、暗号化されたデータが復号化される可能性がありますが、目的を達成するには、データをわずかに変更し、変更された暗号文を送信するだけで十分な場合があります(またはさらに便利な場合もあります)。

いくつかの例:

  • レポートやメモなどを含む暗号化されたファイルを攻撃する可能性があります。文書の最初はプレーンテキストで見ました。 「私たちは提案を検討しましたが、フィリペ・ロドリケスを宣伝しません...」のような文で始まりました。ドキュメントへの正しいオフセットを判断し、テキストエンコーディングを推測して、XOR文字列「できない」と「shall」を適用し、それを適用するXOR =文書を編集してプロモーションを提供するようにマスクします。
  • あなたは投票システムを攻撃しています。そこでは、集計された(まだ報告されていません)結果が32ビット整数を使用して暗号化されて保存されています。希望する候補者/職位が失われる可能性が非常に高いこと、およびおおよその結果数(ポーリングなどに基づく)がわかっていること、およびファイル内のデータの構造(各候補者の結果が格納される場所)がわかっていること。結果を読んだり、正確に設定したりすることはできませんが、適切な高次(重要度)の数ビットを反転させることで、候補者の数を大幅に増やすことができます。 (転送中のデータの同等物は、投票の適度に大きな部分(たとえば、ランダムに55%)を反転させてから集計することになるため、結果が次のようになり、優先候補から歪められるはずです。驚きの勝利。)
  • 起動できる暗号化されたファイルシステム(ある種のハードウェアモジュールに格納されているキーを使用したパスワードなしの暗号化)を使用してマシンを攻撃していて、低い特権のユーザーにはログインするが、高い特権にはログインできない-特権1。ディスクの暗号化によりオフライン攻撃を防ぐことができますが、どこにあるかがわかっている場合は/etc/shadow(または同等のもの)は、それがどのように構造化されているか(読み取ることができない場合でも)、ユーザーIDを0に変更するなどの方法で実行できます(自分のIDがわかっていて、ファイルのどこにあるかがわかります)現在の値と設定する値のXORマスクを使用して関連するバイトをXORマシンがウェイクアップしたときに設定されます。その後、起動して以前の低特権アカウントにログインできます。ちなみに、この種のことは、通常、認証タグを保存する場所がないため、ディスク暗号化に対する本当のリスクです。そのため、ほとんどのディスク暗号化には強力な整合性保護がありません。これは特に、パスワードなしのディスク暗号化(TPM専用モードなど)の弱点の1つです。
3
CBHacking