你的主密码是根源
Argon2id 将主密码转换为密码库密钥。主密码绝不会存入浏览器的 sessionStorage;解锁后,会话状态是一段已被零化的内存字节缓冲区,而不是页面可以读取的字符串。
KalderaShield 没有账户体系,也没有服务器端的密码库副本。加密后的密码库保存在你的设备上;如果你愿意,也可以保存在由你自行转移的加密备份文件中。攻击者无法攻破一台根本不存在的服务器。
每条记录独立加密。每条记录都通过 HKDF-SHA256 派生出唯一的 256 位 AES-256-GCM 密钥,因此解密某一条目绝不会暴露其他条目。标题、用户名、密码和备注只有在经过认证的密文载荷内部才以明文形式存在。
主密码通过 Argon2id 进行拉伸——桌面版和 Android 版使用 64 MiB 内存、4 次迭代和 2 路并行——参数保存在密码库本身之中,因此现有密码库不会在无声无息中变弱。
生产构建在气隙策略下运行:意外的出站请求、WebSocket、WebRTC 及类似调用都会被阻止并记录。唯一的网络流量是 Have I Been Pwned 范围检查,它只发送 SHA-1 哈希的前五个字符,绝不会发送你的密码。
Argon2id 将主密码转换为密码库密钥。主密码绝不会存入浏览器的 sessionStorage;解锁后,会话状态是一段已被零化的内存字节缓冲区,而不是页面可以读取的字符串。
Windows Hello(TPM 2.0)、macOS Touch ID(Secure Enclave)、Android BiometricPrompt(AndroidKeyStore)以及支持 PRF 的 FIDO2 密钥用于封装解锁载荷。密码库文件本身从不被硬件密封,因此设备丢失也不会把你挡在门外。
公开发布的威胁模型说明了哪些攻击能够防御、哪些只能部分防御、哪些不在范围之内——包括在你自己的操作系统会话中运行的恶意软件。产品宣传不允许许诺超出这一范围的能力。
任何本地应用都无法保护一台已失陷设备上的密码库:在密码库解锁期间以你的操作系统账户运行的恶意软件、键盘记录器、特权屏幕捕获和内存检查,都在本模型的范围之外。硬件解锁只是便利性封装,不能替代主密码。独立的第三方审计尚未完成——这一点被公开陈述,而不是被掩盖。
新建的桌面版和 Android 版密码库使用 64 MiB、4 次迭代、2 路并行;网页版使用 32 MiB、3 次迭代、1 路并行。
HKDF-SHA256 以记录 ID 作为盐值,为每条记录和每个附件派生唯一密钥。被篡改的密文无法通过认证。
意外的出站 fetch、XHR、WebSocket、sendBeacon、EventSource 和 WebRTC 目标都会被阻止,并作为安全事件记录。