iOS应用程序安全iOS Developer

iOS 安全模型浅析(一) ---- 安全启动

2017-04-10  本文已影响75人  捡书

就目前情况来说,AppStore确实成功的将很多恶意软件拒之门外,但是对于开发者来说,应用程序的审查就是一个黑箱操作。苹果公司对应用的审查不会对外公开,所以你无法搞清楚他们是如何揪出你应用中那些不能使用的API。大部分时候你搞不清楚什么功能允许使用,什么功能禁止使用。但是苹果提供了正式的指导手册,但是很多遵循了执导的应用同样会被拒绝。

当然,什么是恶意程序是由苹果来定义的,苹果使用AppStore来控制或限制iOS平台上的应用程序的功能,这就意味着如果要实现某个特定的功能,唯一的手段就是要将设备越狱或者骗过应用商店的审查。比如通过某些特殊的操作(摇动手机XX次,出现一个控制按钮)开启隐藏功能。

官方的应用审查永远无法抓到那些钻空子的恶意软件,所以需要另外一套高效的机制来阻止恶意程序破坏操作系统的安全。在接下来的时间里,我会不定期的更新博客,介绍iOS的一些基本安全组件是如何阻止恶意攻击和保护数据的。

首先介绍iOS的安全启动机制:
当启动一台iOS设备时,系统首先会从只读的ROM中读取初始化指令,也就是系统的引导程序(事实上所有的操作系统启动时都要经过这一步,只是过程略有不同)。这个引导ROM包含苹果官方权威认证的公钥,他会验证底层启动加载器(LLB)的签名,一旦通过验证后就启动系统。LLB会所一些基础工作,然后验证第二级引导程序iBoot。iBoot启动后,设备就可以进入恢复模式或启动内核。在iBoot验证完内核签名的合法性之后,整个启动程序开始步入正轨:加载驱动程序、检测设备、启动系统守护进程。

这个信任链会确保所有的系统组件都有苹果官方写入、签名、分发,不能来自第三方机构,特别是那些恶意攻击者或者是给设备越狱的黑客。应用程序启动时也会用信任链去审查签名。所有的应用都必须直接或间接地由苹果签名(这就是为什么要申请开发者账号,生成开发和发布证书以及申请App ID的原因。很多开发者也经历过安装测试APP时提示你信任开发者证书,这些都是验证组件的功劳)。

越狱的工作原理正是攻击这一信任链。所有的越狱工具的作者都需要找到这一信任链上的漏洞,从而禁止掉信任链中负责验证的组件。破解引导ROM通常是最可取的办法,因为该组件不会因为苹果今后的软件更新而改变。

上一篇下一篇

猜你喜欢

热点阅读