Google搜索显示,密码破解者可以快速尝试数百万种组合,并轻松破解许多密码。
我的研究没有显示它们在现实世界中的攻击中是否能如此迅速地进行这么多尝试。这些密码破解者实际上如何与服务器交互?他们是否以自动方式填写表格?当我提交密码IRL时,最多需要几秒钟的时间才能得到答复。这将使密码破解所需的时间大大增加!这应该为防止这些密码破解者提供很多保护!
密码破解者是否在许多计算机之间分发密码尝试,以便他们可以同时尝试密码?对于网站服务器来说,将其识别为自动攻击不是很简单吗?是否有一些更快的方法可以允许饼干进行多次尝试(为什么服务器会允许它)?
答案 0 :(得分:2)
可以快速破解密码的方式因哈希类型,硬件功能,所使用的软件和哈希数而异。随着时间的流逝,攻击者和防御者之间还会发生军备竞赛,潮起潮落,因此,您所提问题的答案仅适用于所要求的艰难时期。因此,即使已经接受了另一个答案,即使该问题可能是重复的,也值得不时地重新确定一次。
首先,听起来我们需要弄清在线和离线攻击之间的区别。
如果有人编写了用于自动执行在线攻击的软件-在活动的Web界面上尝试用户名和密码的列表-他们(希望)会迅速陷入旨在阻止该攻击的机制(对于给定的用户名或在特定时间范围内的给定IP地址,仅允许进行5次错误尝试。
相比之下,大多数密码破解软件的目标都是离线攻击-攻击者已获取了存储在后端的哈希密码,并将其移动到自己的平台上即可进行批量攻击。
因此,密码破解讨论通常围绕离线攻击进行,因为重要的威胁模型是威胁行为者窃取您的哈希并可以使用他们选择的平台来攻击它们。
此处的离线破解速度完全取决于多种因素:
密码存储的良好程度(散列的“慢速”程度);
攻击者可用的硬件(通常,更多的GPU =更好);
以及对于“腌制”的存储良好的哈希,要攻击多少个哈希(较少的唯一盐=更快的攻击,因此攻击单个哈希将比攻击一百万个盐腌的哈希要快得多,等等。 )
因此,请问一些实数:
用于比较密码破解性能的最常见基准测试之一是 NTLM (Windows系统用于存储本地密码的哈希)。它对于基准测试很有用,因为它非常普遍,在许多攻击模型中都很受关注,而且还非常“快速”(更容易破解)哈希。最近(2018年2月),hashcat展示了以 100 billion hashes per second 的速度破解单 NVIDIA 2080Ti卡上的NTLM散列的能力(披露:我是Hashcat团队成员)。以这样的速度,攻击者只要拥有正确的工具和专门知识,就很可能破解人们使用的大多数密码记忆策略。攻击者无法获得最强的密码(基于随机密码或基于随机密码的密码,并且具有足够的长度/熵)。
相比之下,最慢的哈希值之一(最适合防御者)是 bcrypt 。 Bcrypt具有“成本”因素,每次迭代都会使攻击者的成本增加一倍。建议使用“成本12”左右的Bcrypt哈希值,但即使是在相同的2080Ti GPU上,即使是相对“快速”的bcrypt成本(成本5),也只能以大约 28,000哈希/秒的速率进行破解”。强>。以这种速度,只有最弱的密码才能被快速破解,中等强度的密码具有“数字强度”并且很难被大量破解(但如果以单个人的哈希为目标,仍然可以被破解),以及任何合理的强密码通常对于攻击者来说是遥不可及的。
同样,这些是时间点的答案,必须根据您的特定威胁模型进行调整。
此外,请记住,密码哈希泄漏永远存在。捍卫者今天应该以一种能够在未来数年内破解的方式存储密码,包括对未来硬件功能的评估,摩尔定律等。
答案 1 :(得分:1)
Hashcat是最快,最先进的密码破解工具。它可以在CPU和GPU上运行。它可以在GPU中使用多个内核,并且可以并行使用多个内核和板卡。测试密码的数量取决于所应用的密码保护机制。请参阅基准here。诸如BCrypt和Argon2的现代密码保护机制具有针对memorySizeKB
和parallelism
的快速密码搜索功能。
系统管理员可以使用Hashcat来测试其用户的密码。如果不容易找到,并且有时间限制,那将是一个很好的选择。否则,建议用户更改密码。当然,应该有防止简单密码的规则。最小长度,数字,字母数字等...
攻击者访问系统后,下载密码文件即可使用Hashcat。它没有输入密码来再次登录。如果是这样,登录系统将开始延迟登录机制或锁定用户帐户。
真正的好处是人们也倾向于对其他站点使用相同的密码。一旦攻击者从被黑客入侵的网站x中找到了一些用户密码,便可以尝试另一个网站来查看密码是否相同。