iOS 8+ 中“锁定”时哪些数据未加密

信息安全 加密 应用安全 取证 IOS iPhone
2021-09-09 18:24:08

场景:
iPhone 5+ 和 iOS 8+ 启用了系统加密。电话已开机并已锁定。(用户自开机以来至少已验证(解锁手机)一次,然后重新锁定)。

在这种状态下,哪些数据/应用程序不受系统加密保护(或容易绕过)?
特别感兴趣的是本机和非本机应用程序中的数据,例如

  • 照片、视频和音频文件
  • 日历条目、SMS 和 Messenger 数据
  • 电子邮件和浏览历史

有关一些信息,请参阅上一篇文章。虽然这个问题很相似,但这个问题是关于 iPhone 5+ 的,范围更小、更具体。
注意:请提供您的回复的来源。

2个回答

默认情况下,大多数数据都使用 AfterFirstUnlock 类密钥进行保护,该密钥肯定会出现在设备上;但这不是你要问的。您想知道可以访问哪些数据,这是另一回事。为了访问数据,您要么必须让操作系统将其提供给您(通过查找锁屏绕过错误;并非闻所未闻),要么以某种方式从设备内存中泄露类密钥。最后一点很难。

多年来有许多漏洞可以在 iOS 设备上执行内核级代码,但几乎所有漏洞都需要解锁对设备的物理访问或重新启动,这会从内存中清除 AfterFirstUnlock 密钥。密钥未在 RAM 中加密,因此打开手机并直接访问 RAM 芯片可能会起作用,除了 iPhone 使用封装结构,并且 RAM 芯片必须与处理器物理分离首先——不破坏数据,所以芯片需要电源和/或一直被冻结。美国国家安全局或许能够做到这一点,但这需要一些非常专业的设备,而且他们只会得到一枪。

USB 接口提供了许多可能性,因为它将 IP 流量(是的,即 USB 上的 IP)传输到潜在易受攻击的应用程序。但是,在 iOS8 中,它会被锁定,直到您按下“信任这台计算机”。如果攻击者可以窃取从您已经信任的本地计算机上创建的托管密钥包,他们可以通过这种方式进行攻击,但他们仍然需要守护进程中的一个漏洞来执行代码,另一个来破坏沙箱,另一个提升到根目录,另一个用于修补内核。

越狱比这容易得多,因为他们可以假设用户会提供帮助。这意味着他们可以使用受信任的计算机,并且可以通过让用户点击主屏幕上的图标将文件放置漏洞转化为代码执行漏洞。

如果没有用户合作,您最好的选择可能是网络接口;您仍然需要将多个漏洞链接在一起,并且您必须窃取路由器的密码才能让手机自动连接到攻击者的网络,然后希望您没有设置永远在线的 VPN。

基本上,iPhone 非常安全。当然,这是程度的问题,但我仍然会将您锁定的手机放在除智能卡之外的几乎任何东西之上。

编辑:资料来源:主要是 Bedrún 和 Sigwald 的“iPhone 数据深度保护”,但我曾经为国防部从事 iOS 安全工作。这并不是说我们有专门的知识或任何东西(我希望国防部对苹果来说只是杯水车薪),但我确实花了足够的时间探索数据保护系统的深度!

编辑2:整个系统中最大的漏洞曾经是托管密钥包,它是在您插入计算机并点击“信任”时创建的。这包含解密手机数据所需的所有类密钥,因为 iTunes 需要能够备份手机。托管密钥包使用存储在手机上的随机令牌进行加密,因此它通常仅在传输回手机时才有用,但如果您可以利用某些东西让您从文件系统中读取该令牌,那么您将进入商业。也就是说,在 5S 和更高版本中,处理器带有一个“安全飞地”,它或多或少是内置在芯片中的智能卡,它有自己的密钥。托管密钥包的解密密钥现在以加密格式存储,只有安全元件可以解密它,

iOS 设备上有多层加密可用,我觉得最好先解释一下,然后再说明什么可以访问,什么不能访问。

全盘加密

对于 iOS 3,Apple 引入了全盘加密,当设备被锁定时,整个硬盘驱动器都会被加密。但是,此加密的密钥保存在设备中,因此如果您可以物理访问设备,则可以轻松绕过整个磁盘加密,因为您只需从外部驱动器启动它即可访问手机文件系统并检索密钥。

数据保护 API

从 iOS4 开始,Apple 提供了 DataProtection API 供开发人员用来加密他们的应用程序。它提供了与用户密码相关的另一层加密。它不是被保存在设备上,而是被保存在用户的头部,因此物理访问设备并从外部驱动器启动或越狱以访问密钥将不再有效。

开发人员有四个选项可以应用于整个应用程序或单个文件:

  • NSFileProtectionNone - 没有额外的保护
  • NSFileProtectionComplete - 每次手机锁定时文件都会被加密
  • NSFileProtectionCompleteUnlessOpen - 除非文件被用于后台进程,否则文件会被加密
  • NSFileProtectionCompleteUntilFirstUserAuthentication - 文件被加密,直到用户自启动后第一次解锁手机。

什么是安全的?

从 iOS8 开始,所有保存个人信息的原生苹果应用程序都使用NSFileProtectionCompleteUntilFirstUserAuthentication. 这意味着,如果手机关机或电池耗尽,将很难访问这些数据,而唯一公开的这样做的案例是今年登上头条新闻的联邦调查局案件。

至于 3rd 方应用程序,默认仍然是NSFileProtectionNone. 应用程序的开发人员可以使用上述四种方法之一来保护它。