如何在Active Directory中增加最小字符密码长度(15+)策略
Kent Ickler //
作为一系列关于安全意识“Windows专家”视角下的Windows管理的开篇,我邀请您了解如何配置AD DS PSO(密码安全对象),以及如何将它们应用到您的环境中,以强制执行超出原生AD GPO支持的密码限制。
任意性:推动更长的密码
大约在您完成SOX-DSS-HIPAA-Omnibus-PCI-CJIS-FBI-CIA-BYOBeer审计发现审查时,您的共情审计员揭示了“15个字符最小密码”的渐进要求。可能是因为去年的策略变更和“14个字符最小密码”的执行太过有趣,以至于不得不成为年度体验,您知道头痛即将来临。作为Active Directory管理员,您即将了解向后兼容性的关键点,以及它如何限制当今的安全平台。
向后兼容性限制安全性
后千禧一代的历史课
回到Windows 95/98时代,密码使用LM哈希存储。LM哈希方法在其时代是安全的——密码会被转换为相同大小写,填充到14个字符,分成两个7字符的半部分,每个半部分用于加密一个静态字符串。结果的两个加密组合在一起,形成存储的LM哈希密码。可以说,LM哈希和昔日的加密功能是存储密码和数据的足够机制,没有及时暴力破解的威胁。如今,一个精简构建的hashcat系统将在短短几分钟内暴力破解100个LM哈希。
尽管微软系统最终退役了LM哈希,转而使用更安全(但仍然可被破解)的哈希函数,但向后兼容的加密在NT4之后保留了多年,导致系统进入新千年时带有密码漏洞,并限制了可接受的组策略配置。原生Active Directory组策略密码设置仍未摆脱14个字符的污名,这在尝试设置“15个字符最小密码”时最为相关。
组策略限制
别担心,死忠的Windows 2012 GUI爱好者管理员:Active Directory可以原生支持15+个字符的最小密码,全部通过GUI完成,无需头痛!Windows 2008 AD DS引入了“精细密码策略”或密码设置对象(PSO)。PSO不是使用计算机对象的组策略,而是针对特定的Active Directory用户账户或用户组。然而,在Windows 2008中创建PSO仍然保留给ADSI编辑器和PowerShell忍者(参见底部更多信息)。在Windows 2012中,该功能从后端Active Directory管理转移到前端GUI,隐藏在很少使用的Active Directory管理中心的深处。更重要的是,在我们克服密码字符限制要求的追求中,PSO允许最小密码字符长度的最大值为255个字符,有效防止密码更改。
Windows 2012+中的PSO
在Windows 2012+中设置PSO很容易,并且不会影响用户,直到他们尝试下一次密码更改。
但买家需谨慎,始终测试您的工作;参见底部的注意事项。
控制面板 -> 系统和安全 -> 管理工具 -> Active Directory管理中心
域名 -> 系统 -> 密码设置容器
右键单击 -> 新建 -> 密码设置
完成PSO设置并分配一个用户或用户组目标。要将策略分配给所有用户,请使用“域用户”。注意在此测试中,我们指定了20个字符作为可接受密码的最小长度。
测试您的工作
使用新的15个字符密码更改密码:
[图片]
测试您的工作:
使用新的20个字符密码更改密码:
[图片]
注意事项和考虑
在使用PSO配置密码要求时,有几个严重的考虑因素。在管理和故障排除方面,PSO在RSOP中并不友好,因此请确保您的管理员知道检查PSO,如果您的支持台听到密码更改的头痛问题。要知道,因为PSO针对域用户账户而不是域计算机账户,工作站/服务器本地用户账户不会受到影响,域计算机账户也不会受到影响。因此,操作典型的Active Directory组策略以及PSO以限制可接受密码非常重要。
除了使用PSO设置密码策略以限制可接受密码外,还有其他替代方案。有HKLM注册表黑客可以强制顺从系统到特定密码长度。还有一个十年之久的解决方案,即构建自定义密码过滤器库并在系统中注册它。关于向后兼容性和LM哈希,组策略和HKLM中也有解决方案。
随着微软慢慢关闭向后兼容性安全差距,我们可能最终会发现原生AD DS组策略中的密码策略将开始赶上当今的安全标准,强制执行7、14、15、255、500个字符的最小密码,而不会带来任何头痛——或者,我们都会只是凿石片。
最后一点,请务必请您的内部审计员和渗透测试员吃早餐。
更多信息
在Windows 2008中创建PSO:https://technet.microsoft.com/en-us/library/cc754461(v=ws.10).aspx
LM哈希信息:https://technet.microsoft.com/en-us/library/hh994558(v=ws.10).aspx
防止使用LanMan哈希:https://support.microsoft.com/en-us/kb/299656