iCloud 高级数据保护
iCloud 高级数据保护是提供 Apple 最高级别云端数据安全性的可选设置。当用户打开“高级数据保护”后,只有其受信任的设备才能访问大部分 iCloud 数据的加密密钥,因此这些数据会受到端对端加密保护。对于打开“高级数据保护”的用户,采用端对端加密进行保护的数据总类别会由 14 个上升到 23 个,包括 iCloud 云备份、“照片”、“备忘录”等。
【注】此功能可能并非在所有国家或地区都可用。
“高级数据保护”在概念上很容易理解:在设备上生成且随后上传到 Apple 数据中心的认证后可用 iCloud 硬件安全模块 (HSM) 的所有 CloudKit 服务密钥会从这些 HSM 中删除,并且会完全保存在该账户的 iCloud 钥匙串保护域中。其处理方式和现有的端对端加密服务密钥一样,这意味着 Apple 不可再读取或访问这些密钥。
“高级数据保护”还会自动保护第三方开发者选择标记为加密的 CloudKit 字段以及所有 CloudKit 资源。
启用“高级数据保护”
当用户打开“高级数据保护”时,其受信任设备会执行以下两项操作:首先,该设备会向用户参与端对端加密的其他设备传达用户打开“高级数据保护”的意图。具体是通过将设备本机密钥签名的新值写入其 iCloud 钥匙串设备元数据来实现。在该设备与用户的其他设备同步期间,Apple 服务器无法移除或修改此证明。
之后,该设备会发起将认证后可用服务密钥从 Apple 数据中心移除的操作。因为受 iCloud HSM 保护,这些密钥会立即永久删除且不可恢复。删除密钥后,Apple 不可再访问受用户服务密钥保护的任何数据。此时设备会开始异步密钥轮换操作,此操作会为之前密钥提供给 Apple 服务器的每项服务创建新的服务密钥。如果密钥轮换由于网络中断或任何其他错误而失败,设备会再次尝试密钥轮换直至成功。
服务密钥轮换成功后,写入服务的新数据便不能通过旧服务密钥解密。该数据受到仅由用户受信任设备控制的新密钥保护,Apple 绝对无法访问。
“高级数据保护”和 iCloud.com 网页访问
用户首次打开“高级数据保护”时,在 iCloud.com 上通过网页访问其数据会自动关闭。这是因为 iCloud 网页服务器不可再访问解密并显示用户数据所需的密钥。用户可以选择重新打开网页访问权限,并使用参与的受信任设备在网页上访问加密的 iCloud 数据。
打开网页访问权限后,在每次访问 iCloud.com 时,用户必须在其中一台受信任设备上授权网页登录。此授权“赋予”设备网页访问权限。在接下来的一小时,此设备会接受来自特定 Apple 服务器的请求以上传单个服务密钥,但仅限于通常可在 iCloud.com 上访问的服务列表所对应的密钥。换言之,即使用户授权网页登录,服务器请求也无法诱使用户设备上传不可在 iCloud.com 上查看的数据(例如“健康”数据或 iCloud 钥匙串中的密码)的服务密钥。Apple 服务器仅会请求解密用户在网页上请求访问的特定数据所需的服务密钥。每次上传服务密钥时,该密钥会使用与用户授权的网页会话绑定的临时密钥加密,且用户设备上会出现一则通知,显示哪项 iCloud 服务的数据正临时可供 Apple 服务器访问。
保留用户的选择
“高级数据保护”和 iCloud.com 网页访问设置仅可由用户修改。这类值储存在用户的 iCloud 钥匙串设备元数据中,且只能从用户其中一台受信任设备上更改。Apple 服务器无法代表用户修改这些设置,也不能将这些设置回滚到之前的配置。
共享和协作的安全含义
大多数情况下,当用户共享内容与他人进行协作(例如,通过共享备忘录、共享提醒事项、iCloud 云盘中的共享文件夹或 iCloud 共享照片图库)且所有用户均已打开“高级数据保护”时,Apple 服务器仅会用于建立共享,但无法访问共享数据的加密密钥。共享内容仍采用端对端加密且只能在参与者的受信任设备上访问。对于每次共享操作,Apple 会采用标准数据保护来储存标题和示意缩略图以向接收用户显示预览。
启用协作时选择“任何拥有链接的用户”这一选项会采用标准数据保护来使内容可供 Apple 服务器访问,因为服务器需要能够为打开 URL 的任何用户提供访问权限。
iWork 协作和“照片”中的“共享相簿”功能不支持“高级数据保护”。当用户协作处理 iWork 文稿或者打开 iCloud 云盘中共享文件夹内的 iWork 文稿时,文稿的加密密钥会安全地上传到 Apple 数据中心的 iWork 服务器。这是因为在 iWork 中实时协作需要服务器端处理来协调参与者之间的文稿更改。添加到“共享相簿”的照片会采用标准数据保护进行储存,因为该功能允许在网上公开共享相簿。
停用“高级数据保护”
用户可以随时关闭“高级数据保护”。如果用户决定关闭,将出现以下情况:
1.用户设备首先会在 iCloud 钥匙串参与元数据中记录其新选择,且此设置会在用户的所有设备间安全同步。
2.用户设备会将所有认证后可用服务的服务密钥安全地上传到 Apple 数据中心的 iCloud HSM,但采用标准数据保护的端对端加密服务(例如 iCloud 钥匙串和“健康”)的密钥绝不会上传。
设备会同时上传在“高级数据保护”打开前生成的原始服务密钥和在用户打开该功能后生成的新服务密钥。这样会让这些服务中的所有数据在认证后可供访问,并且会将账户恢复为采用标准数据保护,以便 Apple 可在用户无法访问其账户时重新协助其恢复大部分数据。
“高级数据保护”未涵盖的 iCloud 数据
由于需要与全球电子邮件、通信录和日历系统进行互操作,iCloud 邮件、通讯录和日历未采用端对端加密。
即使打开“高级数据保护”,iCloud 也会储存部分不受用户特定 CloudKit 服务密钥保护的数据。在容器的模式中,CloudKit 记录字段必须明确声明为“加密”才能受到保护,而读取和写入加密字段需要使用专门的 API。文件或对象的修改日期和时间用于对用户的信息进行排序,而文件和照片数据的校验和则用于帮助 Apple 进行用户 iCloud 和设备储存空间的数据去重和优化,所有操作均不可访问文件和照片本身。有关特定数据类别所使用的加密方法的详细信息,请参阅 Apple 支持文章:iCloud 数据安全概览。
在推出 iCloud 服务时,其最初的设计决策之一便是使用校验和来进行数据去重,这项广为人知的技术称为收敛加密。此元数据会始终加密,但加密密钥由 Apple 采用标准数据保护进行储存。为继续提升对所有用户的数据安全保护,Apple 致力于确保在打开“高级数据保护”时,为包括此类元数据在内的更多数据提供端对端加密保护。
“高级数据保护”要求
打开 iCloud 高级数据保护的要求如下:
用户账户必须支持端对端加密。端对端加密需要用户的 Apple ID 采用双重认证且在受信任的设备上设置密码。有关更多信息,请参阅 Apple 支持文章:Apple ID 的双重认证。
用户通过其 Apple ID 登录的设备必须更新至 iOS 16.2、iPadOS 16.2、macOS 13.1、Apple tvOS 16.2、watchOS 9.2 或更高版本和最新的 Windows 版 iCloud。此要求可防止之前版本的 iOS、iPadOS、macOS、Apple tvOS 或 watchOS 将新创建的服务密钥重新上传到认证后可用 HSM,从而错误地尝试修复账户状态。
用户必须设置至少一种备用恢复方式(即设置一位或多位恢复联系人或者一个恢复密钥),以便在无法访问账户时,通过其中一种方式来恢复其 iCloud 数据。
如果无法使用相关恢复方式,例如恢复联系人的信息过期或者用户忘记了这些信息,Apple 将无法协助恢复用户的端对端加密 iCloud 数据。
只有 Apple ID 支持打开 iCloud 高级数据保护。管理式 Apple ID 和儿童账户(因国家或地区而异)不支持此功能。