当前位置:首页百事科技互联网+想赚苹果的钱?先来了解iOS的安全机制吧

想赚苹果的钱?先来了解iOS的安全机制吧

百事数码
2016-08-10 22:28:03 威锋网 0

最近苹果公司安全工程师伊万·克里斯迪克(Ivan Krstic)在黑帽大会上宣布启动漏洞奖励计划,苹果将会给任何在苹果公司软件中发现重大 bug 和安全漏洞的个人提供奖励。

根据研究人员所发现的漏洞和问题的不同,苹果公司最多会提供高达 20 万美元的奖励。如果是发现安全 boot 固件部件方面的问题,研究人员可以获得 20 万美元的奖励,但如果是小的漏洞,比如通过沙箱进程访问沙箱外用户数据的问题,最多只能得到 25000 美元的奖励。

虽然苹果已经说明了发现不同类型的漏洞所能获得的最高奖励金额,但是他们还是会通过以下几个因素来确定漏洞发现者最终应该获得多少奖励:漏洞报道的清晰程度;所发现的问题的新奇程度以及用户因此受影响的可能性;漏洞若要产生影响所需要的用户交互程度。苹果公司计划从今年 9 月份起正式启动他们的漏洞奖励计划。

看到这条消息的你是不是觉得看到了赚钱的希望,其实苹果的钱真的不好赚。另外如果你想赚苹果的钱,最好也了解一下 iOS 系统和设备的安全机制。

想赚苹果的钱?先来了解iOS的安全机制吧

iOS 10 内核不加密没问题

今年早些时候 iOS 10 测试版发布的时候,开发者发现苹果没有加密内核,用户可以完全访问系统内部资源。

按照之前苹果的传统,每一版本 iOS 都会加密内核,iOS 10 的确有些意外。根据 MIT Technology Review 的报道,苹果是故意向开发者和安全研究人员开放内核,让他们协助发现 iOS 的漏洞,以便苹果在后续进行修复。“这真是一个大胆的策略”,安全专家 Jonathan Zdziarski 这样说道。

没错 iOS 10 内核没有加密并不会对 iOS 的安全和用户数据造成任何影响,所以不怀好意的人也别想从这没有加密的内核上做文章,而且不加密之后 iOS 10 的运行速度更快。

内核管理系统的内存以及与外围设备通信,控制低水平服务、硬件和安全。它还带有所有必要的低水平设备驱动器以及硬件配置文件,但是不包括用户数据。

在 iOS 10 中以下几个部分是没有加密的:

-iBoot—引导加载程序,验证运行 iOS 内核

-内核缓存—缓存中不包含任何用户数据

-启动 logo—iOS 启动 logo 不再加密

其实上述变化是苹果对 iOS 10 性能进行优化做出的一部分努力,因为这三个部分已经没有必要加密,没有任何加密的价值,iOS 10 内核不加密不会对平台安全或者用户数据加密产生影响。

iOS 利用所谓的安全启动链来确保启动过程中的每一步都带有苹果加密签名的部件,通过保证引导装载器、内核、内核扩张和基带固件的完整性来建立信任链。这个安全启动链能够确保最低水平的软件不被篡改,让 iOS 只在获得认证的苹果设备上运行。

强化 WebKit JIT 映射

JIT 即 Just In Time,指的是 Javascript 代码即时编译,对于高性能 JavaScript 来说这是有必要的,但是对于苹果来说他们认为这种代码签名政策太过宽松。JIT 编译器会生成新的、未签名的代码。一名攻击者,如果他可以管理一个“write-anywhere”攻击,那么他就能够执行任意代码。

存储区可标记为读、写和执行权限,这种区分方式可以杜绝一些在数据专用区域执行代码的攻击。简单地说,苹果的解决方案是将编译 JavaScript 放入允许仅执行的存储区之中。任何进程都无法读取到这个区域中的数据或者在其中写入新数据。iOS 10 中的这种特定变化彻底打破了一些潜在攻击的可能性。

想赚苹果的钱?先来了解iOS的安全机制吧

Secure Enclave 处理器

从 A7 处理器起,苹果的处理器中都有一个 Secure Enclave 模块,而配备该模块的处理器也被称为 Secure Enclave Processor 或 SEP。该处理器有来自用户密码的主密钥保护。离线攻击基本不可能。它能够绕过应用处理器的攻击面,即使应用处理器已经被攻击。它判定所有用户的访问,管理自己的加密内存。第一次初始化时,它能利用一个随机数生成器在处理器内创建独一无二的设备密钥。密钥无法导出,而是存储在不可变的安全的 ROM 之中。

苹果设备会利用四种不同类型的内部安全密钥来保护数据安全,它们各有特点。第一种只有存在于设备解锁的时候;第二种是随时都有的公开密钥和设备解锁时存在的私钥;第三种是设备重启第一次解锁后存在密钥;第四种就是随时可用的密钥。

安全区域通过安全启动流程来确保其软件得到苹果公司的认证和签名。即使某一处理器核心被攻击,所有的“安全区域”也能够独立发挥功能。而每个“安全区域”都包含独特的标识符,无法从系统的其他部分访问,而苹果公司也没有这一信息。因此这将避免苹果公司或其他第三方获取其中存储的数据。

每个安全区域在制造过程中都分配了 UID(独立标识符),无法从系统的其他部分访问,而苹果公司也不知道这一信息。当设备启动时,根据 UID,一个暂时密钥将被创建,并被用于加密设备存储空间中‘安全区域’所占的部分。此外,由‘安全区域’保存在系统中的数据使用了这一密钥来加密。”

由 Touch ID 收集的指纹数据将被存储在安全区域中。这一数据将被用于信息匹配,从而支持购物等活动。尽管处理器从 Touch ID 传感器获取数据,但无法读取这些数据,因为这些数据使用 Touch ID 和“安全区域”内建的会话密钥来加密及认证。

想赚苹果的钱?先来了解iOS的安全机制吧

关于同步

在多个苹果设备之间同步数据的方便性相比很多用户都已经体验到了。 HomeKit 支持你管理物联网设备;自动解锁功能将能够让戴着 Apple Watch 的用户在走近 Mac 时自动解锁 Mac;还有照片通过 iCloud 同步等。

但是传统同步方式并不好或者说不安全。其中一种方式就是在让用户在所有设备上都使用一种强大的密钥,一旦这个密钥丢失,那么用户访问数据的渠道也就随之丢失。另外一种方式就是将数据打包到派生密钥中,而这会让数据保护在账户供应者的监控之下。

苹果公司在实现同步方面有几个目标:用户数据在所有设备中都可用,同时有强大的加密技术保护着它。即使用户丢失所有连接设备,他们还是可以恢复自己的数据。用户数据不会被暴露在苹果的显示之下,另外暴力攻击也不可能。

iCloud Keychain 系统中的认证其实非常简单。每一台设备都有相应的密钥对,为了将新设备添加到同步循环之中,你需要通过现有的设备去认证它。苹果的后端不参与到这个过程中,毫无特权可言。如果用户失去了访问所有设备的渠道,那么只要还有 iCloud Security Key 和 iCloud 密码,用户就可以重新获得访问渠道。

为什么苹果要销毁这些卡片?苹果为了开发安全系统获取用户信任方面做出了很多努力。数据离开设备之后,它被攻击的风险就更大。苹果需要保持信任关系,他们就必须销毁这些卡片。这也说明了苹果将保护用户数据安全视为一项使命。

意见反馈
返回顶部