首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >身份验证阶段的盐暴露

身份验证阶段的盐暴露
EN

Stack Overflow用户
提问于 2010-02-25 12:19:39
回答 3查看 244关注 0票数 0

我已经实现了下面所示的多级身份验证。

括号(和)表示散列。

客户端具有用于身份验证的密钥机密。服务器有一个数据库表,其中包含一个salt和一个机密+ salt

代码语言:javascript
代码运行次数:0
运行
复制
       Client                                    Server
         |                                          |
         ----------------- key -------------------->| 
         |                                          | 
         |                                          |
         |<--------- server-nonce -------------------
         |<------------ salt ------------------------
         |                                          |
         |                                          |
         ------------ key ------------------------->|
         ------------ client-nonce ---------------->|
         --[c-nonce + s-nonce + [secret + salt]] -->|
         |                                          |

然后,服务器根据自己的信息检查接收到的散列。

我担心的是,这使得攻击者能够从服务器获取盐,然后生成一个彩虹表来攻击该帐户。你对此有何看法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-25 12:27:47

你是对的。如果攻击者知道系统是这样工作的,就有机会捕获数据并破解。它不安全。

当有许多其他系统(SSL、公钥身份验证等)没有这些缺陷时,我不明白为什么要走这个路线。

票数 0
EN

Stack Overflow用户

发布于 2010-02-25 12:27:22

你为什么需要盐才能回到客户身边?纯粹是为了保护用户的秘密?C-农和s-农无论如何都是传输的,所以只有秘密+盐组合才是隐藏的。

我的感觉是,如果它是一次盐,它不应该重要-你只接受一个单一的反应与该盐,如果它不能产生一个新的盐,并再次经历这个过程。这样,如果盐被截获,彩虹表攻击是不可能的,因为它只对第一个请求有效,所以他们需要一个非常幸运的猜测。

您还可以通过使用渐进式超时或有限登录数等技术来避免这种攻击,这些技术对用户影响很小,但肯定会给任何试图运行数百次登录尝试的自动化工具带来问题。如果安全性对您很重要,那么这可能是值得实现的。

票数 0
EN

Stack Overflow用户

发布于 2010-02-25 12:31:19

如果连接不安全,并且攻击者设法将手放在salt和密码上,即使没有彩虹表,他也可以恶意侵入该帐户。

仅使用salt \密码是无用的。

水藻应该更像:

代码语言:javascript
代码运行次数:0
运行
复制
client-----pass------>server
client<----noonce----server
                     server--------getSalt---->back-end-service
                     server<-------salt------- back-end-service
                     server-------[pass+salt]->storage
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2333869

复制
相关文章

相似问题

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