Active Directory 網域控制站上的 DPAPI 備份金鑰

Active Directory 資料庫包含一組稱為 DPAPI 備份金鑰的物件。 這些物件包括:

  • BCKUPKEY_P秘密
  • BCKUPKEY_PREFERRED秘密
  • BCKUPKEY_guid1
  • BCKUPKEY_guid2

這些物件是架構類別 「secret」 的一部分,而且它們存在於網域分割區內的 「CN=System,DC=contoso,DC=com」 容器中。

一般而言,網域使用者會使用衍生自其密碼的金鑰來加密 DPAPI 保護的資料。 不過,如果使用者忘記密碼,或其密碼是從另一部裝置進行系統管理重設或重設,則先前加密的資料將無法再使用衍生自使用者新密碼的新金鑰解密。

發生這種情況時,仍然可以使用儲存在 Active Directory 網域控制站上的備份金鑰來解密資料。 然後,他們可以使用使用者的新密碼衍生金鑰重新加密。 這表示擁有網域 DPAPI 備份金鑰的任何人,都能夠解密任何網域使用者的 DPAPI 加密資料,即使使用者的密碼變更也一樣。

在初始建立網域期間,只會隨機產生 Active Directory 網域控制站上的 DPAPI 備份金鑰一次。

由於這些金鑰的敏感性本質,因此必須保護這些金鑰的存取權,並視為整個 Active Directory 網域中最機密的資訊片段之一。 根據預設,這些金鑰的存取權僅限於網域系統管理員。

目前沒有正式支援在網域控制站上變更或輪替這些 DPAPI 備份金鑰的方式。 根據 MS-BKRP檔,協力廠商能夠開發應用程式或腳本,以建立新的 DPAPI 備份金鑰,並將新金鑰設定為網域的慣用金鑰。 不過,Microsoft 不支援這些協力廠商解決方案。

如果網域的 DPAPI 備份金鑰遭到入侵,建議建立新的網域,並將使用者移轉至該新網域。 如果惡意執行者能夠取得 DPAPI 備份金鑰的存取權,他們可能已取得網域系統管理員層級的網域存取權,並擁有其資源的完整存取權。 攻擊者也可能在網域中安裝其他後門系統,以及他們現在擁有的存取層級,因此建議移轉至新的網域。

Active Directory 系統管理最佳做法是防禦此案例。 將網域存取權授與使用者時,請提供使用者所需的最低存取層級。 保護 Active Directory 備份也很重要,因為您保護網域控制站本身的警覺程度也一樣高。

另請參閱

CNG DPAPI

MS-BKRP: BackupKey 遠端通訊協定檔