帳戶資料庫
Active Directory 提供帳戶資料庫,金鑰發佈中心 (KDC) 用來取得網域中 安全性 主體的相關信息。 每個主體都會以目錄中的帳戶物件來表示。 用於與使用者、計算機或服務通訊時所使用的 加密 金鑰會儲存為該安全性主體之帳戶物件的屬性。
只有域控制器是 Active Directory 伺服器。 每個域控制器都會保留目錄的可寫入複本,因此可以在任何域控制器上建立帳戶、重設密碼,以及修改群組成員資格。 對目錄一個複本所做的變更會自動傳播至所有其他複本。 Windows 會使用專屬的多宿主復寫通訊協議來復寫 Active Directory 的資訊存放區,該通訊協定會使用復寫夥伴之間的安全遠端過程調用連線。 聯機會使用 Kerberos 驗證通訊協定 來提供相互 驗證 和加密。
帳戶數據的實體記憶體是由 目錄系統代理程式所管理,這是與域控制器上 本機安全性授權單位 (LSA) 整合的受保護程式。 目錄服務的客戶端永遠不會直接存取數據存放區。 任何想要存取目錄資訊的用戶端都必須連線到目錄系統代理程式,然後搜尋、讀取和寫入目錄物件及其屬性。
存取目錄中物件或屬性的要求受限於 Windows 存取控制機制的驗證。 就像NTFS檔案系統中的檔案和資料夾物件一樣,Active Directory 中的物件會受到 訪問控制清單 (ACL) 的保護,這些清單會指定誰可以存取物件及以何種方式存取。 不過,與檔案和資料夾不同,Active Directory 物件對於每個屬性都有 ACL。 因此,敏感性帳戶信息的屬性可以受到比針對帳戶其他屬性授與的許可權更嚴格的許可權保護。
帳戶最敏感的信息當然是其密碼。 雖然帳戶物件的 password 屬性會儲存衍生自密碼的加密密鑰,而非密碼本身,但此密鑰對入侵者同樣有用。 因此,帳戶對象的密碼屬性存取權只會授與帳戶持有者,絕不會授與其他人,甚至不會授與系統管理員。 只允許具有信賴運算基底許可權的進程—在 LSA 的安全性 內容 中執行的進程,才能讀取或變更密碼資訊。
若要防止具有域控制器備份磁帶存取權的人員進行離線攻擊,帳戶對象的密碼屬性會使用系統密鑰進一步受到第二個加密的保護。 此加密密鑰可以儲存在卸除式媒體上,以便個別保護它,也可以儲存在域控制器上,但受到分散機制的保護。 系統管理員可以選擇儲存系統密鑰的位置,以及使用哪一種演算法來加密密碼屬性。