認証局の証明書を取り消すと、発行した証明書もすべて無効になりますか?その下の機関によって発行された証明書についてはどうですか?
たとえば、ルートCA Aが証明書Cを発行する中間CA Bを発行し、次の場合:
CA
A
はCAB
を取り消しますが、証明書C
は無効になりますか?
はい、失効はツリーまでカスケードします。 CA証明書が取り消された場合、(CAの下にあるレベルの数に関係なく)すべての証明書は暗黙的に信頼されていないと見なされます。それらが* untrusted *、になることを忘れないでください。
CA
A
は(なんらかの理由で)取り消されますが、証明書のC
も無効になるように、その取り消しがチェーン全体でカスケードされますか?
ルートCAの失効は、RFC5280内の未定義の操作です。この場合、CAは自身の証明書(シリアル番号)を独自のCRLに入れ、独自の鍵で署名します。そして今、鶏卵の問題があります:
CA証明書は取り消されました(CRLにリストされています)が、CRLは取り消された鍵で署名されているため、このCRLを信頼して取得できませんルート証明書が取り消されたかどうかについての明確な回答。この問題は、多くの場合、RFC5280技術を使用してルートCAの失効をチェックしないことで解決されます。たとえば、Microsoftの証明書チェーンエンジンのデフォルト設定では、ルートCA証明書の失効はまったくチェックされません。
このような場合(ルートCAの失効)は、OOBプロセスを使用して、明示的に信頼されたアンカー(ルート証明書)のリストを維持し、リストから不正なCA証明書を削除することにより、異なる方法で処理されます。
"場合によります"。
最も安全な答えは「はい、サブツリーを取り消す」です。「B」証明書が取り消されると、発行したと主張する証明書(または署名されたCRLなど)を信頼する理由がなくなるためです。
しかし、それは実際にはチェーンビルダーに与えられる入力に依存します(つまり、アプリケーション間で一貫性がなくなります)。
.NETのX509Chain
クラスはデフォルトで、ルート以外のすべての失効をチェックします。 Win32 CertGetCertificateChain デフォルトでは失効なし(失効タイプはdwFlags
パラメータで指定する必要があります)。他のライブラリには異なるデフォルトがあり、アプリケーションはそれらをさまざまな方法で構成できます。