苹果iOS平台的安全体系设计

本文深入探讨了苹果iOS的安全体系,包括安全引导链、安全升级、应用代码签名、运行时进程安全等方面,强调了其软硬件协同的安全机制。同时,文章指出了iOS的安全挑战,如越狱问题,并提出安全体系的改进建议。此外,还详细介绍了iOS应用的安全环境,如应用沙箱、文件安全存储和密钥链保护,为开发者提供了安全指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

许广林 漆仁 魏玉蕊


摘要:苹果iOS设备素以卓越的用户友好度著称,它的安全问题不是公众关注的焦点。然而iOS繁荣的生态系统背后,离不开一个设计良好的整体安全体系的支撑。这个整体安全体系是iOS生态系统核心竞争力的有机组成部分,它的成功之处值得其它生态系统借鉴,它的不足不处也蕴含了竞争对手借以超越的机会。

本文分两大部分:第一部分,介绍OS平台的整体安全体系,揭示了安全引导和访问控制两大核心技术的支撑作用;第二部分,从iOS应用开发者的角度出发,详细展现了iOS应用的安全运行环境和安全接口。在每一部分,我们也对现行安全机制的不足提出了改善建议。

1、iOS平台安全体系


苹果是一家重视安全的公司,信息安全方面的考虑一直贯穿于iOS平台的设计过程中。


iOS架构透露出一种整体安全的设计思路,它使用一些现有的安全标准和设计原则,比如安全引导、访问控制,它也进行了一些创新,最终构建了一个用户友好的安全体系,可称之为安全系统设计的典范。


iOS安全设计的成功经验主要有:1、强制的安全机制:当安全成为一个必选项时,安全需求不用再屈从于性能需求;2、软硬件协同的安全机制:既保证关键模块可信,又减少安全机制对性能的影响;3、用户友好的安全机制:强制安全和自主安全相混合,安全又可控,一个口令,使用方便。


iOS的整体安全主要由安全引导、访问控制两大技术来保证。在设备引导启动过程中,以只读ROM的代码为信任根,对引导模块进行逐级验证;iOS内核开始运行后,便通过复杂的访问控制策略,强制执行运行时的安全机制,确保更上层的功能和应用是可信的。


然而,iOS平台仍然存在不少安全缺陷。其中,越狱成功意味着iOS安全体系仍存在薄弱点,但这不意味着iOS安全体系的彻底失败。因为1、越狱需要设备所有者的主动操作;2、越狱只是要绕过应用代码签名机制而已,不对底层安全造成影响。在其他方面,比如强行重设Passcode,固件降级,都意味着iOS的安全机制仍待完善。


说明:本节内容主要来源于苹果公司于2012年10月发布的iOS Security白皮书,如果您担心我们对该白皮书的解读存在误解,建议您详细阅读原文。







安全引导链(Secure Boot Chain)

安全引导链包含一级验证一级的思想。引导过程的每个步骤都包含经苹果公司数字签名(以保证引导组件的完整性)的组件。每一步都要对信任链进行验证,只有通过验证才能继续下一步。这些组件包括bootloader,内核,内核扩展和基带固件。

当iOS设备启动时,首先执行只读Boot ROM芯片上的代码。这些代码是在芯片制造时烧录进去的,不可更改,因此是可信的(苹果没有公开技术细节,不知道是否采用了和TPM可计平台模块一样的硬件保护技术)。Boot ROM的代码里包含了苹果的Root CA公钥,以便在加载Low-level Bootloader(LLB)之前验证它确实是苹果签名的。这是信任链的第一步,每一步都会保证下一步加载的代码是经苹果签名的。当LLB的任务完成时,它会验证并运行iBoot,iBoot接着又会验证和运行iOS内核。

安全引导链确保最底层软件不会被篡改,这个安全性是由Boot ROM芯片的只读性来保证的。此外,它还保证iOS仅能在通过验证的苹果设备上运行。

如果引导过程有一个步骤不能成功验证和运行下一个组件,则iOS会引导用户连接iTunes进行系统恢复。


安全升级

和其他软件一样,iOS本身也在不断地升级完善。iOS包含一个安全的升级组件分发机制,确保iOS设备得到安全更新,而且不会向下降级。

在升级的过程中,iTunes或iOS设备本身连接苹果的安装授权服务器(gs.apple.com),向它发送一个密码学度量值列表(基中包含每个升级组件如LLB、iBoot、内核和OS映像的度量值),一个随机抗重放攻击的值(nounce)和一个设备的唯一ID(ECID)。

服务器检查这个度量值列表是否和最新升级版本相匹配。如果匹配,把ECID加入度量,然后对结果进行签名,最后把签名过的数据发送回请求升级的设备。通过加入ECID,使得这个升级数据包仅适用于该设备。由于苹果服务器只对最新版本的度量值进行签名,所以能确保升级包是由苹果提供的。



安全引导过程验证升级包具有苹果的签名,并且ECID和本设备相匹配,然后执行升级过程。


应用代码签名


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值