在阅读了关于维基百科页面的SipHash之后,我认为它可以像JWT中的HMAC- the 256一样用于创建和验证SipHash令牌(对客户端设备进行身份验证)。
在JWT中,服务器创建此MAC以使用私钥对用户标识符(例如数字或电子邮件)进行签名,然后将私钥与每个请求(登录后)一起发送。
此外,正式文件指出:
目标应用程序包括网络流量认证。
然而,我在网络上找不到任何解释这个用例的页面,尽管它更快,并且已经发布了一段时间。
HMAC-HMAC 256在任何方面都更安全,还是我遗漏了什么?谢谢!
编辑: SipHash输出通常只有64位,所以我指的是SipHash double,与JavaScript实现中的128位类似
发布于 2018-01-11 23:30:00
新的128位输出版本的SipHash在推测中适合这个任务;也就是说,如果SipHash如其作者所期望的那样强大(如果!),那么您可以将其用于该任务。
一个类似的评论可以说是SHA-2,但这里的主要问题是主观的信心;密码学家没有像SHA-2那样详细地研究SipHash,所以主观上,我们没有理由相信它和它所推测的一样强大,而不是HMAC 2。
所以HMAC-SHA-2是这里比较谨慎的选择。我只会考虑使用SipHash,如果我已经根据分析数据明确地表明,SHA-2对于我的应用程序来说是一个重要的性能瓶颈。
发布于 2018-01-11 05:15:28
SipHash只生成64位的输出;因此,它的安全性大大低于SHA-256、SHA-384或SHA-512。它也更快,这也帮助了攻击者。前64位是合理的,但SipHash仅限于此。有关更多详细信息,请参阅这个Crypto.Stackexchange帖子。
此外,您不应该为用户身份验证(密码哈希)使用任何东西的一次传递;使用PBKDF2、BCrypt、SCrypt或Argon2的迭代次数/工作因子尽可能高,这是您的硬件所能承受的。请参阅如何安全地散列密码
https://security.stackexchange.com/questions/177296
复制相似问题