首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用来自SHA256的BIP39密码作为auth凭证吗?

我可以使用来自SHA256的BIP39密码作为auth凭证吗?
EN

Cryptography用户
提问于 2021-11-12 22:59:52
回答 2查看 223关注 0票数 1

我正在开发一个E2E加密应用程序。我正在使用OpenPGP.js,并在服务器上存储公钥和私钥。私钥是用一个BIP39密码加密的,这个密码被存储在浏览器LocalStorage中,所以它永远不会发送到服务器。但我也需要一些用户的凭证才能登录。

我的想法是从SHA256密码中生成BIP39,并将其拆分成两个字符串。第一个可以用于“用户名”,第二个可以用于服务器密码。

这个方法安全吗?据我所知应该是。BIP39密码具有足够大的熵。我不能使用盐,因为BIP39密码应该是存储的唯一秘密。

这种方法有效吗?谢谢。

EN

回答 2

Cryptography用户

发布于 2021-11-13 00:02:45

要回答你的实际问题,是的,你的想法听起来很安全,但这不是通常的做法。

如果您有一个单独的“大师”秘密,并且需要将其分成两个或两个以上的秘密,以致对其中任何一个秘密的了解都不会给出有关主的任何信息,那么您想要的是在RFC 5869中指定的HKDF,它使用HMAC从单个秘密生成任意数量的独立秘密。

在这方面,除香港发展基金外,亦有很多其他选择。如果您没有与SHA-256结婚,您可以使用支持“个性化散列”的BLAKE2,它允许您混合使用个性化的值。唯一的个性化设置值会导致唯一的散列,即使对于相同的输入也是如此。

票数 1
EN

Cryptography用户

发布于 2021-11-13 07:20:05

我可以使用来自SHA256的BIP39密码作为auth凭证吗?我的想法是从SHA256密码中生成BIP39,并将其拆分成两个字符串。

从安全设计的角度来看,这似乎是两个严重的错误。

  • 这是使用像SHA-256这样的快速散列函数来处理一些旨在被记忆的东西。相反,必须为键分布使用一个缓慢的密码散列。这些都被称为基于密码的密钥派生函数.如果可能的话,它必须是记忆硬。值得推荐的选择包括Argon2或氪。虽然比普-39's选择的PBKDF2-HMAC-SHA 512有512发子弹很差(因为HMAC内存不硬,不适合使用ASIC、FPGA或GPU进行大规模加速),SHA-256的速度大约快1000倍,因此更容易对密码破解器进行攻击。
  • 这是将一个秘密的数据/熵分解成两个独立的短秘密,它们可以被单独攻击。类比:将一个6位数的代码替换成两个三位数的代码,一个是连续两扇门中的一个。当某些秘密和令人难忘的东西必须被多次使用时,整个秘密必须输入一个基于密码的密钥派生函数,以及一些与预期用法相关联的常量,如果可能的话,还必须输入

注:设计中可能有其他错误。也许上述两个明显的问题确实被某种东西减轻了。我们无法判断,因为安全目标、假设和详细的设计都没有说明。

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

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

复制
相关文章

相似问题

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