2017-11-09 1 views
2

私はBotan document、 を読んでいた私は、次の注意事項に出くわした:MACが検証されない場合は、復号時にはAEADモードセキュリティ

が、仕上がりはIntegrity_Failureのインスタンスをスローします。これが起こった場合、更新の呼び出しを介して以前に出力されたすべての平文は破壊されなければならず、攻撃者がその効果を観察することはできません。

これが決して起こらないことを保証する簡単な方法の1つは、更新プログラムを呼び出さず、メッセージ全体を単一のバッファにマーシャリングし、解読するときにその呼び出しを終了することです。

この状況は、攻撃者がファイルにアクセスすると安全でないことを意味しますか?

私は誤解したことがありますか?

ありがとうございます。

+0

「この状況が解読に表示されます」とはどういう意味ですか?どのような状況が不確実ですか? –

+0

@MaartenBodewes文書によると、攻撃者が解読中に以前に出力された平文を観察するのを防ぐ必要があります。攻撃者はこの復号プロセスをシミュレートして情報を得ることができますか? –

+0

いいえ、それは言っていませんでした。妥当性検証が失敗した場合、平文は「攻撃者がその影響をどのようにも観察することはできません」。つまり、不正なデータに対処すると、攻撃者は結果として何かを習得する可能性があります。攻撃者が状況から完全に逃れるのは、アプリケーションによって異なります。復号化されたデータを見る前に整合性が保持されていることを確認してください。整合性チェックの前にAPIがデータを生成するということは心配ですが、時にはこれを必要とします。 –

答えて

2

この警告のポイントは、検証する前に情報を信頼できないことです。基本的なAEAD暗号のモードは通常CTRモードです(他のモードも同様に影響を受けます)。したがって、攻撃者は、暗号文のエラーを導入して、同じ場所の平文のエラーに変換することができます。ほとんどのAEAD暗号は、その下にCTRモードを使用しているため、攻撃者はそのようにプレーンテキストの特定のビットを反転できます。

攻撃者は、 - now invalid - データが処理されたときに特定のエラーが発生するのを見て、平文について知ることができます。これは警告です。まず、復号化されたデータを処理する前に完全性と信頼性を確立する必要があります。

もちろん、これは通常、データが検証されるまでキャッシュすることを意味します。そのため、最初にバッファを作成し、それに暗号文をロードする方が理にかなっています。良いAPIをお持ちの場合は、平文で上書きすることができますので、ストレージスペースを2回割り当てる必要はありません。

タグが有効でない場合は、データへのアクセスを確実に削除している限り、ディスクに平文を保存することはできます。たとえば、テンポラリファイルにデータを格納し、を確認した後、正しいファイル名に変更することができます()。あなたがメッセージの整合性と信頼性を確認することができますように、すべてが言った


は、なし、AEADモードでは、操作の他、非認証モードよりより安全です。しかし、あなたはまだ暗号を間違って使うことができます、そして、これがすべてです。

関連する問題