跳转到内容

本地加密与数据恢复说明

Termark 会在本机保存主机、凭证、同步配置等数据。为了避免敏感信息以明文形式直接落盘,Termark 对本地敏感字段做字段级加密,并把解密所需的本地数据密钥交给操作系统的安全存储管理。

这意味着:数据可以在你的设备上正常使用,但我们无法拿到你的本地数据密钥,也无法在没有密钥或同步密码的情况下帮你解开数据。

本地数据如何加密

首次启动时,Termark 会生成一个 32 字节随机密钥,作为本地数据加密密钥。这个密钥不会写入 Termark 的普通数据库文件,而是保存到系统 keychain 中:

平台系统安全存储
macOSKeychain
WindowsCredential Manager
LinuxSecret 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 不会为你托管本地数据密钥或同步密码。这个限制会带来一个结果:我们不能代为恢复丢失的敏感数据;同时也避免了服务端或工作人员拥有解密用户数据的能力。

Termark 使用文档