安全观察 苹果公开了iOS安全细节

苹果公开了iOS安全细节

Anonim

您现在已经听说,Apple在最近的Black Hat会议上宣布了一个新的漏洞赏金计划。 苹果公司安全工程和体系结构负责人Ivan Krstic亲自宣布了这一消息。 但这只是50分钟演示文稿的最后10分钟。 在最初的40分钟内,Krstic前所未有地深入研究了iOS安全性的三个组成部分。 所谓“深水”,是指

我的总体收获是对这些系统如何彻底保护用户数据(甚至来自Apple本身)感到敬畏。 我将尝试传达所讲的内容,而不会太过于技术性。

强化的WebKit JIT映射

抱歉,这就是所谓的。 JIT代表“及时”,它指的是及时为执行而编译Javascript代码的方式。 “这对于高性能JavaScript是必要的,” Krstic解释说。 “但是代码签名策略必须放宽。JIT编译器会发出未签名的新代码。管理“随处写入”攻击的攻击者可以启用任意代码。”

只需一点背景知识,就可以用读取,写入和执行权限来标记内存区域。 早在很久以前就引入了这种区别,从而消除了在专用于数据的区域中执行代码的攻击。 简而言之,Apple的解决方案涉及一种将已编译的JavaScript放入 仅 允许执行的内存区域的技术。 进程无法读取其中的内容或写入新数据。 不仅限于此,但针对iOS 10的此更改消除了所有可能的攻击。

安全飞地处理器

Apple设备上的应用程序在称为应用程序处理器(AP)的CPU中运行。 现代的Apple设备具有一个完全独立的CPU,称为Secure Enclave Processor,即SEP。 Krstic说:“ SEP由用户密码提供的强大的密码主密钥保护。” “不可能进行离线攻击。即使AP遭到入侵,它也绕开了AP的攻击面。它仲裁所有用户访问并管理其自己的加密内存。在第一次初始化时,它使用真正的随机数生成器来创建唯一的处理器中的设备密钥。它不能导出,并且存储在不可变的安全ROM中。”

Krstic继续说明该设备如何使用四种具有不同特征的内部安全密钥。 类型A仅在设备解锁时存在。 类型B是始终存在的公共密钥,加上在设备解锁时存在的私有密钥。 设备启动后首次解锁时,类型C就存在。 D型始终可用。

该演示继续介绍了许多非常复杂的图表。 一个人完成了引导和解锁设备的过程,展示了如何创建和存储每种密钥类型。 设备上的每个文件都有其自己的唯一加密密钥。 另一幅图显示了复杂的舞蹈,该舞蹈允许SEP对文件进行身份验证和解密,同时将必要的安全密钥保留在其内部。 另一个解释了复杂的过程,使您可以选择“稍后更新”。 另一个过程完成了允许通过触摸ID进行解锁而无需以任何方式保持主键可见的过程。

本部分演讲的主要结论是,Apple确实非常认真地考虑了在Secure Enclave处理器内部完全管理加密所需的内容,而又不会给用户带来任何麻烦。 如果您想亲自查看这些图表,请查看Krstic的完整演示。

同步机密

您可以在多个Apple设备之间同步数据,这非常方便。 HomeKit可让您管理IoT设备,当Apple Watch在附近时,自动解锁可使Mac解锁,照片通过iCloud同步,等等。 但是从安全角度来看,同步是个问题。

克里斯蒂克说:“传统方法不好。” “一种方法是使用户在所有设备上输入一个强大的'袜子抽屉密钥';丢失该密钥,则将丢失对机密的访问。另一种方法是将数据包装在派生密钥中,从而使数据暴露给用户。帐户提供商。”

Krstic继续说:“我们在这里有许多目标。” “所有设备都必须有机密信息,并受强大的加密技术保护。即使丢失所有已连接的设备,用户也可以恢复机密信息。数据不会暴露给Apple,也不会遭受暴力攻击。”

基本iCloud钥匙串系统中的身份验证很简单。 每个设备都有自己的密钥对,并且为了将新设备添加到同步圈,必须从现有设备之一中批准它。 苹果的后端不参与。 它没有特权。 如果用户无法访问所有设备,则可以使用iCloud安全密钥和iCloud密码重新获得访问权限。

Krstic详细解释了Apple如何管理该系统,而又丝毫没有让任何人(包括Apple的任何人)都可以从后端访问数据的可能性。 该系统涉及所谓的管理卡,是在新一批加密服务器投入使用时创建的。 Krstic表示:“在车队投入使用时,会在安全的仪式上创建管理卡,并将其存储在Apple的三个不同组织的单独保管箱中,并放入防篡改的证据袋中。”

这种情况仅持续到舰队实际投入运营为止。 当时,Krstic说:“我们通过一种新颖的单向散列函数将管理卡置入。” 他从讲台下面拉出一个明确使用的搅拌器,然后继续说道:“是的,穿过搅拌器。” 加密服务器机群一旦激活,就无法以任何方式更新或修改,甚至Apple也无法更新或修改,因为管理卡已被破坏。 如果碰巧确实需要更新,则Apple必须启动新机队并发送软件更新,以使用户设备连接到新机队。

“为什么我们要这样做,”克里斯蒂克说。 “为什么我们要采取极其不同寻常的最后一步?我们竭尽全力设计安全系统来提供信任。当数据离开设备时,风险甚至更高。我们需要保持这种信任。如果我们继续拥有这些管理卡,有可能不正确。这就是我们认真对待用户数据的使命。”

被问到:“您是因为FBI要求提供信息吗?” Krstic回答:“我是一名工程师。我只能回答有关我今天为什么要提出的问题。” 好,可以。 但是我认为提问者是对的。 建立一个甚至无法修改自己的独立系统是防止他人进行不必要更改的一种很好的方法。

我希望我能在Krstic的谈话中传达出细节,而又不会让您的眼睛呆呆。 从the不休的人群分散来看,房间里真正的字节级安全怪胎给人留下了深刻的印象。

苹果公开了iOS安全细节