Windowsの証明書検証の予期しない機能

出版で少し遅れましたが、決して遅れることはありません。 週の初めに、RDPを介してすべてのコンピューターに接続すると遅延が発生し、「リモート接続のセキュリティ保護...」段階で数秒間ハングしました。この段階では、詳細を安全に転送する暗号化チャネルをセットアップします。



TL; DR
CTLの有効期限が切れてctldl.windowsupdate.comが利用できない場合、SSL接続中に遅延が発生する可能性があります。これを避けるようにしてください。


内部CAからの証明書がRDSに使用され、ルートオフラインCAのCRLの更新を忘れていたため、 pkiview.mscでその状態を確認することにしました



スナップインはすべてが正常であることを示しましたが、両方のCAとは反対に、検証ステータスがLDAPおよびHTTPを介してドメイン内で利用可能であるため、検証ステータスが数秒間保持されました。 certutil -verifyを介した検証も、CERT_CHAIN_POLICY_BASEステージで10〜15秒間、内部証明書だけでなく外部CA(StartCom、Comodoなど)からの証明書でもハングしました。



CRLからCDPおよびAIAに証明書を再登録した後も、問題は解決しません。 必死に、 certutil -verifyの実行中にネットワークダンプを取得したところ、次のことがわかりました。







ctldl.windowsupdate.comへの証跡では、途中でzapret.comcor.ruが示され、そのIPアドレス(CDN Akamai)が2016年8月1日 ILVブロッキングレジストリに追加されました。



Windows 8.1(およびVista、7および8に移植された)では、信頼できる認証局と信頼できない認証局( CTL )のリストを動的にロードするメカニズムが、新しいまたは侵害された認証局が出現した場合に登場しました。 有効期限が切れようとしているとき、クライアントはCTLの更新を試み、これが失敗した場合、試行はSSL接続が確立されるたびに再試行します。



certutil -f -verifyCTL AuthRootおよびcertutil -f -verifyCTL Disallowedコマンドを使用して、内容を表示し、CTLステータスを確認できます 。 これらのコマンドを使用して、証明書ストアの内容を復元することもできます。



リストはctldl.windowsupdate.comからダウンロードされますが、プロバイダーにはスタブページがあり、禁止されたリソースへの接続はIPアドレスによってブロックされたため、各接続が確立されると15秒のタイムアウトが発生しました。



TechNetの新しいメカニズムの詳細な説明があります。回避策として、セクション「公開鍵ポリシー」>「証明書パス検証設定」>「ネットワーク検索」でグループポリシーを使用してタイムアウトを設定できます。







メカニズムの説明を探している間、私は研究者のブログに出会いました。そこで彼は、 CTLInfoの内容とCTLの有効期限を示すことができるCTLInfoユーティリティを使用して操作アルゴリズムを説明しています。



All Articles