一、背景
在域环境中,如果用户端想要修改主机的密码,会提示:为新密码提供的值不符合字符域的长度、复杂性或历史要求:
二、密码策略
上述安全提示,是因域控的安全策略所导致,那域控的安全策略是怎样的呢?默认策略位置:计算机配置\Windows Settings\Security Settings\Account Policies\Password 策略里:
1)强制实施密码历史记录
以下是OS的【默认值】参考:
服务器类型或 GPO | 默认值 |
---|---|
默认域策略 | 记住24个密码(有助于减少由密码重复使用导致的漏洞) |
默认域控制器策略 | 未定义 |
独立服务器默认设置 | 记住0个密码 |
域控制器有效默认设置 | 记住24个密码 |
成员服务器有效的默认设置 | 记住24个密码 |
客户端计算机上的有效 GPO 默认设置 | 记住24个密码 |
【最佳实践】:
1>将 “强制密码历史” 设置为 “24”(最大设置), 这将有助于减少由密码重复使用导致的漏洞。
2>将密码最长使用期限设置为在60和90天之间过期密码, 尝试使主要业务周期内的密码过期以防止工作丢失。
3>配置密码最短存留期, 以便不允许立即更改密码。
【影响】:
1>用户必须在每次需要更改其旧密码时创建新密码。 如果用户需要将其密码更改为新的唯一值, 则会增加用户在某个地方编写密码的风险, 以免忘记。 另一个风险是, 用户可以创建以增量方式 (例如, password01、password02 等) 更改的密码来更好记忆使用, 但这使攻击者更容易猜到。
2>“密码最长存留期” 策略设置的值过低可能会增加管理开销, 因为忘记密码的用户可能会要求技术支持人员经常重置它们。
2)最长密码使用期限
该策略设置: 用来确定系统要求用户更改密码之前可以使用该密码的时间段(以天为单位)。设置为0来指定密码永不过期。另密码最短使用期限必须小于密码最长使用期限。
将 “密码最长使用时间” 设置为-1 等效于0,这意味着它永不过期。 将其设置为任何其他负数等效于将其设置为 “未定义”。如果密码最长存留期设置为0,则密码最短存留期可以是0到998天之间的任何值。
最佳实践: 将 “密码最长使用期限” 设置为介于30和90天之间的值;对此策略所做的更改在本地保存或通过组策略分发的情况下生效,而无需重新启动计算机。如果 “密码最长存留期” 策略设置过低,则用户需要经常更改密码。
【默认值】:
服务器类型或组策略对象(GPO) | 默认值 |
---|---|
默认域策略 | 42天 |
默认域控制器策略 | 未定义 |
独立服务器默认设置 | 42天 |
域控制器有效默认设置 | 42天 |
成员服务器有效的默认设置 | 42天 |
客户端计算机上的有效 GPO 默认设置 | 42天 |
3)最短密码使用期限
密码最短存留期必须小于密码最长使用期限,除非密码最长存留期被设置为0,这表示密码永不过期。
最佳实践:Windows 安全基准 建议将 " 密码最短使用期限 " 设置为 “一天”。将 “天数” 设置为 “0” 可允许立即更改密码。 不建议使用此设置。如果为用户设置密码,并且希望该用户更改管理员定义的密码,则必须选中 " 用户下次登录时须更改密码 " 复选框。 否则,用户将无法更改密码,直到密码最短使用期限指定的天数。该项常与强制密码历史记录结合使用,强制密码历史记录默认为1,即启用,且密码最短使用期限默认值为1,即最短使用1天,用户修改密码不能再次立即修改,否则会报安全提示:无法更新密码,为新密码提供的值不符合字符域的长度、复杂性或历史要求
【默认值】:
(GPO) 的服务器类型或组策略对象 | 默认值 |
---|---|
默认域策略 | 1 天 |
默认域控制器策略 | 未定义 |
独立服务器默认设置 0天 | |
域控制器有效默认设置 | 1 天 |
成员服务器有效的默认设置 | 1 天 |
客户端计算机上的有效 GPO 默认设置 | 1 天 |
注:对此策略所做的更改在本地保存或通过组策略分发的情况下生效,而无需重新启动计算机。 将此策略设置与 " 强制密码历史记录 " 策略设置配合使用,可防止旧密码的轻松使用。 例如,如果你配置 “强制密码历史记录” 策略设置以确保用户无法重复使用其任何最新的12个密码,但未将 " 密码最短存留期 " 策略设置配置为大于0的数字,则用户可以在几分钟后更改密码13次,并重复使用其原始密码。eg:假设密码为 “Ra1ny day!” 历史记录要求为12。 如果密码最短存留期为0,则密码可以在行中13次更改,直到最终更改为 “Ra1ny day!”。历史密码策略才能生效,因此 将此策略配合1天的最短密码期限将阻止此情况。
影响:如果为用户设置密码,但希望该用户在用户首次登录时更改密码,则管理员必须选中 " 用户下次登录时须更改密码 " 复选框,或者用户在下一天内无法更改密码,因默认策略至少使用1天。
4)最短密码长度
策略说明: 确定可以为用户帐户输入密码的最少字符数。 可以将值设置为1到14个字符,也可以将字符数设置为0来确定不需要密码。
最佳实践:
将 “最小密码长度” 设置为至少值8。 如果字符数设置为0,则不需要密码。 在大多数环境中,建议使用八个字符的密码,因为它足够长,以提供足够的安全性,并且还足够短,便于用户记忆。 目前不支持大于14的最小密码长度。
默认值:
(GPO) 的服务器类型或组策略对象 | 默认值 |
---|---|
默认域策略 | 7个字符 |
默认域控制器策略 | 未定义 |
独立服务器默认设置 | 0个字符 |
域控制器有效默认设置 | 7个字符 |
成员服务器有效的默认设置 | 7个字符 |
客户端计算机上的有效 GPO 默认设置 | 0个字符 |
5)密码必须符合复杂性要求
" 密码必须满足复杂性要求 " 策略设置:
确定密码是否必须满足一系列强密码准则。 如果启用此设置,则在更改或创建密码时,将强制执行复杂性要求,则需要密码必须满足以下要求:
1>密码不可包含用户的 samAccountName (帐户名称) 值或整个 displayName (全名 “) 的” 完整名称 "值。 这两个检查不区分大小写。该策略将完全检查 samAccountName,以确定它是否是密码的一部分。 如果 samAccountName 的长度少于3个字符,将跳过此检查。 将分析 displayName 的分隔符:逗号、句点、短划线或连字符、下划线、空格、井号和制表符。 如果找到这些分隔符中的任何一个,则将拆分 displayName,并将已分析的所有部分 (令牌) 确认不包含在密码中。 将忽略短于三个字符的令牌,并且不检查令牌的子字符串。 例如,名称 “Erin Hagens” 分为三个标记: “Erin”、“M” 和 “Havens”。 由于第二个令牌的长度仅为一个字符,因此将被忽略。 因此,此用户在密码中的任何地方都不能包含 “Erin” 或 “hagens” 作为子字符串的密码。
2>密码需包含以下类别中的三个:
a、欧洲语言的大写字母 (A 到 Z,带有音调符号标记、希腊语和西里尔文字符)
b、欧洲语言的小写字母 (a 到 z、半高和音调符号标记、希腊语和西里尔文字符)
c、(0 到9的基本10个数字)
d、非字母数字字符 (特殊字符) : (~! @ # $% ^& * -+ = “| \ ( # B4 {} \ []:;” “<>,。?/) 货币符号(如欧元或英国镑)不计为此策略设置的特殊字符。-+=`|(){}[]:;”'<>,.?/) Currency symbols such as the Euro or British Pound aren’t counted as special characters for this policy setting.
e、任何归类为字母字符但不大写或小写的 Unicode 字符。 此组包含亚洲语言的 Unicode 字符。
最佳实践: 设置 密码必须满足复杂性要求 启用,并与最小密码长度8相结合,可确保单个密码至少有218340105584896种不同的可能性。 此设置使得强力攻击非常困难;仅包含字母数字字符的密码可通过公共可用工具轻松破解。 为防止这种情况,密码应包含其他字符并满足复杂性要求。
默认值:
GPO) 的服务器类型或组策略对象 | 默认值 |
---|---|
默认域策略 | 启用 |
默认域控制器策略 | 启用 |
独立服务器默认设置 | 禁用 |
域控制器有效默认设置 | 启用 |
成员服务器有效的默认设置 | 启用 |
客户端计算机上的有效 GPO 默认设置 | 禁用 |
更多请参考官网:https://docs.microsoft.com/zh-cn/windows/security/threat-protection/security-policy-settings/access-this-computer-from-the-network
三、处理
1)确保密码满足策略要求
2)实在不行,执行cmd,超级管理员权限执行:net user 用户名 密码;相关报错可到事件控制台里—Windows 日志”----“安全”里查看是否有相关提示,也可使用筛选器来搜索特定的事件 ID 或关键字。