苹果可以遵守FBI法院命令 - Trail of Bits博客
Dan Guido
2016年2月17日
apple, cryptography, policy
今天早些时候,一名联邦法官命令苹果遵守FBI的技术协助请求,以恢复圣贝纳迪诺枪手iPhone 5C的数据。此后,许多人争论FBI的这些请求在技术上是否可行,考虑到iOS设备对强加密的支持。基于我对请求的初步阅读和对iOS平台的了解,我认为FBI的所有请求在技术上是可行的。
FBI的请求
在枪击事件后的搜查中,FBI发现了一名袭击者的iPhone。该iPhone是袭击者工作的圣贝纳迪诺县公共卫生部的财产,FBI已获得搜查许可。然而,FBI至今未能猜出解锁密码。在iOS设备中,几乎所有重要文件都使用手机密码和制造时嵌入设备的硬件密钥组合进行加密。如果FBI无法猜出手机密码,他们就无法恢复手机中的任何消息或照片。
猜解iPhone密码存在多个障碍:
- iOS在输入过多错误PIN后可能会完全擦除用户数据
- PIN必须通过物理设备手动输入,一次一个
- iOS在每次错误PIN输入后会引入延迟
因此,FBI通过法院命令向苹果提出了技术协助请求。正如人们可能猜测的那样,他们的请求针对上述每个痛点。在他们的请求中,他们要求以下内容:
- [苹果]将绕过或禁用自动擦除功能,无论是否已启用;
- [苹果]将使FBI能够通过物理设备端口、蓝牙、Wi-Fi或目标设备上可用的其他协议以电子方式向目标设备提交密码进行测试;
- [苹果]将确保当FBI向目标设备提交密码时,设备上运行的软件不会在密码尝试之间故意引入任何超出苹果硬件所导致的额外延迟。
简单来说,FBI希望确保能够进行无限次PIN猜测,能够以硬件允许的最快速度进行猜测,并且不必让实习生弯腰在手机上一个个输入PIN码长达20年——他们希望从笔记本电脑或其他外设等外部设备猜解密码。
作为补救措施,FBI要求苹果代表他们执行以下操作:
[提供]FBI一个签名的iPhone软件文件、恢复包或其他软件映像文件(“SIF”),可以加载到目标设备上。SIF将从随机存取存储器(“RAM”)加载和运行,不会修改实际手机上的iOS、设备闪存中的用户数据分区或系统分区。SIF将由苹果用手机的唯一标识符编码,以便SIF仅加载并在目标设备上执行。SIF将通过设备固件升级(“DFU”)模式、恢复模式或FBI可用的其他适用模式加载。一旦在目标设备上激活,SIF将完成第2段中指定的三个功能。SIF将在政府设施或苹果设施加载到目标设备上;如果是后者,苹果应向政府提供通过计算机对目标设备的远程访问,允许政府进行密码恢复分析。
再次简单来说,FBI希望苹果创建一个特殊版本的iOS,仅适用于他们恢复的那部iPhone。这个定制版本的iOS(咳咳FBiOS)将忽略密码输入延迟,在任何数量的错误尝试后不会擦除设备,并允许FBI连接外部设备以方便猜解密码。FBI将把恢复的iPhone发送给苹果,以便这个定制版本的iOS永远不会物理离开苹果园区。
进入安全飞地
即使有定制版本的iOS,FBI还有另一个障碍:安全飞地(SE)。安全飞地是iPhone内的一个独立计算机,负责代理对加密密钥的访问,用于数据保护API(即文件加密)、Apple Pay、钥匙串服务和我们的Tidas认证产品等服务。所有带有TouchID的设备(或任何带有A7或更新A系列处理器的设备)都有一个安全飞地。
当您在iOS设备上输入密码时,该密码与嵌入SE中的密钥“纠缠”以解锁手机。可以将其想象为用于发射核武器的双密钥系统:仅凭密码毫无用处。因此,您必须与SE合作才能破解加密。SE保持自己的错误密码尝试计数器,并在每次失败尝试后响应越来越慢,最多可达请求之间1小时。iOS对SE无能为力:它是一个独立于iOS操作系统的独立计算机,与您的手机共享相同的硬件外壳。
硬件密钥存储在A7及更新设备的安全飞地中
因此,即使是定制版本的iOS也无法影响安全飞地的行为。无论该功能是否在iOS中开启,它都会延迟密码尝试。私钥永远无法从安全飞地中读取,因此您唯一的选择就是遵守其规则。
密码延迟由A7及更新设备的安全飞地强制执行
苹果已竭尽全力确保安全飞地保持安全。许多消费者在因第三方更换或篡改TouchID传感器而出现“错误53”消息后熟悉了这些努力。iPhone通过设备级配对限制仅与单个TouchID传感器配合使用。此安全措施确保攻击者无法构建欺诈性TouchID传感器,通过暴力破解指纹认证来获取对安全飞地的访问权限。
有关安全飞地和密码的更多信息,请参阅iOS安全指南的第7页和第12页。
细节决定成败
“为什么不直接更新安全飞地的固件?”我最初推测存储在SE中的私人数据在更新时被擦除,但现在我认为这不是真的。苹果可以更新SE固件,它不需要手机密码,并且在更新时不会擦除用户数据。苹果可以通过SE的固件更新禁用密码延迟和自动擦除。毕竟,苹果已经更新了SE,增加了密码尝试之间的延迟,并且没有手机被擦除。
如果设备缺少安全飞地,则对iOS的单个固件更新就足以禁用密码延迟和自动擦除。如果设备确实包含安全飞地,则需要两个固件更新,一个针对iOS,一个针对安全飞地,才能禁用这些安全功能。无论哪种情况,最终结果都是相同的。修改后,设备能够以硬件支持的最快速度猜解密码。
恢复的iPhone是5C型号。iPhone 5C缺少TouchID,因此缺少安全飞地。安全飞地不是问题。几乎所有的密码保护都由iOS操作系统在软件中实现,并且可以通过单个固件更新替换。
最终结果
这些旧设备中仍然存在注意事项,定制版本的iOS不会立即产生对手机密码的访问权限。带有A6处理器的设备,如iPhone 5C,也包含一个永远无法读取的硬件密钥。该密钥还与手机密码“纠缠”以创建加密密钥。然而,没有什么能阻止iOS尽可能快地查询此硬件密钥。没有安全飞地充当看门人,这意味着iOS可以每80ms猜解一个密码。
无论有无安全飞地,密码只能每80ms猜解一次
尽管这80ms的限制并不理想,但与使用未修改软件每小时只能猜解一个密码相比,这是一个巨大的改进。消除密码延迟后,恢复4位数字PIN需要半小时,恢复6位数字PIN需要数小时,恢复6字符字母数字密码需要数年。尚未报道恢复的iPhone使用的是4位数字PIN还是更长、更复杂的字母数字密码。
欲速则不达
据称,苹果过去曾通过使用绕过密码锁定屏幕的自定义固件映像与执法部门合作。这个简单的UI黑客在早期版本的iOS中已经足够,因为大多数文件未加密。然而,自iOS 8以来,几乎所有应用程序都默认使用手机密码和硬件密钥的组合加密其数据。这一变化需要猜解密码,并直接导致了FBI的此技术协助请求。
我认为苹果在这种情况下遵守FBI的所有请求在技术上是可行的。在iPhone 5C上,密码延迟和设备擦除在软件中实现,苹果可以添加对外围设备的支持以方便PIN码输入。为了限制滥用风险,苹果可以将定制版本的iOS锁定为仅适用于特定的恢复iPhone,并自行执行所有恢复,而不与FBI共享固件映像。
有关更多信息,请收听我与Risky Business播客的访谈。
更新1:苹果已对法院命令作出公开回应。
更新2:安全飞地的软件更新不太可能擦除用户数据。请参阅安全飞地部分以获取更多详细信息。
更新3:重新构架了“细节决定成败”部分,并指出苹果同样可以通过软件更新破坏iPhone 5C及后来包含安全飞地的设备的安全措施。
如果您喜欢这篇文章,请分享:
Twitter LinkedIn GitHub Mastodon Hacker News