IT 副总裁声称他对所有 16,000 名员工的 PW 进行了 100% 的 unhash。他是在骗我们吗?

信息安全 密码学 密码 哈希
2021-08-26 07:00:35

我在一家拥有约 16,000 名员工的公司工作。我们的 IT 副总裁会定期发送包含“技术提示”和其他 IT 内容的时事通讯。本周时事通讯的主题是“密码安全”。介绍性段落引起了我的注意:

我们刚刚解密了所有正在使用的用户密码,以查看员工是否使用了强密码。我们使用了暴力破解、rcracki、hashcat/oclHhashcat 和 john-the-ripper 工具的组合来解密密码。

随后是一个典型的时事通讯,讨论了良好的密码实践:不要使用字典单词;确保使用混合大小写/符号;不要在显示器旁边的黄色便签上写下您的密码;等等...

现在,我不是密码学专家,但我怀疑他声称他们已经“解密了所有用户密码”。我可以相信他们可能通过他们的工具运行了所有的哈希并“解密”了其中的很大一部分,但是他们拥有声称已经全部破解的计算资源真的合理吗?(顺便说一句,在这种情况下“解密”是否正确?)

我给他发邮件问他是不是想说他们已经通过破解工具运行了所有密码,只是发现了大量较弱的密码。然而他回答说,不,他们确实解密了所有的用户密码。

我可以欣赏他在这里尝试教授的安全课程,但我的密码是由 KeePass 生成的 8 个随机字符。我认为它非常好,它类似于Q6&dt>w}(显然不是真的,但它类似于)。

现代破解工具真的那么强大吗?还是这个家伙可能只是以良好的安全课的名义拉我的腿?

PS 我回复了他的电子邮件,询问他是否可以告诉我密码的最后两个字符是什么。还没有回复,但如果他设法制作它,我会更新!


编辑: 一些答案正在讨论我的特定密码长度。请注意,他不仅声称他们破解了我的密码(如果他们把我挑出来,这是可信的),而且他声称他们为所有用户都这样做了——而且我们有超过 10,000 名员工!我并没有天真地认为这意味着 10,000 个好的安全密码,但即使 1% 的用户拥有一个好的密码,那仍然是他们声称已经破解的 100 个好的安全密码!

4个回答

破解 100% 密码的唯一现实方法是在 Windows 上存储 LM 哈希。LM 散列分为 2 个七个字符的块,使蛮力/彩虹表攻击变得可行(它们也不区分大小写以增加易用性)。彩虹表为此而存在,而且很容易做到。

除此之外,任何拥有 10 多个字符的密码且不在字典中(或通过变异字典词找到)的人都不会在任何合理的系统上被破解,即使使用弱算法(例如 md5)并且没有盐。AFAIK 彩虹表在这么长的密码上不实用(作为参考,免费彩虹表有 2.8 TB 的 MD5 散列包,其中包含大约 9 个字符的密码(不是完整的字符集)。

我想说的一点是,如果我是 IT 副总裁,我会专注于摆脱 LM 哈希,而不是仅仅因为他能够检索 100% 的密码而告诉人们良好的密码实践:)

这里有一些可能性,其中一些已经被指出。任何这些都会使您的副总裁(IT)“解密所有用户密码”变得相当微不足道,而不管他对“解密”使用的定义如何。

  1. 事实上,有问题的密码是以可逆加密方式存储的。
    • 您的 VP 可能指的是内部 Web 应用程序的密码,他们选择使用加密而不是散列。
    • 您的 VP 实际上可能指的是 Windows 密码,并且您公司的组策略启用了具有可逆加密的存储。
  2. 您的 VP 所指的密码是使用弱散列算法存储的,和/或在没有每个用户盐的情况下进行散列。
    • LM 哈希是弱算法的一个例子,它在为向后兼容而优化的 Windows 实现中很常见。
    • 不使用每个用户的盐会使字典和彩虹表攻击容易。
  3. 您的副总裁所指的密码实际上可能以明文形式存储,他只是说它们被“解密”以隐藏它们从一开始就从未加密/散列的事实。
  4. 贵公司的员工实际上使用非常弱的密码。
    • 不管你的密码有多随机,8 个字符在很长一段时间内都没有被认为是“强”。

我认为该列表中的第 4 项不太可能发生,因此除非其他三个中的任何一个都是正确的,否则您的 VP 很可能只是夸大了一点。但是,除非您有公司 C 级人员的耳朵,否则我怀疑除了您自己密码的实际强度之外,您可以做很多事情来更改任何内容。为此:

  • 有人说“12 是新的 8”。我说选择 15。这不仅会使密码自然更强大,而且还会阻止 Windows 以弱 LM 哈希格式存储它。LM 哈希只能处理最长 14 个字符的密码。当您将密码长度更改为 15 个字符或更多时,Windows 可能会发出警告消息,但这可以(在大多数情况下)安全地忽略。
  • 不要在多个应用程序中使用相同的密码。至少,我建议您的工作密码与用于个人帐户的密码不同。理想情况下,任何两个应用程序都不应使用相同的密码。
  • 跟上你正在做的其他好事。从完整的 ASCII 字符集中随机生成密码非常棒。只需确保最终产品包含所有四种字符类型,并且没有真实的单词。

“解密”不是正确的术语。也就是说,密码可能会被加密而不是被散列,但是任何知道加密密钥(也是解密密钥)的人都可以直接解密;应用像开膛手约翰这样的破解工具是没有意义的

因此,您的 VP 使用的是近似术语。因此,他可能也使用了近似句法和语法是合理的。最有可能的是,他们向破解工具提交了 10k+ 密码,并破解了其中的一些(相当大的比例足以要求 VP 干预,但不是全部)。可以说,他对“所有”的使用只是过分强调的热情。

现在我已经准备好相信他可以破解一半的密码。据记载,早在 1988 年,莫里斯蠕虫就可以用不到一千字的字典破解大约 10% 的现有密码……

解密不是正确的词,但他可能是为了可读性而不是技术准确性。我也同意他可能没有得到所有这些,而是​​很高的一部分。

现在,您的密码有问题:如果您的公司使用 MD5 或 LM 之类的快速哈希,则 8 个字符不会很长。一个不错的基于 GPU 的破解程序可以达到大约 50M MD5 哈希/秒。如果您假设 QWERTY 键盘上有 100 个可打印字符,那么八字符密码的密钥空间为 10,000,000,000,000,000,预计破解时间约为 3.15 年。他不太可能抓住你的,但这并不是特别安全。

或者,他可以有一个巨大的 8 字符彩虹表,用于完整的字符集,它可以立即获取您的密码。