可在域级别上应用所有的帐户策略组策略设置。在帐户策略、帐户锁定策略和 Kerberos 策略内置的默认域控制器中提供了默认值。请记住,在 Microsoft Active Directory 中设置这些策略时,Microsoft Windows 仅允许一个域帐户策略
Windows安全指南之域级别策略(中)
最短密码长度
“最短密码长度”设置确定可以组成用户帐户密码的最少字符数。确定组织的最佳密码长度有许多不同的理论,但是,“通行码”一词可能比“密码”更好。在 Microsoft Windows 2000 及更高版本中,通行码可以相当长,并且可以包括空格。因此,诸如“I want to drink a $5 milkshake”之类的短语都是有效的通行码,它比由 8 个或 10 个随机数字和字母组成的字符串要强大得多,而且更容易记住。
此组策略设置可能的值是:
• |
用户指定的数值,在 0 至 14 之间 |
• |
没有定义 |
漏洞
可以执行几种类型的密码攻击,以获取特定用户帐户的密码。这些攻击类型包括试图使用常见字词和短语的词典攻击,以及尝试使用每一种可能的字符组合的暴力攻击。另外,可通过获取帐户数据库并使用破解帐户和密码的实用程序来执行攻击。
对策
应该将“最短密码长度”的值至少设置为“8”。如果字符数设置为“0”,则不要求使用密码。
在大多数环境中都建议使用由 8 个字符组成的密码,因为它足够长,可提供充分的安全性,同时也足够短,便于用户记忆。此设置将对暴力攻击提供足够的防御能力。提高复杂性要求将有助于降低词典攻击的可能性。下一部分将讨论复杂性要求。
潜在影响
允许短密码将会降低安全性,因为使用对密码执行词典攻击或暴力攻击的工具可以很容易地破解短密码。要求很长的密码可能会造成密码输入错误而导致帐户锁定,从而增加了帮助台呼叫的次数。
要求极长的密码实际上可能会降低组织的安全性,因为用户更有可能写下自己的密码以免遗忘。但是,如果教会用户使用上述通行码,用户应该更容易记住这些密码。
密码必须符合复杂性要求
“密码必须符合复杂性要求”设置确定密码是否必须符合对强密码相当重要的一系列原则。
启用此策略要求密码符合下列要求:
• |
密码长度至少为 6 个字符。 | ||||||||
• |
密码包含下列四类字符中的三类:
| ||||||||
• |
密码不得包含三个或三个以上来自用户帐户名中的字符。如果帐户名长度低于三个字符,因为密码被拒概率过高而不会执行此项检查。检查用户全名时,有几个字符被看作是将名称分隔成单个令牌的分隔符,这些分隔符包括:逗号、句点、短划线/连字符、下划线、空格、磅字符和制表符。对于包含三个或更多字符的每个令牌,将在密码中对其进行搜索,如果发现了该令牌,就会拒绝密码更改。例如,姓名“Erin M. Hagens”将被拆分为三个令牌:“Erin”、“M”和“Hagens”。因为第二个令牌仅包含一个字符,因而会将其忽略。因此,该用户密码中的任何位置都不能包含“erin”或“hagens”子字符串。所有这些检查都是区分大小写的。 |
这些复杂性要求在密码更改或新建密码时强制执行。
不能直接修改 Windows Server 2003 策略中包括的这些规则。但是,可以创建一个新版本的 passfilt.dll,以应用不同的规则集。关于 passfilt.dll 的源代码,请参阅 Microsoft 知识库文章 151082“HOW TO: Password Change Filtering & Notification in Windows NT”,其网址为:http://support.microsoft.com/default.aspx?scid=151082(英文)。
此组策略设置可能的值是:
• |
启用 |
• |
禁用 |
• |
没有定义 |
漏洞
只包含字母数字字符的密码非常容易被市场上可以买到的实用程序所破解。要防止出现这种情况,密码应该包含其他字符和要求。
对策
将“密码必须符合复杂性要求”的值设置为“启用”。
将此设置与“最短密码长度”值为“8”的设置结合使用,可确保一个密码至少有 218,340,105,584,896 种不同的可能性。这样就很难使用暴力攻击,但也并非不可能,如果某个攻击者具有足够的处理能力,能够每秒测试 100 万个密码,则可以在七天半左右的时间内确定这样一个密码。
潜在影响
启用默认的 passfilt.dll 可能会因帐户锁定而导致帮助台的呼叫次数增加,因为用户可能并没有使用包含字母表以外的字符的密码。但此设置非常灵活,所有用户都应该能够通过短时间的学习来满足这些要求。
自定义的 passfilt.dll 中包括的其他设置是使用非上行符。上行符是指按住 Shift 键并键入任何数字(1 – 10)时键入的字符。
同时,使用 Alt 键字符组合可大大增加密码的复杂性。但是,要求组织中的所有用户都遵守如此严格的密码要求可能会导致用户不满,并将导致帮助台极度繁忙。考虑在组织内实现这样一种要求,即使用 0128 – 0159 范围内的 Alt 字符作为所有管理员密码的一部分。此范围之外的 Alt 字符可表示标准的字母数字字符,而不会另外增加密码的复杂性。
用可还原的加密来存储密码(针对域中的所有用户)
“用可还原的加密来存储密码(针对域中的所有用户)”设置确定 Microsoft Windows Server 2003、Windows 2000 Server、Windows 2000 Professional 和 Windows XP Professional 是否使用可还原的加密来存储密码。
此策略支持使用需要了解用户密码以便进行身份验证的协议的应用程序。根据定义,存储以可还原方式加密的密码意味着可以对加密的密码进行解密。能够破解这种加密的高水平攻击者然后可以使用已被破坏的帐户来登录到网络资源。出于此原因,请永远不要启用此设置,除非应用程序的要求比保护密码信息更为重要。
使用通过远程访问的 CHAP 身份验证或 Internet 验证服务 (IAS) 时要求启用此设置。质询握手身份验证协议 (CHAP) 是 Microsoft 远程访问和网络连接使用的一种身份验证协议。Microsoft Internet 信息服务 (IIS) 的摘要式验证也要求启用此设置。
此组策略设置可能的值是:
• |
启用 |
• |
禁用 |
• |
没有定义 |
漏洞
此设置确定 Windows Server 2003 是否以更容易遭到暴力攻击的一种较弱格式来存储密码。
对策
将“用可还原的加密来存储密码(针对域中的所有用户)”的值设置为“禁用”。
潜在影响
使用通过远程访问的 CHAP 身份验证协议或 IAS 服务。IIS 中的摘要式身份验证要求将此值设置为“禁用”。将使用组策略逐个应用到每位用户是一种极其危险的设置,因为它要求在 Active Directory 用户和计算机管理控制台中打开适当的用户帐户对象。
警告:请永远不要启用此设置,除非业务要求比保护密码信息更为重要。
帐户锁定策略
试图登录到系统时多次不成功的密码尝试可能表示攻击者正在以试错法来确定帐户密码。Windows Server 2003 跟踪登录尝试,而且可以将操作系统配置为通过在预设时间段内禁用帐户来响应这种潜在攻击。随本指南提供的 Microsoft Excel 工作簿“Windows Default Security and Services Configuration”(英文)为默认设置编制了文档。
可以在组策略对象编辑器的以下位置配置帐户锁定策略设置:
计算机配置\Windows 设置\安全设置\帐户策略\帐户锁定策略
帐户锁定时间
“帐户锁定时间”设置确定在自动解锁之前锁定帐户保持锁定状态的时间。可用范围为从 1 到 99,999 分钟。通过将该值设定为“0”,可以指定在管理员明确解锁之前锁定帐户。如果定义了帐户锁定阀值,帐户锁定时间必须大于或等于复位时间。
此组策略设置可能的值是:
• |
用户定义的值,在 0 至 99,999 分钟之间 |
• |
没有定义 |
漏洞
如果攻击者滥用“帐户锁定阀值”并反复尝试登录到帐户,则可能产生拒绝服务 (DoS) 攻击。如果配置“帐户锁定阀值”,在失败尝试达到指定次数之后将锁定帐户。如果“帐户锁定时间”设置为 0,则在管理员手动解锁前帐户将保持锁定状态。
对策
将“帐户锁定时间”设置为“30 分钟”。要指定该帐户永不锁定,请将该值设置为“0”。
潜在影响
将此设置的值配置为永不自动解锁可能看上去是一个好主意,但这样做会增加组织支持专家收到的要求解锁意外锁定帐户的请求的数目。
帐户锁定阈值
“帐户锁定阀值”确定导致用户帐户锁定的登录尝试失败的次数。在管理员复位或帐户锁定时间到期之前,不能使用已锁定的帐户。可以将登录尝试失败的次数设置在 1 至 999 之间,或者通过将该值设置为“0”,使帐户永不锁定。如果定义了帐户锁定阀值,帐户锁定时间必须大于或等于复位时间。
在使用 Ctrl+Alt+Delete 或受密码保护的屏幕保护程序进行锁定的工作站或成员服务器上的失败密码尝试,将不作为失败的登录尝试来计数,除非启用了组策略“交互式登录:要求域控制器身份验证以解锁工作站”。如果启用了“交互式登录:要求域控制器身份验证以解锁工作站”,则因解锁工作站而重复的失败密码尝试次数将被计入“帐户锁定阀值”。
此组策略设置可能的值是:
• |
用户指定的值,在 0 至 999 之间 |
• |
没有定义 |
{ad}漏洞
密码攻击可能利用自动化的方法,对任何或所有用户帐户尝试数千甚至数百万种密码组合。限制可以执行的失败登录次数几乎消除了这种攻击的有效性。
但是,请务必注意,可能在配置了帐户锁定阀值的域上执行 DoS 攻击。恶意攻击者可编制程序来尝试对组织中的所有用户进行一系列密码攻击。如果尝试次数大于帐户锁定阀值,则攻击者有可能锁定每一个帐户。
对策
由于配置此值或不配置此值时都存在漏洞,因此要定义两种不同的对策。任何组织都应该根据识别的威胁和正在尝试降低的风险来在两者之间进行权衡。有两个选项可用于此设置。
• |
将“帐户锁定阀值”设置为“0”。这可确保帐户永不锁定。此设置可防止故意锁定全部或一些特定帐户的 DoS 攻击。另外,此设置还有助于减少帮助台的呼叫次数,因为用户不会将自己意外地锁定在帐户外。 由于它不能阻止暴力攻击,因此只有在下列要求均得到明确满足时才可以选择此设置:
| ||||
• |
如果不满足上述要求,请将“帐户锁定阀值”设置为足够高的值,以便用户能够在意外地错误输入几次密码时不会锁定自己的帐户,但可确保暴力密码攻击仍然会锁定帐户。在这种情况下,将该值设置为 50 次无效登录尝试是一个不错的建议。如上所述,此设置可以避免意外的帐户锁定,从而降低了帮助台的呼叫次数,但不能防止 DoS 攻击。 |
潜在影响
启用此设置可防止使用已锁定的帐户,直到管理员将该帐户复位或帐户锁定时间到期。此设置很可能会生成许多其他的帮助台呼叫。事实上,在许多组织中,锁定帐户都会为公司帮助台带来数目最多的呼叫。
如果将帐户锁定阀值设置为“0”,则可能检测不到攻击者尝试使用暴力密码攻击来破解密码。
网友评论