scrypt 是否经受住了时间的考验?

信息安全 密码 密码学 php 加密
2021-08-16 15:25:33

我一直听说scryptbcrpyt更好……因为内存导致 GPU 很难破解。然而,这个概念始终是scrypt没有经过测试,它是一种新的 crypt 方法,我应该在使用它之前等待它进行测试。

到了人们将scrypt用作新标准的时候了吗?还是仍处于测试阶段?

3个回答

Scrypt大多幸存下来。这还不错;事实证明,scrypt 在竞争中(主要是 bcrypt 和 PBKDF2)被吹捧的优势可能并不像最初声称的那样惊人。与往常一样,这是一种权衡:就像任何密码散列函数一样,它的作用是使密码散列对每个人来说都是昂贵的,无论是攻击者还是防御者。Scrypt 使用大量 RAM 以迫使攻击者使用与防御者(PC)相同的硬件。但是,不好的一点是它使用了大量的 RAM

有关密码散列存在的一些信息,请参阅此演示文稿一场公开竞赛正在进行中,以获取、发布和分析新的和希望更好的功能(目前处于收集候选人的阶段)。

scrypt 的一个相当大的内在安全性是它没有做出任何具体的承诺,但已经有效地保证至少与现有的替代方案一样好。

因此,在最坏的情况下,scrypt仅与现有的迭代哈希组合技术一样好。由于scrypt本身就是一种迭代组合技术,并且由于现有技术相对幼稚,因此很难想象scrypt可能比替代方案更不安全从这个意义上说,它的安全性是基于它在其推荐配置中使用完善的哈希值这一事实。

在最好的情况下,scrypt还会增加您用于暴力破解密码哈希的任何硬件的价格。多少?没有保证。设计目标是哈希破解设备必须拥有大量专用 RAM,这是显着增加必须进入此类设备的芯片染料空间量或显着限制设备的速度,因为内存要么非常慢要么非常昂贵。

但是没有成功的衡量标准,没有具体的攻击可以防御。只有一个普遍的“它可能使硬件更昂贵”的说法,这根本不是一种说法。

当然,主要的缺点是它可能使硬件更加昂贵。这次是你的硬件。设计目标是增加散列的成本,这意味着您的计算机将不得不比其他散列策略的等效设置成本更高或性能更差。如果您不了解scrypt的用途,那么这可能是一个真正的问题。

考虑到Thomas Pornin最出色的答案,一个临时的选择是使用一种机制来阻止当今基于 GPU 的破解系统,但希望一旦密码散列竞赛的结果可用,就会迁移到密码散列竞赛的结果。

例如,使用 PBKDF2-HMAC-SHA512 将通过使用 SHA512 防止在当今的 GPU 上出现破解。但这种措施只能被视为一种临时措施。这不是一个长期的解决方案。