首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密钥派生函数(KDF)用于密码存储

密钥派生函数(KDF)用于密码存储
EN

Cryptography用户
提问于 2017-09-04 18:01:18
回答 1查看 1K关注 0票数 1

使用KDF实现来存储密码安全吗?

更广泛地说,这是标准吗?公司真的使用KDF吗?还是他们通常依赖其他算法?

如果你有第二个问题的实际例子,我将不胜感激。

EN

回答 1

Cryptography用户

发布于 2017-09-08 14:45:38

是的和不是的,这取决于你所说的“存储密码”的含义。如果您的意思是“在密码存储中存储我自己的密码”,那么“不”,因为这显然不是KDF的目标。但是,如果您的意思是“在数据库中存储身份验证数据以验证我们的用户”,那么是的,因为以这种方式存储的密码确实很难恢复。

“是的”,公司确实使用KDF,并将继续使用它越来越多。值得注意的是,由于NIST在其最新发布的密码存储( NIST.SP.800-63b )中标准化了它们的使用,它说:

验证者应将记忆好的秘密即密码存储在抵抗离线攻击的形式中。记住的秘密应使用适当的单向密钥派生函数进行腌制和散列。密钥派生函数以密码、salt和成本因子作为输入,然后生成密码哈希。他们的目的是让获得密码散列文件的攻击者试用每一个密码猜测,因此猜测攻击的成本很高或很高。

也是因为现在,数据泄漏对任何公司的公关都是极其有害的。

有两种不同类型的KDF:

  1. 当你有一个很低的熵并且害怕字典攻击的时候(通常如果你存储可记住的密码),比如Argon2气球PBKDF等等。
  2. 当你有一个很好的熵时你使用的那些,例如,如果你依赖DH协议来建立一个公共密钥的话。比如香港发展基金,它被认为是满足这种需要的案例。

我在这里讨论的类型是第一类,当您将密码存储在数据库中以验证用户身份时。我个人对Argon2有偏好。由于其他如PBKDF2,可以是在专用集成电路器件上实现,这使得使用这些设备的暴力攻击更加容易,或者有更少的参数可以调整.此外,它还被选为密码散列竞赛的获胜者。

现在,关于KDF是否实际使用,您可以简单地查看大多数密码验证,我相信您会发现最重要的是.例如,LastPass使用PBKDF2 2做广告可以保护您的密码-存储主密码,并且您可以调整自己完成的迭代次数。姜戈的框架文件还提到PBKDF2是它的默认算法。

最后,维基百科有一个使用PBKDF2 2的好列表。(尽管存在理论上更好的KDF,但它仍然是使用最多的KDF。)

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/51306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档