安全 / 威胁模型

我们防御什么——以及不防御什么

声称能挡住所有攻击的密码管理器是在骗你。本页是桌面版威胁模型的公开摘要:设计能够防御的攻击、只能部分防御的攻击,以及明确不予防御的攻击。

模型范围

一个本地优先的桌面密码库

本模型覆盖作为本地密码库运行的桌面应用:主密码的设置、解锁、锁定和重置;在 wa-sqlite 后端以及等待受控迁移的旧版 OPFS/JSON 存储中的持久化;加密备份;附件加密;生物识别便利解锁;以及应用解锁期间剪贴板和明文显示字段的行为。

受保护的资产包括主密码、每一条密码库条目的机密——密码、银行卡、API 密钥、Passkey 记录、身份信息、备注、TOTP 种子以及可揭示归属关系的元数据——附件内容、加密备份文件,以及被生物识别封装的解锁载荷。

信任边界是明确的。类浏览器存储 API 只算作持久化,不算秘密存储。除非应用自行加密,否则 OPFS 和 localStorage 中的回退数据在静态存储时都视为可被攻击者读取。导入的 CSV/JSON 数据和用户选择的备份文件在被解析并验证之前,都视为不可信输入。

三层防御

可防御

没有密码的加密 .ks 备份副本。锁定状态下读取持久化数据库载荷。篡改 AES-GCM 备份或附件载荷。格式错误的导入文件。应用锁定后的短暂物理接触。

部分防御

以你的操作系统用户身份运行的进程读取应用存储:条目载荷和附件是加密的,但配置文件和部分元数据可能仍可读。一个有效的已解锁会话:自动锁定和显示重置可以减少暴露,但解锁状态仍然是被信任的状态。

不予防御——超出范围

密码库解锁期间以你的操作系统用户身份运行的恶意软件。已失陷的操作系统、WebView 或运行时。由恶意本地软件进行的内存检查、键盘记录、特权屏幕捕获和剪贴板捕获。丢失主密码且没有有效备份。云同步、多设备冲突解决和企业策略并非已发布的功能,也不在本模型范围内。

多层安全防御体系

扩展桥接是模型的一部分

浏览器扩展如何与密码库通信

原生消息桥接只绑定到本地回环 TCP(127.0.0.1,端口范围 49155–49165),使用保存在操作系统受保护文件中的 256 位 CSPRNG 配对令牌进行认证,随后在使用 HKDF-SHA256 派生的会话密钥下用 XChaCha20-Poly1305 加密每一帧。缓存的凭据带有五分钟租约,到期即被零化;宽泛的查询只返回脱敏后的元数据,因此单条消息无法批量窃取整个密码库。拥有你操作系统权限的恶意软件仍然可以读取令牌文件——这一残余风险已被记录在案,而不是被否认。

Sıfırlanan oturum

内存纪律

密码库会话状态以零化后的内存字节数组形式保存在进程内存中。这比 sessionStorage 更安全,但不是操作系统级的安全隔离区——设置和解锁输入仍要经过界面边界。

Yakalama dışlama

屏幕保护

Windows 构建请求 WDA_EXCLUDEFROMCAPTURE,Android 设置 FLAG_SECURE。这能减少普通截图和任务切换器预览;但无法阻止特权捕获软件。

XChaCha20-Poly1305

IPC 帧加密

扩展桥接的每一帧都携带全新的 24 字节随机数;未通过认证或版本不匹配的帧会立即终止连接。

常见问题解答

关于威胁模型

杀毒软件能检测出我密码库的内容吗?

不能。密码库文件和备份在磁盘上都是密文,主密码也从不接触 sessionStorage。至于在你自己的会话中运行、且密码库处于解锁状态的恶意软件,那是另一个问题——它被明确列在范围之外。

为什么有些攻击被排除在范围之外?

因为任何本地应用都无法在这些攻击中获胜。声称能防住键盘记录器或已失陷的操作系统,只会带来虚假的安心。把边界写下来,你才能自行判断 KalderaShield 能为哪些事情负责、不能为哪些事情负责。

这个模型会变化吗?

会。它在每次发布时都会复审,并由一份残余风险登记表记录每个已知缺口、其状态和计划中的缓解措施——包括扩展自动填充路径中一项已被接受且有据可查的取舍。

相关页面

下载安装包