廖正赟,郭建胜
(1.郑州信大捷安移动信息安全工程实验室,河南 郑州 450004;2.信息工程大学,河南 郑州 450004)
移动互联网的高速发展大大推动了移动电子政务、移动电子商务的快速发展,移动智能终端作为移动互联网的必不可少承载设备,也已经成为人们随身携带、随时使用的重要通信工具。在移动支付、移动办公等高敏感应用中涉及个人隐私、资金安全、商业秘密等高敏感的信息处理,需要从系统设计出发,构建完整的安全解决方案为其提供保障。
信息安全主要包括4个方面: 信息设备安全、数据安全、内容安全和行为安全。信息系统硬件结构的安全和操作系统的安全是信息系统安全的基础,密码、网络安全等技术是关键技术,只有从信息系统的硬件和软件的底层采取安全措施,从整体上采取措施,才能有效地确保信息系统的安全[1-2]。
目前在国内外市场中,较为完善的方案是Apple公司设计的iOS安全体系框架,从系统安全、数据保护、应用安全、网络安全、设备管控等方面保障iOS设备安全。iOS安全体系分为硬件层和软件层。硬件层包括密钥管理、密码引擎;管理的密钥主要是Apple根证书、群密钥、设备密钥等;密码引擎对系统提供密码服务和算法API。在软件层,加密文件系统通过iOS内核层的硬件驱动调用硬件层的密码服务;加密文件系统分为操作系统区和用户区,操作系统区负责iOS系统程序的密码服务,用户区负责App应用的密码服务,以沙箱的形式控制App应用运行。iOS安全体系如图1所示。
图1 iOS安全体系框架
在iOS的安全体系中有一个安全硬件模块Secure Enclave,采用了Apple A7芯片,独立于应用程序处理器之外,具备自己的安全启动和个性化软件更新,为系统提供敏感数据、密钥存储和加解密服务,并且限制其他非法软件的访问,即使在内核遭到入侵的情况下,也可维护数据保护的完整性。
Secure Enclave是一个典型的密码嵌入式系统,由软件和硬件两部分组成,本文将从Secure Enclave的硬件、处理器内部操作系统、通信机制三方面进行分析,对该系统的安全性进行分析,最后进行了总结与展望。
安全隔离处理器(Secure Enclave Processor,SEP)采用SoC内部集成SoC的形态出现[3]。片上系统(System on Chip,SoC),从狭义角度来说,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度来说,SoC 是一个微小型系统,国内外学术界一般倾向将 SoC 定义为将微控制器、模拟IP核、数字IP核和存储器集成在单一芯片上,通常是客户定制的,或是面向特定用途的标准产品。iOS设备的硬件逻辑组成结构如图2所示。
图2 iOS设备处理器逻辑结构图
硬件架构中包含了两类处理器:通用应用处理器与安全处理器。CPU处理单元也称为应用处理器(Application Processor,AP),它包括一个或多个处理器和二级(L2)高速缓存,与SEP相互隔离,对SEP的访问受到硬件的严格控制。SEP内部包括一个或多个处理器核心,安全引导ROM以及一个或多个安全外围设备。
SEP需要使用超过4 KB的易失性存储器,内部的SRAM的空间不能满足要求,因此需要利用外部扩展的存储器,这一部分的存储器需要防止AP的篡改。在SoC的存储器控制器中,通过增加寄存器的方式,为SEP构建了单独的信任区。AP可以访问自己的信任区域,但不能访问SEP信任区域,SEP可以访问自己的信任区域,但不能访问CPU信任区域,而SoC的其他组件无法访问任何信任区域。SEP通过内存映射操作的方式独占一组外设,这一部分硬件设备不能被应用处理器访问,这些设备包括:硬件加密引擎、随机数发生器、熔断器、GID/UID、安全只读存储器。在完成内存映射工作后,SEP通过随机数发生器产生“真随机数”,以此随机数作为输入,计算出工作密钥。工作密钥将存入硬件加密引擎中,SEP将使用该工作密钥对内存中的数据进行加密保护。加密算法采用AES-256,使用XEX的工作模式。
基于安全引导存储区的设计,SEP可以实现片内操作系统的安全启动。SEP的启动代码存储在安全只读存储器(ROM)中,而安全ROM对于SEP外部是不可访问的,因此,不会受到修改引导代码的影响。 SEP中的处理器可以直接从安全ROM执行,避免将代码复制到诸如随机存取存储器(RAM)的可修改存储器,SEP与安全ROM呈现的“攻击面”相对较小。
SEPOS是一个完全独立的操作系统,拥有私有的内核、驱动程序、服务和应用程序,通用的操作系统在安全性的验证上较为困难,因此SEPOS采用了L4微内核嵌入式系统的方案,确保提供安全保证的部分尽可能地小,而且便于验证。L4微内核是由Jochen Liedtke于1993年首次引入的[4],属于第二代微内核系统,L4解决了前一代微内核性能不佳的问题,并将其性能提高了10~20倍[5]。L4在设计中遵循了信息保护机制中的保护原则[6]。在后来的应用中,L4被开发用于平台无关性,以及提高安全性、隔离性和健壮性。SEPOS的整体结构如图3所示[7]。
在SEPOS的启动过程中,内核首先对系统进行初始化操作,包括初始化内核表,设置内核接口页(KIP),配置硬件中断,启动定时器,初始化映射数据库,启动内核调度器。内核调度程序启动所有中断和内核线程,以及称为根进程的初始进程。
在SEPOS中,根进程负责启动在SEPOS中运行的其余应用程序,并维护关于每个正在运行的任务的上下文信息。这包括有关任务的虚拟地址空间、权限级别、正在运行的线程等的信息。根进程还调用启动服务器,这是一种基于IPC的服务,它为应用程序提供所需的服务,以便执行诸如映射虚拟内存或启动新线程等特权任务。
SEPOS的L4内核遵循“最小特权原则”,对外只提供很小一部分的接口。在内核空间中,对于来自用户空间的系统调用,只有根进程可以响应。其他的应用进程由引导服务创建,在进程创建时,引导服务为每个进程定义了权限级别。应用进程访问系统方法时,需要经过权限校验,只响应满足条件的应用进程。系统方法的权限校验粒度较细,每一个方法都需要进行独立的验证。
当根进程启动时,它会尝试在内存中查找两个表:“根参数”和“应用程序列表”。应用程序列表固化在SEPOS的固件中,列表包含了的系统中所有应用程序的物理地址、虚拟基地址、模块名称、程序大小和程序的入口点信息。引导程序在启动、加载应用时,根据应用程序列表逐项进行检查,只有完全匹配的应用程序才能正常运行。
SEP系统设计时遵循了隔离性原则,SEP处理器在软硬件方面都采用了相应的措施与外部组件进行隔离。但是要实现SEP的安全功能,SEP与应用处理器之间需要进行双向通信。系统设计了“安全邮箱(Secure Mailbox)”机制,本质上是利用AP和SEP处理器都可见的共享内存区域,实现了消息请求和响应机制,Mailbox同时包含了收件箱和发件箱。
AP与SEP之间的内存共享是通过配置SEP的设备I/O寄存器实现的。SEP在设备中分配的内存地址范围是固定的,系统将设备I/O寄存器映射在该范围中,通过对不同偏移地址的读写,实现消息的发送和接收操作。
消息中断机制也可以形象地称为“门铃”机制,设备可以向框架注册回调处理方法。当AP向SEP发送消息时,AP将消息写入安全邮箱的收件箱,并触发消息终端中断,告知SEP已经收到新的消息。这个中断不是由AP本身生成的,因为如果SEP被中断很长一段时间,这可能导致拒绝服务攻击。中断由SEP的硬件过滤器产生,硬件过滤器用于阻止任何外部的读取或写入尝试,并在必要时为SEP生成中断。但是,SEP的组件可以完全访问SoC的其他组件(除了指定为AP信任区的存储器部分除外)。
如果SEP已经接收并处理了消息,就把响应写入到发件箱。为了让AP知道响应已经准备就绪,它通过向SoC的中断控制器发送一个中断消息来向CPU处理器发出中断信号。
SEP端点是与SEP内部应用或服务进行通信的对象,SEP管理器负责管理iOS中的所有SEP端点,并提供一个完整的框架为驱动程序提供注册和通信服务。框架为每一个注册的SEP端点分配全局唯一的索引值,并抽象出统一的操作方法:接收和发送消息,为每一个SEP端点维护一个消息接收队列。消息头结构中使用端点的索引值标识目的地址,管理器提供了一种“邮差”机制,将这些消息传递到目的地。
Secure Enclave是一个嵌入式安全子系统。它由可信硬件构成,运行独立安全操作系统,是密码服务实现的专用环境,从硬件环境上确保密码服务系统以及密码设备平稳运行、安全服务。
在体系设计上引入专用安全芯片系统,为密码服务提供专用运行环境。在服务系统内部建立构成“私有区域”和“公开区域”的概念,进一步采用多种方法保障“私有区域”的安全,而不需要对公开区域提出很高的安全要求。其优点是不仅可以提高密码服务实现的效率,更主要的是给逻辑防护设计提供了良好条件,突出了安全防护的重点。
作为嵌入式计算系统,硬件上可以通过高速系统总线与主环境连接,二者之间的
安全通道需要双方达成安全协议,进行实体认证后通过加密的方式建立安全数据传输。
在安全子环境内建立专门用于安全防护的安全核(Security Kernel)。这里的安全防护主要是指在用户调用密码服务过程中涉及的有可能危害到密码服务系统安全的操作防护,如密钥对象的建立、修改和输出,关键密码算法的调用等。
从层次位置上说,安全核位于密码服务层传递的应用之下,密码设备层对象之上,是外界与结构内部对象以及结构内部对象之间的交互联接点。安全核的防护突出两点,即对象访问控制和消息过滤。
安全核的设计贯穿了密码服务设计中建立在集中管理基础上的逻辑防护原则。其优点是在管理中实现安全,在安全上提供管理。
采用基于中断的共享内存方式,实现消息的安全传输。特别地设计了两个中断控制器,通过硬件过滤器的形式,实现消息的单向摆渡,减少安全系统的攻击范围。
Apple的Secure Enclave将安全性融入到软硬件的设计中,硬件隔离、安全微内核系统和安全通信机制构建了完善的安全框架,很好地解决了敏感数据的安全保护的问题。但是,该方案要求生产者可以完整地掌握SoC元件的生产链条,会在一定程度上加长开发设计周期,并使得测试难度更大。在安全操作系统采取的安全措施相互较为独立,没有形成整体的呼应。可以借鉴可信计算技术,将系统融合成完整的安全体系。
[1] 沈昌祥. 关于加强信息安全保障体系的思考[M]. 信息安全综论. 武汉: 湖北科学技术出版社, 2002.
[2] 张焕国, 王丽娜, 黄传河, 等. 信息安全学科建设与人才培养的研究与实践[C]. 全国计算机系主任(院长)会议论文集, 2005.
[3] Apple Inc. Security enclave processorfor a system on a chip: US, US8832465[P].2012-09-09.
[4] HEISER G, ELPHINSTONE K. L4 microkernels: the lessons from 20 years of research and deployment[J]. ACM Transactions on Computer Systems, 2016,34(1): 1-29.
[5] LIEDTKE Jochen. On u-kernel construction[J]. Symposium on Operating Systems, 1995(1): 237-250.
[6] SALTZER J H, SCHROEDER M D. The protection of information in computer systems[J]. Proceedings of the IEEE, 1975. 63(9): 1278-1308.
[7] LANGE M, LIEBERGELD S, LACKORZYNSKI A, et al. L4Android: a generic operating system framework for secure smartphones[C].Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices. NewYork, USA,2011:39-50.