証明書チェーン

セキュリティのために 証明書 を使用するには、受信した各証明書の信頼性と有効性を確認する必要があります。 この検証は、信頼の概念と信頼の委任に依存します。詳細については、「 信頼の階層」を参照してください。

すべての証明書には、証明書が発行された個人またはグループを識別するサブジェクト フィールドが含まれています。 すべての証明書には、サブジェクトの ID を認定する権限を持つ 証明機関 (CA) を識別する発行者フィールドも含まれています。

証明書チェーンは、エンド証明書によって識別されるサブジェクトを認定するために必要なすべての証明書で構成されます。 実際には、エンド証明書、中間 CA の証明書、チェーン内のすべての関係者によって信頼されているルート CA の証明書が含まれます。 チェーン内のすべての中間 CA は、CA によって発行された証明書を信頼階層内の 1 レベル上に保持します。 ルート CA は、それ自体の証明書を発行します。

新しく受信した証明書の信頼性と有効性を確認するプロセスでは、証明書チェーン内のすべての証明書を、元の汎用信頼 CA から中間 CA 経由で確認し、最後の証明書と呼ばれる証明書を受信した証明書まで確認します。 新しい証明書は、その証明書のチェーン内の各証明書が適切に発行され、有効である場合にのみ信頼できます。

新しいエンド 証明書をバックアップするすべての証明書の追跡が面倒になる可能性があります。 したがって、 CryptoAPI 2.0 テクノロジは、特定のエンド 証明書をバックバックする証明書チェーンの作成を自動化する機能を提供します。 また、これらの関数は、チェーン内の各証明書の有効性を確認して報告します。

CryptoAPI 2.0 のチェーン構築およびチェック機能では、チェーン エンジンを使用して証明書のチェーンを作成および検証します。 チェーン エンジンは、証明書チェーン インフラストラクチャのストア名前空間とキャッシュ パーティション分割を定義します。 CryptoAPI 2.0 は、チェーンの構築とキャッシュに既定のシステム ストア (MY、ルート、CA、信頼など) のみを使用するアプリケーション プロセス用の既定のチェーン エンジンを提供します。 アプリケーションは、独自のストア名前空間を定義するか、独自のチェーン エンジンを作成して独自のパーティション 分割キャッシュを持つことができます。 最適なキャッシュ動作を実現するには、アプリケーションの起動時に単一チェーン エンジンを作成し、アプリケーションの有効期間を通じてそのチェーン エンジンを使用することをお勧めします。

関数の一覧については、「 証明書チェーン検証関数」を参照してください。 証明書チェーンを構築し、証明書を検証するプログラムについては、「 例 C プログラム: 証明書チェーンの作成」を参照してください。