首页 / 专利库 / 电脑安全 / 软件盗版 / 基于TrustZone硬件的面向任务的安全操作系统

基于TrustZone硬件的面向任务的安全操作系统

阅读:1033发布:2020-05-13

专利汇可以提供基于TrustZone硬件的面向任务的安全操作系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种面向任务的安全 操作系统 。该面向任务的安全操作系统基于TrustZone 硬件 框架 ,具体包括安全引导过程、任务管理模 块 、信息寄存模块、调度任务、安全API以及应用程序和服务;其中安全引导过程完成 软件 相关的初始化工作以及调度任务的创建和启动;任务管理模块负责为安全操作系统提供任务管理机制;信息寄存模块负责为安全操作系统提供信息寄存机制;安全API负责为安全操作系统的应用程序和服务提供可调用的 接口 ;调度任务负责安全操作系统与普通操作系统之间的切换,同时负责安全操作系统内部的任务之间的切换。本发明可以达到应用程序执行过程中的关键环节的保护,提升应用程序的抗攻击能 力 和抗盗版能力。,下面是基于TrustZone硬件的面向任务的安全操作系统专利的具体信息内容。

1.一种面向任务的安全操作系统,其特征在于,包括安全引导过程、任务管理模、信息寄存模块、调度任务、安全API以及应用程序和服务;其中,安全引导过程完成软件相关的初始化工作以及调度任务的创建和启动;任务管理模块负责为安全操作系统提供任务管理机制;信息寄存模块负责为安全操作系统提供信息寄存机制;安全API负责为安全操作系统的应用程序和服务提供可调用的接口;调度任务负责安全操作系统与普通操作系统之间的切换,同时负责安全操作系统内部的任务之间的切换;
所述调度任务在安全引导过程中创建并启动,随后进入任务执行过程,在任务执行过程完成引导普通世界操作系统启动功能和处理普通世界传输的指令,每条指令都由指令id、服务id、任务id、命令id、命令参数组成;
所述调度任务处理普通世界传输的指令的具体操作为:
①判断指令id是否有效,若有效执行②,否则执行⑩;
②判断服务id是否为调度任务服务id,若是执行③,否则执行⑩;
③判断命令id是否为打开会话操作,若是则保存现场并根据命令参数创建任务并执行⑩;
④判断命令id是否为关闭会话操作,若是则根据命令参数销毁任务及恢复现场并执行⑩;
⑤判断服务id是否为非调度服务id的其他有效服务id,若是执行⑥,否则执行⑩;
⑥判断任务id是否为有效任务id,若是则启动与该任务id标识一致的任务实例并把CPU执行权交给该任务,否则执行⑩;
⑦判断命令id是否为有效命令,若是则执行⑧,否则执行⑩;
⑧处理命令,处理完成后执行⑨;
⑨挂起当前任务,把CPU执行权交给调度任务并执行⑩;
⑩调度任务切换当前世界为普通世界。
2.如权利要求1所述的面向任务的安全操作系统,其特征在于:由所述调度任务完成对普通任务的创建、启动、销毁操作,其具体操作为:
(1)任务创建功能:
①输入参数:任务属性信息,包括任务的服务id、服务名称、任务入口地址;
②处理过程:为新任务分配固定堆空间;从分配的堆空间为新任务控制块分配空间;设置任务的属性信息;
③返回参数:若创建成功返回任务id,否则返回0;
(2)任务启动功能:
①输入参数:任务id;
②处理过程:通过任务id获取任务控制块;修改任务控制块中任务运行状态属性为准备执行;
③返回参数:若正常执行返回0,否则返回-1;
(3)任务销毁:
①输入参数:任务id;
②处理过程:通过任务id获取任务控制块;释放任务控制块占用的堆空间;释放任务占用的堆空间;
③返回参数:若正常执行返回0,否则返回-1。
3.如权利要求1所述的面向任务的安全操作系统,其特征在于:通过所述信息寄存模块,在普通任务销毁前寄存信息到信息寄存箱中,其进行的具体处理操作为:
(1)信息寄存:
①输入参数:服务id和寄存信息内容;
②处理过程:在信息寄存箱中为寄存信息申请空间;拷贝寄存信息内容到申请的空间;
设置信息id为服务id;
③返回参数:若正常执行返回0,否则返回-1;
(2)信息获取:
①输入参数:服务id和寄存信息存储空间;
②处理过程:在信息寄存箱中查找信息id为服务id的信息;拷贝查找的信息的信息内容到寄存信息存储空间中;释放该信息占用的空间;
③返回参数:若正常执行返回0,否则返回-1。
4.一种嵌入式安全系统,其特征在于,包括:ARM TrustZone硬件安全平台、通用操作系统和权利要求1所述面向任务的安全操作系统,所述通用操作系统的内核层使用内核模块的方式封装安全操作系统的API接口,供上层应用程序调用,以使用安全操作系统提供的服务。
5.如权利要求4所述的嵌入式安全系统,其特征在于:在初始化完成后,内存被划分为两个区域,其中低地址区域被安全操作系统使用,高地址区域被通用操作系统使用,这两个区域的大小由安全操作系统程序和硬件内存大小决定。
6.如权利要求5所述的嵌入式安全系统,其特征在于,初始化完成后的安全操作系统内存区域分为:
(1)Framebuffer缓冲区,用于存放Framebuffer机制的显示数据;
(2)Code段,包含程序执行时的代码数据;
(3)Init段,包含安全操作系统初始化的汇编程序指令;
(4)Data段,包含安全操作系统中已初始化的数据;
(5)Bss段,包含安全操作系统中未初始化的数据;
(6)动态内存区域,供系统动态分配和回收的内存区域。
7.一种采用权利要求1所述面向任务的安全操作系统执行应用程序的方法,其特征在于,包括如下步骤:
①在通用操作系统中启动应用程序;
②在面向任务的安全操作系统中执行应用程序的关键环节;
③在通用操作系统中执行应用程序的普通环节;
④在通用操作系统中结束应用程序。

