私はコンソールアプリケーションを開発しています。このアプリケーションは、自己署名証明書を生成し、それを現在のマシンの証明書ストアにインストールします。必要な手順は次のとおりです:-
- 証明書を生成する
- pfxファイルを作成します
- pfxファイルをインストールします
これらの手順では、秘密鍵とpfxファイルを保護するためのパスワードが必要になります。ただし、これらのパスワードは、exeの実行中にのみ使用されます。乱数生成アルゴリズムを使用してパスワードを自動生成する必要がありますか、それともユーザーからの入力としてパスワードを受け入れる必要がありますか?
両方のシナリオに関連するセキュリティの問題は何ですか?
すべての返信をありがとう。パスワードの有効期間は、pfxファイルが生成されるまでです。プログラムは、Windows証明書ストアにインストールした後、pfxファイルを削除します。このようなシナリオでは、ユーザーからパスワードを受け入れることは、自動生成よりもセキュリティ上の利点を提供しないと思います。
この質問にさらに付け加えたいと思います。
プログラムでパスワードが利用可能になったら、このパスワードをその存続期間中どのように保護しますか?私は.netを使用しており、.netの安全な文字列について読んだことがあります。しかし、安全な文字列は、問題を解決しない文字列から構築する必要があります。
コードスニペットは次のようになります
文字列パスワード=AutoGenerateOrGetPassword(); GenerateCertificateAndInstall(password);
存続期間中にメモリに保存されているパスワードをどのように保護しますか?