加密 Time Machine 备份是"我丢了一块硬盘"和"我丢了一块硬盘,现在持有它的任何人都无法恢复数据,我的恢复故事完好无损"之间的差异。对本地备份这是良好实践。对网络和云端备份这是不可妥协的。本指南覆盖一切:设置流程、底下实际运行的密码学、macOS 在哪里保存密码、忘记时的(有限)选项、如何更改,以及把善意加密备份变成镇纸的陷阱。
如果你想要 Time Machine 加密如何与 FileVault 和 SMB3 配合的更宏观战略视角,先读 Mac 备份加密详解。本文是专门针对 Time Machine 层的深度操作指南。
为何加密 Time Machine 现在比以往任何时候都重要
两个趋势让这个问题比十年前更紧迫。第一,异地备份不再是例外;云端 Time Machine 目的地是主流,它们把你的快照放在你物理上不控制的地方。第二,NAS 设备已成为机会主义勒索软件活动的常规目标,意味着持有你未加密备份的 NAS 在功能上是一份坐在目标上的数据副本。
加密 Time Machine 卷本身——而非依赖目的地提供的任何加密——意味着你随身携带安全边界。云提供商、NAS、桌上的 USB SSD:它们都从未看到明文。
设置流程
无论目的地类型,设置流程都相同,网络共享有一个小细节。
添加新备份盘
- 打开 系统设置 → 通用 → Time Machine。(旧 macOS 上是系统偏好设置 → Time Machine。)
- 点击 添加备份磁盘(或 + 按钮)。
- 从列表选择目的地。本地 USB 盘和 Thunderbolt 外置盒出现在"可用磁盘"下。网络共享出现在"可用网络磁盘"下,但只有当前在 Finder 中已挂载;对云端目的地,先通过 Finder 的
⌘K挂载共享。 - 关键,保持 加密备份 开关开启。不要为了"让第一次备份更快"而关掉。设置时应用加密比之后改装简单得多。
- 提示时设置口令。让它长且随机(稍后详述)。
- 可选提供密码提示。把提示当作攻击者会看到的东西;不要放任何缩小搜索空间的内容。
- 点击 设置磁盘。首次备份立即开始。
转换现有未加密磁盘
如果已有未加密 Time Machine 目的地且想加加密,最干净路径是:
- 添加启用加密的第二个目的地。
- 等待新目的地完成完整初始备份。
- 用测试恢复验证它。
- 移除旧的未加密目的地。
也可以试试 APFS 卷上的就地转换技巧:在磁盘工具中选择卷并选加密。macOS 在后台加密,Time Machine 继续写入。这在多数较新 macOS 版本上有效,但对 Time Machine 目的地未正式记录;视为尽力而为。
选择口令
口令是加密备份设置中最重要的单一选择。加密本身(AES-XTS-128)没有已知的实用攻击;现实的突破是暴力破解口令。所以选一个抵抗暴力的。
目标:
- 长度:至少 16 字符。20+ 更好。数学是指数级的;每多一个字符大致让攻击者的工作翻倍。
- 来源:由密码管理器生成,不是你选的。人选的密码聚集在可预测的模式中,熵远比看起来少。
- 存储:在密码管理器里,加上物理保险柜(或你信任的密封信封)里的打印副本。Mac 上的钥匙串方便但不是密码本身的长期存储介质。
- 提示:谨慎使用或完全跳过。说"与我的电子邮件密码相同"的提示让一切归零。
如果你发现自己在记住口令,那是太短的迹象。加密密钥的全部意义是人类不应在记忆环中。
macOS 在哪里保存密码
设置后,加密密码保存在本地钥匙串中,让后续备份自动发生而无需提示。具体:
- 对配置为"无人值守"使用的备份,条目存在 系统 钥匙串(所以登录前可用)。
- 对登录时提示的备份,条目存在用户的 登录 钥匙串。
要检查或取出:
- 打开 应用程序 → 实用工具 → 钥匙串访问。
- 在搜索框中输入备份卷名(或"Time Machine"或 SMB 共享名)。
- 双击匹配的条目。
- 勾选 显示密码。macOS 会提示你的登录密码以授权。
如果你忘记加密密码但仍有一台成功备份的工作 Mac,这是你的后备。从钥匙串中取出并记下。
AES-XTS 实际做什么
Apple 用于 Time Machine 加密卷的加密算法是 AES-XTS-128(基于 XEX 的密文窃取调整密码本模式)。缩写隐藏了一个相当优雅的想法:是 AES,但按扇区应用,调整值从扇区索引派生,让磁盘不同位置的两个相同扇区加密为不同密文。
为什么具体是 XTS,而不是你可能从网络协议中认识的 CBC 或 GCM?
- 无需按扇区 IV。扇区索引充当调整值,存储成本为零。CBC 需要每扇区存 IV,吃空间。
- 可并行化。每个扇区独立加密,读写可以全盘速度任意顺序进行。
- 有界延展性。翻转密文中位的攻击者只能在单个块内损坏,不会传播。结合文件系统完整性检查,让静默篡改非常困难。
- 无认证。XTS 不提供 MAC 认证,但这对存储是有意的;macOS 在文件系统级(APFS 校验和)和卷头级认证。对静止数据机密性,XTS 是正确选择,是各处全盘加密的事实标准。
实际上:加密 Time Machine 卷上的每个 4 KB 扇区用基于扇区索引的每扇区调整值的 XTS 模式 AES-128 加密。卷密钥(实际 AES 密钥)通过有盐和高迭代计数的密钥派生函数从口令派生,然后用于派生扇区密钥。没有口令,这些派生步骤都不可逆。
什么被加密 vs 什么不被加密
加密 sparsebundle 内:
- 已加密:文件内容、文件名、目录结构、文件元数据(时间戳、权限、扩展属性、ACL)。
- 已加密:文件系统本身(卷内的 APFS 或 HFS+ 结构)。
在 sparsebundle 之外,在目的地上:
- 未加密:sparsebundle 包装文件夹名(通常
YourMac.sparsebundle)。 - 未加密:sparsebundle 大小和 band 文件数量。
- 未加密:这是 Time Machine 备份的事实(结构可识别)。
对多数威胁模型,包装级元数据泄漏无关紧要。如果对你的威胁模型重要(你不想让目的地操作员知道你在存备份),用 VPN 隧道包装 SMB 连接并用不明显的 sparsebundle 名。
从遗忘的口令恢复
残酷真相:没有口令就没有恢复。卷密钥通过单向函数从口令派生。Apple 没有托管、没有 FileVault 那样的恢复密钥、没有支持后门、没有云提供商可帮的方式。加密的工作方式是没有密钥就在数学上不可逆,且这个属性对合法用户没有例外。
你 可以 尝试:
- 检查曾经备份到此目的地的每台 Mac 的钥匙串。密码本地缓存;如果任何工作机器还有条目,通过钥匙串访问取出。
- 检查你的密码管理器历史。如果你用过 1Password、Bitwarden 等,即使不记得设置过条目可能仍存在。
- 检查任何打印记录。强设置会打印口令并物理存储。
- 如果密码基于你部分记得的模式,可以使用
hdiutil在脚本中针对 sparsebundle 尝试有针对性的暴力破解。这只在搜索空间小时有效(你记得"是 12 字符且以 X 开头")。对真正随机的口令这是无望的。
如果这些都不行,数据没了。擦除目的地,用这次妥善存储的口令设置新的加密备份,把损失当作改进密钥管理的强制函数。
之后更改口令
对基于 APFS 的加密 Time Machine 目的地:
- 用当前口令挂载加密卷。
- 打开 磁盘工具。
- 在侧边栏选择加密 Time Machine 卷。
- 从菜单:文件 → 更改密码。输入当前口令和新口令。
或从终端,对 APFS 加密卷:
diskutil apfs changePassphrase /dev/diskXsY -user disk (用 diskutil list 显示的设备标识符替换 diskXsY。)
对使用 CoreStorage 加密的 HFS+ Time Machine 备份,UI 中不支持就地口令更改;实际路径是用新口令开始新加密备份并退役旧的。对网络 sparsebundle,行为因 macOS 版本而异;最安全、最可预测的方法仍是新备份方法。
任何口令更改后,立即更新密码管理器中的条目和任何打印副本。过时的密码记录比没记录更糟。
网络上的加密备份:堆叠层
当你的加密 Time Machine 目的地是网络共享(NAS 或云),两个加密层堆叠:
- Time Machine 加密(静止 AES-XTS):由你的 Mac 在任何数据到达网络前应用。目的地仅存储密文。
- SMB3 加密(传输中 AES-128-GCM):应用于你的 Mac 和服务器之间的所有 SMB 流量。即使已经加密的 Time Machine 块也在另一加密隧道内传输。
结果是从目的地操作员角度真正的零知识:他们持有他们无法解密的密文,甚至无法观察明文落地,因为他们只通过线路接收密文。这是 Capsule Backup 使用的模型,也是云端 Time Machine 能可信地声称端到端加密的原因。协议级细节见 SMB3 详解;更宏观的安全背景见 我们的安全页面。
常见陷阱
不输口令就挂载 sparsebundle
如果不输口令在不同 Mac 上挂载 sparsebundle,你会看到包装但不见内容。里面的加密卷拒绝挂载,磁盘工具显示为"未挂载"。修复是在应出现的提示中输入口令;若无提示,直接双击 sparsebundle 文件。
使用登录密码作为 Time Machine 密码
方便。灾难性。一次泄漏同时破坏你的实时系统和备份。使用密码管理器生成的不同口令。
在用户间共享备份盘
Time Machine 加密按口令而非按用户加密。如果两个人通过共享口令共享单一加密备份目的地,他们各自完全访问内部所有数据。对不同信任边界使用不同目的地(或不同 sparsebundle)。
过于信息化的密码提示
"与工作邮箱相同"或"猫的生日"撤销了选择强口令的工作。提示对任何尝试挂载卷的人可见。把它当作攻击者会读到。
不测试恢复
加密提高了失败恢复的成本:无法解密的备份是死重。每季度测试恢复路径。在不同 Mac 上挂载加密卷,输入口令,恢复一个随机文件。如果测试失败,现在发现而非真正紧急时。我们的 恢复指南 涵盖完整流程。
跨备份目的地重用口令
如果有多个 Time Machine 目的地(本地 USB、云、第二 NAS),每个用不同口令。一个泄漏后不会破坏其他的。边际痛苦是每目的地一个密码管理器条目。
最佳实践清单
打印这个。贴在显示器旁。
- 每个 Time Machine 目的地都启用加密,无例外。
- 口令由密码管理器生成,16+ 字符,完全随机。
- 口令存在密码管理器和物理打印副本中。
- 每个目的地不同口令。
- 与 FileVault 密码、登录密码和 SMB 共享密码都不同。
- 提示要么跳过,要么措辞为告诉你攻击者不会已知的内容。
- 在不同 Mac 上每季度恢复测试确认口令工作。
- 主 Mac 上确认钥匙串条目,让日常备份不提示。
- 对网络目的地,确认 SMB3 加密(验证读 SMB3 详解)。
- 对云端目的地,将目的地理解为零知识:提供商只持有密文。
将一切汇聚
加密 Time Machine 是计算中正确答案也是简单答案的稀有案例:设置时勾选一个框,妥善存储口令,你就拥有了一份抵抗几乎所有现实攻击者的备份。现代硬件上成本本质为零。好处是计算生涯最糟的一天(盘故障、盗窃、勒索软件)不会同时变成第二糟的一天。
如果今天在设置全新 Time Machine 目的地,从一开始就加密。如果你现在的备份未加密,把迁移安排在本周。从"无加密备份"到"加密备份,口令妥善存储,恢复已测试"的路径约一个晚上的工作。从这里开始,或如需云端目的地直接跳到 定价页。
常见问题
如果忘记了 Time Machine 密码,还有办法恢复数据吗?
如果密码保存在工作中的 Mac 钥匙串里,可以:打开钥匙串访问,搜索备份卷名,显示密码。如果不在任何你能访问的钥匙串里,答案是否。没有 Apple 后门、没有恢复密钥托管、没有支持变通。加密使用通过单向函数从密码派生的密钥;没有密码无法重新计算卷密钥。这是特性,不是 bug,但意味着你必须从第一天起把密码存在持久的地方。
应该使用相同的 FileVault 和 Time Machine 密码吗?
不要。使用不同密码。重用同一口令意味着一次泄露同时破坏 Mac 上的静止保护和备份上的静止保护,击败分层防御。使用密码管理器生成两个独立的高熵口令并都存好。轻微不便换来有意义的安全增益。
加密 Time Machine 在网络共享上能工作吗?
可以,且推荐用于任何网络或云端备份。macOS 在网络目的地创建加密 sparsebundle,写入前用 AES-XTS 加密数据,密钥存在本地钥匙串。当备份经过 SMB3 时还得到传输中加密,意味着网络共享主机只看到 Time Machine 的密文。这是 Capsule Backup 云端 Time Machine 目的地使用的模型。
如何判断 Time Machine 备份是否真的加密?
三个快速检查。第一,在系统设置 → 通用 → Time Machine 中点击备份目的地;详情应显示已加密:是。第二,在磁盘工具中选择备份卷;格式应读 Mac OS Extended(日志式,加密)或 APFS(加密)。第三,弹出备份,插到另一台 Mac,试着挂载 sparsebundle:若提示密码则已加密。若直接挂载,则未加密。
macOS 允许在不擦除备份的情况下更改 Time Machine 加密密码吗?
对基于 APFS 的加密 Time Machine 目的地,可以,通过磁盘工具。用当前密码挂载加密卷,在磁盘工具中选择它,然后文件 → 更改密码(或右键 → 更改密码)。对于使用 CoreStorage 加密的旧 HFS+ Time Machine 备份,答案通常是否,除非擦除并重新开始。对网络 sparsebundle,最安全的方法是用新密码在不同目的地开始一份全新加密备份,验证它,然后在不再需要其历史时退役旧的。
Capsule Backup 与 Apple Inc. 无任何关联,亦未获得其背书。Time Machine、FileVault、macOS、磁盘工具和钥匙串均为 Apple Inc. 的商标。