1

私はコンソールアプリケーションを開発しています。このアプリケーションは、自己署名証明書を生成し、それを現在のマシンの証明書ストアにインストールします。必要な手順は次のとおりです:-

  1. 証明書を生成する
  2. pfxファイルを作成します
  3. pfxファイルをインストールします

これらの手順では、秘密鍵とpfxファイルを保護するためのパスワードが必要になります。ただし、これらのパスワードは、exeの実行中にのみ使用されます。乱数生成アルゴリズムを使用してパスワードを自動生成する必要がありますか、それともユーザーからの入力としてパスワードを受け入れる必要がありますか?

両方のシナリオに関連するセキュリティの問題は何ですか?

すべての返信をありがとう。パスワードの有効期間は、pfxファイルが生成されるまでです。プログラムは、Windows証明書ストアにインストールした後、pfxファイルを削除します。このようなシナリオでは、ユーザーからパスワードを受け入れることは、自動生成よりもセキュリティ上の利点を提供しないと思います。

この質問にさらに付け加えたいと思います。

プログラムでパスワードが利用可能になったら、このパスワードをその存続期間中どのように保護しますか?私は.netを使用しており、.netの安全な文字列について読んだことがあります。しかし、安全な文字列は、問題を解決しない文字列から構築する必要があります。

コードスニペットは次のようになります

文字列パスワード=AutoGenerateOrGetPassword(); GenerateCertificateAndInstall(password);

存続期間中にメモリに保存されているパスワードをどのように保護しますか?

4

2 に答える 2

1

特定のパスワードを自動生成するか使用するかにかかわらず、大きなセキュリティ レベルの違いや問題はありません。

ただし、自動生成されたパスワードを使用すると、一定レベルのパスワードの複雑さが保証されます。これにより、ブルート フォース攻撃の可能性が減少します。

特定のパスワードを使用すると、誰かが (物理的に) パスワードを知っていることになります。ユーザーが入力したパスワードがどれほど複雑になるかはわかりません。パスワードに「AAAA」を指定すると、「W0R!$%3D」に指定されたパスワードよりも安全性が低くなる可能性があります。

自動生成された方法で行われた場合、自動生成されたパスワードを表示しますか?

あなたのソフトウェア要件に従って行くことをお勧めします。これが要件に記載されていない場合は、ユーザーが自動生成するかパスワードを入力するかを選択できるようにします。

于 2011-01-01T10:41:09.507 に答える
0

インポート後にpfxファイルが削除されていることを確認した場合、「パスワードの受け入れとパスワードの自動生成」の議論は、あなたの質問の文脈では無意味だと思います。「マシンの証明書ストア」にインポートされるまでしか存在しません。

pfx ファイルをバックアップするか、電子メール/USB スティック経由で転送する必要がある場合は、「ユーザーからパスワードを受け入れる」バリアントを好みます。パスワードの入力フォームを提供し、パスワードが強力ではないことを確認するためのロジックを実装する方が、それを整理するよりも簡単だからです。ユーザーは、2 つの独立したチャネルを介して pfx ファイルと対応するパスワードを取得します。1 通のメールで pfx + パスワードを送信することは、パスワードをまったく持たないのと同じくらい安全です。

于 2011-01-01T11:51:24.273 に答える