说明书全文

基于TrustZone硬件的面向任务的安全操作系统

技术领域

[0001] 本发明属于移动终端安全领域,更属于嵌入式操作系统领域,主要涉及一种面向任务的安全操作系统的设计与实现方法,更确切地是涉及一种基于ARM TrustZone硬件安全扩展技术的系统软件实现方法。

背景技术

[0002] 随着互联网向移动互联网的延伸,中国移动互联网行业得到持续快速的发展。根据CNNIC报告显示,截止到2014年6月中国手机网民规模达到5.27亿,较2013年底增加2699万人,同比增长83.4%,中国手机网民规模首次超越传统PC用户规模。以此同时,智能手机、平板电脑等移动互联网智能终端也出现了各式各样的安全隐患,其不亚于PC端的安全隐患,例如,手机病毒、险软件、钓鱼网站、流氓软件、垃圾短信、山寨APP等,这些都在考验着用户的移动终端信息安全承受能。随着移动支付类应用、移动商务应用、手机游戏等移动终端应用的快速增长,移动终端的安全隐患受到越来越多的终端用户、安全专家、安全厂商等关注,其势必会成为未来几年甚至几十年人们值得关注的热点技术问题。
[0003] 为保证移动智能终端的安全,ARM(Advanced RISC Machines简称)公司提出TrustZone安全硬件体系结构,该体系结构对ARM处理器内核进行扩展,使其能够以分时的方式安全有效地在两个虚拟处理器上执行代码,这两个虚拟处理器所处的执行环境分别被称为安全世界和普通世界。为了支持一个完成的执行环境,在每个世界都有其独立专用的内存、缓存、存储、外设等硬件设备。为了与传统移动终端生态系统的紧密结合,普通世界可以执行通用操作系统(例如Android、Ubuntu、嵌入式Linux等);为了执行安全操作,安全世界可以执行与安全相关的代码和程序;为了使两个世界形成一个统一的安全增加的整体系统,ARM TrustZone为两个世界提供了相互交互的机制(例如可以使用SMC切换世界,可以使用共享普通世界内存的方式进行数据交互等)。然而,ARM针对移动智能终端提出的TrustZone安全硬件体系结构仅是针对硬件平台而言的,到目前为止还未有一套完整的对TrustZone定义的整个硬件平台资源进行有效管理的系统软件

发明内容

