首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止密码散列算法超载CPU

防止密码散列算法超载CPU
EN

Software Engineering用户
提问于 2013-07-28 11:24:26
回答 4查看 367关注 0票数 4

如今,密码哈希算法被设计得非常慢。虽然它防止黑帽子猜测密码(至少部分),但它也为服务器提供了额外的工作。

我可以想象,如果有人想让服务器运行得非常慢,他们可以简单地发送许多登录请求,这将导致许多密码哈希计算,因此大大增加了CPU的使用。

防止这类攻击的常见做法是什么?它叫什么名字?

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2013-07-28 12:36:20

防止这类攻击的最佳方法是在锁定帐户之前实现对登录次数的某种限制。

你可以用很多方法来做这件事,这些方法有它们的优点和缺点。就像安全领域的一切一样,你必须权衡利弊。

一些可能的解决办法:

选项A:限制来自IP地址的登录尝试次数。然而,IP地址很容易被欺骗,一些强制工具可能会在每次尝试之间切换IP。

选项B:在多次登录失败后锁定帐户。然而,您将需要一个合法的用户解锁他们的帐户的方式。

选项C:使用captcha。这对合法用户来说可能很烦人,但这将使自动化系统很难尝试多个登录。

OWASP有关于防止这种攻击的更多细节.

票数 5
EN

Software Engineering用户

发布于 2013-07-28 13:24:01

这被称为“资源饥饿”攻击,适用于被攻击方的工作大于攻击者所需工作的任何情况。

与执行数据库查找来确认哈希相比,哈希实际上是非常“便宜”的。

您可以应用一些缓解措施。在发生攻击时,您首先要增加潜在攻击者的“成本”。卡普查's可以在这方面提供帮助,但它们对可访问性有负面影响。因此最好的选择是“关闭”它们,然后基于服务器端触发器启用它们。

您可以限制请求,但很容易绕过。您可以全局地延迟和限制每个登录请求的处理,这样每个IP每次只能发出一个登录请求,并且必须在服务器开始处理它之前等待。如果他们在请求完成之前发出另一个请求,那么您可以廉价地转储它。但是这有一个缺点,那就是它的实现更加复杂,并且它可能影响NAT路由器后面的客户端。其他人都很乐意用“请等待”类型的对话等几秒钟--这再次增加了攻击者的成本,因为他们需要更多的资源来进行攻击。

如果您的系统能够使您实时了解攻击,那么您可以与您的主机一起阻止或限制问题流量(例如来自您不提供或不提供服务的区域),因此攻击者基本上会将自己的路由饱和到您的服务器中,或者将攻击者引导到各种水坑和蜜罐中。

归根结底,它就像任何其他分布式拒绝服务攻击一样,因为它是一个管理负载的案例。最终,如果它是一个基于云的系统,那么您可能只想增加更多的容量(尽管您需要知道所涉及的成本)。

最终的答案是阅读安全知识,了解整个环境。看看Security.SE:If你只能有一本关于网络安全的书,它会是什么?的建议吧。

票数 3
EN

Software Engineering用户

发布于 2013-07-28 12:36:46

执行哈希不一定很慢。它正在逆转缓慢得令人痛苦的哈希。(只有当您有哈希并需要计算原始密码时才需要这样做--这是您的登录函数不需要做的事情)。

这种攻击被称为拒绝服务 (DoS)。常见的防御措施是,在多次登录失败后,开始忽略攻击者的IP地址。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/206303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档