憑證鏈結
若要使用 憑證 安全性,必須驗證所收到的每個憑證的真實性和有效性。 這項驗證取決於信任的概念和信任委派;如需詳細資訊,請參閱 信任階層。
每個憑證都包含一個主旨欄位,可識別憑證發行的個人或群組。 每個憑證也都包含簽發者字段,可識別授權 證書頒發機構單位 (CA) 認證主體的身分識別。
憑證鏈結包含認證結束憑證所識別主體所需的所有憑證。 實際上,這包括結束憑證、中繼 CA 的憑證,以及鏈結中各方信任之根 CA 的憑證。 鏈結中的每個中繼 CA 都會在信任階層中保存 CA 上一層所簽發的憑證。 根 CA 會自行發行憑證。
驗證新接收憑證的真實性和有效性的程式,包括透過任何中繼 CA 檢查原始、普遍信任 CA 鏈結中的所有憑證,到剛收到的憑證,也就是稱為結束憑證的憑證。 只有在該憑證鏈結中的每個憑證都已正確發行且有效時,才能信任新的憑證。
追蹤所有備份新結束憑證的憑證可能會變得繁瑣。 因此,CryptoAPI 2.0 技術提供函式,可將建立支援任何指定端憑證的憑證鏈結自動化。 這些函式也會檢查並報告鏈結中每個憑證的有效性。
CryptoAPI 2.0 的鏈結建構和檢查函式會使用鏈結引擎來建立及驗證憑證鏈結。 鏈結引擎會定義證書鏈結基礎結構的存放區命名空間和快取分割。 CryptoAPI 2.0 為任何只使用預設系統存放區(例如 MY、Root、CA 和 Trust)進行鏈結建置和快取的應用程式進程提供預設鏈結引擎。 應用程式可以定義自己的存放區命名空間,或藉由建立自己的鏈結引擎來有自己的數據分割快取。 若要達到最佳快取行為,建議您在應用程式啟動時建立單一鏈結引擎,並在應用程式的整個存留期內使用該鏈結引擎。
如需函式清單,請參閱 憑證鏈結驗證函式。 如需建置憑證鏈結並驗證憑證的程式,請參閱 範例 C 程式:建立憑證鏈結。