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