3

公開鍵証明書と、社内アプリケーション用の単一の秘密鍵証明書を保存する必要があることに気付きました。

私たちのチームのメンバーは、これまで行ってきたように、X509証明書をWindows証明書ストアに保存するのではなく、データベースに保存することを提案しました。車輪の再発明は好きではありませんが、少なくともそのアイデアを検討する必要があります。これは、データをより集中化することを意味します。これは良いことだと思います。

私が見ることができる最初の障壁は次のとおりです。

  • 秘密鍵はまだどこかに保存する必要があり、それを「公開鍵」テーブルにシューホーニングするのが良い考えかどうかはわかりません。単一の要素のテーブルを設定するというアイデアも好きではありません。おそらく、秘密鍵をローカルファイルとして保持するだけですか?(たとえば、.pfxファイル)。
  • 失効リスト。おそらく、取り消された公開鍵を処理するプロセスを設定する必要があります。

私はX509証明書の経験があまりないので、私の質問は次のとおりです。Windows証明書ストアではなく、データベースに公開鍵証明書を保存するときに発生する可能性のある他の問題はありますか?

このアプリケーションは複数のビジネスクライアントサーバーに展開されるため、すべてのデータを1つの場所に保持すると、バックアップが容易になることを覚えておく価値があります。ああ、問題の社内アプリはC#で開発されています。

ありがとう!

4

2 に答える 2

3

アプリケーションの目的は何ですか?

アプリケーションですべての暗号を処理していて、PKCS#12 証明書 + 秘密鍵ファイルを参照できる場合は、データベース ルートを使用しても問題ないでしょう。

Windows Crypto API を使用して証明書にアクセスする必要がある場合は、組み込みの証明書ストアを引き続き使用することをお勧めします。スマート カードやハードウェア セキュリティ モジュール (HSM) などの外部デバイスで秘密キーを保護できるため、いくつかの利点があります。

すべてをローカル ディスクに保存する場合は、秘密鍵を保護するために多大な努力を払う必要があります。必ず強力なパスフレーズを使用し、ベスト プラクティスを使用してアプリでこのパスフレーズを保護してください。

于 2008-10-08T19:56:36.630 に答える
1

本当に必要でない限り、秘密鍵を他の場所に移動するのは気が進まないでしょう。キーが署名に使用されている場合は必要ありません。キーが復号化に使用されており、将来のためにアーカイブしたい場合にのみ必要です。この場合でも、証明書を発行した認証局は通常、アーカイブと回復を処理できます。これは、Microsoft や entrust などのより一般的な CA の場合に当てはまります。

保存する必要がある場合は、AES と、HSM (ハードウェア セキュリティ モジュール) またはスマートカードで保護できるキーを使用して暗号化します。このキーをプレーン テキストのまま (ファイルまたはレジストリに) 残さないでください。

また、生成場所と中央データベースの間で転送中のこのキーを保護することもできます。SSLまたはVPNなど

失効リストは、ほとんどの環境で認証局によって発行され、通常は LDAP またはディレクトリ、あるいはその両方に発行されます。

于 2008-10-16T14:01:53.600 に答える