2011-07-28 7 views
0

おはよう!PKI:証明書失効ステータスとその設定を確認する手順

私のasp.net Webアプリケーションでは、ファイルの受信デジタル署名をチェックする必要があります。

SignedCms.CheckSignature(false)またはSignerInfo.CheckSignature(false)(C#)を呼び出すと、私はそれを行います。

このような呼び出し中の署名者の証明書が正しく失効されていることを確認し、システム設定が正しいことを確認し、このプロセスを自分でクリアする必要があります。

到着する署名者の証明書が多量のCAである可能性があります。したがって、署名者の証明書には、CAのOCSPサービスまたはCAのCRLサービスへの参照が含まれる場合と含まれない場合があります。

私は、システムが、このような方法で、失効をチェックしたい:

証明書がCAのOCSPのWebサービスへの参照を持っている場合、証明書は、CAのオンラインCRLサービスへの参照を持っている場合、システムはCA、ELSE に要求を行いますシステムはCRLをダウンロードして使用します。 ELSE システムはローカルCRLを使用します。

あなたは、私の質問に答えてもらえ:

  1. 私は必要な動作を説明し、システム設定を見つけることができるか(どこ)? (この動作は変更可能か固定ですか?)
  2. CAのCRL Webサービスへの参照がある場合は、定期的にCAのCRLをダウンロードしてインストールする必要があります。また、システムのダウンロードに依存して自動的に使用する必要がありますチェックのためにCRLが必要ですか?

ありがとうございます。

答えて

1

手順はRFC 5280に記載されており、非常に複雑です。簡単に言えば、あなたは次のようにします。問題の証明書の場合

  1. を、それがCRLに対して証明書を確認し、署名、有効期間とキーの使用
  2. です確認してください。
  3. 証明書とOCSPの照合
  4. CRLまたはOCSPチェック中に検出された証明書ごとに、ステップ1〜3を実行します(複数のCRLとOCSPチェックを含むことがあります)。

ここでは非常に複雑なポリシーチェックについては言及していません。

私たちのSecureBlackboxライブラリ用の証明書検証ツールを実装するのに約1ヶ月かかりました(ただし、CRLおよびOCSPクライアントからこれらのCRLの管理に至るまですべてがあります)。 OSの手段を使って証明書のチェックを実行する場合は、そのジョブを実行する既存の機能を探している必要があります。

+0

+1、こんにちはユージーン:私はあなたに質問するのが好きです。CRLとOCSPの両方で取り消しチェックを実行することを推奨しているのはなぜですか? 1つでは不十分ですか? – Raj

+0

@Raj OCSPはリアルタイムであるためCRLを置き換えることができますが、セキュリティに関してはあまりにも多くのことを行うことはできません。一般に、両方を処理する必要はなく、ショートカットが必要な場合は、OCSPが優先されます。 –

0

あなたはCRLキャッシングについてより具体的には、CRLの内部を取得する上でいくつかの有用な情報を見つけることができますcrl-caching-in-windows-and-little-bit

窓のCryptoAPIがで失効を扱うの世話をするだろう、私はここで考えています2つの方法がありますが、それ自体は自動的にキャッシングを含みます。しかし、ここで問題となるのは、cryptoAPIは、キャッシュ内の現在のCRLが期限切れになった場合にのみ、CAサーバを探します。したがって、CRLの新鮮さを維持するのが難しいです。しかし、あなたのCAのCRL発行頻度が毎日の場合、CertVerifyRevocationというこのアプローチを使用すると、いくつかのアプリケーションで適切な設定のウィンドウからの関数呼び出しを使用できなくなる可能性があります。

2番目の方法は、CAサーバーからCRLをダウンロードしてインストールし、検証のためにCertFindCertificateInCRLを使用することです。 CRLダウンローダアプリケーションは、あらかじめ定義された時間間隔でCRLを更新するように設定できます。これは、毎回CRLをダウンロードしたときに失効した証明書リスト全体を取得するので、CAがBase CRLのみを公開する場合に機能します。 CAがデルタCRLとベースCRLをあまり頻繁に公開しないとどうなるか、私は答えを知らない。

関連する問題