Windows AD證書服務系列---管理證書還原(1)

祕鑰歸檔和還原的概述

在有些時候保障證書和對應的配對祕鑰的安全是很重要的,例如,如果我們使用一個證書去對Email或文檔的內容進行加密,但是我們把公鑰和私鑰遺失了,那麼我們就無法訪問被證書的公鑰加密的數據了,因此對公鑰和私鑰進行歸檔和還原就顯得非常重要了。我們可以將證書結合一個私鑰導出,然後將它保存在一個安全的位置,例如獨立媒體或者特定的雲存儲,以這樣的方式來歸檔或備份私鑰。但是這種方法要求每個用戶都要備份自己的私鑰,這樣就算不上一個可靠的備份方式了,那麼我們可以選擇在CA上集中祕鑰歸檔來作爲替代的方法。

注意:在常規的操作中,CA是無法訪問用戶的私鑰的,因爲私鑰是在客戶端上生成的,所以我們必須在每個證書模板上明確的啓用私鑰歸檔功能,才能對用戶的私鑰進行歸檔。

祕鑰丟失的原因:

  1. 用戶配置文件被刪除或損壞。加密服務提供程序(CSP)將私鑰加密並存儲在用戶配置文件夾的本地文件系統和註冊表中,刪除或損壞了配置文件則會導致私鑰資料丟失。

  2. 操作系統重裝。當我們重裝操作系統時,之前安裝的用戶配置文件就丟失了,其中就包含了私鑰資料,在這種情況下,計算機的證書也同樣丟失了。

  3. 硬盤損壞。如果硬盤損壞了並且用戶的配置文件無法讀取,私鑰資料和安裝在計算機上的證書也就意味着丟失了。

  4. 計算機遺失或被盜。如果用戶的計算機遺失或被盜了,那麼用戶的配置文件肯定也就隨着計算機一同丟失了。

注意:不是所有的配對祕鑰(或者證書)遺失都是個特別棘手的問題,例如,如果你遺失了用於數字簽名或者登陸所使用的證書,你可以非常簡單的通過重新頒發一個證書來解決,這不會對數據產生影響,但是如果你遺失的證書是用於數據加密的,那麼這就會導致數據的不可訪問,這種情況下祕鑰的歸檔和還原就非常重要了。


祕鑰歸檔和恢復代理

要想對私鑰進行歸檔,我們必須在CA和指定的證書模板上啓用歸檔功能,例如EFS。在CA和證書模板上,這個功能默認是關閉的,要啓用祕鑰歸檔我們還需要定義一個KRA(Key Recovery Agents祕鑰還原代理)。

注意:CA上的祕鑰的歸檔動作時從完全配置好之後纔開始的,但是它不會應用到啓用這個功能前頒發的證書上。

在祕鑰丟失的情況下,我們通過祕鑰歸檔和KRA來實現數據恢復,KRA是指使用了頒發的KRA證書的用戶能夠去解密存儲在證書服務數據庫中的私鑰。當我們在CA和證書模板上啓用了祕鑰歸檔時,每個私鑰都會被KRA的公鑰加密,然後被保存在CA數據庫中,最後KRA的私鑰必須能被任何用戶的私鑰解密。KRA是特定於那些能夠獲取被用於加密數據的原始證書,私鑰和公鑰的用戶。

注意:不要將KRA(Key Recovery Agent)和DRA(Data Recovery Agent)搞混淆了,數據恢復代理是在初始用戶的私鑰不可用的時候,能夠直接使用EFS對數據進行加密。而KRA不會直接去加密任何數據,它僅僅對歸檔的私鑰進行加密。

要成爲KRA,我們必須使用一個基於KRA模板的證書進行註冊,在這個證書頒發給指定用戶後,CA會導入KRA證書的公鑰,並啓用祕鑰歸檔,此時那些基於已啓用證書歸檔功能的證書模板所頒發的證書,它們的私鑰將會保存在CA數據庫中並被KRA的公鑰加密。

祕鑰恢復過程中,證書管理器或CA管理員從CA數據庫中獲取包含證書和私鑰的加密文件,然後KRA用戶使用他的私鑰去解密加密文件中的私鑰,並將證書和私鑰返回給用戶。

注意:祕鑰恢復有兩個步驟,首先需要從CA數據庫中獲取加密祕鑰,其次KRA將證書和祕鑰進行解密。出於安全性的考慮,我們建議由不同的用戶來執行這兩個步驟,默認情況下,KRA是沒有權限從CA數據庫中獲取加密祕鑰的。


祕鑰歸檔的安全性

當我們配置了一個CA去頒發KRA證書時,任何對KRA證書模板具有讀取和註冊權限的用戶都可以註冊併成爲KRA。域管理員和企業管理員默認有KRA權限。祕鑰歸檔的安全性需要注意以下幾點:

  1. 只有受信任的用戶才能夠開放此證書的註冊權限

  2. 必須將KRA的私鑰以安全的方式保存

  3. 用於祕鑰歸檔的服務器需要單獨的防止在一個安全的物理位置

在KRA證書被頒發後,我們建議從CA中將這個模板移除,同時建議只在執行祕鑰還原的時候纔將KRA證書導入。


