首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于JWT令牌签名的HMAC-HMAC 256

用于JWT令牌签名的HMAC-HMAC 256
EN

Security用户
提问于 2018-01-12 14:28:12
回答 1查看 4.5K关注 0票数 2

我目前在一家公司工作,我们需要设计一个基于令牌的认证系统。我们将拥有和控制两个服务器,一个是身份验证服务器,另一个是应用服务器。

我对计算机安全概念、威胁、常见漏洞及其对策相当熟悉,但我没有找到一个问题的答案是,在使用HMAC- sign 256签署JWT令牌时,是否需要多次散列。

因为对于像使用SHA256哈希密码这样的事情,我理解的一般规则是运行2^(2000年-2000年)(根据性能需要进行或采取)散列,所以我很难相信一轮HMAC- the 256足够好,但是在我研究这个主题时,我还没有见过有人问这个问题。

因此,给定一个秘密密钥和一个JWT令牌头和有效负载,以下哪一项被认为是令牌签名的最佳实践:

  1. HMAC- JWT 256的单次迭代被认为是JWT令牌签名的安全。
  2. 建议多次运行HMAC- the 256,反复使用相同的密钥。
  3. 运行HMAC- the 256一次,然后从HMAC的计算中对产品执行SHA256散列迭代。(这是我认为最好的做法)
  4. 我完全错了,这是不一样的。

非常感谢您的帮助。只想确保系统设计得尽可能好。

EN

回答 1

Security用户

回答已采纳

发布于 2018-01-12 14:48:51

HMAC和密码散列解决了非常不同的问题。HMAC的秘密是高质量的(即128位熵),而密码则是低质量的(30位熵对于大多数人来说是乐观的)。

一轮快速哈希函数对于密码是不好的,因为它允许攻击者快速尝试许多常见密码,或者对低熵密码进行暴力攻击。对于HMAC来说,这种风险并不存在(只要秘密是由CSPRNG产生的),所以一轮就足够了。

附带注意:您没有指定,但是您不应该直接使用SHA-256对密码进行散列,即使您使用了很多次。在标准库中使用PBKDF2与SHA-256相比要容易得多,这样您就不会遇到任何陷阱。

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

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

复制
相关文章

相似问题

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