[0004] 针对上述问题,本发明的目的在于提供一种基于TrustZone硬件平台的面向任务的安全操作系统的实现方法。该方法定义了一种TrustZone硬件平台之上的软件系统的整体架构,该架构包括安全世界的实现方法以及普通世界与安全世界的交互方法。
[0005] 本发明所解决的技术问题可以采用以下技术方案来实现。
[0006] 一种面向任务的安全操作系统,包括安全引导过程、任务管理模、信息寄存模块、调度任务、安全API以及应用程序和服务;其中,安全引导过程完成软件相关的初始化工作以及调度任务的创建和启动;任务管理模块负责为安全操作系统提供任务管理机制;信息寄存模块负责为安全操作系统提供信息寄存机制;安全API负责为安全操作系统的应用程序和服务提供可调用的接口;调度任务负责安全操作系统与普通操作系统之间的切换,同时负责安全操作系统内部的任务之间的切换。
[0007] 具体来说,上述面向任务的安全操作系统,其特征如下所示:
[0008] 特征1:本发明包括两种任务,分别为调度任务和普通任务。调度任务,主要完成通用操作系统的启动并切换当前世界为普通世界功能、接收通用操作系统指令并执行、保存安全世界现场、恢复安全世界现场、创建新服务任务、切换当前CPU执行的任务功能。普通任务可以由第三方厂商提供,完成其特定的功能任务。
[0009] 特征2:如特征1所述,调度任务在安全引导过程中创建并启动,随后进入任务执行过程,在任务执行过程其需要完成引导普通世界操作系统启动功能和处理普通世界传输的指令。其中,指令是为普通世界应用程序调用安全世界服务所定义的一种消息格式,每条指令都由指令id、服务id、任务id、命令id、命令参数组成;服务是指安全操作系统能够支持的满足某类功能的任务实例的抽象;任务是竞争安全操作系统资源的最小运行单元,是安全操作系统调度的最小单元;命令是为了调用服务的某一个特定功能而设计的,每条命令由命令id和命令参数组成。每条指令的具体处理流程为:
[0010] ①判断指令id是否有效,若有效执行②,否则执行⑩;
[0011] ②判断服务id是否为调度任务服务id,若是执行③,否则执行⑩;
[0012] ③判断命令id是否为打开会话操作,若是则保存现场并根据命令参数创建任务并执行⑩;
[0013] ④判断命令id是否为关闭会话操作,若是则根据命令参数销毁任务并恢复现场斌执行⑩;
[0014] ⑤判断服务id是否为非调度服务id的其他有效服务id,若是执行⑥,否则执行⑩;
[0015] ⑥判断任务id是否为有效任务id,若是则启动与该任务id标识一致的任务实例并把CPU执行权交给该任务,否则执行⑩;
[0016] ⑦判断命令id是否为有效命令,若是则执行⑧,否则执行⑩;
[0017] ⑧处理命令,处理完成后执行⑨;
[0018] ⑨挂起当前任务,把CPU执行权交给调度任务并执行⑩;
[0019] ⑩调度任务切换当前世界为普通世界。
[0020] 特征3:如特征1所述,普通任务由调度任务完成对其的创建、启动、销毁等功能操作,其具体操作为:
[0021] (1)任务创建功能:
[0022] ①输入参数:任务属性信息,包括任务的服务id、服务名称、任务入口地址;
[0023] ②处理过程:
[0024] ——为新任务分配固定堆空间;
[0025] ——从分配的堆空间为新任务控制块分配空间,该任务控制块包括任务id、任务名称、任务状态、服务id、任务入口地址等属性;
[0026] ——设置任务的属性信息。
[0027] ③返回参数:若创建成功返回任务id(为正整数),否则返回0。
[0028] (2)任务启动功能:
[0029] ①输入参数:任务id;
[0030] ②处理过程:
[0031] ——通过任务id获取任务控制块;
[0032] ——修改任务控制块中任务运行状态属性为准备执行;
[0033] ③返回参数:若正常执行返回0,否则返回-1。
[0034] (3)任务销毁:
[0035] ①输入参数:任务id;
[0036] ②处理过程:
[0037] ——通过任务id获取任务控制块;
[0038] ——释放任务控制块占用的堆空间;
[0039] ——释放任务占用的堆空间。
[0040] ③返回参数:若正常执行返回0,否则返回-1。
[0041] 特征4:如图1中信息寄存模块所示,在普通任务销毁前可以寄存信息到信息寄存箱中,在该服务的一个任务实例下次创建并执行时可以从信息寄存箱中获取上次寄存的信息,每个寄存的信息都由信息id和信息内容组成,其进行的具体处理操作为:
[0042] (1)信息寄存:
[0043] ①输入参数:服务id和寄存信息内容;
[0044] ②处理过程:
[0045] ——在信息寄存箱中为寄存信息申请空间;
[0046] ——拷贝寄存信息内容到申请的空间;
[0047] ——设置信息id为服务id。
[0048] ③返回参数:若正常执行返回0,否则返回-1。
[0049] (2)信息获取:
[0050] ①输入参数:服务id和寄存信息存储空间;
[0051] ②处理过程:
[0052] ——在信息寄存箱中查找信息id为服务id的信息;
[0053] ——拷贝查找的信息的信息内容到寄存信息存储空间中;
[0054] ——释放该信息占用的空间。
[0055] ③返回参数:若正常执行返回0,否则返回-1。
[0056] 特征5:为传统应用程序提供了新的执行模式,具体如下所示:
[0057] (1)不使用本发明的应用程序的执行模式为:
[0058] ①在通用操作系统中启动应用程序;
[0059] ②在通用操作系统中执行应用程序的关键环节;
[0060] ③在通用操作系统中执行应用程序的普通环节;
[0061] ④在通用操作系统中结束应用程序。
[0062] (2)使用本发明的应用程序的执行模式为:
[0063] ①在通用操作系统中启动应用程序;
[0064] ②在面向任务的安全操作系统中执行应用程序的关键环节;
[0065] ③在通用操作系统中执行应用程序的普通环节;
[0066] ④在通用操作系统中结束应用程序。
[0067] 本发明针对TrustZone框架提供了一种面向任务的安全操作系统的实现方法,通过使用面向任务的安全操作系统,可以把应用程序的关键环节放到本发明的面向任务的安全操作系统中执行,进而达到应用程序执行过程中的关键环节的保护,不仅可以提升应用程序的抗攻击能力,还可以提升应用程序的抗盗版能力。
[0068] 本发明的整体架构和工作原理及流程可以从附图和具体实施方式获得。

