6

認証付き暗号化サービスを提供する.Netで使用するマネージDLLを提供することに興味があります。DLLは、WPFプログラムまたはASPアプリケーションで使用される場合があります。Microsoftの暗号モデルとストリームモデルに関連する質問がいくつかあります。

認証された暗号化モード(CCM、CWC、EAX、GCMなど)は通常、2つのアーティファクトを生成します。1つは暗号文で、2つ目は認証タグです。暗号化のストリーミングはかなり簡単ですが、いくつかの問題が発生する可能性があります。たとえば、ヘッダーの構築方法と認証済み暗号化モードが認証タグを生成する方法が原因で、CCMをストリーミングできません。

復号化はストリーミングできないため、注意が必要です。すべての暗号文が使用可能である必要があり、その暗号文は復号化される前に認証タグを使用して検証される必要があるため、復号化をストリーミングできません。

認証付き暗号化モードをブロック暗号に適合させて、ブロック暗号で使用できるようにするにはどうすればよいCryptoStreamですか?それも可能ですか?おそらく、Microsoftがそれを提供しないのはなぜですか?

マイクロソフトには推奨事項がありますか?たとえば、大きなメッセージを小さなメッセージまたはユニット(それぞれに独自のタグが付いている)に分割しますか?または、MSは、メッセージとタグ全体が入力されるまでバッファリングすることを推奨していますか?

マイクロソフトはどこにタグを「置く」ことを推奨していますか?ストリームの開始時に?ストリームの終わりに?

いくつかの役立つ参考資料:

4

2 に答える 2

5

2010 年に、Microsoft CLR セキュリティ チームは、認証された対称暗号化、特にGCMを含むSystem.Security.Cryptography の拡張機能をリリースしました。なぜ彼らはそれ以来何もしなかったのか、私にはわかりません。

しかし、あなたの質問は「マイクロソフトは何をしますか?」に重点を置いているので、そこは... 彼らはそれをしました.

于 2013-03-19T13:10:10.207 に答える
2

GCM などのストリーム暗号での認証済み暗号化バードには実際には当てはまらない仮定を使用しています。つまり、検証前に復号化できないということです。これは、たとえば、パディング オラクルが適用されるときに MAC によって認証される CBC モードの AES に当てはまります。たとえば、GCM モードは、基になるストリーム暗号が CTR モード暗号化であるため、パディングを実行しません。つまり、パディングを適用する必要がないため、パディングオラクルは適用されません。

もちろん、認証される前に復号化されたデータを使用してビジネス ロジックを実行することは非常に賢明ではありません。検証されていないデータに触れるコードはリスクが高いと見なし、静的に分析して監査する必要があります。ビジネスロジックを先に実行したい場合は、実行する前に認証されることを確認する必要があります。それをより小さな部分に分割することは確かに理にかなっています.

明らかに、これらは私の推奨事項にすぎません。Microsoft による推奨事項: Google または (絶対に禁じられている) Bing を使用しても見つからない場合: Microsoft に問い合わせてください。ここにいる誰も彼らの代わりに話すことはできません。

于 2013-03-20T00:32:15.163 に答える