在 iCloud 备份期间哪些密钥会传输到 Apple?

信息安全 IOS 备份
2021-09-09 14:50:40

iOS 数据保护的实施和 iTunes 备份的实施都得到了相当充分的记录,Apple提供了高水平的文档,第三方提供了更详细的文档

但是,我想知道 iCloud 备份的实施细节。Apple 的文件仅在iCloud 备份密钥包的一段中非常简短地提及了此事

根据该信息,与本地 iTunes 备份不同的是,从设备中读取的数据仍处于加密状态(具有保护等级的文件除外NSFileProtectionNone,其等级密钥随时可用)。另一方面,即使用户没有提供原始的 Apple ID 凭据或最初创建它的手机,Apple 显然也能够解密 iCloud 备份,从而通过(或失败?)泥坑测试

这似乎意味着在备份过程中的某个时刻,实际的类密钥会传输给 Apple(否则,在设备锁定时,iCloud 备份无法工作 - 某些文件受到类密钥的保护,即仅在屏幕解锁时可用)。(对于本地备份,使用托管密钥包中包含的密钥在设备上解密文件,因此不会将任何长期密钥暴露给执行备份的计算机。)

虽然众所周知,Apple 可以完全访问存储在其服务器上的 iCloud 备份,但这意味着即使只启用一次 iCloud 备份,一些原本永远不会离开 iOS 设备的加密密钥也会被传输并存储到 iCloud。

我想知道一旦对手获得了 iCloud 备份的访问权限,他们会使用一些第三方软件将所有内容下载到计算机上来做什么:

看起来他们不仅能够检查备份本身的内容,而且还获得足够的信息来解密设备 NAND 中的所有内容,如果他们能够物理获取它(除了 Apple ID 凭据),因为类密钥包含在下载的备份文件中。

任何人都可以分享一些有关 iCloud 备份过程实际工作原理的知识,以及上述情况是否合理?

1个回答

Apple 发布了比您引用的安全指南更新的安全指南其中包含非迁移密钥列表,该类受保护的钥匙串项目。隐私一词在 2012 年指南中出现过一次。2016 年新增了 21 条其他参考资料。这种性质的查询很常见,尤其是当 iOS 用户持有医疗、财务、知识产权和其他机密信息时。

正如您所推断的,除非在客户端上保存秘密并用于在进入备份过程之前加密数据,否则无法反序列化钥匙串并提供内部 Apple 攻击者的隐私。没有提到任何允许 iOS 用户安装证书或设置 Apple 无法访问的备份密码的机制。

如果您希望拥有高度安全的隐私,则需要在用户界面级别进行客户端加密。目前尚不清楚应用程序是否可以通过这种隐私设备进入 App Store。此类代码可能会被 Apple 视为恶意软件或病毒的潜在来源。(请参阅新指南的安全承诺部分。)

尽管可以找到关于您的主题的各种评论,但没有来自 Apple 开发或安全团队的评论,因为服务器端信息肯定被视为 Apple 公司的机密信息。客户端应用程序的 API 是黑盒的,核心服务透明度低,核心备份 API不够精细,无法提供提示。

您可以在 API 文档中阅读有关 NSFileProtectionNone 类和相关类的更多信息,但没有提供序列图或描述。我无法找到包含任何细节的序列图或动作图。我们只知道传输是通过 TLS 进行的

数据包嗅探器会产生详细信息,但上面的第二段将保留操作细节。