对于 ASIC 比特币矿工,SHA256 是否应该被认为对密码散列不安全?

信息安全 密码 哈希 sha256 比特币
2021-08-27 07:44:26

我相信这里的每个人都看到了比特币的崛起和进一步的崛起。用于挖掘比特币的过程基本上是“让我们暴力​​破解一个小于这个数量的 SHA256 哈希”

话虽如此,它似乎真的越来越受欢迎。现在有非常快的 ASIC 矿工,能够超过 60,000 Mhashes/s

尽管它们可能相当专门用于比特币,但我认为将它们用于黑帽/灰帽使用并利用它们的蛮力从盐和哈希中找到密码并不是不可能的。正因为如此,SHA256 是否应该被视为一种风险算法来信任密码?

3个回答

使用专用硬件快速计算大量哈希的能力密码哈希的一个问题,但不是一个问题。在专用于 SHA-256 的 ASIC 出现之前,我们已经将FPGA考虑在内(例如参见这台研究机器,从五年前开始)。ASIC 的时钟频率大致可以是等效 FPGA 频率的两到三倍;大规模生产进一步降低了成本。这不会从质量上改变情况,但它肯定会增强攻击者,比如 3 位或熵。

当然,密码散列的简单 SHA-256 不是一个好主意;即使攻击者“只有”经典 PC,它也太快了;我假设我们在这里谈论的是PBKDF2,这是一种慢速散列结构,它依赖于底层 PRF,通常是HMAC,它本身是建立在诸如 SHA-256 之类的散列函数之上的。

理论已经表明,在所有其他条件相同的情况下,密码散列应该使用在硬件上最有效的底层散列函数,该函数将在“诚实的系统”(即 PC)中处理它。这就是 bcrypt 或 scrypt 等散列函数的意义所在。如果您想坚持使用 PBKDF2,则使用 SHA-512 将是一个好主意,因为 SHA-512 使用大量 64 位算术运算,这是现代 PC 非常擅长的,但 GPU 却很糟糕。专门研究 SHA-256 的 ASIC 不会更改该建议。

SHA256从未被认为是密码散列的安全算法。使用bcrypt,pbkdf2scrypt代替。

是惊人的答案被@ThomasPornin以获取更多信息。

ASIC 通常是 OTP(一次性可编程[它们直接由晶圆制成]),因此您不能对其重新编程(例如切换到 SHA1 或实施 HMAC)并使用它们进行破解。比特币使用两次迭代的 SHA256(挖矿),这在安全考虑方面毫无用处。

请参阅有关 ASIC的维基百科