这是一个事实,氪星和argon2是两个主要的记忆硬KDF。但是其中哪一个更适合密码散列?氪星更古老,据我所知,它可以抵抗几乎每一种基于硬件的攻击。但很容易受到侧频道攻击。argon2 (i/d)在记忆硬度和侧通道电阻方面比较强吗?
发布于 2017-09-14 10:09:02
据我所知,在节省内存但需要进行更多计算的情况下,可以使用scrypt进行一些时间/内存权衡,这可能确实是一件烦人的事情。
Argon2d使用依赖于输入的数据(即密码),这使得它能够更强地抵御这些权衡攻击,但会打开侧通道(只有当您的计算机上有攻击者时,IIRC才是一个问题,这意味着它在不与其他人共享的web服务器上也不算太糟)。
相反,Argon2i拥有独立的数据,这些数据阻碍了侧通道,但它对权衡更加开放,所以这不是最好的想法,但仍然不是坏事。
然后是Argon2id,它以一种混合的方式使用它们来阻止权衡和侧通道。
IETF草案指出:
如果您不知道它们之间的区别,或者您认为侧通道攻击是可行的威胁,请选择Argon2id。
所以最好的方法是Argon2id。
顺便提一下,一个小小的更新:
PHP已经将Argon2id设置为7.3,除非在未来几天内出现严重问题,直到特性冻结,否则它将成为PHP7.3‘S password_hash()的一部分,使没有扩展权限的人可以使用它。
https://crypto.stackexchange.com/questions/50741
复制相似问题