全部文章

备份真正有用的那一天:Senvra 如何让私密数据回来

私密空间备份如何使用源空间的 Space Access Key,公共空间备份为何不提供保密性,以及 Senvra 如何在恢复前验证保存的文件。

备份加密恢复隐私iOS

真正需要备份的那一天,通常不是一个好日子。

也许手机丢了,也许 App 被误删了,也许设备已经无法开机。到了那一刻,设置页里曾经出现过的对勾并不重要。真正重要的只有两个问题:保存下来的文件是否仍能通过验证,以及打开它所需的凭据是否还在。

Senvra 当前的备份设计,正是为了在保证恢复边界清晰的同时,不再要求用户为每份备份管理一枚新的秘密。

快速开始:创建、检查与恢复

创建并保存备份

  1. 打开需要保护的空间,然后从主菜单进入备份。
  2. 点击备份;私密空间选择创建加密备份,公共空间选择创建备份。
  3. 文件生成后可按需重命名,再点击保存并在“文件”中选择位置。请让 Senvra 保持打开,直到页面显示备份已保存并验证。
  4. 对于私密空间,请保留创建备份时正在使用的 Space Access Key。应将它与 .senvrabackup 文件分开保管,并尽量不要只存放在同一台 iPhone 上。

不导入内容,先检查备份

  1. 回到与备份类型相同的空间,进入备份并点击恢复。
  2. 选择 .senvrabackup 文件。当前格式的私密空间备份需要输入源空间的 Space Access Key;公共空间备份不需要 Key。
  3. 点击检查。Senvra 会读取并认证整份归档,但不会导入任何内容。恢复演练成功,说明这份文件与凭据能够配合使用。

恢复内容

  1. 打开与备份类型相同的目标空间,通过备份 → 恢复选择文件。
  2. 确认页面识别出的保护类型,按提示提供所需 Key,然后点击导入。
  3. Senvra 只会补充缺失项目,并保留已有的匹配项目;不会替换目标空间的名称、密码、Access Key、生物识别设置、手势或皮肤。

使用 Space Access Key,不再为每份备份生成新 Key

对于私密空间,恢复现在只依赖两样东西:

  1. 保存在 Senvra 之外的 .senvrabackup 文件;
  2. 创建这份备份时,源私密空间正在使用的 Space Access Key。

当前格式没有额外的 Backup Password,也不会再生成一枚需要用户单独保存的 Backup Key。

这是一次明确的可用性取舍。每份备份都配一枚独立密钥,从密码学上可以很强,但随着备份数量增加,用户必须多年准确维护大量“文件与 Key”的对应关系。只要配错或丢失其中一枚,唯一留下的备份就可能无法使用。

Space Access Key 本来就是私密空间的恢复材料。让它同时承担该空间备份的恢复凭据,流程就变得清楚:保管好空间的 Access Key,把备份文件保存到可信位置,并尽量将两者分开存放。

私密空间备份如何受到保护

Space Access Key 不会直接用来逐个加密备份里的照片、视频、笔记和文档。

每个私密空间都有独立生成的 256-bit 主密钥。备份中包含一个经过认证的 Access Key 信封,只有匹配的 Space Access Key 才能恢复源空间主密钥。随后,Senvra 使用该主密钥和每份备份独立的随机上下文保护一枚新生成的 Archive Key,再由 Archive Key 加密并认证备份记录。

流程图 正在生成图表

左右滑动查看完整图表

查看图表源代码
flowchart LR
    K[源空间 Space Access Key] --> E[打开经过认证的 Access Key 信封]
    E --> M[恢复源空间主密钥]
    M --> W[结合新的随机盐<br/>派生备份包装密钥]
    W --> A[解包随机 Archive Key]
    A --> F[认证并解密备份数据帧]

这套层级让每种密钥只承担一种职责:

  • Space Access Key 证明用户拥有源私密空间的恢复权限;
  • 空间主密钥锚定该空间的加密身份;
  • 每份备份新生成的 Archive Key 保护这一个备份文件;
  • 认证加密既隐藏内容,也能发现文件是否被修改。

备份文件不会写入 Space Access Key。只有文件、没有匹配 Access Key,仍然无法打开私密空间备份。

公共空间备份采用不同边界

Everyday 公共空间不是私密保管库,因此它的备份不会被描述成具有保密性的加密备份。

公共空间备份不需要密钥即可恢复。任何拿到该文件、并使用兼容工具的人,都可能读取或恢复其中的内容。Senvra 会在创建和恢复前明确说明这一点,而不会给公共空间提供并不存在的保密承诺。

需要让备份内容保持私密时,应先把内容保存在私密空间中。

文件离开 Senvra 前后都会经过验证

成功写出一个文件,不等于已经得到一份可靠备份。

Senvra 会以结构化容器写入备份,并在交给用户保存之前检查认证记录、项目关系、字节数、内容摘要和结束标记。未完成的写入只会停留在待定状态,不会被展示成完整备份。

