公開金鑰基礎結構

公開金鑰密碼編譯 (也稱為非對稱金鑰加密,) 使用金鑰組來加密和解密內容。 金鑰組包含一個公開和一個與數學相關的私密金鑰。 想要安全地與其他人通訊的個人可以散發 公開金鑰 ,但必須保留 私密金鑰 秘密。 使用其中一個金鑰加密的內容可以使用另一個來解密。 例如,假設 Bob 想要傳送安全的電子郵件訊息給 Alice。 這可以透過下列方式完成:

  1. Bob 和 Alice 都有自己的金鑰組。 他們已將其私密金鑰安全地保留給自己,並直接將其公開金鑰傳送給彼此。
  2. Bob 使用 Alice 的公開金鑰來加密訊息,並將它傳送給她。
  3. Alice 使用她的私密金鑰來解密訊息。

這個簡化的範例會強調至少一個明顯的問題 Bob 必須有用來加密訊息的公開金鑰。 也就是說,他無法確定用於加密的金鑰實際上屬於 Alice。 另一方可能會監視 Bob 與 Alice 之間的通道,替代不同的金鑰。

公開金鑰基礎結構概念已演進,可協助解決此問題和其他專案。 公開金鑰基礎結構 (PKI) 是由受信任的協力廠商可用來建立公開金鑰完整性和擁有權的軟體和硬體元素所組成。 信任者稱為 憑證授權單位單位 (CA) ,通常會藉由發行已簽署的 (加密) 二進位憑證來達成此目的,這些憑證會確認憑證主體的身分識別,並將該身分識別系結至憑證中包含的公開金鑰。 CA 會使用其私密金鑰簽署憑證。 它會對自我簽署 CA 憑證的所有相關方發出對應的公開金鑰。 使用 CA 時,可以使用下列方式修改上述範例:

  1. 假設 CA 已發行包含其公開金鑰的已簽署數位憑證。 CA 會使用對應至憑證中公開金鑰的私密金鑰自行簽署此憑證。
  2. Alice 和 Bob 同意使用 CA 來驗證其身分識別。
  3. Alice 向 CA 要求公開金鑰憑證。
  4. CA 會驗證她的身分識別、計算構成其憑證的內容雜湊、使用對應至已發佈 CA 憑證中公開金鑰的私密金鑰簽署雜湊、串連憑證內容和已簽署雜湊來建立新的憑證,並公開提供新的憑證。
  5. Bob 會擷取憑證、使用 CA 的公開金鑰解密已簽署的雜湊、計算憑證內容的新雜湊,並比較兩個雜湊。 如果雜湊相符,簽章會經過驗證,Bob 可以假設憑證中的公開金鑰確實屬於 Alice。
  6. Bob 使用 Alice 已驗證的公開金鑰來加密訊息給她。
  7. Alice 使用她的私密金鑰從 Bob 解密訊息。

總而言之,憑證簽署程式可讓 Bob 確認公開金鑰在傳輸期間未遭到竄改或損毀。 發行憑證之前,CA 會先雜湊內容、簽署 (使用自己的私密金鑰來加密雜湊) 雜湊,並在核發的憑證中包含加密的雜湊。 Bob 使用 CA 公開金鑰解密雜湊、執行憑證內容的個別雜湊,以及比較兩個雜湊,以驗證憑證內容。 如果相符,Bob 可以合理地確定憑證及其包含的公開金鑰尚未變更。

典型的 PKI 是由下列元素所組成。

元素 Description
憑證授權單位
作為公開金鑰基礎結構的根信任目錄,並提供服務來驗證網路中個人、電腦和其他實體的身分識別。
註冊授權單位
由根 CA 認證,可針對根目錄所允許的特定用途發行憑證。 在 Microsoft PKI 中,註冊授權單位 (RA) 通常稱為次級 CA。
憑證資料庫
儲存憑證要求,並在 CA 或 RA 上發行和撤銷的憑證和憑證要求。
憑證存放區
儲存本機電腦上的已發行憑證和擱置或拒絕的憑證要求。
金鑰封存伺服器
將加密的私密金鑰儲存在憑證資料庫中,以在遺失後復原。

憑證註冊 API 可讓您將憑證和金鑰封存要求提交至憑證和註冊授權單位,並在本機電腦上安裝發行的憑證。 它無法讓您直接操作憑證資料庫或憑證存放區。

下列主題會更詳細地討論 Microsoft 公開金鑰基礎結構:

關於憑證註冊 API