弱哈希算法与 bcrypt 的简要概述
使用弱密码散列算法,黑客会尝试数百万或数十亿种不同的组合 - 只要他们的硬件允许 - 许多简单的密码将很快落入彩虹表/密码破解者/基于字典的攻击。
攻击者会尝试将大量字符串与您的哈希值进行比较,而验证的很可能是您的密码。即使不是,您仍然可以使用它登录,因为您发现了冲突。
但是,bcrypt 不同。它的计算速度很慢,因此这种破解将大大减慢。如果那样的话, Bcrypt 可以帮助减缓破解速度到每秒只能进行几次测试的程度。这是由于计算成本因素。您应该阅读 Thomas Pornin的这个答案以获得更好的解释:
如果迭代计数使得一次 bcrypt 调用与 MD5 的 1000 万次计算一样昂贵,那么使用 bcrypt 暴力破解密码的成本将是使用 MD5 的 1000 万倍。
这就是具有可配置缓慢性的要点:您可以根据需要使函数变慢。或者,更准确地说,尽可能慢:事实上,一个慢的函数对每个人来说都是慢的,无论是攻击者还是防御者。
所以这真的取决于增加的计算成本。一些定制硬件解决方案能够以每秒 52k 哈希以上的速度破解 bcrypt 哈希。使用标准攻击和糟糕的密码,您不会有太大希望坚持很长时间。同样,这取决于计算成本:即使是这种自定义硬件解决方案也可以强制降低到每秒 2-5 个哈希值,甚至更慢。
如果您关心帐户,请不要重复使用密码。
我已经找到了您的凭据,并“破解”了您的 bcrypt 哈希
但我不会黑你,别担心。这只是为了说明为什么您应该更新您的凭据,并停止重复使用您的密码。您想要一个答案,那么有什么比现场演示更好的呢?
你来自英国,对吗?您的 bcrypt 哈希也是$2a$10$omP392PbcC8wXs/lSsKZ5Ojv9.wFQ7opUn7u3YUBNu0kkbff0rB.m
,对吗?我已经“破解”了你的密码,而且我知道你的账户。我看到你了,屋顶上的小偷。我的新卫星链路同时具有红外线和 X 射线光谱。我看到你的心跳;我看你很害怕。
这不言而喻:您绝对应该更改密码。立即开始更改您的凭据...以免为时已晚。你应该担心,你应该改变你的密码。现在。
是的,bcrypt 可能非常慢,但是......
实际上,我找到了一种通过简单的数据聚合和关联来完全避开暴力破解过程的方法。我写了一个小程序,把几条信息联系在一起,然后比较它们。不是密码破解者或类似的东西,但归根结底,它完成了同样的工作。
为了您的隐私 - 并根据您的要求 - 我不会在这里分享我是如何做到这一点的,但你应该知道我不是唯一可以做到这一点的人。如果我能做到,其他人也能做到。
但是...您需要停止重复使用密码!
你真的,真的不想这样做。如果一个站点被入侵,在其他帐户上使用不同的密码也可以保护其他站点免受破坏。
更新您的所有帐户,即使是您一段时间未使用的帐户,并停止重复使用密码,除非您不关心它们。您可能需要考虑类似KeePass的东西。