Active-Directory

在有或沒有 AD 的 Windows 上,密碼策略是否可以是動態的

  • December 23, 2019

在某些 Windows 伺服器上,我想根據密碼長度設置不同的密碼複雜度。是否可以設置條件,所以我可以在密碼長度=8 時具有高複雜度,在密碼長度=16 或更高時具有低複雜度或沒有復雜度。

謝謝你的建議。

可以為密碼標準編寫自己的程式碼。DLL 可以在成員電腦或域控制器上註冊。

https://docs.microsoft.com/en-us/windows/win32/secmgmt/installing-and-registering-a-password-filter-dll

如果啟用“附加 LSA 保護”,這將不起作用,因為它需要 Microsoft 簽署 LSA DLL。

https://docs.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection

正如所指出的,可以利用 passfilt.dll 來利用自定義密碼過濾器。事實上,我使用了 GitHub 上提供的一個這樣的過濾器(或其分支之一)。它被稱為OpenPasswordFilter。我選擇使用這個過濾器是因為系統管理員關於如何創建和管理自定義密碼過濾器的文件很少。雖然我通常看到這用於配置密碼黑名單,但應該能夠執行您要求的驗證。問題是使用自定義密碼過濾器這樣做有多困難?

但是,這些更改需要推廣到每個域控制器和每個新的域控制器。鑑於今天的自動化和配置管理水平,這可能不是特別困難,但它是必須監控和維護的其他東西。

總而言之,這是一個很好的解決方案,但文件有限。您的繼任者也可能難以支持、更新和擴展此解決方案——這是決定實施該解決方案時要考慮的一個因素。


我相信對您的問題最直接的解決方案是使用細粒度密碼策略。這可以通過最少的測試快速實現;這些設置會在所有域控制器之間自動複製。不足之處; 但是,它確實需要一些最終使用者的參與/選舉。

我的解決方案如下:

  • 創建兩個新的 FGPP

    • 1:最小長度為 8;啟用複雜性
    • 2:最小長度為 16;複雜性禁用
  • 創建兩個新的安全組

    • 1:pso_MinLength08
    • 2:pso_MinLength16
  • 將每個組分配為適當 FGPP 的主題

  • 通知最終使用者他們的選擇——一個短的“複雜”密碼或一個長的“簡單”密碼。他們可以隨時來回切換,並通知您。

  • 根據使用者的選擇將使用者添加到相應的組;您可以將它們預設為短複雜組。

  • 根據需要進行更改


關於上述內容或其他注意事項的一些說明:

您可以通過一個組來實現相同的目標。我對可見性的偏好是使用兩個,但通過確保將預設域密碼策略配置為最小長度為 8 並啟用複雜性,您可以限制需要進行的組更改的數量。- 如果使用者進行選擇,您只需將使用者添加到組 - 您不必確保使用者僅是一個組的成員,或者 - 您不必在每個 FGPP 上配置不同的優先級值

雖然在密碼輪換方面我與 NIST 和 Microsoft(大部分)合作,但我的雇主仍然要求密碼輪換。我選擇通過每年僅輪換一次密碼來“獎勵”接受更長密碼最小值的使用者。密碼要求較短的人會因季度密碼更改而受到“懲罰”。在我看來,這太頻繁了,沒有用,但我希望這種煩惱能夠為使用者提供足夠的動力來切換到更長的密碼最小值。

雖然上面沒有提到,但如果您確實以這種方式使用 FGPP,我當然會在每個密碼設置選項上配置不同的優先級,以確保更改密碼時不會出現意外行為。這將解決如果他們是兩個組的成員可能會遇到的問題,並且兩個 FGPP 的優先級相同。

無論您選擇哪種方法,我都指出您應該確保從任何此類密碼複雜性驗證中排除帳戶“krbtgt”。我為此帳戶和只讀域控制器使用的那些類似帳戶設置了單獨的 FGPP,以確保其密碼更改不受影響。我的 krbtgt FGPP 沒有長度、年齡或複雜性要求。

引用自:https://serverfault.com/questions/996228