首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该扩展安全cookie协议实现中的秘密密钥吗?

我应该扩展安全cookie协议实现中的秘密密钥吗?
EN

Security用户
提问于 2015-06-02 14:47:10
回答 1查看 187关注 0票数 0

我正在构建一个api身份验证层,它基本上像安全cookie协议一样工作,在这里,我给api客户机一个令牌,它们必须在随后的请求中提供这个令牌,而不是cookie。该令牌是通过HMAC使用保存在服务器上内存中的秘密密钥进行签名的。键是一个64个字符的随机十六进制字符串。目前,我正在使用密钥直接对令牌进行签名,但基于我在rails源代码中看到的内容,他们使用一个通过使用pbkdf2扩展秘密密钥库派生的秘密密钥对cookie进行签名。这种防御方式是什么威胁?据我所知,键拉伸应该有助于防止对存储密码的离线暴力攻击。我不清楚它的目的是什么,它是否是我应该实现的东西。

EN

回答 1

Security用户

回答已采纳

发布于 2015-06-02 15:01:52

键拉伸基本上给了一个低熵的键更强的强度,它通过多次迭代得到一个散列。

一个64个字符的十六进制字符串,假设它是完全随机生成的,它将有256位的熵。当使用HMAC验证字符串时,任何128位或更高的内容都被认为是“不可打破的”。

键拉伸可以降低使用弱密钥的风险,因为攻击者找到密钥的唯一方法是通过脱机密码猜测攻击。通过使用例如1024次迭代的键拉伸,这实际上使密码10位“更强”,因为攻击者必须对每个密码运行1024次哈希函数(相当于密码本身有更大的熵--它弥补了更强的密码所需的额外密钥空间)。

因此,对于Rails,这是为了防止站点所有者选择一个弱键(< 128位)。如果你能控制你的钥匙,你使它足够强大,没有必要任何键伸展。

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

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

复制
相关文章

相似问题

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