密码必须符合复杂性要求
适用范围
- Windows 11
- Windows 10
介绍 密码必须满足复杂性要求 安全策略设置的最佳做法、位置、值和安全注意事项。
参考
密码必须满足复杂性要求策略设置确定密码是否必须满足一系列强密码准则。 启用此设置后,需要密码才能满足以下要求:
密码不能包含用户的 samAccountName (帐户名) 值或整个 displayName (Full Name 值) 。 这两项检查都不区分大小写。
将完全检查 samAccountName,只是为了确定它是否是密码的一部分。 如果 samAccountName 的长度少于三个字符,则跳过此检查。 displayName 针对分隔符进行分析:逗号、句点、短划线或连字符、下划线、空格、井号和制表符。 如果找到这些分隔符中的任何一个,则将拆分 displayName,并且所有已分析部分 (令牌) 确认不包含在密码中。 将忽略短于三个字符的标记,并且不会检查令牌的子字符串。 例如,名称“Erin M. Hagens”拆分为三个标记:“Erin”、“M”和“Hagens”。 由于第二个标记只有一个字符长,因此将被忽略。 因此,此用户不能将密码包含“erin”或“hagens”作为密码中的任何一个子字符串。
密码包含以下三个类别中的字符:
欧洲语言的大写字母 (A 到 Z,带有音调符号、希腊语和西里尔文字符) 。
欧洲语言的小写字母 (到 z,sharp-s,带有音调符号、希腊语和西里尔字符) 。
0 到 9) (10 个基数。
非字母数字字符 (特殊字符) :
'-!"#$%&()*,./:;?@[]^_`{|}~+<=>
欧元或英镑等货币符号不计入此策略设置的特殊字符。
分类为字母字符但不是大写或小写的任何 Unicode 字符。 此组包含来自亚洲语言的 Unicode 字符。
更改或创建密码时,会强制实施复杂性要求。
Windows Server 密码复杂性要求中包含的规则是 的 Passfilt.dll
一部分,不能直接修改这些规则。
启用后,默认 Passfilt.dll 可能会导致对锁定帐户进行更多技术支持调用,因为用户习惯于仅包含字母表中字符的密码。 但是,此策略设置足够宽松,所有用户都应该习惯它。
可以包含在自定义 Passfilt.dll
中的其他设置是使用非上行字符。 若要键入上行字符,请按住 SHIFT 键,然后按键盘 (数字行上的任意一个键,) 从 1 到 9 和 0。
可能值
- 已启用
- 禁用
- 未定义
最佳做法
提示
有关最新的最佳做法,请参阅 密码指南。
将 “密码必须满足复杂性要求 ”设置为“已启用”。 此策略设置与最小密码长度 8 相结合,可确保单个密码至少有 159,238,157,238,528 种不同的可能性。 此设置使暴力攻击变得困难,但仍不是不可能。
使用 ALT 键字符组合可能会大大增强密码的复杂性。 但是,要求组织中的所有用户遵守如此严格的密码要求可能会导致用户不满和过度工作的技术支持。 请考虑在组织中实施一项要求,要求使用范围从 0128 到 0159 的 ALT 字符作为所有管理员密码的一部分。 (超出该范围的 ALT 字符可以表示不会增加密码复杂性的标准字母数字字符。)
使用公开可用的工具,仅包含字母数字字符的短密码很容易泄露。 若要防止此漏洞,密码应包含其他字符和/或满足复杂性要求。
位置
Computer Configuration\Windows Settings\Security Settings\Account Policies\Password Policy
默认值
下表列出了实际和有效的默认策略值。 默认值也会在策略的属性页上列出。
服务器类型或组策略对象 (GPO) | 默认值 |
---|---|
默认域策略 | 已启用 |
默认域控制器策略 | 已启用 |
独立服务器默认设置 | 禁用 |
域控制器有效默认设置 | 已启用 |
成员服务器有效默认设置 | 已启用 |
客户端计算机上有效的 GPO 默认设置 | 禁用 |
安全注意事项
本部分介绍攻击者如何利用一项功能或其配置,如何实施对策,以及对策实施可能产生的负面后果。
漏洞
仅包含字母数字字符的密码可通过多种公开可用的工具轻松发现。
对策
将 “密码必须满足复杂性要求 ”策略设置为 “已启用 ”,并建议用户在密码中使用各种字符。
当与 最小密码长度 8 结合使用时,此策略设置可确保单个密码的不同可能性数非常大,因此很难 (但暴力攻击可能) 成功。 (如果增加最小密码长度策略设置,则成功攻击所需的平均时间也会增加。)
潜在影响
如果保留密码复杂性的默认配置,则可能会对锁定的帐户进行更多技术支持调用,因为用户可能不习惯使用包含非字母字符的密码,或者他们可能无法在具有不同布局的键盘上输入包含重音字符或符号的密码。 但是,所有用户都应能够以最小的难度遵循复杂性要求。
如果组织具有更严格的安全要求,则可以创建允许使用任意复杂密码强度规则的文件的自定义版本 Passfilt.dll
。 例如,自定义密码筛选器可能需要使用非上行符号。 (上行符号是需要按住 SHIFT 键,然后按键盘数字行上的任意键(从 1 到 9 和 0)的符号。) 自定义密码筛选器可能还会执行字典检查,以验证建议的密码是否不包含常见的字典单词或片段。
使用 ALT 键字符组合可能会大大增强密码的复杂性。 但是,这种严格的密码要求可能会导致更多的技术支持请求。 或者,组织可以考虑要求所有管理员密码使用 0128-0159 范围内的 ALT 字符。 此范围之外的 (ALT 字符可以表示不会增加密码复杂性的标准字母数字字符。)