標籤:ad cs
秘鑰歸檔和還原的概述
在有些時候保障認證和對應的配對秘鑰的安全是很重要的,例如,如果我們使用一個認證去對Email或文檔的內容進行加密,但是我們把公開金鑰和私密金鑰遺失了,那麼我們就無法訪問被認證的公開金鑰加密的資料了,因此對公開金鑰和私密金鑰進行歸檔和還原就顯得非常重要了。我們可以將認證結合一個私密金鑰匯出,然後將它儲存在一個安全的位置,例如獨立媒體或者特定的雲端儲存,以這樣的方式來歸檔或備份私密金鑰。但是這種方法要求每個使用者都要備份自己的私密金鑰,這樣就算不上一個可靠的備份方式了,那麼我們可以選擇在CA上集中秘鑰歸檔來作為替代的方法。
注意:在常規的操作中,CA是無法訪問使用者的私密金鑰的,因為私密金鑰是在用戶端上產生的,所以我們必須在每個憑證範本上明確的啟用私密金鑰歸檔功能,才能對使用者的私密金鑰進行歸檔。
秘鑰丟失的原因:
使用者設定檔被刪除或損壞。密碼編譯服務提供者(CSP)將私密金鑰加密並儲存在使用者設定檔夾的本地檔案系統和註冊表中,刪除或損壞了設定檔則會導致私密金鑰資料丟失。
作業系統重裝。當我們重裝作業系統時,之前安裝的使用者設定檔就丟失了,其中就包含了私密金鑰資料,在這種情況下,電腦的認證也同樣丟失了。
硬碟損壞。如果硬碟損壞了並且使用者的設定檔無法讀取,私密金鑰資料和安裝在電腦上的認證也就意味著丟失了。
電腦遺失或被盜。如果使用者的電腦遺失或被盜了,那麼使用者的設定檔肯定也就隨著電腦一同丟失了。
注意:不是所有的配對秘鑰(或者認證)遺失都是個特別棘手的問題,例如,如果你遺失了用於數位簽章或者登陸所使用的認證,你可以非常簡單的通過重新頒發一個認證來解決,這不會對資料產生影響,但是如果你遺失的認證是用於資料加密的,那麼這就會導致資料的不可訪問,這種情況下秘鑰的歸檔和還原就非常重要了。
秘鑰歸檔和修復代理
要想對私密金鑰進行歸檔,我們必須在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的公開金鑰加密。
秘鑰恢複過程中,Cert Manager或CA管理員從CA資料庫中擷取包含認證和私密金鑰的加密檔案,然後KRA使用者使用他的私密金鑰去解密加密檔案中的私密金鑰,並將認證和私密金鑰返回給使用者。
注意:秘鑰恢複有兩個步驟,首先需要從CA資料庫中擷取加密秘鑰,其次KRA將認證和秘鑰進行解密。出於安全性的考慮,我們建議由不同的使用者來執行這兩個步驟,預設情況下,KRA是沒有許可權從CA資料庫中擷取加密秘鑰的。
秘鑰歸檔的安全性
當我們配置了一個CA去頒發KRA認證時,任何對KRA憑證範本具有讀取和註冊許可權的使用者都可以註冊並成為KRA。網域系統管理員和企業管理員預設有KRA許可權。秘鑰歸檔的安全性需要注意以下幾點:
只有受信任的使用者才能夠開放此認證的註冊許可權
必須將KRA的私密金鑰以安全的方式儲存
用於秘鑰歸檔的伺服器需要單獨的防止在一個安全的物理位置
在KRA認證被頒發後,我們建議從CA中將這個模板移除,同時建議只在執行秘鑰還原的時候才將KRA認證匯入。
秘鑰歸檔和還原
秘鑰還原是指在配對秘鑰中的私密金鑰部分可以被歸檔和還原,私密金鑰還原不會恢複任何資料和訊息,它僅僅是讓使用者找回丟失或損壞的秘鑰,或者出於資料訪問或資料還原的目的,由管理員將角色指派給某個使用者。在很多應用程式中,資料還原在沒有執行秘鑰還原前是無法進行的。
秘鑰還原的過程如下:
使用者從CA申請一個認證,並將私密金鑰的副本加入到這個申請中,處理申請的CA將加密的私密金鑰歸檔到CA資料庫中,然後將憑證發行給申請的使用者。
應用程式使用頒發的認證對檔案進行加密
如果私密金鑰丟失或損壞了,使用者可以通過企業的Cert Manager去還原私密金鑰。Cert Manager結合KRA對私密金鑰進行還原,並將私密金鑰儲存在一個受保護的檔案格式中,將它發回給使用者。
在使用者將還原的私密金鑰儲存在本地的秘鑰庫中後,私密金鑰就可以再次被引用程式使用,對之前的加密檔案進行解密,或對新的檔案進行加密。
配置自動秘鑰歸檔
在正常使用秘鑰歸檔之前,我們必須執行幾個配置步驟,秘鑰歸檔預設是沒有啟用的,所以我們要在CA和用於秘鑰歸檔和秘鑰還原的認證上做一些配置。
以下為配置自動秘鑰歸檔的過程:
配置KRA憑證範本。只有企業管理員或網域系統管理員能夠申請KRA認證,如果想讓其他的使用者能夠註冊KRA認證,就需要在模板的DACL中加入該使用者的許可權。
配置憑證管理員:
a.CA強制一個使用者作為憑證管理員。憑證管理員通常保管一個有效KRA認證的私密金鑰,CA管理員預設為所有使用者的憑證管理員,除非有明確定義其他的憑證管理員。不過我們還是推薦將CA管理員角色和憑證管理員角色分開指定。
b.一個CA管理使用者被定義為憑證管理員。這個使用者擁有頒發和管理憑證的許可權,該許可權在CA的頒發機構管理主控台中開啟CA屬性中的安全選項卡進行設定。
c.KRA不一定要是CA管理員或憑證管理員。這些角色可以被區分成單獨的角色,KRA是某個擁有有效KRA認證私密金鑰的人。
啟用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認證僅在服務啟動的時候處理。
配置使用者模板:
a.在憑證範本控制台,右鍵點擊秘鑰歸檔模板,然後點擊屬性
b.要在CA上總是強制秘鑰歸檔,在模板的屬性頁面,選中請求處理選項卡,勾選"把使用者的加密私密金鑰存檔",在Windows2008以上版本的CA中,需要選擇"使用進階對稱演算法將秘鑰發送到CA"
還原丟失的秘鑰
秘鑰還原需要經過幾個步驟,我們必須嚴格的按照這些步驟進行秘鑰還原作業:
私密金鑰丟失。這個步驟通常是發生於使用者報告說他無法訪問認證的私密金鑰。
尋找恢複人選。執行秘鑰還原需要兩條資訊,第一,憑證管理員或CA管理員找到CA資料庫中正確的認證對象,第二,憑證管理員或CA管理員取得正確認證對象的序號以及用於秘鑰還原的KRA認證。
從資料庫中擷取PKCS#7二進位大對象,這是前半部分的秘鑰還原步驟,憑證管理員或CA管理員從CA資料庫中擷取正確的二進位大對象,認證和加密私密金鑰被恢複並儲存在二進位大對象中,私密金鑰會被一個或多個KRA的公開金鑰加密。
Cert Manager將二進位大對象傳遞給KRA。
還原秘鑰資料並儲存為PKCS#12(.pfx),這是後半部分的秘鑰還原步驟,其中一個KRA私密金鑰的處理器將恢複的私密金鑰進行解密,並通過處理器產生一個密碼保護的.pfx檔案,這個檔案包含了認證和私密金鑰。
匯入還原的認證。受密碼保護的.pfx檔案被傳送給終端使用者,使用者將該檔案匯入到本地的使用者認證庫中,或者由KRA或管理員代表此使用者進行以上操作。
本文出自 “乾涸的海綿” 部落格,請務必保留此出處http://thefallenheaven.blog.51cto.com/450907/1622464
Windows AD認證服務系列---管理憑證還原(1)