实施 NIST 密码指南的最佳实践( NIST 特别出版物 800 - 63B) Active Directory 的特殊说明 最佳实践概述:使用您的目录服务强制执行基本密码准则 设置用户友好的密码策略 帮助您的用户自助限制“常用、预期或泄露”的密码建立必要的安全控制 简化NIST密码指南使用SpyCloud 导向层六边形要求 (应)圆形重要 (应该)正方形期望 (may) 多年来,安全专业人士发现了关于密码策略如何影响用户行为的一些令人惊讶的教训。事实上,严格的密码复杂性规则和强制定期更改密码的政策并不会导致更强的密码。相反,这些政策会使人们更难记住密码,促使他们采取危险的捷径,比如选择可预测的密码或在数百个账户中重复使用少数几个喜欢的密码。 当用户使用快捷方式时,网络犯罪分子会受益。攻击者系统性地测试从数据泄露中窃取的凭证,这些凭证可用于其他账户,范围从雇主的Active Directory服务到各种在线服务提供商。借助高级账号检查工具的帮助,即使是不复杂的犯罪分子也可以大规模自动化凭证填充和密码喷洒攻击,针对各种目标。 对于组织而言,控制用户不良的密码习惯构成了一个主要挑战。这就是为什么美国国家标准与技术研究院(NIST)最近发布的密码指南将人类行为考虑在内的原因。最新的指南详细说明了NIST 特别出版物 800 - 63B , 第 5.1. 1.2 节,在制定政策时平衡人性化要求与强密码策略,并帮助企业减轻风险。 使企业的密码策略与最新的NIST指南保持一致可以帮助促进更好的密码习惯并降低账户接管的风险。可以通过大多数目录服务提供的内置设置(包括Microsoft Active Directory)来强制执行许多这些指南。只有少数指南,例如确定密码是否曾在第三方泄露事件中暴露,需要外部强制执行。 使用目录服务执行基本密码准则 可以通过大多数目录服务(包括 Active Directory 和 Azure AD) 实施基本密码策略。 在 Active Directory 中可执行: 检查圆检查圆最小 8 个字符允许特殊字符检查圆检查圆64 + 个字符最大限制失败的登录尝试 设置 8 个字符的最小值 要求六边形 NATIONAL 标准技术研究所要求密码至少由八个字符组成。长度小于八位的密码对于攻击者来说容易被破解,正如 SpyCloud 自身所指出的那样。密码破解研究演示。 您可以在 Microsoft 中设置此要求Active Directory通过钻取至“安全设置” > “账户策略” > “密码策略”,并选择“最小密码长度”。将字符数设置为至少八个。 允许 64 + 个字符 重要信息圆形 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 建议允许用户设置至少64个字符的密码。长密码增加了犯罪分子破解暴露密码的成本。允许广泛的密码长度范围使得用户能够设置长口令短语,并鼓励使用密码管理器。 InActive Directory, Microsoft 在 Windows 10 中默认最多允许 127 个字符 , 尽管您的里程数可能会有所不同某些情况。对于 Azure AD , Microsoft允许最多 256 个字符。 允许(但不要求) 特殊字符 重要信息圆形 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 建议允许使用 Unicode并打印 ASCII 字符,包括空格。连续的空格字符可以替换为单个空格以帮助处理误输入问题。对于选择允许使用 Unicode 的组织,NIST 提醒在哈希之前要对密码进行规范化处理。 虽然建议允许使用64个及以上字符,但NIST禁止截断密码。相反,确保您尊重与用户共享的密码最大长度规则。例如,如果告知用户您的最大密码长度为64字符,请不要仅保存前32个字符。 Active Directory默认情况下允许打印大多数 ASCII 字符 , 但不允许使用Unicode 字符。 限制失败的登录尝试 要求六边形 NIST要求组织限制失败登录尝试,这可能会使攻击者访问用户账户变得更加困难。在第5.2.2节中,指南规定重复登录尝试不应超过“100次”,并建议采取额外措施以确保实际用户不会被锁定。这些选项可能包括使用验证码(CAPTCHA)、增加每次失败登录后等待的时间、将IP地址列入白名单以及任何其他基于风险的方法来标记恶意行为者。 InActive Directory,你可以通过深入“Security Settings > Account Policies> Account Lockout Policy”,并选择“Account lockout threshold”(设置为100或更低)来限制失败登录尝试。你还可以设置“Account lockout duration”和“Reset account lockout counter after”的值,尽管NIST不要求特定的这些值。 设置人性化的密码策略 因为最新的NIST指南推翻了数十年来关于构成强大密码策略的信念,它们提供了大量关于不应采取的做法的覆盖内容。遵循这些指南以避免设定鼓励用户不良习惯的要求。 NIST 的人性化指南 : 时间圈不需要复杂的密码时间圈不要强制任意更改密码时间圈不要使用密码提示或提醒时间圈不要使用基于知识的身份验证 不需要复杂的密码 重要信息圆形 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY(NIST)reverse其之前的指导意见,建议不要强制要求密码组成规则,例如使用字母和符号的组合。理论上,使用字母、数字和符号的混合可以增加破解密码的难度。然而,在实践中,这种要求导致用户选择较短但难以记忆的密码,而这些密码对于犯罪分子来说却很容易被破解。 例如 , 用户可以使用像这样的密码来逃避大多数复杂性要求'P @ ssw0rd!' 因为密码遵循了必要的组成规则,用户可能会认为他们做出了安全的选择。不幸的是,犯罪 分子非常了解使用“类语”(leetspeak)对字典单词进行修改或将密码更改几个字符以循环使用这一做法。许多账户检查工具会自动测试这种类型的密码变化。更糟糕的是,用户可能会在多个服务中重复使用其“安全”密码的选择,从而进一步增加风险。 InActive Directory你在安全设置中钻取至账户策略 > 密码策略,并选择“密码必须符合复杂性要求”。然后选择“禁用”。 重要信息圆形 NIST 建议避免随意更改密码,例如每90天常规更换一次密码。这种要求使得用户更难记住密码,并鼓励选择弱密码、循环使用一组熟悉的密码或对现有密码进行微小修改等不良习惯。 密码轮换对犯罪分子有利。当组织强制执行密码过期政策时,犯罪分子知道一些用户会不可避免地循环使用较旧的密码,包括之前数据泄露中暴露的密码。这就是犯罪分子会在数月或数年内耐心测试被盗凭证以针对其他账户的原因之一。 InActive Directory,你可以通过钻取至“安全设置”>“账户策略”>“密码策略”来关闭密码过期及相关设置,并进行以下更改: 1. 选择“设置密码的最大有效期”,将其设置为0以确保密码永远不会过期。2. 选择“强制执行密码历史记录”,将其设置为0,这将允许用户使用以前的密码。(尽管NIST建议禁止使用已泄露的密码,但并未对限制以前的密码提出建议。)3. 选择“设置最小密码有效期”,将其设置为0以移除用户频繁更改密码的限制。 不要使用密码提示或提醒 要求六边形 NATIONAL 标准与技术研究院建议不要使用任何未经身份验证的第三方能够访问的密码提示或提醒,例如密码提示或提醒信息。用户可能低估了在提醒字段中提供过多信息的风险,这可能会使犯罪分子更容易猜测密码并访问账户。一些用户甚至会将实际密码设置为提示。 默认情况下 ,Active Directory已经不支持使用提示和提醒。 不要使用基于知识的身份验证 要求六边形 NIST 建议不要使用基于知识的身份验证提示,例如询问用户的第一辆汽车的型号。通常,这些问题会使用可通过公共记录或社交媒体获得的信息。此外,用户可能被多个服务要求回答相同的这些问题,促使他们重复使用凭证。如果犯罪分子获取了用户其他信息,这种身份验证方式可能会很容易被猜出。 默认情况下 ,Active Directory已不支持使用基于知识的身份验证。 帮助您的用户帮助自己 NIST 提供可用性指南,鼓励用户选择强密码,而不直接实施具体要求。其中一些指南可以通过 Active Directory直接使用,除了提供密码强度指示器以指导密码创建之外。 密码创建指南Active Directory 支持 :check - circle 提供查看完整密码的功能check - circle 允许用户粘贴密码时间圈 提供查看完整密码的功能 重要信息圆形 NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 建议允许用户选择查看其完整密码的选项,这有助于他们检查输入是否正确。此外,NIST还建议在用户输入时逐个显示字符,以帮助移动设备用户避免错误。 Active Directory默认情况下 , 用户可以显示完整密码。 允许用户粘贴密码 重要信息圆形 根据NIST的说法,能够粘贴密码“促进了密码管理器的使用,而这些管理器被广泛使用,并且在许多情况下增加了用户选择更强的记忆秘密的可能性。” 默认情况下 , Active Directory 提供粘贴功能。 提供密码创建指导 , 如密码强度计 重要信息圆形 NATIONAL 标准建议在用户创建密码时提供密码强度指导,这可能以密码强度计的形式呈现。 密码强度计不可开箱使用Active Directory 。鉴于NIST将此指南列为重要指南而非强制指南,使用Active Directory的组织可以选择忽略此建议或包含密码强度参考材料。 或者通过教育员工来实现。 alternatively, 你的组织可以评估引入第三方工具以达到这一目的。例如,这通常是大多数密码管理器的一项功能。 Ban“常用、预期或受损 ” 密码 要求六边形 NIST要求组织识别“常用、预期或已被破解”的密码,并在被选中时强制用户重置这些密码。根据NIST的规定,这些密码包括但不限于: 从以前的违规公司获得的密码。时间圈 字典单词。重复或连续字符(例如 “aaaaaa ” 、“ 1234abcd ”) 。时间圈时间圈时间圈上下文特定的单词 , 例如服务名称、用户名及其派生词。 受用户不良密码习惯的助力,犯罪分子积极利用这类常见且已被泄露的密码进行账户接管攻击。根据2018年 Verizon 数据泄露报告,涉及的53,000起安全事件中,情况如此。1 48 % 涉及被盗凭证。 遵循NIST指导,限制使用弱密码或暴露的密码是组织保护自己的最佳做法。然而,您可能不会从目录服务中直接获得这种功能。以下是帮助您遵守NIST指南的一些最佳实践。 根据不断发展的列表检查用户的密码 比较密码与静态列表不符合作为NIST指导的一部分。新的数据泄露事件不断发生,持续增加您组织的风险暴露。为了提供一个规模感,SpyCloud研究者每月向我们的数据库添加大约十亿个新的泄露资产。 对供应商进行测试 通过实施概念验证(Proof of Concept,PoC)来评估潜在解决方案是最有效的方式,如果比较多家供应商,则可以通过头对头的“数据测试”来进行。 大多数安全团队独自研究和实施大量泄露数据是不合理的。没有专门团队支持此类努力的组织应评估能够提供帮助的供应商。在评估解决方案提供商时,请寻找一家能够定期收集新泄露数据并提供大量明文密码数据库以供您与自己的用户密码进行比对的提供商。同时考虑提供商如何帮助您利用这些数据。 询问潜在的解决方案