祕鑰歸檔和還原

祕鑰還原是指在配對祕鑰中的私鑰部分可以被歸檔和還原,私鑰還原不會恢復任何數據和消息,它僅僅是讓用戶找回丟失或損壞的祕鑰,或者出於數據訪問或數據還原的目的,由管理員將角色指派給某個用戶。在很多應用程序中,數據還原在沒有執行祕鑰還原前是無法進行的。

祕鑰還原的過程如下:

  1. 用戶從CA申請一個證書,並將私鑰的副本加入到這個申請中,處理申請的CA將加密的私鑰歸檔到CA數據庫中,然後將證書頒發給申請的用戶。

  2. 應用程序使用頒發的證書對文件進行加密

  3. 如果私鑰丟失或損壞了,用戶可以通過企業的證書管理器去還原私鑰。證書管理器結合KRA對私鑰進行還原,並將私鑰保存在一個受保護的文件格式中,將它發回給用戶。

  4. 在用戶將還原的私鑰保存在本地的祕鑰庫中後,私鑰就可以再次被引用程序使用,對之前的加密文件進行解密,或對新的文件進行加密。


配置自動祕鑰歸檔

在正常使用祕鑰歸檔之前,我們必須執行幾個配置步驟,祕鑰歸檔默認是沒有啓用的,所以我們要在CA和用於祕鑰歸檔和祕鑰還原的證書上做一些配置。

以下爲配置自動祕鑰歸檔的過程:

  1. 配置KRA證書模板。只有企業管理員或域管理員能夠申請KRA證書,如果想讓其他的用戶能夠註冊KRA證書,就需要在模板的DACL中加入該用戶的權限。

  2. 配置證書管理員:

    a.CA強制一個用戶作爲證書管理員。證書管理員通常保管一個有效KRA證書的私鑰,CA管理員默認爲所有用戶的證書管理員,除非有明確定義其他的證書管理員。不過我們還是推薦將CA管理員角色和證書管理員角色分開指定。

    b.一個CA管理員用戶被定義爲證書管理員。這個用戶擁有頒發和管理證書的權限,該權限在CA的頒發機構管理控制檯中打開CA屬性中的安全選項卡進行設置。

    c.KRA不一定要是CA管理員或證書管理員。這些角色可以被區分成單獨的角色,KRA是某個擁有有效KRA證書私鑰的人。

  3. 啓用KRA:

    a.以管理員賬號登入服務器,或CA管理員賬號登入服務器

    b.在CA控制檯中,右鍵點擊CA名稱,打開屬性頁面,在恢復代理選項卡中點擊"存檔祕鑰",將祕鑰歸檔功能啓用

    c.CA會默認使用一個KRA,但是在歸檔開始前我們需要點擊"添加",爲CA選擇一個KRA證書

    d.系統發現有效的KRA證書,然後顯示可用的KRA證書,這些證書通常會在註冊時被企業CA發佈到ADDS中。KRA證書被保存在ADDS配置分區的公鑰服務分支的KRA容器中,由於CA頒發多個KRA證書,每個KRA證書將會被添加到CA對象的多值的用戶屬性。

    e.選擇證書,然後點擊"確定",確保所選的證書是正確的

    f.添加完一個或多個KRA證書後,點擊"確定",KRA證書僅在服務啓動的時候處理。

  4. 配置用戶模板:

    a.在證書模板控制檯,右鍵點擊祕鑰歸檔模板,然後點擊屬性

    b.要在CA上總是強制祕鑰歸檔,在模板的屬性頁面,選中請求處理選項卡,勾選"把使用者的加密私鑰存檔",在Windows2008以上版本的CA中,需要選擇"使用高級對稱算法將祕鑰發送到CA"


還原丟失的祕鑰

祕鑰還原需要經過幾個步驟,我們必須嚴格的按照這些步驟進行祕鑰還原操作:

  1. 私鑰丟失。這個步驟通常是發生於用戶報告說他無法訪問證書的私鑰。

  2. 查找恢復人選。執行祕鑰還原需要兩條信息,第一,證書管理員或CA管理員找到CA數據庫中正確的證書對象,第二,證書管理員或CA管理員取得正確證書對象的序列號以及用於祕鑰還原的KRA證書。

  3. 從數據庫中獲取PKCS#7二進制大對象,這是前半部分的祕鑰還原步驟,證書管理員或CA管理員從CA數據庫中獲取正確的二進制大對象,證書和加密私鑰被恢復並保存在二進制大對象中,私鑰會被一個或多個KRA的公鑰加密。

  4. 證書管理器將二進制大對象傳遞給KRA。

  5. 還原祕鑰資料並保存爲PKCS#12(.pfx),這是後半部分的祕鑰還原步驟,其中一個KRA私鑰的處理器將恢復的私鑰進行解密,並通過處理器生成一個密碼保護的.pfx文件,這個文件包含了證書和私鑰。

  6. 導入還原的證書。受密碼保護的.pfx文件被傳送給終端用戶,用戶將該文件導入到本地的用戶證書庫中,或者由KRA或管理員代表此用戶進行以上操作。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章