我一直听说scrypt比bcrpyt更好……因为内存导致 GPU 很难破解。然而,这个概念始终是scrypt没有经过测试,它是一种新的 crypt 方法,我应该在使用它之前等待它进行测试。
到了人们将scrypt用作新标准的时候了吗?还是仍处于测试阶段?
我一直听说scrypt比bcrpyt更好……因为内存导致 GPU 很难破解。然而,这个概念始终是scrypt没有经过测试,它是一种新的 crypt 方法,我应该在使用它之前等待它进行测试。
到了人们将scrypt用作新标准的时候了吗?还是仍处于测试阶段?
scrypt 的一个相当大的内在安全性是它没有做出任何具体的承诺,但已经有效地保证至少与现有的替代方案一样好。
因此,在最坏的情况下,scrypt仅与现有的迭代哈希组合技术一样好。由于scrypt本身就是一种迭代组合技术,并且由于现有技术相对幼稚,因此很难想象scrypt可能比替代方案更不安全。从这个意义上说,它的安全性是基于它在其推荐配置中使用完善的哈希值这一事实。
在最好的情况下,scrypt还会增加您用于暴力破解密码哈希的任何硬件的价格。多少?没有保证。设计目标是哈希破解设备必须拥有大量专用 RAM,这是显着增加必须进入此类设备的芯片染料空间量或显着限制设备的速度,因为内存要么非常慢要么非常昂贵。
但是没有成功的衡量标准,没有具体的攻击可以防御。只有一个普遍的“它可能使硬件更昂贵”的说法,这根本不是一种说法。
当然,主要的缺点是它可能使硬件更加昂贵。这次是你的硬件。设计目标是增加散列的成本,这意味着您的计算机将不得不比其他散列策略的等效设置成本更高或性能更差。如果您不了解scrypt的用途,那么这可能是一个真正的问题。
考虑到Thomas Pornin最出色的答案,一个临时的选择是使用一种机制来阻止当今基于 GPU 的破解系统,但希望一旦密码散列竞赛的结果可用,就会迁移到密码散列竞赛的结果。
例如,使用 PBKDF2-HMAC-SHA512 将通过使用 SHA512 防止在当今的 GPU 上出现破解。但这种措施只能被视为一种临时措施。这不是一个长期的解决方案。