由于Apple公司对iPhone操作系统(iOS)采取闭源策略,使得研究人员对其安全机制的深入了解变得十分困难。经过多年研究,一些安全研究人员给出了iOS的安全机制、安全模型和一些数据保护机制的细节。但这些研究一方面只能通过逆向分析等方法,难以获取iOS内部的所有细节;另一方面,随着iOS的不断升级和更新,研究者难以在短时间内掌握其改进和新机制的细节。同时,iOS安全研究的另一大特点就是黑客社区所做的研究和贡献更为突出。每次iOS的升级以及硬件设备的更新都伴随着一场对iOS越狱的研究高潮。iOS越狱技术的研究者对iOS安全机制有着更为深入的了解和实践。这些研究者以开放的精神和坚持不懈的努力突破Apple公司为iOS设置的重重枷锁,不仅为其他研究者提供了大量的技术资料和源码,也使得iOS的安全性在攻防双方的较量中不断提升。
iOS是一个封闭的系统,在iOS应用的开发中,开发者需要遵循Apple公司为其设定的开发者协议,没有遵循规定协议而开发的应用不会通过App Store审核,这样就使得开发者在开发应用时必须遵守一定的协议,没有权限操作任何非本程序目录下的内容。
归纳起来,iOS有如下安全机制。
(一)可信引导
打开iOS设备后,其应用程序处理器会立即执行只读内存(Boot ROM)中的代码。这些不可更改的代码(称为硬件的信任根)是在制造芯片时设置好的,为隐式受信任代码。Boot ROM代码包含Apple根CA公钥,该公钥用于验证底层引导加载程序(LLB)是否经过Apple签名,以决定是否允许其加载。这是信任链中的第一步,信任链中的每个步骤都确保下一步骤可以获得Apple的签名。当LLB完成其任务后,它会验证并运行下一阶段的引导加载程序iBoot,后者又会验证并运行iOS内核。此安全启动链有助于确保底层的软件未被篡改,并只允许iOS运行在经过验证的Apple设备上。对于可接入蜂窝移动网络的设备,基带子系统也使用类似的安全启动过程,包括已签名的软件以及由基带处理器验证的密钥。如果该启动过程中某个步骤无法加载或验证下一过程,启动过程会停止,设备屏幕会显示“连接到iTunes”,这就是所谓的恢复模式。如果Boot ROM无法加载或验证LLB,它会进入DFU(设备固件升级)模式。
(二)代码签名
可信引导机制保证了系统加载过程中各个阶段数据的完整性,而代码签名机制则保证了所有在iOS中运行程序的数据完整性。Apple公司不希望用户安装未被其审核的第三方应用程序。一般开发者开发的程序在使用Apple公司颁发的证书进行签名以后,提交到App Store,再由Apple公司进行审核。审核成功后,Apple公司使用其私钥对程序进行签名。用户从App Store上下载安装程序时,iOS调用系统进程对应用程序进行证书校验。
代码签名机制使得在iOS设备上运行的代码是可控的,并且Apple公司严格的审核机制也使得iOS系统上的恶意软件数量远远小于开放的Android系统。(www.xing528.com)
(三)沙盒机制
iOS中的沙盒机制(Sand Box)是一种安全体系,它规定了应用程序只能在为其创建的文件夹内读取文件,而不可以访问其他地方的内容。所有的非代码文件(如图片、声音、属性列表和文本文件等)都保存在这个地方。iOS沙盒的实质是一个基于Trust BSD策略框架的内核扩展模块访问控制体系,其应用程序的所有操作都要通过这个体系来执行,其中核心内容是Sand Box对应用程序执行各种操作的权限限制。每个应用程序都在自己的沙盒内,不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容,应用程序向外请求或接收数据都需要经过权限认证。
沙盒机制的使用使得程序的行为得到了控制,强制隔离了应用程序,并保护了应用程序数据和底层操作系统数据不被恶意修改。
(四)数据加密
iOS4及以后的系统使用数据加密机制来保护文件系统中的系统和数据分区。系统和数据分区中的数据将由一个基于硬件设备的密钥进行加密。在iPhone3GS以后的设备上,该密钥存储于一个AES(高级加密标准)加密加速硬件上。这个基于硬件的密钥不能被CPU所访问,只有在加解密时才能由该加速器获取。通过这种机制,直接从硬盘上被取走的原始数据就无法被正确解密。同时,数据加密机制还提供了多种加密策略供应用程序选择。应用程序可以选择对一些敏感文件使用NSFile Protection Complete(NS文件完整保护)策略而不是默认的NSFile Protection None(NS文件无保护)策略加密数据。iOS开发中应用最广泛的数据加密方式就是MD5加密,由于其加密的不可逆性,经常用于用户数据的加密。MD5的典型应用是对一段信息(Message)产生信息摘要(MD),以防止该信息被篡改。
(五)内置安全性
iOS可为用户提供内置的安全性。iOS专门设计了低层级的硬件和固件功能,用以防止恶意软件和病毒;同时还设计有高层级的操作系统功能,有助于在访问个人信息和企业数据时确保安全性。用户可以设置密码锁,以防止有人未经授权访问其设备,并进行相关配置,允许设备在多次尝试输入密码失败后删除所有数据。该密码还会为存储的邮件自动加密和提供保护,并能允许第三方App为其存储的数据加密。iOS支持加密网络通信,它可供App用于保护传输过程中的敏感信息。如果iPhone设备丢失或失窃,可以利用“查找我的iPhone”功能在地图上定位设备,并远程擦除所有数据。一旦iPhone设备失而复得,还能恢复上一次备份过的全部数据。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。