给定以下代码,从用Z现货实现安卓系统的Bip39 39中提取
PBKDF2SHA512(
passphrase = veryHighEntropy secret bytearray,
salt = pontentiallyLowEntropy secret bytearray,
iterations = 2024,
)如果密码泄露了怎么办?散列的总熵是否降为盐的熵?
如果我正确地理解了秘密盐应该作为一个密码,例如,当一个新的钱包是生成的助记符单词。那么,是否有可能运行一个知道助记符单词的野蛮人?
示例:如果我创建一个钱包,获取24个单词并设置可选密码,该怎么办?然后决定和我妻子分享这24个字。现在,如果她决定背叛,或者她遭到了社会黑客攻击,而第三个人知道了这24个单词,那会发生什么呢?
有可能用gt 640破解密码吗?
发布于 2022-11-12 11:47:44
除了尝试所有可能的猜测和检查结果之外,没有其他方法可以找到盐。尽管PBKDF2-HMAC不以相同的方式处理密码和salt,但在这两个方面都具有相同的基本安全属性。
如果你知道密码(密码,助记词,不管你怎么称呼它),而盐有低熵,那么导出的散列是可以猜测的,就像你知道盐和密码有低熵一样。
盐通常不缩成秘密,因为它必须被储存。一个非秘密盐不一定是不可猜测的,它只需要是唯一的,因为重点是使它不值得做大量的预计算PBKDF的普通密码。然而,如果你确实有一个地方可以安全地储存一个秘密,那么让盐的秘密是一个额外的好处,然后你应该使它高熵。秘密盐通常被称为“胡椒”(但胡椒通常在多个账户之间共享,而盐是公开的,但每个账户;共享的胡椒不能是单独的盐)。不管盐是如何储存的,随机食用盐既简单又便宜,因此没有理由不使用高熵盐。
~2000次迭代次数少得离谱。OWASP目前建议对身份验证进行100,000次迭代,密钥派生应该比身份验证使用更多的迭代,因为它可以在不受时间限制的情况下脱机完成(而对于身份验证,攻击者必须首先破坏数据库,如果发现有漏洞,用户就有可能更新其密码)。
发布于 2022-11-13 12:47:14
我将更改您的一些术语,因为密码会使事情变得混乱。我们讨论的是一个随机生成的助记符句子和一个可选的用户指定的密码。
如果助记符的句子被泄露了怎么办?
基于规格说明,如果您没有密码,攻击者可以生成种子,因为salt只是"mnemonic"。
如果指定密码,攻击者就不知道salt,因为它变成了"mnemonic" || password。因此,他们必须反复猜测密码。
散列的总熵是否降为盐的熵?
不,助记符句的熵仍然很高。
有可能用gt 640破解密码吗?
这是一个非常具体的问题。破解密码有多难,最取决于密码的强度。如果密码是"password",则可以立即破解它,而不管您的硬件是什么。同样,如果密码是"/x]ku@"aJ%!]3"(k|xH0C4Kyr{1%r?",则不会被任何密码破解。
https://crypto.stackexchange.com/questions/102710
复制相似问题