一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于TrustZone的可信微内核操作系统的制作方法

2021-12-15 01:41:00 来源:中国专利 TAG:
一种基于trustzone的可信微内核操作系统
技术领域
:1.本发明属于微内核操作系统
技术领域
:,更为具体地讲,涉及一种基于trustzone的可信微内核操作系统。
背景技术
::2.随着嵌入式系统逐步向联网化、开放化发展,嵌入式设备应对安全攻击时能力不足的缺陷日益凸显,设备的安全性也越来越受到重视。但通用操作系统专注于性能和构建丰富的生态环境,系统庞大而臃肿,潜在的安全缺陷和广泛的攻击面使得通用操作系统很难适应一些执行较高安全级别操作的应用场合。为此,arm推出trustzone系统级隔离方案,它借助处理器、虚存、缓存系统、中断和外设等方面不可旁路的安全扩展,并配合相应的可信软件,构建一个安全可靠的可信执行环境。通用操作系统将敏感数据访问和敏感操作迁移至基于trustzone的可信操作系统中执行,以保证敏感数据或敏感操作的安全性。3.目前主流的可信操作系统仍然沿用宏内核架构,将设备驱动程序和核心服务纳入内核,提高了执行效率,但内核极度膨胀,对代码库维护和彻查及其困难,因而这种架构不利于构建可信操作系统。此外,可信操作系统专用于处理敏感数据或执行敏感操作,因而应更加注重安全性,但一些开源tee(trustedexecutionenvironment,可信执行环境)方案仍然停留在不完善的内存隔离和可信启动等方面。同时,当下ca(客户端应用)与ta(可信端信用)交互数据采用c/s架构,通常ta功能较为单一,且ta之间缺乏协作。当开发新功能时,不得不修改ta或内核,以提供新特性。这势必导致内核频繁升级或ta功能冗余,扩展性受限。技术实现要素:4.本发明的目的在于克服现有技术的不足,提供一种基于trustzone的可信微内核操作系统,采用微内核架构,增强系统的可靠性和扩展性。5.为实现上述发明目的,本发明基于trustzone的可信微内核操作系统包括根服务模块、微内核模块和安全监控模块,其中:6.根服务模块是应用层根任务,用于管理用户态的所有资源;根服务模块包括内存管理模块、文件服务模块和服务管理模块,其中:7.内存管理模块用于管理用户态所有内存资源,包括内存分配和回收;8.文件服务模块用于对ree文件系统进行文件操作,包括以下两种情况:9.加载tee服务时,tee服务镜像文件以elf文件预存在ree文件系统特定目录中,通过rpc请求,在ree守护进程协助下读取相应的elf文件内容;10.tee服务执行过程中,预先以ipc接口根据实际需要封装预设文件和目录的新建、读写、删除、定位操作,tee服务应用使用ipc接口来请求文件服务;11.服务管理模块用于加载和引导tee服务,具体方法为:在引导镜像时,根据预设的可信引导方式,验证镜像的elf文件的完整性并校验elf文件格式,包括elf头、程序头和节区头;接着,逐一为程序段segment分配内存,并根据重定向节区逐一修正全局偏移表got和程序链接表plt表项中的符号;然后,为该镜像分配一个tcb结构,并初始化任务标识、调度数据、硬件上下文、地址空间和权能空间;最终,设置该任务为就绪态,插入到相应的per‑cpu队列中;12.微内核模块是基于微内核架构的可信内核,包括权能子系统、地址空间管理模块、任务间通信模块、系统调用模块、中断管理模块和任务管理模块,其中:13.权能子系统用于进行基于权能的细粒度访问控制,限制任务对关键内核对象的访问,从而约束tee服务执行特定操作;在每个tee服务加载时,权能子系统为其分配一个权能空间,权能空间是该tee服务有权访问资源的集合,在tee服务执行过程中,通过权能指针调用操作该权能指针所引用的内核对象,权能子系统对该调用操作进行合法以性检查;14.地址空间管理模块用于设置内存映射和页面属性,采用二级页表结构,微内核采用恒等映射,覆盖整个虚拟地址空间,且所有任务共享同一份内核映射;15.任务间通信模块用于在tee服务在多核上并行执行时传递数据和进行任务协同,包括四种通信机制:16.1)消息传递:用于在tee服务间进行短消息交换和权能传递,基于endpoint内核对象实现;17.2)异步:用于保证多个任务按照预定的顺序执行,基于notification内核对象实现;18.3)互斥:用于共享资源的序列化访问,基于mutex内核对象实现;19.4)共享内存:用于在不同tee服务间实现内存共享,基于tee的子系统gts实现;20.系统调用模块是应用层与内核交互的接口,支持两类系统调用:传统系统调用和基于权能分发的系统调用,两种方式均使用统一的系统调用接口,后者使用权能指针作为系统调用号,这些权能指针将引用所属权能空间中的权能,系统调用模块将根据权能类别进行分发,派发到相应的内核对象模块处理;21.中断管理模块用于将fiq类中断和irq类中断转发至安全监控模块;22.任务管理模块用于依托tcb结构的组织对任务进行管理,任务管理消息包括任务标识、任务状态、调度信息、任务硬件上下文和任务控制信息,任务的调度策略采用基于优先级可抢占、同优先级时间片轮转的方式;23.安全监控模块是运行在monitor工作模式的安全组件,作为tee和ree的通信媒介,用于电源管理、中断路由和世界上下文管理与切换,其中各处理器的世界上下文分别保存在每个处理器各自的per‑cpu队列中,安全监控模块在屏蔽外部中断环境中运行;安全监控模块包括电源管理模块、中断路由模块和世界切换模块,其中:24.电源管理模块用于为多核提供动态增删处理器、低功耗状态管理和从核引导功能;25.中断路由模块用于对接收到的fiq类中断和irq类中断进行中断路由处理,其中fiq类中断发生在普通世界,irq在中断发生在安全世界,当安全世界发生irq中断,中断路由模块令世界切换模块切换至普通世界进行中断响应;当普通世界发生fiq中断时,中断路由模块令世界切换模块切换至安全世界进行中断响应,并在中断处理完毕后令世界切换模块切换回普通世界;26.世界切换模块用于进行安全世界和普通世界的切换,双方世界上下文数据都将保存至per‑cpu队列的顶部,并根据当前处理器所处的安全状态,保存当前世界的上下文,并恢复另一侧世界的上下文。27.本发明基于trustzone的可信微内核操作系统,包括服务模块、微内核模块和安全监控模块,其中根服务模块是应用层根任务,用于管理用户态的所有资源,微内核模块是基于微内核架构的可信内核,包括权能子系统、地址空间管理模块、任务间通信模块、系统调用模块、中断管理模块和任务管理模块,安全监控模块是运行在monitor工作模式的安全组件,作为tee和ree的通信媒介,用于电源管理、中断路由和世界上下文管理与切换,安全监控模块在屏蔽外部中断环境中运行。28.本发明具有以下有益效果:29.1)本发明使用微内核架构来构建可信操作系统,有效解决了内核膨胀问题,降低可信内核的安全风险;30.2)本发明使用基于权能的访问控制策略对该可信操作系统进行安全加固;31.3)本发明提供可重入的tee服务接口,即可重入的安全监控模块,使得运行在多个处理器上的ca程序请求可被并行执行。附图说明32.图1是本发明基于trustzone的可信微内核操作系统的具体实施方式结构图;33.图2是本实施例中ca请求的处理流程图。具体实施方式34.下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。35.实施例36.图1是本发明基于trustzone的可信微内核操作系统的具体实施方式结构图。如图1所示,本发明基于trustzone的可信微内核操作系统包括根服务(rootsever)模块1、微内核(microkernel)模块2和安全监控模块(securemonitor)3,下面分别对各个模块进行详细说明。37.根服务模块1是应用层根任务(即系统引导时创建的第一个用户态任务),用于管理用户态的所有资源。本发明中根服务模块1包括内存管理模块11、文件服务模块12和服务管理模块13,其中:38.内存管理模块11用于管理用户态所有内存资源,包括内存分配和回收。本实施例中内存分配时采用buddy slab的分配策略,大块内存按页分配,小块内存按字节分配。39.文件服务模块12用于对ree(richexecutionenvironment,富执行环境)文件系统进行文件操作。文件服务存在两种情况:40.一种是加载tee服务时,tee服务包括可信应用程序ta和拓展服务server应用,tee服务镜像文件以elf(executableandlinkableformat,可执行与可链接格式)文件预存在ree文件系统特定目录中,通过rpc(remoteprocedurecall,远程过程调用)请求,在reeteesubsystem)实现。当多个tee服务使用相同token(令牌)标记动态映射内存时,这些内存会指向同一片memoryregion,这使得这些服务可以共享同一片物理地址空间,实现高效的数据交换。52.系统调用模块24是应用层与内核交互的接口,本发明中支持两类系统调用:传统系统调用和基于权能分发的系统调用,两种方式均使用统一的系统调用接口,后者使用权能指针作为系统调用号,这些权能指针将引用所属权能空间中的权能,系统调用模块24将根据权能类别进行分发,派发到相应的内核对象模块处理。53.中断管理模块25用于将fiq类中断和irq类中断转发至安全监控模块3。由于fiq是异步产生的,每个fiq中断源将与一个异步信号内核对象绑定,并为此提供注册、撤销、使能、禁用、应答和通知等接口,这些中断统一由根服务模块1管理,tee服务通过特定ipc方式发起请求,经过根服务模块1授权后,tee服务持有对应的权能指针直接操作绑定的fiq源。54.任务管理模块26用于依托tcb(taskcontrolblock)结构的组织对任务进行管理,任务管理消息包括任务标识、任务状态、调度信息、任务硬件上下文和任务控制信息,任务的调度策略采用基于优先级可抢占、同优先级时间片轮转的方式。该任务调度策略具有以下特点:55.1)每个核有专属的根服务和idle任务,其根服务设置为中等优先级,而idle任务设定为最低优先级;56.2)当前处理器触发新任务创建或任务就绪,均被设置到当前per‑cpu队列中,禁止任务的核间迁移;57.3)idle任务将关闭定时时钟,并执行smc指令,返回普通世界。58.安全监控模块3是运行在monitor工作模式的安全组件,作为tee和ree的通信媒介,用于电源管理、中断路由和世界上下文管理与切换。由于在微内核操作系统中,每个处理器有独立的monitor工作模式,为保证多核下ca能并行请求,各处理器的世界上下文分别保存在每个处理器各自的per‑cpu队列中,彼此独立。这种方式实现了安全监控模块3的可重入性,也就是说,多个ca程序可以并行进入安全监控模块3,然后转发请求至tee中,从而在多核环境下并行执行这些请求。安全监控模块3在屏蔽外部中断环境中运行,以保证组件的健壮性。安全监控模块3包括电源管理模块31、中断路由模块32和世界切换模块33,其中:59.电源管理模块31用于为多核提供动态增删处理器、低功耗状态管理和从核引导功能。60.中断路由模块32用于对接收到的fiq类中断和irq类中断进行中断路由处理,其中fiq类中断发生在普通世界,irq在中断发生在安全世界,当安全世界发生irq中断,中断路由模块32令世界切换模块33切换至普通世界进行中断响应;当普通世界发生fiq中断时,中断路由模块32令世界切换模块33切换至安全世界进行中断响应,并在中断处理完毕后令世界切换模块33切换回普通世界。61.为保证安全中断能正确路由处理,securemonitor切换世界时,进入normalworld需设置协处理器序列控制寄存器scr(sequencecontrolregister)中的fiq位;进入secureworld时需复位序列控制寄存器scr中的fiq位。这使得normalworld发生fiq时,能直接进入securemonitor;而secureworld发生fiq中断时无需路由,能直接得到处理。62.世界切换模块33用于进行安全世界和普通世界的切换,双方世界上下文数据都将保存至per‑cpu队列的顶部,并根据当前处理器所处的安全状态,保存当前世界的上下文,并恢复另一侧世界的上下文。在进行世界切换时,除了设置协处理器序列控制寄存器scr中ns位,还需恢复各工作模式下寄存器组,以及设置切换世界后跳转地址和处理器状态寄存器cpsr,上述操作都将在禁止外部中断环境下执行。63.接下来以ca请求为例,对本发明可信微内核操作系统的工作过程进行简要说明。图2是本实施例中ca请求的处理流程图。如图2所示,本发明可信微内核操作系统对ca请求的处理过程包括以下步骤:64.s201:数据打包与共享:65.tee与ree之间的数据交互通常使用寄存器传值或者传输打包数据的地址,且由于双方世界有独立的内存管理单元,因此共享数据只能使用物理地址。跨世界共享内存将预分配4mb空间,由ree内核负责按页分配。传递数据以structtee_param结构进行封装,世界切换时r0寄存器放入服务调用号,r1寄存器设置为打包数据的物理地址。66.s202:判断ca请求是否是预设的特定服务调用,如果是,进入步骤s203,否则进入步骤s204。67.s203:特定服务分发与处理:68.在安全监控模块中对预设的特定服务调用进行分发与处理,然后进入步骤s211。69.为了更加高效地处理ca请求,以服务调用号来区分不同类型的请求,对于cpu、sip、oem、vendor等服务类别的请求,无需切换到可信操作系统中处理。这类请求将在安全监控模块3中根据类别进行分发处理,并直接返回。70.s204:切换世界:71.由安全监控模块3中世界切换模块33进行世界切换,切换到安全世界。72.s205:唤醒根服务模块:73.以ipc发送请求数据唤醒根服务模块1。74.s206:数据解析与映射:75.当前核对应的根服务模块1对数据进行解析,并根据解析出的uuid标识请求ta身份。接着,使用uuid号在已加载任务哈希表中查询对应任务tid号。若该任务尚未加载,根服务模块1中的服务管理模块13负责将此ta加载引导。此后,根服务模块1为此ta建立参数映射,并以异步ipc方式将任务唤醒,最终主动放弃cpu。76.s207:判断是否进行任务调度,如果是定时任务到期,进入步骤s208,如果正常返回,进入步骤s209,如果ta/server任务就绪,进入步骤s210。77.s208:调度定时任务:78.调度定时任务,限制tee运行时长,定时到期则进入步骤s211。79.s209:调度idle任务:80.当调度任务正常返回时,调度idle任务,进入步骤s211。81.s210:调度其他任务:82.根服务模块1中的服务管理模块13调度其他任务,返回步骤s207。83.s211:世界返回:84.当定时任务到期、调度idle任务或特定服务处理完成时,都将触发smc,立即回到安全监控模块3,执行世界切换,回到普通世界。根据之前流程可知,前两种在可信微内核中处理,在此返回之前将关闭所有定时任务,后者直接在安全监控模块3中处理。85.尽管上面对本发明说明性的具体实施方式进行了描述,以便于本
技术领域
:的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
:的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献