我遵循多年的密码规则,原来是设计者自己后悔的建议

我遵循多年的密码规则,原来是设计者自己后悔的建议

你是否曾经因为密码不符合要求而被系统拒绝?必须包含大写字母、小写字母、数字和特殊字符?必须每90天更换一次?

但如果你知道这些规则的设计者后来公开表示后悔,你可能会重新思考这些规则的意义。

NIST密码指南的主要制定者Bill Burr在多年后承认,他参与制定的密码策略在实际应用中产生了反效果。

2003年,Bill Burr在美国国家标准与技术研究院(NIST)工作,负责制定联邦身份认证标准。他参与编写的附录A花了约8页篇幅回答一个问题:用户创建的密码有多难猜测?

当时NIST并没有太多实际数据来支持这些建议。他们主要依赖Claude Shannon关于英语文本可预测性的研究,以及其他当时的研究成果,构建了一个关于密码熵如何衡量不可预测性的实用模型。

这个模型产生的建议,对于任何曾被企业密码系统困扰过的人来说,都显得非常熟悉。一个典型的例子是:八位密码策略,要求包含大小写字母、数字和特殊字符。文档还为此类组成规则分配了一个熵值奖励,给了机构一个看似合理的数学理由,认为强制混合字符类型会带来显著的安全提升。

问题在于,这个模型预测了人们会如何”作弊”。文档已经警告过,用户被迫添加大写字母和符号时,会以最可预测的方式操作:大写字母放在开头,标点符号放在结尾。

即使文档中有这些警告,规定仍然给予组成规则额外的安全信用。在实践中,人们学会了同样的几种”小技巧”,”password”变成了”Password1!”,所谓的更强规则实际上只是让密码更容易被预测。

密码破解器可以快速通过常见猜测模式。附录已经预测了这种行为,但仍然给鼓励这种行为的规则分配了熵值奖励。

这些指南最初是为联邦身份认证系统编写的,但NIST允许私营组织自愿采用。想法远远超出了原始受众。企业、大学、网站和IT部门采用了类似的规则。

结果是一个矛盾的局面:密码变得复杂但可预测。用户为了遵守规则,采用了固定的模式,使得密码更容易被攻击。

NIST后来意识到了这个问题。2017年,他们发布了新的指南SP 800-63B,大幅简化了密码要求:不再强制要求定期更换密码,不再要求复杂的字符组合,鼓励使用长密码短语,要求检查密码是否在已知泄露列表中。

新的密码策略基于不同的假设。

用户倾向于创建容易记住但容易被猜测的密码。简单的复杂性规则只会让他们采用固定的模式。

长密码短语比短复杂密码更安全。一个由4个随机单词组成的短语比一个8位复杂密码更难破解。

已知泄露密码检查比复杂性规则更有效。阻止用户使用已泄露的密码比强制复杂字符更有意义。

用户疲劳是真实的问题。频繁的密码更改和复杂性要求导致用户选择可预测的模式,反而降低了安全性。

对于个人用户:使用密码短语而非复杂密码。选择4-5个随机单词组合,如”correct-horse-battery-staple”。使用密码管理器。让密码管理器生成和存储复杂密码,你只需要记住一个主密码。避免在多个网站使用相同密码。密码泄露事件频发,一个网站泄露可能导致其他网站也被攻陷。

对于企业安全团队:更新密码策略。遵循NIST SP 800-63B指南,简化密码要求。实施多因素认证。密码只是第一道防线,多因素认证提供额外保护层。监控已知泄露。使用Have I Been Pwned等工具检查用户密码是否在泄露数据库中出现。减少密码更改频率。除非有泄露风险,否则不应强制定期更换密码。

在安全运营中,我们见过太多企业仍然遵循过时的密码策略。强制复杂密码、频繁更改密码,这些措施反而降低了整体安全性。

我建议企业安全团队更新密码策略,遵循NIST最新指南;实施密码管理器解决方案,减少用户密码疲劳;部署多因素认证,降低单点失败风险;定期审查密码策略,根据最新研究调整。

密码安全的核心理念正在从”复杂性”转向”长度和独特性”。这个转变反映了我们对用户行为和安全威胁的更好理解。

Bill Burr的故事提醒我们,安全建议需要基于实际数据,而不是理论模型。当模型与现实不符时,坚持过时规则反而会增加风险。

核心要点:

NIST密码指南制定者Bill Burr后来承认部分建议产生了反效果。

复杂密码规则导致用户采用可预测模式,反而降低安全性。

现代密码策略强调长度、独特性和已知泄露检查,而非复杂性要求。

企业应更新密码策略,实施多因素认证,减少密码疲劳。

安全建议需要基于实际数据和用户行为,而非理论模型。

密码安全

密码规则的设计者后来承认,复杂密码策略反而降低了安全性


原文来源:MakeUseOf