役に立ちましたか?

解決

それは本当にあなたの要件によって異なります。

RSACryptoServiceProvider背後にあるキーストアは本当にCryptoAPIのキーストアです。ここでの鍵は、ユーザーの資格情報(ユーザーストアを使用している場合)またはマシンのクレデンシャル(マシンストアを使用している場合)の下に保護されたファイルシステムに格納されています。これは、適切な資格情報へのアクセス権を持つ攻撃者は、秘密鍵を抽出することができることを意味します。

このは、すべての暗号スマートカード内のキーを格納しない実装、ハードウェアセキュリティモジュール、TPMチップなどのためにtrueになります。

能力の低い攻撃者から保護するために、それゆえのCryptoAPIとRSACryptoServiceProviderはあなたに非エクスポートするための鍵を設定する可能性を提供します。これは、CryptoAPIの/ .NETは、あなたのための秘密鍵のエクスポート(しかし、知識の豊富な攻撃者はまだこの問題を回避することができるようになります)を実行することを拒否することを意味します。これを行うには、CspProviderFlags.UseNonExportableKeyで鍵を生成します。

また、確認のために、ユーザと秘密鍵が使用されるたびに、オプションの追加のパスワードを聞いてきますCspProviderFlags.UseUserProtectedKeyを使用することができます。

scroll top