接下来还有复制边界。通过“文件”、iCloud Drive、外部存储或其他服务保存时,复制过程仍可能被中断或改变。使用 Save 后,Senvra 会重新读取目标文件,并将它的 Header、字节数和完整文件摘要与 App 内已经验证的源文件比较。只有两者一致,外部副本才会被记录为当前备份。

通过 Share 发送副本仍然有效,但 Senvra 无法回读所有第三方 App 的目标位置,因此分享出去的副本不会被记录为“已完成外部验证”。

恢复演练会读取整份备份

恢复演练不会导入任何内容。它是一项针对备份文件及其凭据的无损测试。

对于当前格式的私密空间备份,Senvra 会要求输入创建文件时使用的 Space Access Key。随后打开密钥信封、认证 Header、读取全部数据帧、验证项目与归档摘要、检查结束标记,并拒绝末尾存在异常附加数据的文件。

这样可以区分两种状态:

  • 一份密码学上完整、仍然可以恢复的较早备份;
  • 一份完整,并且仍与源空间当前内容一致的备份。

两者都可能有用,但只有后者代表最新的受保护状态。

恢复只补充内容,不会替换当前空间

Senvra 的恢复采用增量方式:把缺失项目加入当前打开的空间,已有的匹配项目保持不变。

私密空间备份只能通过私密空间入口恢复,公共空间备份只能通过公共空间入口恢复。Senvra 会先完整验证备份,再接受其中的数据。每个恢复项目都会先写入受保护的待定位置,验证完成后才原子发布。

备份会包含源空间的内容与组织信息,例如合集和标签;但不会替换目标空间的身份、名称、密码、Space Access Key、Face ID、手势设置或视觉皮肤。

如果导入中途被打断,现有内容不会被破坏。再次选择同一份备份时,Senvra 会跳过已经匹配的项目,而不是静默生成重复副本。

更换 Access Key 会影响旧备份

这是当前设计最重要的使用细节。

一份私密空间备份始终绑定到创建它时正在使用的 Space Access Key。以后更换空间 Access Key,并不会重写已经保存在外部的旧文件;新的 Key 也不能打开这些旧备份。

更换 Access Key 后应当:

  1. 为仍需保留的旧备份继续保存旧 Access Key;
  2. 使用新 Access Key 创建并保存一份新备份;
  3. 对新保存的文件执行恢复演练;
  4. 确认旧备份不再需要后,再决定是否清理旧 Key 和旧文件。

这种设计避免后续密钥变更静默改变不可变的备份文件,但也意味着密钥轮换必须成为备份管理的一部分。

旧备份可能仍会要求 Backup Key

选择文件后,Senvra 会识别其中记录的凭据方案。由早期发布前设计生成的文件,仍可能要求它原来的 Backup Key。

请以选择文件后页面显示的名称为准:

  • Source Space Access Key 表示当前私密空间备份格式;
  • Backup Key for older backup 表示这份旧文件仍需使用当时保存的专用 Key;
  • 当前公共空间备份不需要密钥。

Senvra 不会在不同凭据之间进行静默替代。

一套真正能长期执行的备份习惯

  1. 把每个私密空间的 Access Key 保存在 Senvra 之外,也不要只存在同一台手机上。
  2. 在重要内容发生变化后创建新备份。
  3. 把 .senvrabackup 保存到自己控制的位置。
  4. 尽量使用 Save,让 Senvra 能够回读并验证目标副本。
  5. 新备份通过恢复演练前,不要删除最后一份已知可用的备份。
  6. 更换 Access Key 后,先创建并验证新备份,再决定是否淘汰旧恢复材料。

Senvra 不会把备份上传到自己的托管保管库。通过“文件”选择的位置是否由 iCloud 或其他服务同步,取决于你选择的存储服务。

最后,把边界说清楚

对于私密空间备份,只有文件、没有匹配的 Space Access Key,Senvra 无法恢复;只有 Access Key、没有任何备份文件,也没有可恢复的数据。如果两者都丢失,不存在服务端重置或托管副本;如果两者同时泄露,备份的保密性也随之失去。

对于公共空间,只要持有备份文件就足以恢复,因为该备份本身不提供保密性。

新设计移除的是难以长期管理的“每份备份一枚新 Key”,而不是用户的保管责任。它的目标是一条真正能够完成的恢复路径:每个私密空间一枚既有 Access Key,每次备份一个便携文件,明确验证,并把边界说清楚。

想了解这项功能与其他变化如何配合,可以继续阅读 Senvra 1.3 更新说明 和 Senvra 如何保护 iPhone 中的私密数据。

延伸阅读

来自 MonoWare

Senvra 背后还有更多上下文。

打开产品网站,或继续阅读按 Senvra 筛选的笔记。

通讯

隐私与产品工程笔记,偶尔发送。