加密方式
密码库数据只能使用从您的主密码派生的密钥来解密。Bitwarden 是一种零知识的解决方案,这意味着您是唯一能够获得您的密钥并能够解密您的密码库数据的一方。
AES-CBC(Cipher Block Chaining)是一种加密技术的标准,被美国政府和世界各地的其他政府机构用于保护顶级机密数据。正确的实施加上复杂的加密密钥(您的主密码),AES 被认为是坚不可摧的。
PBKDF2 使用的默认迭代数是客户端上的 600,001 次迭代(可从您的账户设置中配置客户端迭代数),当存储到我们的服务器上时会再进行 100,000 次迭代(默认情况下总计为 700,001 次迭代)。组织密钥使用 RSA-2048 共享。
Bitwarden 使用的默认迭代数在 2023 年 2 月增加。在此之后创建的账户将使用 600,00,但是如果您在此之前创建了账户,则应增加迭代次数。可以在以下部分中找到这样做的说明。
所使用的哈希函数是单向哈希,这意味着 Bitwarden 的任何人都无法对其逆向工程,从而泄露您的主密码。即使 Bitwarden 被黑客攻击,也无任何办法获取您的主密码。
如上所述,Bitwarden 使用一个更安全的默认数值,但是您可以从网页密码库的账户设置 → 安全 → 密钥菜单更改迭代数。
更改迭代数有助于保护您的主密码免遭攻击者的暴力破解,但不应将其视为一开始就使用强主密码的替代方法。更改迭代数将重新加密受保护的对称密钥 并更新身份验证哈希,就像正常的主密码更改一样,但不会轮换对称加密密钥,因此密码库数据不会被重新加密。有关重新加密数据的信息,请参阅此处。
在 CPU 较慢的设备上登录(以及解锁)Bitwarden 时,将 KDF 迭代设置得太高可能会导致性能不佳。我们建议您以 50,000 为增量增加该值,然后测试您的所有设备。
当您更改迭代数时,您将从所有客户端注销。尽管在更改 KDF 迭代数时不存在轮换加密密钥所涉及的风险,但我们仍然建议事先导出您的密码库数据。
- 增加 KDF 迭代将线性增加运行时间。
- 您可以使用的 KDF 并行数量取决于您机器的 CPU。一般来说,最大。并行数 = 核心数量 x 2。
Bitwarden 不编写任何加密代码。Bitwarden 仅从流行且信誉良好的加密库中调用加密,这些库由加密专家编写和维护。我们使用以下加密库:
- JavaScript(网页端、浏览器扩展、桌面和 CLI 密码库)
- C#(移动端)
- CommonCrypto(iOS,Apple)
- Javax.Crypto(Android,Oracle)