如何在 Windows 系统上实施 IA-5(1)(b)?

信息安全 视窗 遵守 密码管理 尼斯特
2021-08-18 11:33:34

注意:我还在非 Windows 系统上发布了一个针对此问题的问题。

在 NIST SP 800-53 Rev. 3 中,IA-5 是寻址“验证器管理”的控制。此控制中的要求包括强制执行密码长度、复杂性、寿命、历史以及密码的正确存储/传输等。

为所有(低/中/高)系统选择的此控件的第一个增强功能包括此要求:

信息系统,用于基于密码的身份验证:

...

(b) 在创建新密码时至少强制执行[分配:组织定义的更改字符数];

在 Windows 系统中,我知道如何强制使用长而复杂的密码,这些密码会定期更改,并且与一定数量的旧密码完全匹配。但是,您如何实施要求每个新密码更改一定数量的字符的策略?

2个回答

相信唯一的办法就是编写自己的自定义密码过滤器。

还有很多第三方产品可以为您做到这一点,例如

即使是 Windows 2008 密码复杂性也只会检查:

  • 密码不能包含超过两个连续字符的用户帐户名或用户全名的一部分。
  • 密码长度必须至少为六个字符。
  • 密码必须包含以下四类中的三类字符:
    • 英文大写字符(A 到 Z)。
    • 英文小写字符(a 到 z)。
    • 以 10 位为基数(0 到 9)。
    • 非字母字符(例如,!、$、#、%)。

http://technet.microsoft.com/en-us/library/cc264456.aspx

这种带有用户教育的默认复杂性检查和提供密码管理器足以让大多数公司降低风险。

如果您真的担心有人设置 ChelseaFC01、ChelseaFC02、ChelseaFC03 并且这是通过社会工程猜测的,即攻击者发现用户喜欢 Chelsea 并循环通过这种组合,您可以摆脱仅仅依赖密码:例如实施两个因素,自适应身份验证等. 您还可以通过 Active Directory 日志监控多个密码失败,例如 8 次尝试然后成功并调查这些。

我认为这在 Windows 2008 中可能已经改变,但在早期版本的 Windows 中,这种事情是通过自定义密码过滤器 (passfilt.dll) 和/或自定义登录代理完成的。