“我被 Pwned 的”Pwned 密码列表真的那么有用吗?

信息安全 密码 我被打倒了
2021-09-06 23:36:20

我对Have I Been Pwned的理解是,它会检查您的密码以查看世界上是否有人使用过它。

这对我来说似乎真的没用。这似乎相当于询问世界上是否有人拥有与我相同的前门钥匙。统计上,我会假设是的,但不知道我住在哪里......谁在乎?

那么我是否误解了 HIBP 的作用,或者我是否因为误解了某些安全原则而低估了它的价值?

编辑

事实证明,该网站的内容比我理解的要多。我专门指的是密码功能

4个回答

免责声明:我是 Have I Been Pwned 和链接的 Pwned Passwords 服务的作者、创建者、所有者和维护者。

让我澄清一下这里提出的所有观点:

HIBP 的最初目的是使人们能够发现他们的电子邮件地址在数据泄露中暴露在哪里。这仍然是今天该服务的主要用例,其中有近 5B 条记录可以帮助人们做到这一点。

去年 8 月,在 NIST 发布了一系列关于如何加强身份验证模型的建议后,我添加了 Pwned Passwords。该建议的一部分包括以下内容

在处理建立和更改记忆秘密的请求时,验证者应将预期秘密与包含已知常用、预期或泄露的值的列表进行比较。例如,该列表可能包括但不限于: 从以前的违规语料库中获得的密码。

这就是 Pwned Passwords 解决的问题:NIST 建议您应该“做什么”,但自己没有提供密码。我的服务解决了它的“如何”部分。

现在,实际上,它有多大的不同?真的像你说的那样,就像百万分之一的前门钥匙情况吗?首先,即使是这样 IRL 的例子也会失效,因为世界另一端的某个匿名人无法尝试你的以快速、匿名的方式打开数百万扇门的前门钥匙。其次,密码的分布绝不是线性的;人们一遍又一遍地选择相同的垃圾密码,这使这些密码的风险比我们很少见到的密码高得多。最后,凭证填充很猖獗,对于拥有在线服务的组织来说,这是一个非常严重的问题。我不断从公司那里听到他们在攻击者试图使用合法凭据登录人们的帐户时遇到的挑战。这不仅难以阻止,而且很可能使公司承担责任——上周才突然出现:“FTC 的信息是响亮而明确的:如果客户数据因撞库而面临风险,那么作为无辜的企业受害者不能为执法案件辩护” https://biglawbusiness.com/cybersecurity-enforcers-wake-up-to-unauthorized-computer-access-via-credential-stuffing/

之前在数据泄露中看到过密码只是风险的一个指标,每个使用数据的组织都可以决定如何处理。他们可能会要求用户选择另一个,如果它以前被多次看到(每个旁边都有一个计数),将风险标记给他们,甚至只是默默地标记帐户。这是与 MFA、反自动化和其他基于行为的启发式方法一起的一种防御方法。这只是解决方案的一部分。

顺便说一句,人们可以通过 API 使用(免费提供的)k-Anonymity 模型,这对保护源密码的身份有很大帮助,或者只需下载整个哈希集(也可以免费获得)并在本地处理它们。没有许可条款,没有归属要求,只要去做善事就行了:)

在问题更新之前,此答案仅指 Troy 网站的原始 HIBP 部分。请阅读Troy 的帖子,了解其 Pwned Passwords 部分的详细信息。

这根本不是它的用途。实际上,它甚至不能表明它是否已被使用——只是表明它已被泄露。

它的用途是知道攻击者可能拥有您的电子邮件地址和密码......

然后,他们可以在您使用该组凭据的任何地方使用它们。这是一种非常成功的攻击技术。

显然,如果您只在一个特定站点上使用过密码,并且它与在其他站点上使用的密码无关,那么一旦您更改了该密码,您将尽可能安全。事实上,一般指导原则是密码更改的关键触发因素应该是怀疑存在违规行为。

你这样做,对吧?

是的,世界上的某个人将拥有与您相同的前门钥匙,因为(对于普通类型的锁)只有5^6 = 16 000可能的组合。但是对于门钥匙,您需要在进入任何地方之前亲自尝试每所房子。在数字世界中,您可以在几分钟内尝试一百万个“房子”。

8 个字母数字字符(az、AZ 和 0-9)的密码已经有了(26+26+10)^8 = 218 340 000 000 000组合,因此地球上只有 80 亿人,不可能有很多人拥有相同的密码。如果您与其他人共享密码,则意味着您的选择不够随机,因此攻击者也可能会猜到。

在进行渗透测试时,我们要做的一件事就是寻找@<company>.com公共数据泄露的地址。我们经常会找到至少一个哈希(我们经常可以破解),有时我们甚至会找到明文密码。这些在随机网站上使用的密码有时也是公司服务器上的工作凭据。

如果您在后来被黑客入侵的地方使用了错误的密码,那么密码重用是一个大问题。HaveIBeenPwned 告诉您这是否适用于您,如果适用,在哪里。您知道您在哪里使用了该密码,因此您可以更改它。

但寻找密码只是网站的一部分。我认为“违规发生在哪里”部分(由您的用户名或电子邮件地址标识)同样或更有用,因为您将知道它涉及哪些密码以及哪些需要更改。

密码空间可能很大,因此攻击通常针对希望成为流行的密码子集,即任何已知已被使用的东西。Have I been Pwned 旨在通过让每个人都知道该列表中已知的内容来降低这种攻击的用处,从而避免它们。

其他人使用与您相同(良好)密码的机会非常小。发现您在列表中使用密码的可能性要大得多,这证明您的密码已被泄露。

但即使这实际上也不是重要的收获:列表中的密码并不安全。即使它还没有被用来侵犯您的帐户,它也会被使用。如果您在列表中有密码,请立即更改它,并认真考虑如果该密码保护的内容被释放,可能会出现什么问题。

将计算机安全性与物理安全性进行比较也有一些相当大的局限性:使用物理密钥去某个地方比使用数字密钥进行数字连接要困难数十亿倍。

带上数千个物理钥匙尝试打开我的前门以闯入是愚蠢的。每秒都在尝试在服务器上使用数千个数字钥匙。

找到我在城里开车兜风的钥匙,在每一扇门上都试一试,那将是愚蠢的。从尝试的频率来看,对猜测的名称尝试已知密码显然实际上是可行的。

即使我公布了我的房子钥匙和地址,你仍然需要拿到它才能做任何坏事,而且我的房子里很可能没有任何东西值得旅行 1000 英里才能得到。如果发布了数字凭证,几乎可以毫不费力地从世界任何地方利用它们。