在为 Active Directory 实施 GPO 时,一位同事提到他们已经实施了不允许选择“类似”新密码的 GPO - 即“密码 1”不能更改为“密码 2”。
鉴于 AD 将所有密码存储为哈希值,并且上述两个选项的哈希值会明显不同,而且肯定不相关 - 这怎么可能呢?
答案1
描述了使用标准密码策略可以实现的功能这里。
其中一个可行的选项是防止重复使用密码。管理员可以设置保存多少个旧密码。据我所知,这只能防止用户使用相同的密码,但不能防止他们使用相同的密码。
另一种可能性是密码可以使用可逆加密存储。这是可以在域上设置的另一个标准选项。大多数安全专家认为启用此功能是一个非常糟糕的主意。
你问系统如何做到这一点。
我看到它提供了选项。不过,这更像是一个学术问题 - 关于它如何与上面描述的哈希算法一起工作,您有什么想法吗?
更改密码后,密码的可逆版本将传输到域控制器。有钩子可以让应用程序拦截密码更改请求并获取密码的未加密版本。这里有一个 OSS 项目,它提供了一个钩子 (http://passwdhk.sourceforge.net/)。
据推测,上述代码会抓取正在更改的密码,然后使用可逆加密存储它们。当密码正在更改时,应用程序可能会解密所有密码,并使用类似编辑距离看看密码是否足够不同。
答案2
AD 中默认的唯一内容是年龄、长度和复杂度。复杂度定义为:
不包含用户的帐户名或用户全名中超过两个连续字符的部分
长度至少为六个字符
包含以下四类中的三类字符:
英文大写字符(A 到 Z)
英文小写字符(a 到 z)
十进制数字(0 到 9)
非字母字符(例如,!、$、#、%)
更改或创建密码时必须强制执行复杂性要求。
我不得不同意“匿名者”的观点,你必须拥有第三方产品才能添加此功能。