附图说明

[0069] 图1为本发明面向任务的安全操作系统的整体架构示意图。
[0070] 图2为本发明面向任务的安全操作系统的初始化过程示意图。
[0071] 图3为本发明面向任务的安全操作系统的初始化完成后的内存状态示意图。

具体实施方式

[0072] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0073] 图1中所示是本实施例中面向任务的安全操作系统的整体架构示意图。本发明的整体架构主要分为如下三个部分,该三个部分整体构成的包含硬件、操作系统软件的系统可以称为“嵌入式安全系统”:
[0074] (1)ARM TrustZone硬件安全平台。
[0075] (2)通用操作系统。在通用操作系统的内核层使用内核模块的方式封装安全操作系统的API接口,供上层应用程序调用,以使用安全操作系统提供的服务。
[0076] (3)面向任务的安全操作系统。面向任务的安全操作系统主要包括安全引导过程、任务管理模块、信息寄存模块、调度任务、安全API以及应用程序和服务。其中,安全引导过程主要完成一些软件相关的初始化工作以及调度任务的创建和启动;任务管理模块负责为安全操作系统提供任务管理机制,包括任务创建、任务启动、任务调度和任务销毁;信息寄存功能模块负责为安全操作系统提供信息寄存机制,包括信息寄存和信息获取;安全API负责为安全操作系统的应用程序和服务提供可调用的接口;调度任务负责安全操作系统与普通操作系统之间的切换,同时负责安全操作系统内部的任务之间的切换。
[0077] 图2中所示是本发明实施例中面向任务的安全操作系统的初始化过程示意图。本实施例中,初始化过程主要分为以下几个步骤:
[0078] (1)执行安全引导过程。系统上电后,先执行安全引导过程,在该过程需要完成一些软硬件初始化的工作,以及调度任务的创建和启动工作。
[0079] (2)执行调度任务。调度任务主要完成引导普通世界操作系统启动功能和处理普通世界传输的指令。
[0080] 图3中所示是本发明实施例中面向任务的安全操作系统的初始化完成后的内存状态示意图。本实施例中,面向任务的安全操作系统的初始化完成后的内存被划分为两个区域,其中低地址区域被安全操作系统使用,高地址区域被通用操作系统使用,这两个区域的大小由安全操作系统程序和硬件内存大小决定。本发明的面向任务的安全操作系统的初始化完成后的安全操作系统内存区域主要分为以下几个部分:
[0081] (1)Framebuffer缓冲区。用于存放Framebuffer机制的显示数据。
[0082] (2)Code段。包含程序执行时的代码数据。
[0083] (3)Init段。包含安全操作系统初始化的汇编程序指令。
[0084] (4)Data段。包含安全操作系统中已初始化的数据。
[0085] (5)Bss段。包含安全操作系统中未初始化的数据。
[0086] (6)动态内存区域。供系统动态分配和回收的内存区域。
[0087] 以上通过简单的说明描述了本发明提供的面向任务的安全操作系统的实现方法和工作原理以及关键功能模块调用接口及伪代码实现,本领域的技术人员应该理解,在不超出本发明实质和范围的情况下,可以进行修改,本发明的保护范围应以权利要求所述为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