多数据库隔离策略 - 敏感数据和日常数据分开存
为什么用多个数据库
默认情况下,所有凭证存在一个 .kdbx 里。但对于安全意识高的用户,单一数据库有一个结构性风险:一旦数据库被打开,里面所有凭证同时暴露。
多数据库隔离策略的核心思想:按风险等级把凭证分到不同的 .kdbx 文件里。需要哪类数据就打开哪个数据库,不常用的留在加密状态。
常见的隔离维度
按风险等级分
| 数据库 | 存放内容 | 解锁频率 | 解锁方式 |
|---|---|---|---|
| daily.kdbx | 日常高频网站(邮箱、社交、购物) | 每天 | 主密码 + 生物识别 |
| work.kdbx | 工作相关(公司 VPN、内部系统) | 工作日 | 主密码 + 密钥文件 |
| finance.kdbx | 银行、证券、加密货币 | 每周 | 主密码 + 密钥文件 |
| identity.kdbx | 身份证、护照扫描件、加密货币私钥 | 极少 | 主密码 + 密钥文件 + 硬件密钥 |
越高风险的数据库 → 解锁频率越低 → 解锁因子越多。
按使用场景分
- 个人数据库 vs 工作数据库
- 手机数据库 vs 电脑数据库(手机上只存高频项)
- 共享数据库(和家人共用一个 .kdbx)vs 私人数据库
按解锁方式分
某些场景下,用不同解锁因子的数据库隔离:
- 一个只用主密码(方便)
- 一个用主密码 + 密钥文件(安全)
这样即使方便型数据库被攻破,安全型数据库也不受影响。
KeePassDX 的多数据库支持
KeePassDX 从早期版本就支持在设备上同时维护多个数据库文件:
- 独立管理:每个数据库文件完全独立,不共享主密码、密钥文件、加密算法
- 独立解锁:打开哪个数据库输哪个的主密码
- 独立同步:可以给每个数据库配不同的同步策略(有的用 Syncthing,有的只本地)
- 独立备份:备份策略可以按风险等级差异化
同时打开多个数据库
KeePassDX 不支持同时打开多个数据库——一次只能有一个数据库处于解锁状态。这是有意的设计:
- 避免不同数据库的凭证混淆
- 避免安全边界模糊
- 简化 Magikeyboard/自动填充的凭证匹配
如果需要切换数据库,先锁定当前的(或直接关闭 KeePassDX),再打开另一个。
多数据库的代价
- 解锁更频繁:需要在不同数据库之间切换
- 同步更复杂:每个数据库都要单独配置同步
- 备份更复杂:每个数据库都要单独备份
对于只有几十条凭证的普通用户,单数据库够用。但对于有上百条凭证、包含高价值账户的用户,多数据库隔离是值得的安全升级。
主密码管理难题
多数据库策略带来一个新问题:多个主密码怎么管?
几个实用方案:
方案一:相同主密码 + 不同密钥文件
所有数据库用同一个主密码,但每个配独立密钥文件。这样:
- 只需要记住一个主密码
- 但密钥文件必须和数据库分开保管
- 安全性略低于每个数据库独立主密码,但便利性高
方案二:不同长度不同主密码
- daily.kdbx:较短主密码(12 字符)——方便日常解锁
- finance.kdbx:较长主密码(20+ 字符)——安全但麻烦
- identity.kdbx:最长主密码(24+ 字符)+ 密钥文件——极少解锁
方案三:口令词 + 领域词组合
每个数据库的主密码用一个通用口令词 + 一个领域专属词的组合:
coral-hazardous-daily-4coral-hazardous-finance-7coral-hazardous-identity-9
这样你只需要记住一个口令词框架,不同数据库替换后缀即可。熵值稍降但实用性好。