转载

盘古团队评论FBI成功破解iPhone:侥幸拿下这一局

  最近闹的沸沸扬扬的 FBI vs Apple 的事件,期间经历了 FBI 在法庭上要求苹果开发通用的破解锁屏密码的程序(并非媒体所传的后门), 苹果发布 iOS 9.3,FBI 要求查看 iOS 源代码到最后苹果威胁要在 iCloud 中用点对点加密代替现在的 Master Key 方案,最终该事件在前几天尘埃落定。据传言是在某个神秘选手的帮忙下,FBI 终于解开了那台 iPhone 5C 手机。

盘古团队评论FBI成功破解iPhone:侥幸拿下这一局

  最近的媒体传闻都是说苹果的锁屏密码多么难破解, 神秘选手技术多么厉害, 其实据我们分析, FBI 这一次只是运气好, 碰到的是一台 iPhone 5C, 如果这台设备是 iPhone 5S 的话, 那么很大可能还要通过法律手段。

  苹果的锁屏密码到底有多难破?为什么说这一次说 FBI 是侥幸的?对于我们普通用户来说又有什么影响?

  请看盘古实验室对苹果数据加密机制以及锁屏密码保护机制的技术分析。

  iOS 上哪些数据做了加密?

盘古团队评论FBI成功破解iPhone:侥幸拿下这一局

  首先 iOS 整个磁盘是全盘加密的,解密的 EMF Key (file-system master encryption key)保存在闪存中 1 号扇区的可安全擦除区域(擦除后无法恢复,并且支持远程擦除),该 key 对每台设备都是唯一,并且会在数据擦除时销毁;其次,在磁盘之上的文件系统的内容也是加密的, 在每个文件创建的时候会随机生成针对每个文件的 Per-File Key,通过这个 Per-File Key 对文件中的内容进行加密保护,并且苹果又为此设计了 Class Key 来对 Per-File Key 进行保护。

  苹果设计A-F 等各个不同的保护级别的 Class Key,每个级别分别对应了密钥生成和销毁的时机,该级别可以通过数据保护的 API 来指定。默认设备上的信息,通讯录,邮件等都指定了 iOS 数据保护功能,而常见的几个级别分别是:

  • 全面保护(Class A)

    数据保护最为严格的级别,系统解锁后才能够解锁解密的密钥,并且在锁定以后丢弃该密钥。

  • 未打开文件保护(Class B)

    数据保护较为严格的级别,通过密钥包中的 Class Key 进行协商生成公私钥,文件一但解锁后即使系统锁屏仍然可以访问,直到文件句柄被关闭。

  • 首次认证前保护(Class C)

    数据保护较为严格的级别,在系统启动时第一次输入密码时解锁解密的密钥,并且在系统关闭时丢弃密钥。

  • 无数据保护(Class D)

    没有指定数据保护,但这不意味着文件没有加密保护,对于没有设置数据保护的其他所有文件,iOS 中用一个 DKey (Device Key)进行保护。该 Key 设备唯一,并且保存在闪存的可安全擦除区域。

  从上述机制我们可以看出苹果对 iOS 数据保护的整个设计框架是相当完善的,结合硬件并且通过多重保护机制来防止各种物理手段上对设备的数据破解。

  锁屏密码(Passcode)的作用

  假设把每个文件的加密看作为上了一道锁的话,那么对应的开锁的钥匙就存放在系统密钥包里面,而锁屏密码除了防止用户进入系统桌面之外,更重要的角色就是利用密码对系统密钥包进行额外的加密保护。很多人对锁屏密码理解的一个误区,就是锁屏密码只是物理手段上防止进入手机的一个保护,但实际上,用户在第一次设置锁屏密码的时候,锁屏密码会结合硬件加密引擎生成一个叫做 Passcode Key 的密钥,通过这个密钥对保存在密钥包中的各个钥匙(Class Key)进行加密保护。锁屏密码不会以其他加密的形式保存在设备上,用户在解锁的时候,会直接用输入的密码生成 Passcode Key 对密钥包中的 Class Key 解密,解密失败代表用户密码错误。

  从苹果的数据加密和锁屏密码的保护机制来看,直接拆除存储芯片并对其进行文件读写操作是不可能的。

  破解 Passcode Key 的手段

  Passcode Key 是用户输入的 passcode 结合系统硬件的加密引擎以及 PBKDF2(Password-Based Key Derivation Function)算法生成的。PBKDF2 的基本原理是通过一个伪随机函数,把明文和一个盐值及加密重复次数作为输入参数,然后重复进行运算,并最终产生密钥。重复运算的会使得暴力破解的成本变得很高,而硬件 key 及盐值的添加基本上断绝了通过“彩虹表”攻击的可能 。

  由于硬件加密引擎的 Key 无法提取,所以只能在目标的机器上运行暴力破解程序进行破解,假设用户的密码设置的足够复杂的话,那么破解的周期就会变得非常久。

  在 FBI 这个案例中,由于嫌犯可能开启了输错 10 次密码自动擦除设备的选项,一旦暴力猜测程序连续 10 次输入错误的密码,设备上的所有内容就会擦除掉。一旦触发数据擦除,苹果会首先对可安全擦除区域进行擦除,物理方式上即使能够恢复大部分加密数据,但是却无法恢复可安全擦除区域中的数据,因为大部分的解密密钥都保存在这个区域中,例如能够解开系统密钥包的二进制数据的 BAG1 Key。

  后续苹果为了封堵各种暴力猜测 Passcode 的方法,在 64 位设备的 Secure Enclave 中增加了定时器,针对尝试密码的错误次数,增加尝试的延时,即使断电重启也无法解决。

  历史上曾经出现过的破解方法

  • 早期的 A4 及更老的芯片(iPhone4 之前的设备包括 iPhone4) 存在 bootrom 漏洞,通过 bootrom 中的硬件漏洞获取设备的 shell 然后运行暴力破解程序。[A4 后面的芯片目前没有公开的 bootrom 漏洞]

  • iOS7 中存在利用外接键盘可以暴力破解密码,甚至停用的设备也可以破解的漏洞。[该漏洞已经在 iOS8 中修复]

  • iOS8 的早期几个版本中存在密码尝试失败立即断电并不会增加错误计数的漏洞。[该漏洞已经修复]

  FBI 是怎么破解这台手机的?

  FBI 要想要破解的这台手机是一台 iPhone 5C 并且运行着 iOS 9,从硬件的角度上来说这是一台 32 位的设备(没有 Secure Enclave),所以我们觉得相对可能的几个方案是(第三种是可能性最高的):

  • 通过未公开的 bootrom/iboot 漏洞来获得系统的权限,然后通过修补内核的方式去绕过软件的错误计数来进行暴力破解密码。

  • 使用未公开的暴力破解绕过错误计数的漏洞(类似曾经出现过的强制断电绕过的漏洞)

  • 事先通过物理方式先对手机上闪存的数据进行克隆,由于 32 位系统不支持在 Secure Enclave 做硬件的计时和计数,可以通过类似 USB 外接键盘进行暴力猜测,每当猜测到 9 次左右的时候,再通过物理方式用克隆的数据对手机进行数据恢复,这样就避免了数据被擦除的尴尬。

  • 通过摄像头追终嫌疑人的生活轨迹并且分析,比如摄像头刚好拍摄到嫌疑人在星巴克解锁手机,那么就可以通过图片分析的手段来判断用户输入的锁屏密码是什么。

  为什么说 FBI 是幸运的?

  如果这是一台 64 位的设备(拥有 Secure Enclave),第三方即使拥有 bootrom 级别的漏洞都不可能对设备进行暴力破解, 除非在找到 Secure Enclave 的漏洞才有可能对设备进行暴力破解, 目前来看这种可能性微乎其微。这种情况下也许走司法程序是个更容易的方法。

  那么苹果是否还有弱点?

  从设备上的保护力度来看,苹果做的这套保护架构在没有类似 bootrom 漏洞之类的大杀器几乎很难去破解,那么是否有弱点?答案是肯定有的。

  由于苹果在新的系统上引入了 Touch ID 来作为一个快捷输入 passcode 的方式,在设备已经输入过正确的解锁密码的情况下,并且设备解锁的时间在 48 小时之内,其实还是可以通过克隆指纹的方式对设备进行解锁。

  其次就是当用户启用了 iCloud 数据备份的情况下,苹果在备份加密数据的同时,还对密钥包使用非对称密钥加密的方式加密后保存在苹果的 iCloud 服务器上,并且苹果拥有 Master Key 进行解密。

  作为普通用户我应该怎么做?

  • 作为一个普通用户来说,其实不用担心太多。因为你的数据还没敏感到苹果会来审查,你更应该关心的是注册 Apple ID 的邮件服务商是否足够安全,Apple ID 的密码是否太简单,记得开启 Apple ID 两步认证哦。

  • 如果你自认是一个对数据保护有极高要求的用户,那么建议你不要打开 iCloud 数据备份,不要设置指纹,锁屏密码最好不要设置数字的密码。

正文到此结束
Loading...