零知识架构

问题描述 投票:0回答:1

我想用零知识架构来加密一些用户数据。我参考了bitwarden的实现,但有些部分不明白。

首先,我想使用 argon2 而不是 pbkdf2 来导出密钥,因为 argon2 似乎更安全,因为它可以抵抗并行暴力。

第二,HKDF将主密钥(256bit)拉伸到512bit的目的是什么,为什么不能直接使用主密钥来加密生成的对称密钥?

第三,我可以直接使用主密钥来加密用户数据,而不是生成新的对称密钥并用它来加密用户数据吗?

第四,为什么主密码哈希仅通过 1 次迭代创建,而不是 100,000 次?

cryptography pbkdf2 argon2-ffi hkdf
1个回答
0
投票

根据我的理解,以下是我的答案:

  1. 我不明白为什么这会导致问题。
  2. 也不知道他们到底为什么这样做。也许一个原因可能是进一步增加熵?也许他们想避免使用与数据库中散列相同的密钥进行加密,以避免泄露信息?
  3. 他们可能认为,由于主密码(用作盐)是私有的,攻击者必须暴力破解,这无论如何都会花费足够的时间。为了让攻击者暴力破解哈希值,他们需要测试所有可能的盐。对于又长又复杂的密码来说,这可能已经足够安全了。然而,在服务器上,盐存储在哈希值旁边,因此如果攻击者拥有哈希值,他们就可以访问盐。在这种情况下,他/她不需要暴力破解盐,因此需要更高的迭代次数。此外,它可能是比服务器上的存储更小的攻击向量,因为 1 次迭代哈希仅在传输过程中使用少量时间。

我不太确定他们的原因,但我相信这些可能是一些可能性。

© www.soinside.com 2019 - 2024. All rights reserved.