この質問に基づいて、Bouncy Castle のシークレットを扱う際に次の問題が懸念されます。
- 暗号化 (メモリ ダンプまたはページ キャッシュの場合)
- メモリにピン留めする
- 読み取り専用としてマークする機能 (それ以上の変更を防ぐため)
- 定数文字列を渡すことを許可しないことによる安全な構築
- コンパイラの最適化 (リンクされた記事re: ZeroMemory マクロの注を参照)、ただし、.NET および GIT からのビルドに適用されるため
質問
- Bouncy Castle は、.NET で必要な構造を使用して安全に構築できるようにしていますか? (SecureString または同等の直接操作)
- ライブラリ内の必要な場所全体で、SecureString (または同等の) のカバレッジが持続しますか?
- コンパイラの最適化が有効にならないようにするには、Bouncy Castle を特定の方法でコンパイルする必要がありますか?