本地加密与数据恢复说明
Termark 会在本机保存主机、凭证、同步配置等数据。为了避免敏感信息以明文形式直接落盘,Termark 对本地敏感字段做字段级加密,并把解密所需的本地数据密钥交给操作系统的安全存储管理。
这意味着:数据可以在你的设备上正常使用,但我们无法拿到你的本地数据密钥,也无法在没有密钥或同步密码的情况下帮你解开数据。
本地数据如何加密
首次启动时,Termark 会生成一个 32 字节随机密钥,作为本地数据加密密钥。这个密钥不会写入 Termark 的普通数据库文件,而是保存到系统 keychain 中:
| 平台 | 系统安全存储 |
|---|---|
| macOS | Keychain |
| Windows | Credential Manager |
| Linux | Secret Service |
Termark 在系统 keychain 中使用的服务名是 termark.app,本地数据密钥条目名是 local-data-key。
数据库写入时,Termark 会使用这个本地数据密钥,通过 AES-256-GCM 加密敏感字段。每次加密都会生成新的随机 nonce,所以即使两次保存相同内容,落盘后的密文通常也不同。
数据库读取时,Termark 会先从系统 keychain 读取 local-data-key,再解密数据库中的敏感字段,然后提供给应用界面和连接逻辑使用。如果系统 keychain 不可用,或者本地数据密钥无法读取,Termark 会拒绝以未加密状态继续写入新数据。
哪些内容会加密
当前本地字段级加密主要覆盖连接和凭证中的敏感内容,包括:
- 主机手动登录密码
- 主机代理密码
- 凭证密码
- SSH 私钥
- SSH 私钥密码短语
主机名、地址、端口、分组、备注、终端偏好等用于展示和管理的普通配置仍然会以可读配置形式保存。这样可以保证列表、搜索、排序等功能正常工作,同时把真正敏感的口令和密钥类字段加密落盘。
同步数据如何加密
如果你启用了数据同步,同步数据会使用另一套加密方式。
同步密码由你设置,Termark 使用 PBKDF2-SHA256 从同步密码和随机 salt 派生 32 字节密钥,再使用 AES-256-GCM 加密需要上传的同步数据。上传到同步服务端或第三方存储中的内容是密文。
同步密码不会上传给服务端。服务端只负责保存和传输密文,无法解密你的主机、凭证、私钥等信息。
如果你选择“记住同步密码”,Termark 会把同步密码保存到系统 keychain 中,服务名同样是 termark.app,但条目名是 sync-passphrase。它和本地数据密钥 local-data-key 是两个不同条目,互不替代。
为什么我们无法解开你的数据
Termark 的加密设计把解密能力留在你的设备和你本人手里:
- 本地数据库中的敏感字段需要
local-data-key才能解密。 local-data-key保存在你设备的系统 keychain 中,不会上传到 Termark 服务端。- 同步数据需要你设置的同步密码才能解密。
- 同步密码不会上传给服务端;即使选择记住,也只是保存在你设备的系统 keychain 中。
- AES-GCM 带有完整性校验,使用错误密钥或错误同步密码时,解密会失败,而不是得到可读数据。
因此,如果你只提供数据库文件、同步密文或服务端数据,我们无法从中还原你的密码、私钥或其他敏感字段。没有对应的系统 keychain 条目或同步密码,密文对我们也是不可读的。
丢失密钥或密码会发生什么
以下情况可能导致原有敏感数据无法解密:
- 删除或重置了系统 keychain 中的
termark.app / local-data-key条目。 - 重装系统、迁移数据时只迁移了 Termark 数据库,没有迁移系统 keychain。
- 在另一台设备上直接复制本地数据库文件,但没有对应的本地数据密钥。
- 忘记同步密码,且没有在任何仍可访问的设备上保留它。
- 操作系统 keychain 损坏、被清理工具删除,或当前用户无法访问 keychain。
如果本地数据密钥丢失,Termark 无法解密原数据库中的敏感字段。你仍可能看到部分非敏感配置,但密码、私钥、代理密码等密文字段无法恢复。
如果同步密码丢失,Termark 无法解密云端同步数据。我们也无法通过服务端数据帮你重置或找回同步密码。
备份建议
为了避免误删或迁移时丢失访问能力,建议:
- 迁移电脑时,不要只复制 Termark 数据目录,也要使用操作系统提供的迁移工具迁移 keychain。
- 启用同步时,请妥善保存同步密码,例如放入你信任的密码管理器。
- 在旧设备仍可使用时完成新设备登录和同步确认,再清理旧设备。
- 如果你需要长期归档,请同时确认本地数据、系统 keychain 和同步密码的可用性。
Termark 不会为你托管本地数据密钥或同步密码。这个限制会带来一个结果:我们不能代为恢复丢失的敏感数据;同时也避免了服务端或工作人员拥有解密用户数据的能力。