首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PBKDF2可以很好地防止对web应用程序登录页面的暴力攻击吗?

使用PBKDF2可以很好地防止对web应用程序登录页面的暴力攻击吗?
EN

Security用户
提问于 2020-10-28 13:56:13
回答 2查看 421关注 0票数 3

我们最近对其中一个应用程序进行了渗透测试。

渗透测试公司指出,我们的应用程序缺乏对登录页面上的暴力攻击的保护。

Ref: https://owasp.org/www-community/controls/Blocking_Brute_Force_Attacks

我们被建议实现一个captcha来破坏登录页面上的暴力攻击,我认为这对应用程序的上下文和用户都很有效。

我们的一位工程师坚持认为我们有足够的保护来抵御这些攻击,因为我们使用PBKDF2作为我们的哈希算法。

我知道PBKDF2降低了哈希运算速度,防止了离线破解,同时也减缓了登录暴力攻击,但我看不出它是如何消除反自动化预防机制的吗?我不明白为什么我们应该允许某人首先在登录页面上尝试数十万个用户/密码组合。它似乎没有解决已查明的问题。

保安公司也提出了类似的论点,但我很难说服我的工程师同事。

问题:使用PBKDF2可以很好地抵御对web应用程序登录页面的暴力攻击吗?

EN

回答 2

Security用户

回答已采纳

发布于 2020-10-28 14:18:40

您说得对,使用PBKDF2并不能防止对web应用程序登录页面的暴力攻击。用户和攻击者提交的凭据在服务器之前一直保持不变,然后计算PBKDF2。因此,PBKDF2只对具有直接访问正确哈希的脱机攻击有意义。

唯一与PBKDF2和对web应用程序页面的暴力攻击相关的情况是,如果登录页面的响应速度超过服务器计算PBKDF2散列的速度。在这种情况下,并行的蛮力攻击会稍微减缓。然而,它也需要大量不必要的计算能力,并将防止其他用户登录。

通过在前端应用程序逻辑中实现一个或多个帐户锁定和/或密码节流,可以更有效和高效地实现相同的保护。理想情况下,应该根据客户端IP地址、历史记录和声誉来权衡这些控制(例如,一个已经失败的Tor退出节点,多个登录应该受到严重惩罚)。

票数 4
EN

Security用户

发布于 2020-10-28 14:39:36

如果您是正确对密码进行散列和存储 (不管您是使用PBKDF2作为您的散列函数,还是使用其他散列函数),那么您的服务器正在为您的站点上的每次登录尝试执行繁重的任务。

也许您的工程师在密码哈希是如何工作的前提下有一点误解,他认为密码哈希会以某种方式迫使客户端在登录尝试时使用计算能力。但事实并非如此。密码哈希发生在服务器端的登录尝试期间,大量的登录尝试不断地可能会对您的服务器造成DOS。

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

https://security.stackexchange.com/questions/240135

复制
相关文章

相似问题

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