共用方式為


證書導論

本文討論 WinUI 應用程式中憑證的使用。 數位憑證用於公開金鑰密碼學中,將公開金鑰綁定於個人、電腦或組織。 綁定身份最常用來將一個實體與另一個實體進行驗證。 例如,憑證常用於將網頁伺服器認證給使用者,以及將使用者認證給網頁伺服器。 你可以建立憑證請求,並安裝或匯入已核發的憑證。 你也可以在證書階層中註冊證書。

共享憑證儲存

WinUI 應用程式採用了 Windows 8 引入的新隔離主義應用程式模型。 在此模型中,應用程式運行於低階作業系統架構中,稱為應用程式容器,除非明確允許,否則該應用程式無法存取外部資源或檔案。 以下章節將說明此對公鑰基礎架構(PKI)的影響。

每個應用程式容器的憑證儲存

用於特定應用程式容器的憑證會儲存在每位使用者、每個應用程式容器的位置。 在應用程式容器中執行的應用程式,僅能寫入其自身憑證儲存空間。 如果應用程式將憑證加入任何儲存庫,這些憑證將無法被其他應用程式讀取。 如果應用程式被卸載,所有與該應用程式相關的憑證也會被移除。 應用程式還能讀取除 MY 和 REQUEST 儲存庫外的本地機器憑證儲存庫。

緩存

每個應用程式容器都有一個隔離快取,可儲存驗證所需的發行憑證、憑證撤銷清單(CRL)及線上憑證狀態協定(OCSP)回應。

共享憑證與金鑰

當智慧卡插入讀卡器時,卡片上的憑證和金鑰會傳播到使用者的 MY 儲存庫,讓使用者執行的任何全信任應用程式都能共享。 不過預設情況下,應用程式容器無法存取每位使用者的 MY 商店。

為了解決此問題並讓主體群組能存取資源群組,應用程式容器隔離模型支援了能力概念。 一項能力允許應用程式容器程序存取特定資源。 sharedUserCertificates 功能賦予應用程式容器對使用者 MY 儲存庫及智慧卡 Trusted Roots 儲存庫中憑證與金鑰的讀取權限。 此功能不會授予使用者 REQUEST 儲存的讀取權限。

你在清單中指定 sharedUserCertificates 功能,如下範例所示。

<Capabilities>
    <Capability Name="sharedUserCertificates" />
</Capabilities>

證書欄位

X.509 公鑰憑證標準隨著時間不斷修訂。 每一代資料結構都保留了先前版本的欄位,並新增更多欄位,如下圖所示。

X.509 憑證版本 1、2 和 3

其中一些欄位和擴充功能可以在使用 CertificateRequestProperties 類別建立憑證請求時直接指定。 大多數人無法做到。 這些欄位可以由發行權威填寫,也可以留空。 欲了解更多相關欄位資訊,請參閱以下章節:

版本 1 欄位

領域 說明
版本 指定編碼憑證的版本號。 目前,這個欄位的可能值是 0、1 或 2。
序號 包含由認證機構(CA)指派給該證書的正且唯一的整數。
簽章演算法 包含物件識別碼(OID),指定 CA 用於簽署憑證的演算法。 例如,1.2.840.113549.1.1.5 規定了結合 RSA 實驗室的 RSA 加密演算法的 SHA-1 雜湊演算法。
Issuer 包含創建並簽署憑證的 CA 的 X.500 識別名稱(DN)。
有效期 指定證書有效的時間區間。 截至2049年底的日期使用協調世界時(格林威治標準時間)格式(yymmddhhmmssz)。 從2050年1月1日開始的日期採用一般時間格式(yyyymmddhhmmssz)。
主旨 包含與證書中公開金鑰相關聯實體的 X.500 區別名稱。
公開金鑰 包含公開金鑰及相關演算法資訊。

版本 2 欄位

X.509 版本 2 憑證包含版本 1 中定義的基本欄位,並新增以下欄位。

領域 說明
發行者唯一識別碼 包含一個唯一值,可用於讓 CA 的 X.500 名稱在不同實體隨時間重複使用時保持無歧義。
主體唯一識別碼 包含唯一值,可用於使憑證主體的 X.500 名稱在不同實體隨時間重複使用時保持無歧義。

版本 3 擴充功能

X.509 版本 3 憑證包含版本 1 與版本 2 定義的欄位,並新增憑證擴充功能。

領域 說明
授權單位金鑰標識碼 識別與用於簽署憑證的CA私鑰對應的認證機構(CA)公開金鑰。
基本限制 規定該實體是否可作為憑證授權機構使用,若可,則可在憑證鏈中存在於其下方的次級憑證授權機構數量。
憑證原則 規定憑證的發行政策及可用於何種目的。
CRL 發佈點 包含基礎憑證撤銷清單(CRL)的 URI。
增強金鑰使用方式 規定憑證中公開金鑰的使用方式。
發行人替代名稱 指定一個或多個憑證要求的簽發者的替代名稱形式。
主要用法 規範憑證中公開金鑰可執行的操作限制。
名稱限制 指定憑證階層中所有主體名稱必須位於的命名空間。 該擴充功能僅用於 CA 憑證。
政策限制 限制路徑驗證,禁止政策映射,或要求階層中的每個憑證包含可接受的政策識別碼。 該擴充功能僅用於 CA 憑證。
政策映射 指定下屬 CA 中與發布 CA 政策對應的政策。
私鑰使用期間 規定私鑰的有效期與所關聯憑證的有效期不同。
主體別名 指定一種或多種證書申請對象的替代名稱形式。 範例的替代形式包括電子郵件地址、DNS 名稱、IP 位址及 URI。
主題目錄屬性 傳達身份特徵,如證書主體的國籍。 擴展值是一串的 OID 值對序列。
主體金鑰識別碼 區分憑證主體持有的多個公鑰。 擴充值通常是金鑰的 SHA-1 雜湊值。