adn*_*ili 3 javascript security bcrypt node.js
在 Node.js Web 开发中,我将其视为bcrypt用于散列和比较密码的常见做法。是否bcrypt.compare容易受到时序攻击?
原帖:
这取决于您使用的 bcrypt 模块的实现。bcrypt 本身只是一个密钥推导函数,并不表示应该如何进行比较。理论上,bcrypt.compare将散列与简单字符串===比较进行比较的函数可能会泄露有关散列的信息。
但是,假设您指的是最广泛使用bcrypt的 Node.js 模块,则该bcrypt.compare功能是使用计时安全CompareStrings功能实现的。此函数总是在中断之前比较散列中的所有字符,从而防止它显示比较失败的位置/时间。
重要更新:
上面喜欢的 bcrypt.compare 函数不再是时间安全的,但是这已经在很多地方讨论过(例如这里和这里)并且共识似乎是这并不重要,因为 bcrypt 本身不容易受到时间攻击:
加密散列函数的一个理想特性是抗原像攻击,这意味着没有生成消息的捷径,该消息在散列时会产生特定的摘要。
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |