为什么大多数大型组织都有“已知错误”的密码策略?

信息安全 密码 密码策略 社会工程学
2021-08-19 19:15:17

我最近在 security.stackexchange 上看到了一个密码问题“ NHS 的密码有问题吗? ”这个问题针对一个组织非常具体,但据我所知,大多数大型组织都使用相同的“已知错误”密码策略。

当我说“已知的错误密码策略”时,我的意思是说大多数大型组织专注于相对较短(8 到 14 个字符)的密码,重点是要求最少数量的特殊字符(大写/小写、符号、数字等) .

当我说“大型组织”时,我指的不仅仅是商业,而是非商业(例如 NIST。我相信其他人可以提出其他此类示例)。现在我想到了……大多数 linux 发行版都有某种默认密码策略,它们也非常相似(密码相对较短,但需要特殊字符)。

为什么大多数大型组织都有“已知错误”的密码策略?

关于同一主题的强制性 XKCD 参考: 关于同一主题的强制性 XKCD 参考

ps 另一个非常流行的问题:XKCD #936: Short complex password, or long dictionary passphrase?

pps 通常我不会问这样的问题,但我强烈地觉得这个问题需要被问和回答。自从XKCD 漫画于 2011 年问世以来)我看到人们一次又一次地询问同一个主题……所有问题都在提出合理的问题……但他们都围绕“为什么”部分跳舞,而没有直接解决它。

3个回答

[“为什么别人会做我认为愚蠢的事情?” 始终是一个非常开放的问题,需要猜测(并且不太适合 Stack Exchange。)但是因为这个问题在密码策略中非常普遍,我相信它值得探索。]

首先,有很多关于密码的错误信息、迷信、令人困惑的数学和技术问题。

  • 一些安全专家认为,特殊字符、数字和混合大小写字母的组合会自动使密码无法猜测,但他们不知道或不同意最佳组合是什么。该指南还应根据用户的母语进行更改,但许多站点管理员并未意识到这些差异。
  • 有些人不了解现代密码攻击者可用的大规模并行计算资源。包含用 MD5 散列的每个可能的 8 个字符串的彩虹表的硬盘在网上出售。基于云的计算集群、专用的显卡阵列以及数千台受僵尸网络控制的计算机都被人们用来破解密码。当需要测试猜测时,有进取心的黑客可以随时使用以前破解的密码、每种语言的字典、歌词和电影引用的数据库。
  • 人们记得听到过诸如“不要写下密码”之类的话,这是 20 年前的建议,当时您可以指望秘书将老板的密码写在贴在显示器上的便利贴上,而最大的威胁是某人午饭时可以从她的办公桌旁走过。我还没有拆开一个按键记录器,它能够读取我钱包里的一张手写纸。但有些人今天仍然重复这个建议。
  • 技术人员在折腾诸如“熵”之类的术语和诸如“7 的 95 次方”之类的数字时也无济于事,这对普通人来说毫无意义。同时,他们忽略了不想输入 12 个加密随机字符的普通用户的心理,更不用说被要求为十几个网站中的每一个记住它们。

其次,众所周知,好的密码很难学习。如果被要求在网站中输入工作密码以便研究其复杂性,大多数人会说“不”。许多涉及人们输入虚构密码的研究没有可靠地模拟现实世界中的记忆或使用的测试条件。因此,我们有关用户选择的密码的主要数据来源是在(越来越频繁的)数据泄露之后发布的密码和哈希值。但这些通常来自像“long-eared-rabbit-fanciers-forum.com”这样的网站,人们知道使用弱密码并没有什么价值。它们似乎不太经常从用户保护自己的信用卡、账户余额或其他形式的数字贵重物品的网站上发布。我不知道银行有任何情况” s 明文密码数据库在线发布。在许多情况下,已发布的数据库是经过哈希处理的,为了分析它们,研究人员必须在分析开始之前使用哈希算法对它们进行暴力攻击。

还有教育。网站管理员不参加“选择一个好的密码复杂性方案”的课程,也不参加“安全存储密码”的课程。并且大量的计算机课程使用“创建登录屏幕”作为介绍程序的示例;但是我见过的许多示例都没有演示过pbkdf2()在将密码放入数据库之前对密码进行哈希处理。尽管如此,如果您确实提出了选择好密码的有效规则,您仍然必须说服用户选择比“P@ssword1”更安全的密码。

尽管如此,有许多研究人员在密码方面做了很多工作。您可以在http://www.passwordresearch.com找到数百篇关于该主题的精选学术论文在许多重要的安全会议上都有关于密码的演示。一年一度的国际密码会议所以有一些知识体系正在建立,但它们还没有形成一套标准化的结论或建议。而且这些信息还没有传播给许多构建网站的架构师和工程师。根本没有从研究人员到实践的可靠信息的直接管道。这可能是最大的障碍。

我强烈怀疑答案是企业 CYA 和懒惰的网络。来自 Legal 的 Alice 需要确保每个人都是“安全的”,因此她向 IT 部门的 Bob 询问最佳实践是什么。Bob google 了“密码长度最佳实践”,发现第二个结果是这样的:

https://technet.microsoft.com/en-us/library/hh994560(v=ws.11).aspx

由于它简洁,他喜欢它,并把它还给了 Alice,说“微软说 14 个字符的密码最好,但最少 8 个字符是可以接受的,它应该有复杂性要求。”

Alice 认为,如果 Microsoft 说它足够好,那么她已经尽职尽责,Bob 知道他不会因为遵循 Microsoft 的最佳实践而被解雇,所以每个人都对这个答案感到满意。

如果 Bob 将 Alice 发送到http://www.passwordresearch.com/papers/pubindex.html(选择一篇文章,任何文章),那么她将无法验证来源的可信度或有意义的可能性相当大的内容。

其他答案未涉及的另一个可能原因是遗留技术。大型组织通常依赖于过时的技术,这些技术早于我们对密码安全性的现代理解。

我记得在一家大型银行从事合同工作时,我很惊讶他们使用的 AIX 版本忽略了密码的前八个字符之外的所有字符。

同样,在 Vista 之前的 Microsoft Windows 默认以两种方式存储密码,其中一种非常容易破解(14 个字符,不区分大小写,分成两个可以独立破解的 7 个字符部分)。我怀疑许多组织仍在使用这种过时的密码存储,要么是因为他们没有迁移到 Vista 之后,要么是因为他们正在使用更新的版本,但启用了与旧系统兼容的旧机制。