如何禁止標準密碼並讓每個人都討厭你

眾所周知,人是一種懶惰的動物。
在選擇強密碼時更是如此。

我想每個管理員都曾面臨過使用簡單和標準密碼的問題。 這種現象經常發生在公司高階主管身上。 是的,是的,正是在那些有權存取秘密或商業資訊的人中,消除密碼外洩/駭客攻擊和進一步事件的後果是極其不可取的。

在我的實務中,有一種情況是,在啟用了密碼原則的 Active Directory 網域中,會計師獨立地認為像「Pas$w0rd1234」這樣的密碼完全符合策略要求。 結果是這個密碼在各地廣泛使用。 有時他的不同之處僅在於他的一組數字。

我真的希望不僅能夠啟用密碼策略並定義字元集,而且還能夠按字典進行過濾。 排除使用此類密碼的可能性。

微軟透過連結善意地告訴我們,任何知道如何正確掌握編譯器、IDE並知道如何正確發音C++的人,都能夠編譯他們需要的函式庫並根據自己的理解使用它。 奴婢沒有這個能力,只好找現成的辦法了。

經過一個小時的搜索,發現了解決該問題的兩個選項。 當然,我談論的是開源解決方案。 畢竟,從開始到結束都有付費選項。

選項1。 開啟密碼過濾器

已經有大約 2 年沒有提交了。本機安裝程序時不時地工作,您必須手動更正它。 創建自己的單獨服務。 更新密碼文件時,DLL 不會自動取得更改的內容;您需要停止服務,等待逾時,編輯文件,然後啟動服務。

沒有冰!

選項2。 密碼過濾器

這個項目是活躍的、有活力的,甚至不需要踢冰冷的身體。
安裝篩選器涉及複製兩個檔案並建立多個註冊表項。 密碼檔案沒有鎖,也就是說,它可以編輯,根據該專案作者的想法,只需每分鐘讀取一次。 此外,使用其他登錄項,您可以進一步配置過濾器本身,甚至密碼原則的細微差別。

所以。
已知:Active Directory 網域 test.local
Windows 8.1 測試工作站(對問題的目的而言並不重要)
密碼過濾器 PassFiltEx

  • 從鏈接下載最新版本 密碼過濾器
  • 複製 PassFiltEx.dll в C:WindowsSystem32 (或者 %SystemRoot%System32).
    複製 PassFiltExBlacklist.txt в C:WindowsSystem32 (或者 %SystemRoot%System32)。 如有必要,我們會用自己的模板來補充
    如何禁止標準密碼並讓每個人都討厭你
  • 編輯登錄機碼分支: HKLMSYSTEMCurrentControlSetControlLsa => 通知包
    添加 密碼過濾器 到列表末尾。 (不需要指定擴展名。)用於掃描的包的完整列表將如下所示“rassfm scecli PassFiltEx“。
    如何禁止標準密碼並讓每個人都討厭你
  • 重新啟動網域控制器。
  • 我們對所有網域控制器重複上述過程。

您還可以新增以下註冊表​​項,這使您可以更靈活地使用此篩選器:

章節: HKLMSOFTWAREPassFiltEx — 自動建立。

  • HKLMSOFTWAREPassFiltExBlacklistFileName,REG_SZ,預設:PassFiltExBlacklist.txt

    黑名單檔案名 — 允許您使用密碼範本指定檔案的自訂路徑。 如果此註冊表項為空或不存在,則使用預設路徑,即 - %SystemRoot%System32。 您甚至可以指定網路路徑,但您需要記住範本檔案必須具有明確的讀取、寫入、刪除、變更權限。

  • HKLMSOFTWAREPassFiltExTokenPercentageOfPassword,REG_DWORD,預設值:60

    密碼的令牌百分比 — 允許您指定新密碼中遮罩的百分比。 預設值為 60%。 例如,如果出現百分比為 60,且字串 starwars 在範本檔案中,則密碼 星際大戰1! 密碼會被拒絕 星際大戰1!DarthVader88 將被接受,因為密碼中字串的百分比小於 60%

  • HKLMSOFTWAREPassFiltExRequireCharClasses,REG_DWORD,預設值:0

    需要字元類 — 與標準 ActiveDirectory 密碼複雜度要求相比,讓您可以擴充密碼要求。 內建複雜度要求需要 3 種可能的不同字元中的 5 種:大寫、小寫、數字、特殊和 Unicode。 使用此註冊表項,您可以設定密碼複雜性要求。 可以指定的值是一組位,每個位是對應的XNUMX的冪。
    即 - 1 = 小寫字母,2 = 大寫字母,4 = 數字,8 = 特殊字符,16 = Unicode 字元。
    因此,如果值為 7,則要求為“大寫” 小寫 數字”,值為 31 - “大寫 小寫 人物 特殊符號 統一碼字元。”
    你甚至可以組合 - 19 = “大寫 小寫 統一碼字元。”

  • 如何禁止標準密碼並讓每個人都討厭你

