gpt4 book ai didi

passwords - 在密码哈希中包含迭代计数是否安全

转载 作者:行者123 更新时间:2023-12-02 22:57:19 25 4
gpt4 key购买 nike

一位同事经过大量研究(包括听取 https://crackstation.net/hashing-security.htm 的建议)实现了我们的密码哈希代码。

生成的密码散列包括盐(应该没问题,并且是验证密码所必需的),还包括迭代计数,这对于 key 拉伸(stretch)来说很高。

将迭代计数保存在数据库中很好,因为在单元测试中可以使用较低的计数,并且如果我们更改计数,则仍然可以验证现有保存的密码哈希值。但我想知道包含该数字是否安全,因为如果迭代计数已知,那么暴力攻击不是会更容易吗?在我看来,这将防止对增量测试的每个迭代计数进行大量额外检查。

最佳答案

可以将迭代计数包含在结果哈希中。

最重要的是,当 future 的硬件变得更快时,这允许您增加迭代次数。有必要能够适应更快的硬件,而不丢失旧的哈希值。

隐藏这个数字并没有多大帮助。如果不知道,攻击者就会假设一个合理的数字,甚至可能更高一点。他不仅可以将最后一次迭代与哈希值进行比较,还可以将之间的每一步进行比较。如果 BCrypt 具有对数成本参数,则大约需要 3-5 次比较操作(数字太小不合理),这不是什么大问题。

众所周知的 API,例如 PHP 的 password_hash()还将包括成本参数。

编辑:隐藏迭代次数会给哈希过程添加一种 secret ,攻击者必须猜测这个数字。虽然添加服务器端 secret 有更好的可能性,我试图在我的教程中解释这一点 safely storing passwords (看看关于胡椒和加密哈希值的部分)。

关于passwords - 在密码哈希中包含迭代计数是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21313622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com