【问题标题】:zero knowledge architecture零知识架构
【发布时间】:2022-12-22 20:31:56
【问题描述】:

我想用零知识架构加密一些用户数据。我参考了 bitwarden 的实现并且不理解某些部分。

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

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

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

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

【问题讨论】:

    标签: cryptography pbkdf2 argon2-ffi hkdf


    【解决方案1】:

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

    1. 我不明白为什么这会导致问题。
    2. 也不确定他们为什么要这样做。也许一个原因可能是进一步增加熵?也许他们想避免使用与数据库中散列的密钥相同的密钥进行加密,以避免泄露信息?我也不确定。我也在做一个零知识项目 (https://github.com/krptn/krypton),我们不这样做。的确,我们使用的是完全不同的模型,因此它可能不适用。
    3. 他们可能认为,因为主密码(用作盐)是私有的,所以攻击者将不得不暴力破解,这无论如何都会花费足够的时间。为了让攻击者暴力破解哈希,他们需要测试每一种可能的盐。对于又长又复杂的密码,这可能就足够安全了。但是,在服务器上,盐存储在哈希旁边,因此攻击者如果拥有哈希就可以访问盐。在那种情况下,她/他不需要暴力破解盐,因此需要更高的迭代次数。此外,它可能是一个比服务器上的存储更小的攻击向量,因为 1 次迭代哈希仅在传输中使用很短的时间。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多