建立範本文件時的一些規則:

  • 模板不區分大小寫。 因此,文件條目 星火 и 星際大戰 將被確定為相同的值。
  • 黑名單檔案每 60 秒重新讀取一次,因此您可以輕鬆編輯它;一分鐘後,新資料將被過濾器使用。
  • 目前不支援模式匹配的 Unicode。 也就是說,您可以在密碼中使用 Unicode 字符,但過濾器將無法運作。 這並不重要,因為我還沒有見過使用 Unicode 密碼的使用者。
  • 建議範本文件中不允許有空行。 在偵錯中,您可以在從檔案載入資料時看到錯誤。 過濾器有效,但為什麼會出現額外的異常?

為了進行調試,存檔包含批次文件,允許您創建日誌,然後使用以下命令解析它: 微軟訊息分析器。
此密碼過濾器使用 Windows 事件追蹤。

此密碼過濾器的 ETW 提供者是 07d83223-7594-4852-babc-784803fdf6c5。 因此,例如,您可以在以下重新啟動後配置事件追蹤:
logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

追蹤將在下次系統重新引導後開始。 停止:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
所有這些命令都在腳本中指定 StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.

若要一次性檢查過濾器操作,您可以使用 開始追蹤.cmd и 停止追蹤.cmd.
為了方便地讀取該過濾器的調試排氣 Microsoft消息分析器 建議使用以下設定:

如何禁止標準密碼並讓每個人都討厭你

如何禁止標準密碼並讓每個人都討厭你

當停止記錄和解析時 Microsoft消息分析器 一切看起來都是這樣的:

如何禁止標準密碼並讓每個人都討厭你

在這裡您可以看到有人試圖為用戶設定密碼 - 魔法詞告訴我們這一點 SET 在調試中。 由於密碼存在於模板檔案中並且與輸入的文字匹配率超過 30%,因此密碼被拒絕。

如果密碼更改嘗試成功,我們會看到以下內容:

如何禁止標準密碼並讓每個人都討厭你

對於最終用戶來說存在一些不便。 當您嘗試變更範本檔案清單中包含的密碼時,螢幕上的訊息與密碼原則未通過時的標準訊息沒有什麼不同。

如何禁止標準密碼並讓每個人都討厭你

因此,請做好電話和大喊的準備:“我輸入的密碼正確,但不起作用。”

結果。

此程式庫允許您禁止在 Active Directory 網域中使用簡單或標準密碼。 讓我們說“不!” 密碼如:「P@ssw0rd」、「Qwerty123」、「ADm1n098」。
是的,當然,用戶會更喜歡你,因為你對他們的安全如此關心,並且需要想出令人興奮的密碼。 也許,尋求密碼幫助的電話和請求數量將會增加。 但安全是有代價的。

使用的資源連結:
關於自訂密碼過濾器庫的 Microsoft 文章: 密碼過濾器
通過過濾器: 密碼過濾器
發布連結: 最新發布
密碼列表:
丹尼爾·米斯勒列出: 鏈接。
來自weakpass.com的單字清單: 鏈接。
來自 berzerk0 儲存庫的單字清單: 鏈接。
微軟訊息分析器: 微軟訊息分析器。

來源: www.habr.com

添加評論