CN105787391B - 基于TrustZone硬件的面向任务的安全操作系统 - Google Patents
基于TrustZone硬件的面向任务的安全操作系统 Download PDFInfo
- Publication number
- CN105787391B CN105787391B CN201410808447.1A CN201410808447A CN105787391B CN 105787391 B CN105787391 B CN 105787391B CN 201410808447 A CN201410808447 A CN 201410808447A CN 105787391 B CN105787391 B CN 105787391B
- Authority
- CN
- China
- Prior art keywords
- task
- operating system
- secure operating
- information
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种面向任务的安全操作系统。该面向任务的安全操作系统基于TrustZone硬件框架,具体包括安全引导过程、任务管理模块、信息寄存模块、调度任务、安全API以及应用程序和服务;其中安全引导过程完成软件相关的初始化工作以及调度任务的创建和启动;任务管理模块负责为安全操作系统提供任务管理机制;信息寄存模块负责为安全操作系统提供信息寄存机制;安全API负责为安全操作系统的应用程序和服务提供可调用的接口;调度任务负责安全操作系统与普通操作系统之间的切换,同时负责安全操作系统内部的任务之间的切换。本发明可以达到应用程序执行过程中的关键环节的保护,提升应用程序的抗攻击能力和抗盗版能力。
Description
技术领域
本发明属于移动终端安全领域,更属于嵌入式操作系统领域,主要涉及一种面向任务的安全操作系统的设计与实现方法,更确切地是涉及一种基于ARM TrustZone硬件安全扩展技术的系统软件实现方法。
背景技术
随着互联网向移动互联网的延伸,中国移动互联网行业得到持续快速的发展。根据CNNIC报告显示,截止到2014年6月中国手机网民规模达到5.27亿,较2013年底增加2699万人,同比增长83.4%,中国手机网民规模首次超越传统PC用户规模。以此同时,智能手机、平板电脑等移动互联网智能终端也出现了各式各样的安全隐患,其不亚于PC端的安全隐患,例如,手机病毒、风险软件、钓鱼网站、流氓软件、垃圾短信、山寨APP等,这些都在考验着用户的移动终端信息安全承受能力。随着移动支付类应用、移动商务应用、手机游戏等移动终端应用的快速增长,移动终端的安全隐患受到越来越多的终端用户、安全专家、安全厂商等关注,其势必会成为未来几年甚至几十年人们值得关注的热点技术问题。
为保证移动智能终端的安全,ARM(Advanced RISC Machines简称)公司提出TrustZone安全硬件体系结构,该体系结构对ARM处理器内核进行扩展,使其能够以分时的方式安全有效地在两个虚拟处理器上执行代码,这两个虚拟处理器所处的执行环境分别被称为安全世界和普通世界。为了支持一个完成的执行环境,在每个世界都有其独立专用的内存、缓存、存储、外设等硬件设备。为了与传统移动终端生态系统的紧密结合,普通世界可以执行通用操作系统(例如Android、Ubuntu、嵌入式Linux等);为了执行安全操作,安全世界可以执行与安全相关的代码和程序;为了使两个世界形成一个统一的安全增加的整体系统,ARM TrustZone为两个世界提供了相互交互的机制(例如可以使用SMC切换世界,可以使用共享普通世界内存的方式进行数据交互等)。然而,ARM针对移动智能终端提出的TrustZone安全硬件体系结构仅是针对硬件平台而言的,到目前为止还未有一套完整的对TrustZone定义的整个硬件平台资源进行有效管理的系统软件。
发明内容
针对上述问题,本发明的目的在于提供一种基于TrustZone硬件平台的面向任务的安全操作系统的实现方法。该方法定义了一种TrustZone硬件平台之上的软件系统的整体架构,该架构包括安全世界的实现方法以及普通世界与安全世界的交互方法。
本发明所解决的技术问题可以采用以下技术方案来实现。
一种面向任务的安全操作系统,包括安全引导过程、任务管理模块、信息寄存模块、调度任务、安全API以及应用程序和服务;其中,安全引导过程完成软件相关的初始化工作以及调度任务的创建和启动;任务管理模块负责为安全操作系统提供任务管理机制;信息寄存模块负责为安全操作系统提供信息寄存机制;安全API负责为安全操作系统的应用程序和服务提供可调用的接口;调度任务负责安全操作系统与普通操作系统之间的切换,同时负责安全操作系统内部的任务之间的切换。
具体来说,上述面向任务的安全操作系统,其特征如下所示:
特征1:本发明包括两种任务,分别为调度任务和普通任务。调度任务,主要完成通用操作系统的启动并切换当前世界为普通世界功能、接收通用操作系统指令并执行、保存安全世界现场、恢复安全世界现场、创建新服务任务、切换当前CPU执行的任务功能。普通任务可以由第三方厂商提供,完成其特定的功能任务。
特征2:如特征1所述,调度任务在安全引导过程中创建并启动,随后进入任务执行过程,在任务执行过程其需要完成引导普通世界操作系统启动功能和处理普通世界传输的指令。其中,指令是为普通世界应用程序调用安全世界服务所定义的一种消息格式,每条指令都由指令id、服务id、任务id、命令id、命令参数组成;服务是指安全操作系统能够支持的满足某类功能的任务实例的抽象;任务是竞争安全操作系统资源的最小运行单元,是安全操作系统调度的最小单元;命令是为了调用服务的某一个特定功能而设计的,每条命令由命令id和命令参数组成。每条指令的具体处理流程为:
①判断指令id是否有效,若有效执行②,否则执行⑩;
②判断服务id是否为调度任务服务id,若是执行③,否则执行⑩;
③判断命令id是否为打开会话操作,若是则保存现场并根据命令参数创建任务并执行⑩;
④判断命令id是否为关闭会话操作,若是则根据命令参数销毁任务并恢复现场斌执行⑩;
⑤判断服务id是否为非调度服务id的其他有效服务id,若是执行⑥,否则执行⑩;
⑥判断任务id是否为有效任务id,若是则启动与该任务id标识一致的任务实例并把CPU执行权交给该任务,否则执行⑩;
⑦判断命令id是否为有效命令,若是则执行⑧,否则执行⑩;
⑧处理命令,处理完成后执行⑨;
⑨挂起当前任务,把CPU执行权交给调度任务并执行⑩;
⑩调度任务切换当前世界为普通世界。
特征3:如特征1所述,普通任务由调度任务完成对其的创建、启动、销毁等功能操作,其具体操作为:
(1)任务创建功能:
①输入参数:任务属性信息,包括任务的服务id、服务名称、任务入口地址;
②处理过程:
——为新任务分配固定堆空间;
——从分配的堆空间为新任务控制块分配空间,该任务控制块包括任务id、任务名称、任务状态、服务id、任务入口地址等属性;
——设置任务的属性信息。
③返回参数:若创建成功返回任务id(为正整数),否则返回0。
(2)任务启动功能:
①输入参数:任务id;
②处理过程:
——通过任务id获取任务控制块;
——修改任务控制块中任务运行状态属性为准备执行;
③返回参数:若正常执行返回0,否则返回-1。
(3)任务销毁:
①输入参数:任务id;
②处理过程:
——通过任务id获取任务控制块;
——释放任务控制块占用的堆空间;
——释放任务占用的堆空间。
③返回参数:若正常执行返回0,否则返回-1。
特征4:如图1中信息寄存模块所示,在普通任务销毁前可以寄存信息到信息寄存箱中,在该服务的一个任务实例下次创建并执行时可以从信息寄存箱中获取上次寄存的信息,每个寄存的信息都由信息id和信息内容组成,其进行的具体处理操作为:
(1)信息寄存:
①输入参数:服务id和寄存信息内容;
②处理过程:
——在信息寄存箱中为寄存信息申请空间;
——拷贝寄存信息内容到申请的空间;
——设置信息id为服务id。
③返回参数:若正常执行返回0,否则返回-1。
(2)信息获取:
①输入参数:服务id和寄存信息存储空间;
②处理过程:
——在信息寄存箱中查找信息id为服务id的信息;
——拷贝查找的信息的信息内容到寄存信息存储空间中;
——释放该信息占用的空间。
③返回参数:若正常执行返回0,否则返回-1。
特征5:为传统应用程序提供了新的执行模式,具体如下所示:
(1)不使用本发明的应用程序的执行模式为:
①在通用操作系统中启动应用程序;
②在通用操作系统中执行应用程序的关键环节;
③在通用操作系统中执行应用程序的普通环节;
④在通用操作系统中结束应用程序。
(2)使用本发明的应用程序的执行模式为:
①在通用操作系统中启动应用程序;
②在面向任务的安全操作系统中执行应用程序的关键环节;
③在通用操作系统中执行应用程序的普通环节;
④在通用操作系统中结束应用程序。
本发明针对TrustZone框架提供了一种面向任务的安全操作系统的实现方法,通过使用面向任务的安全操作系统,可以把应用程序的关键环节放到本发明的面向任务的安全操作系统中执行,进而达到应用程序执行过程中的关键环节的保护,不仅可以提升应用程序的抗攻击能力,还可以提升应用程序的抗盗版能力。
本发明的整体架构和工作原理及流程可以从附图和具体实施方式获得。
附图说明
图1为本发明面向任务的安全操作系统的整体架构示意图。
图2为本发明面向任务的安全操作系统的初始化过程示意图。
图3为本发明面向任务的安全操作系统的初始化完成后的内存状态示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1中所示是本实施例中面向任务的安全操作系统的整体架构示意图。本发明的整体架构主要分为如下三个部分,该三个部分整体构成的包含硬件、操作系统软件的系统可以称为“嵌入式安全系统”:
(1)ARM TrustZone硬件安全平台。
(2)通用操作系统。在通用操作系统的内核层使用内核模块的方式封装安全操作系统的API接口,供上层应用程序调用,以使用安全操作系统提供的服务。
(3)面向任务的安全操作系统。面向任务的安全操作系统主要包括安全引导过程、任务管理模块、信息寄存模块、调度任务、安全API以及应用程序和服务。其中,安全引导过程主要完成一些软件相关的初始化工作以及调度任务的创建和启动;任务管理模块负责为安全操作系统提供任务管理机制,包括任务创建、任务启动、任务调度和任务销毁;信息寄存功能模块负责为安全操作系统提供信息寄存机制,包括信息寄存和信息获取;安全API负责为安全操作系统的应用程序和服务提供可调用的接口;调度任务负责安全操作系统与普通操作系统之间的切换,同时负责安全操作系统内部的任务之间的切换。
图2中所示是本发明实施例中面向任务的安全操作系统的初始化过程示意图。本实施例中,初始化过程主要分为以下几个步骤:
(1)执行安全引导过程。系统上电后,先执行安全引导过程,在该过程需要完成一些软硬件初始化的工作,以及调度任务的创建和启动工作。
(2)执行调度任务。调度任务主要完成引导普通世界操作系统启动功能和处理普通世界传输的指令。
图3中所示是本发明实施例中面向任务的安全操作系统的初始化完成后的内存状态示意图。本实施例中,面向任务的安全操作系统的初始化完成后的内存被划分为两个区域,其中低地址区域被安全操作系统使用,高地址区域被通用操作系统使用,这两个区域的大小由安全操作系统程序和硬件内存大小决定。本发明的面向任务的安全操作系统的初始化完成后的安全操作系统内存区域主要分为以下几个部分:
(1)Framebuffer缓冲区。用于存放Framebuffer机制的显示数据。
(2)Code段。包含程序执行时的代码数据。
(3)Init段。包含安全操作系统初始化的汇编程序指令。
(4)Data段。包含安全操作系统中已初始化的数据。
(5)Bss段。包含安全操作系统中未初始化的数据。
(6)动态内存区域。供系统动态分配和回收的内存区域。
以上通过简单的说明描述了本发明提供的面向任务的安全操作系统的实现方法和工作原理以及关键功能模块调用接口及伪代码实现,本领域的技术人员应该理解,在不超出本发明实质和范围的情况下,可以进行修改,本发明的保护范围应以权利要求所述为准。
Claims (7)
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所述面向任务的安全操作系统执行应用程序的方法,其特征在于,包括如下步骤:
①在通用操作系统中启动应用程序;
②在面向任务的安全操作系统中执行应用程序的关键环节;
③在通用操作系统中执行应用程序的普通环节;
④在通用操作系统中结束应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410808447.1A CN105787391B (zh) | 2014-12-22 | 2014-12-22 | 基于TrustZone硬件的面向任务的安全操作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410808447.1A CN105787391B (zh) | 2014-12-22 | 2014-12-22 | 基于TrustZone硬件的面向任务的安全操作系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105787391A CN105787391A (zh) | 2016-07-20 |
CN105787391B true CN105787391B (zh) | 2019-02-01 |
Family
ID=56386459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410808447.1A Active CN105787391B (zh) | 2014-12-22 | 2014-12-22 | 基于TrustZone硬件的面向任务的安全操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105787391B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959916B (zh) * | 2017-05-22 | 2022-01-14 | 华为技术有限公司 | 用于访问安全世界的方法、装置和系统 |
CN107168747B (zh) * | 2017-05-27 | 2020-12-29 | 努比亚技术有限公司 | 移动终端配置的区分方法、装置及计算机可读存储介质 |
CN111596962B (zh) * | 2019-02-20 | 2023-05-30 | 中标软件有限公司 | 一种基于高速协议通道的实时微内核系统及其初始化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103477343A (zh) * | 2011-02-24 | 2013-12-25 | 信特尼有限公司 | 操作特别是移动终端中的微处理器单元的方法 |
US8839455B1 (en) * | 2009-09-23 | 2014-09-16 | Parallels IP Holdings GmbH | Security domain in virtual environment |
CN104091135A (zh) * | 2014-02-24 | 2014-10-08 | 电子科技大学 | 一种智能终端安全系统及安全存储方法 |
-
2014
- 2014-12-22 CN CN201410808447.1A patent/CN105787391B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8839455B1 (en) * | 2009-09-23 | 2014-09-16 | Parallels IP Holdings GmbH | Security domain in virtual environment |
CN103477343A (zh) * | 2011-02-24 | 2013-12-25 | 信特尼有限公司 | 操作特别是移动终端中的微处理器单元的方法 |
CN104091135A (zh) * | 2014-02-24 | 2014-10-08 | 电子科技大学 | 一种智能终端安全系统及安全存储方法 |
Non-Patent Citations (1)
Title |
---|
基于智能终端可信操作系统的安全支付研究与实现;罗净;《万方数据库》;20140917;第21-46页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105787391A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109155782B (zh) | 容器之间的进程间通信 | |
WO2017114283A1 (zh) | 一种在物理主机中处理读/写请求的方法和装置 | |
CN103207797A (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
US9367345B1 (en) | Power efficient cross-VCPU notification by VM function | |
CN104598294A (zh) | 用于移动设备的高效安全的虚拟化方法及其设备 | |
CN105787391B (zh) | 基于TrustZone硬件的面向任务的安全操作系统 | |
CN105138905A (zh) | Linux应用程序的隔离运行方法 | |
US9003094B2 (en) | Optimistic interrupt affinity for devices | |
Wu et al. | Android unikernel: Gearing mobile code offloading towards edge computing | |
US10417023B2 (en) | GPU simulation method | |
CN108021449A (zh) | 一种协程实现方法、终端设备及存储介质 | |
WO2018040845A1 (zh) | 一种计算资源调度方法及装置 | |
CN111414256A (zh) | 基于麒麟移动操作系统的应用程序进程派生方法、系统及介质 | |
CN113157362A (zh) | 一种应用于Linux上Android多窗口显示方法 | |
CN103995733A (zh) | 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法 | |
CN106775668A (zh) | 跨操作系统的移动应用程序开发框架及实现方法 | |
CN107908957B (zh) | 一种智能终端的安全运行管理方法及系统 | |
CN102929691A (zh) | 一种面向arm多核处理器服务器平台的系统虚拟机 | |
CN109388435A (zh) | 实现app同时多次开启操作的方法和装置 | |
CN101655804B (zh) | 虚拟操作系统构建方法及装置 | |
CN105468448B (zh) | 一种面向异构众核环境的从核系统调用实现方法 | |
CN107844304A (zh) | 虚拟机热升级方法及装置 | |
CN101369258B (zh) | 输入输出控制系统 | |
CN103064739B (zh) | 一种云计算中虚拟机的控制方法及装置 | |
WO2023165318A1 (zh) | 资源处理系统以及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |