众所周知,密码破解尝试可以极大地受益于专用硬件,如大型GPU集群或FPGA。
对于常见的或流行的编程语言和/或框架(如.NET ),是否有共同推荐的密码哈希算法(PBKDF2 2/bcrypt)的实现,将身份验证过程中的密码散列部分卸载到专用硬件(如GPU或FPGAs )?
如果没有这样一个现有的库,它们不存在有什么好的理由吗?
发布于 2013-06-29 06:08:46
看看比特币挖掘代码--它们的整个过程都是基于计算SHA-256散列,我知道不仅有GPU实现,而且还有FPGA,现在甚至出现了ASIC。
一种基于ASIC的设备今天可以买到售价为1300美元,每秒可通过大约6630万SHA-256散列。ATI/AMD 7970视频卡每秒可以处理大约687,000,000次哈希。
发布于 2020-06-13 19:09:09
正如这里的其他答案所解释的,密码哈希函数在身份验证服务所使用的通用硬件上的效率与攻击者使用的专用硬件上的效率几乎一样高。对于一个服务来说,并行执行如此多的密码散列也是非常不寻常的,以至于他们需要将其放大或缩小。
但是bcrypt现在已经为GPU和FPGAs实现了。见密码破解速度非常慢?如果您正在使用数百个FPGA,则不会!。
所描述的GPU实现仅略快于CPU实现。但是FPGA的实现成本效益要高得多,并且接收的功率要少一个数量级。但到目前为止,它似乎只运行在停产的FPGA板上。
还要注意的是,Auth0服务是很少有业务需要并行执行大量身份验证的服务之一。因此,他们提出了BaaS (Bcrypt )方法,描述在这里:并行化和自动缩放bcrypt-Auth0工程,并在这里作为开放源代码可用:baas:作为微服务的Bcrypt的Node.js实现。。我认为它仍然依赖于bcrypt的标准节点实现,并且没有针对GPU或其他特殊硬件进行优化,
https://security.stackexchange.com/questions/38136
复制相似问题