(一)安全架构
iOS平台的安全架构由硬件、固件和软件共同构成。
硬件、固件层由设备密钥、设备组密钥、苹果根认证、加密引擎、内核组成。协处理器Secure Enclave提供所有加密操作。
软件层由文件系统、操作系统分区、用户分区、应用沙盒及数据保护类构成。
(二)安全机制
安全机制 | 说明 | |
1 | 安全启动链 | iOS平台安全依赖于启动链安全。启动过程使用组件要求完整性验证,确保信任传递可控 启动设备→处理器执行只读内存(引导ROM)中代码(固定、隐式、受信任、含苹果根CA公钥)→验让底层引导加载程序(LLB)是否经过签名→普通引导或设备固件更新模式 |
2 | 数据保护 | 针对移动设备因丢失或被窃取导致的泄露数据风险,提供数据保护API(Data Protection API)。让开发者尽可能简单地对文件和keychain项中存储的敏感用户数据施以足够保护 |
3 | 数据加密与保护机制 | iOS内所有用户数据都强制加密。苹果AES加解密引擎都是硬件级,提供较高效率与性能。提供名为File Data Protection的数据保护方法。所有文件加密时使用的profile Key都不同,存储于Metafile内 |
4 | 地址空间布局随机化 | 利用地址空间布局随机化ASLR技术,确保iOS二进制文件、库文件、动态链接文件、栈和堆内存地址位置随机分布,增强抗攻击能力 |
5 | 代码签名 | iOS系统要求所有可执行程序必须使用苹果公司发放的证书签名 |
6 | 沙箱机制 | 通过沙箱机制限制进程的恶意行为 |