web-dev-qa-db-ja.com

WindowsはCryptoAPICRLタイムアウトをログに記録できますか?

CRLキャッシュを構築するプロセス は、一部のアプリケーションで遅延を引き起こす可能性があると思います。

CPUやディスクにアクセスできない場合に「動作が遅い」.NETアプリケーションがいくつかあります。タイムアウトがほぼ20秒であるため、証明書を検証しようとすると、認証でハングアップしていると思われます。

このMSFTの記事

ほとんどのアプリケーションは、累積タイムアウトを使用するようにCryptoAPIに指定していません。累積タイムアウトオプションが有効になっていない場合、CryptoAPIは、URLごとに15秒のタイムアウトであるCryptoAPIのデフォルト設定を使用します。アプリケーションによって累積タイムアウトオプションが指定されている場合、CryptoAPIは累積タイムアウトとしてデフォルト設定の20秒を使用します。最初のURLは、最大10秒のタイムアウトを受け取ります。後続の各URLタイムアウトは、累積タイムアウト値の残りの残高の半分です。

これはサービスであるため、ソースコードを持っているアプリケーションやサードパーティのCryptoAPIハングを検出してログに記録するにはどうすればよいですか?

6

これに関する詳細情報を取得する1つの方法は、CAPI2イベントログを有効にすることです。

  • Eventvwr->アプリケーションとサービスのログ->を開きます
  • Microsoft-> Windows-> CAPI2-> Operational->
  • [ログを有効にする]を右クリックします

イベントログに表示される情報は、証明書の検証プロセスに長時間かかっている場所を特定するのに役立ちます。

ロギングを有効にするには

  wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:true

ログをファイルに保存するには

 wevtutil.exe epl Microsoft-Windows-CAPI2/Operational filename.elf

ロギングを無効にするには

 wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:false

ログをクリアするには

 wevtutil.exe cl Microsoft-Windows-CAPI2/Operational
4

潜在的なPKIのトラブルシューティングは複雑な問題になる可能性があるため、いくつかの異なるオプションがあります。

CRLは遅く、面倒な獣です...

まず、CRLのタイムアウトにより、世界最大のPKIがPKI検証のニーズの大部分にCRLを使用しないようになったことをお伝えします。ユーザーが暗号化された電子メールを送信する前に単純な「はい」または「いいえ」が必要なときに50MBのファイルをダウンロードすることは、初心者ではありません。

検証の方法

1-代替のMicrosoftのネイティブ検証クライアントをTumbleweedなどのサードパーティ検証クライアントでテストしてから、サードパーティ検証クライアントを(コントロールとして)監視できます。 Tumbleweed/Axwaysは、人気のあるサードパーティの検証クライアントであるOCSPリピーターおよびレスポンダーのトライアルを販売および提供しています。 OpenSSL、ejbca、またはOpenCAを検証レスポンダーとして使用することもできます。さらに、特定のCAPIロギング機能を含むOSSフレームワークPKIFと、 http://pkif.sourceforge.net/ にあるOCSPクライアントがあります。

2-検証データソース(CRL、OCSP、SCVP)を制御できます。

3-問題のもう1つの原因は、DNS解決の遅延、DNSキャッシュの欠如、PKIの構成ミス、信頼の欠如、またはCRLの更新に必要な時間(PKIが大きい場合に一時的なハングを引き起こす)である可能性があります。

アプリケーションの構成、PKI自体、x509証明書のフィールド、帯域幅などについて詳しく教えてください。特に、のAuthority Information Access(AIA)フィールドなど、検証に関連するフィールドに関心があります。例、およびCRLまたはOCSPへのハードコードされた参照。

応答タイプにもよく知られているあいまいさが存在することに注意してください。特にOCSP用のRFCには、検証に知識がない証明書に対して、適切な応答と不明な応答が等しく有効であるという問題があります。

代替案の議論:

証明書の検証を行うには、ホワイトリストとブラックリストの2つの主要な方法があります。

ブラックリストプロトコルには、CRL、OCSP、SCVP、およびOCSPのバリエーションが含まれます。

Windowsでのホワイトリストは、CA DB、CTL *、およびSCVPとインターフェイスするOCSPを使用して実行できます。

ほとんどの場合、ホワイトリスト方式は、ブラックリスト方式に代わる優れた、より安全な、より高速な、よりリアルタイムの、より優れた代替手段と見なされます。

4
Brennan

価値があるものとして、特定の問題に対処しない可能性があるが、OCSPの問題に対処するために更新されたcryptnet.dllを含む修正プログラムがあります。この特定のファイルもSP1では更新されていません。

証明書ベースのログオン方法を使用して、Windows Server 2008 R2を実行しているコンピューターで要求を認証することはできません

http://support.Microsoft.com/kb/26663

1
Greg Askew