整个故事很奇怪。由于有问题的 iPhone 没有防篡改设备,FBI 应该能够打开外壳,读取整个 Flash 芯片,然后自己进行详尽的搜索,甚至无需运行手机的固件。Apple 的更新应该完全没有效果。
(编辑:实际上它有点复杂;见下文。)
相反,假设上述描述中存在技术上的不可能性(这相当于声称 FBI 的无能程度至少与他们的预算一样大),并且苹果固件可以解决此案,那么这将很容易Apple 可以按照 FBI 的要求制作固件版本,进行详尽的搜索,但前提是必须检查硬件序列号是否与某个预期值完全匹配,即圣贝纳迪诺案中的确切手机。这样的固件将符合 FBI 的确切要求,而不会损害其他任何人的隐私。
FBI声称已经尝试解密手机一个月但失败了,这很奇怪。苹果拒绝通过仅限于一部手机的固件更新来帮助解密,这同样很奇怪。整件事似乎是一场关于隐私权和执法部门非司法窃听合法性的政治斗争。圣贝纳迪诺案只是一个借口,用来引起非技术选民的反射支持。苹果公司发现扮演白骑士的角色是权宜之计,他们现在不能在不疏远消费者基础的情况下退缩。
编辑: iPhone 中的安全系统是一个元素塔,在本文档中(简洁地)描述。iPhone 5C 运行在Apple A6芯片上,而 5S 和更新机型使用 A7。A6 有一个名为“UID”的板载防篡改设备;A7 有第二个称为“安全飞地”。由于 San Bernardino 外壳中的 iPhone 是 5C,因此我不会再谈论 Secure Enclave。
UID 包含一个设备唯一的内部密钥(我们称之为K u),其他任何人(包括 Apple)都不知道(无论是 UID 自己生成,还是外部生成然后注入到 UID 上处理链,是未知的;我在这里假设如果现实与后一种情况相匹配,那么苹果真的没有保留密钥)。UID 永远不会泄露该密钥,但它可以使用该密钥进行基于 AES 的计算。
iPhone 数据使用 AES 加密,使用从用户 PIN 和 UID 密钥组合派生的256位密钥 ( Kd )。尽管 Apple 并未详细说明该组合,但它表示它涉及密钥包装,这是用另一个密钥加密密钥的另一个名称。我们也知道用户可以更改他的 PIN,在这种情况下更改实际的数据加密密钥K d是不切实际的,因为这将涉及读取、解密、重新加密和重写千兆字节的用户数据。因此,一个合理的机制如下:
- 密钥K d已生成一次。
- 当手机关机时,存储的内容(在闪存中,在 UID 之外)是另一个密钥K z对K d的加密。
- K z本身就是K u对用户 PIN 的加密(包装)。
因此,解锁需要获得用户PIN,将其提交给UID,UID通过用K u加密PIN来返回K z。使用K z,手机的固件然后恢复和解密K d,并配置加密引擎以使用该密钥对用户数据的所有访问。
虽然实际方案的细节可能有所不同,但总体轮廓必须与该描述相匹配。重点是,虽然每次 PIN 尝试都必须涉及防篡改设备(UID),但它实际上并不验证 PIN。UID 不知道 PIN 是否正确。错误的 PIN 计数器、错误延迟和自动删除由固件在外部处理。必须如此,否则 Apple 允许通过固件更新执行中断是没有意义的。
当然,人们可以想象一种扩展的 UID,它会强制执行 PIN 验证和锁定策略,并且可以通过运行自己的可由 Apple 更新的固件来实现。这样的设备真的会让苹果的帮助变得至关重要。然而,这样的设备将被称为“安全飞地”,因为它就是这样,如果它被添加到 A7 CPU 中,正是因为它在 A6 中缺少,而缺少它就是一个漏洞。
那么暴力攻击意味着什么呢?这意味着必须为每个用户 PIN 尝试调用 UID。然而,那是 UID——而不是手机的固件。如果打开 iPhone 外壳,然后是 A6 CPU 分装,直接连接就可以访问设备 UID。这将涉及一些基于激光的精密钻孔和电子显微镜来查看你在做什么,所以这当然不容易——假设它会花费几千美元,因为这与所做的事情相同(通常!) 由克隆和转售卫星电视接入智能卡的人提供。连接后,外部系统可以为 UID 提交所有可能的用户 PIN 以将它们全部加密并提供相应的K z键(在我上面的术语中)。然后剩下的工作是使用 PC 和闪存存储的副本离线完成的。绝不会调用手机的固件。
FBI 目前要求的是流程自动化。他们不想用激光进行精密钻孔。他们希望能够在不打开外壳的情况下在 iPhone 端口中插入东西,以便由 iPhone 的 CPU 自己完成暴力破解,并且整个过程可以顺利完成。
因此,这实际上与圣贝纳迪诺案无关。FBI 不希望 Apple 一次性干预;他们要求的是一种可以在许多手机上重复使用的工具。苹果公司声称 FBI 要求的内容超出了作为情感借口的具体案例,这是正确的。
另一方面,Apple可以按照 FBI 的要求进行固件更新,但仅限于特定的 iPhone(例如通过 CPU 序列号识别)。并且该固件更新将特定于 5C,并且不适用于以后的型号。苹果公司生产一种新的固件,为所有型号的所有手机提供通用破解工具并非必然。但即使 Apple 遵守特定于单个 iPhone 的固件,也将建立法律先例,Apple 将很难拒绝来自 FBI 或与 Apple 有商业利益的其他国家/地区的其他请求(即他们都是)。
确保防止用户 PIN 破解的系统需要一个防篡改设备,该设备不仅可以强制执行 PIN 失败计数器和密钥擦除,而且该设备还应该运行不可升级的固件。Secure Enclave 有自己的固件,但可以升级(固件升级由 Apple 签名,Secure Enclave 硬件验证签名)。即使在 iPhone 6 上,Apple 也保留了解锁任意手机的能力。