工程科学与技术   2017, Vol. 49 Issue (1): 151-158
TSSP:一种TrustZone架构中的会话调度方案
赵波1,2, 马骏1,2, 肖钰1,2, 刘育博1,2     
1. 武汉大学 计算机学院, 湖北 武汉 430072;
2. 空天信息安全与可信计算教育部重点实验室, 湖北 武汉 430072
基金项目: 国家“863”计划资助项目(2015AA016002);江苏省自然科学基金青年基金资助项目(BK20130372);国家“973”计划资助项目(2014CB340600)
摘要: 针对TrustZone架构中,恶意CA长时间占用会话资源引起DOS攻击的问题,提出了一种TrustZone架构中的会话调度方案(TSSP)。结合TrustZone会话执行的特点,给出了会话等待队列、执行队列的构建方法,同时引入了等待队列会话优先级、执行队列会话剩余价值的计算方法,在此基础上,对会话调度策略进行详细的阐述。通过实验证明了本方案能够保证高优先级的会话优先执行,同时能够有效抵抗由于恶意CA长时间占用会话资源引起的DOS攻击。最后,从安全与性能两个方面对加入会话调度机制后的系统进行评估。实验结果表明,加入调度机制后,在保证系统安全性的基础上,增加的性能开销在0.01~0.27 s之间。
关键词: DOS攻击    会话调度    安全    
TSSP: A Session Scheduling Method in TrustZone Architecture
ZHAO Bo1,2, MA Jun1,2, XIAO Yu1,2, LIU Yubo1,2     
1. Computer School, Wuhan Univ., Wuhan 430072, China;
2. Key Lab. of Aerospace Info. Security and Trusted Computing of Ministry of Education, Wuhan Univ., Wuhan 430072, China
Abstract: In TrustZone architecture, a malicious CA occupying session resources for a long time usually introduces DOS attacks.To solve this problem, a TrustZone session scheduling protocol (TSSP) was proposed.Combined with the features of session execution in TrustZone architecture, the construction method of session waiting queue and execution queue was introduced.Meanwhile, the calculation methods of session priority in waiting list and session surplus value in executing list were proposed.Based on this, the session scheduling strategy was detailed described.The experimental results showed that this protocol could ensure that session with high priority be executed first and could resist DOS attack induced by malicious CA occupying session resources for a long period of time.Finally, the security and performance evaluations of the system added with session scheduling mechanism were done.The results showed that on the premise of ensuring system security the performance overhead added is between 0.01 and 0.27 s.
Key words: denial-of-service attack    session scheduling    security    

近年来,嵌入式设备以其良好的开放性、交互性、友好用户体验性和平台便捷性等特点,越来越受到人们青睐[1],其安全性也日益被关注,TrustZone技术作为一套嵌入式系统级安全解决方案应运而生,其硬件隔离性使其能够抵抗大多数软件攻击[2],得到广泛应用。

目前对TrustZone技术的安全研究大多TrustZone技术自身设计的缺陷考虑较少,针对具体实现时的逻辑错误,如整数溢出[3]、缓冲区溢出[4]、提权漏洞[5]等,本文基于多会话的环境下发现TrustZone中存在一个安全问题:在多会话的情况下,当安全世界会话资源全被占用时,其他的会话请求会被拒绝,导致高优先级的会话请求无法被及时响应,此外,恶意客户端应用程序(client application, CA)通过请求建立会话,长时间占用会话资源,耗尽安全世界会话资源,会引起DOS攻击,导致合法的请求无法被响应,特别地,不规范的编程会加剧这一问题。现有的调度算法如先到先服务调度算法[6]、短作业优先调度算法[7]、轮转调度算法[8]、多级反馈队列调度算法[9-10]等,其调度策略过于单一,缺少对执行队列的考虑,无法抵抗由于恶意CA长时间占用会话资源引起的DOS攻击,在TrustZone架构中并不适用。

针对以上安全问题,本文在对TrustZone会话执行特点分析的基础上,提出了一种TrustZone架构中会话调度方案,方案首先给出了等待队列以及执行队列的构建方法,并给出等待队列会话优先级以及执行队列会话剩余价值的计算方法,以此为基础对等待队列中的会话进行调度。最后在Hikey开发板上实现了该调度方案。本文考虑由于恶意CA长时间占用会话资源引起的DOS攻击,不考虑恶意软件发起大量会话连接请求引起的DOS攻击。

1 背景 1.1 TrustZone安全技术

TrustZone安全技术是由ARM公司提出了的一套系统级安全解决方案,作为一种硬件安全扩展技术,自ARM v6开始引入ARM架构规范。其将系统的硬件和软件资源划分为2个执行环境:安全世界(Secure world)和普通世界(Normal world)[11]。2个世界都有自己的系统软件、应用软件、内存区及外围设备。通过TrustZone的硬件逻辑,建立一个隔离的可信执行环境[12](trusted execution environment, TEE),为安全敏感应用提供安全服务,使得安全世界的资源不能被普通世界的组件访问,将其与普通环境隔离开来。安全世界与普通世界主要通过安全监控器调用(SMC)进行交互,由安全监控器(monitor)控制两个世界的切换[13]。TrustZone的硬件隔离性能够抵抗大部分的软件攻击。

1.2 会话处理过程

普通世界的CA通过SMC调用请求安全世界的TA (trusted application),CA需要调用TA时,首先会请求建立会话Session,安全世界处理该请求成功后,才能进行后续数据交互,会话创建成功后,CA将参数传入普通世界的驱动层,由其完成SMC指令的构建,monitor会保存普通世界的上下文,并切换到安全世界,将SMC指令发送给对应的TA进行处理。

Session的管理由安全世界内核(TEEOS)负责[14],安全世界接收到普通世界建立会话的请求后,对请求合法性进行认证,查看当前会话池是否有会话可用,如果没有,直接拒绝创建会话的请求。

2 威胁分析与威胁建模 2.1 威胁分析

通常情况下,这一威胁很难被发现,主要由于会话的生命周期较短,很难耗尽会话资源。然而,恶意程序却很容易利用这一缺陷,导致正常的请求无法响应,攻击者只需要静态分析出TA的UUID信息,在普通世界请求建立会话,并长时间占用会话资源,当请求建立的会话数达到TEEOS所能同时处理的最大数时,即可导致其他合法的会话请求被拒绝。此外,不规范的编程也会加剧这一问题,如果CA中请求的会话资源没有被释放,该会话请求也会长时间占用会话资源。导致可用的会话资源减少。由于安全世界内核(TEEOS)缺少对会话的调度机制,导致这一威胁更加严重。

基于以上的分析,在Hikey开发板上进行攻击实验,在Hikey开发板上运行TrustZone的开源实现OP_TEE, 实验效果如图 12所示。

图1 Attack_ca 7 & 占用会话资源 Fig. 1 Attack_ca 7 & occupy session resources

图2 正常请求被拒绝 Fig. 2 Deny of normal request

OP_TEE中支持的会话数上限为7,attack_ca为恶意CA,normal_ca为合法CA,attack_ca 7 & 请求开启7个会话并长时间占据会话资源,用于耗尽安全世界的会话资源。此时,执行normal_ca,会返回错误err=0xffff000c, 表示无可用会话资源。

2.2 威胁建模

TrustZone中,普通世界CA通过会话的方式请求安全世界的TA,本文假定普通世界的n个CA在较短时间间隔请求创建会话,按照请求的时间顺序,对CA进行编号CA1CA2, …, CAnCAi(in)请求创建的会话记为Sessionij,TrustZone中对发送给安全世界的会话没有限制,即CA能够以合法的方式请求创建会话。

TEEOS会按照会话请求的时间顺序对其进行处理,由于安全世界的会话资源有限,能够同时处理的会话请求存在限制,本文假设TEEOS支持的最大会话数为MAX,常见的MAX取值为7、15等,按照会话请求的时间顺序对Sessionij重新编号,编号后的会话记为Session1, Session2, …, Sessioni×j,假设某一时刻T,有m个会话处于活跃状态,记为:

$ \left\{ {Sessio{n_m}|m \in i \times j, m < MAX} \right\} $ (1)

Sessionm持续的时间记为tm,则:

$ {T_{\min }} = \min \left( {{t_m}} \right) $ (2)

式中,Tmin表示m个会话中持续时间最短会话的时间。在[TT+Tmin]时间内,m个会话处于活跃状态,假设此时有k个会话请求Sessionm+k记为:

$ \left\{ {Sessio{n_{m + k}}|m + k > MAX} \right\} $ (3)

很显然,满足式(4)的Sessiond将被拒绝,威胁模型如图 3所示。

图3 威胁模型 Fig. 3 Threat model

$ \left\{ {Sessio{n_d}|MAX < d \le m + k} \right\} $ (4)
3 调度方案设计

首先给出了加入会话调度后的系统架构,并对加入的主要模块进行介绍,之后结合TrustZone会话执行的特点给出了会话等待队列、执行队列的构建方法,在此基础上对会话调度策略进行详细的阐述,并对加入会话调度方案后的有益效果进行分析。

3.1 架构

TrustZone技术规范要求安全世界代码尽量小,通过精简安全世界的代码,一定程度上能够提高其安全性。同时,TrustZone架构中Normal world具有足够的处理器资源,而Secure world中处理器资源一般较匮乏。基于此,本方案在现有TrustZone架构中,主要增加了Session调度模块(SSM)与度量代理模块(MAM)。由于SSM需要处理所有的会话请求,需要常驻内存,故将其部署在Normal world中,MAM功能简单,代码精简,将其部署到Secure world中,用于保证SSM的安全,而MAM自身的安全性由TrustZone的硬件隔离机制保证。架构如图 4所示,接下来详细描述各模块的功能。

图4 总体架构图 Fig. 4 Overall architecture

1) Session调度模块(SSM)

SSM模块部署在Normal world内核态,主要用于调度CA的会话请求,为本架构的关键部分,该模块包含2个子模块:

a.策略执行模块(PEM)

PEM用于对接收到的会话请求进行处理,包括会话优先级计算、等待队列、执行队列的构建、会话资源可用状态查等。

b.CA关键信息存储模块(CSM)

用于存储CA相关信息,包括CA的紧急程度、CA的身份信息等,用于PEM对优先级的计算。

2)度量代理模块(MAM)

MAM模块部署在Secure world中,主要用于监控会话的使用情况以及SSM模块的动态完整性监控,该模块包含2个子模块:

a.安全监控模块(SMM)

SMM主要用于监控会话使用情况以及SSM模块的安全状态。

b.安全报告模块(SPM)

SPM主要用于响应SSM会话资源可用状态查询请求,报告安全世界的会话使用情况,同时在SSM模块完整性遭到破坏后,报告给TEEOS。

3.2 会话调度

将讨论TrustZone中会话的特点,在此基础上讨论等待队列、执行队列的构建方法,提出等待队列会话优先级计算方法以及执行队列会话实时剩余价值计算方法,并给出对等待队列会话调度的策略。

3.2.1 会话特点

TrustZone中会话具有以下特点:

1)一个普通世界的CA能够请求多个会话,一个会话绑定一个安全世界的TA,会话由CA与TA唯一标识。

2)会话属于非原子操作,可由TEEOS中断,在设计调度策略时,能够将会话挂起。

3) TEEOS支持并发处理会话,其并发处理的会话数是有限的,能同时处理的最大会话数由TEEOS决定。

基于会话的特点,给出会话的定义如下:

定义1   Sessioni表示CAi请求创建的会话,Sessioni可表示为Sessioni(Twi, TdiStateiMergi),其中, TwiTdiStateiMergi为会话具有的一些属性:

1)Twi表示Sessioni在等待队列中等待的时间;

2)Tdi表示Sessioni已执行的时间;

3)Statei表示Sessioni的状态,取值为W表示等待,D表示执行;

4)Mergi表示Sessioni的紧急程度。

3.2.2 等待队列、执行队列构建

根据上述会话的特点及定义,给出等待队列以及执行队列的定义如下:

定义2   Wlist表示等待队列,w_session表示等待队列中的条目,w_session可表示为w_session(ca_id, ta_id, sessionpri), 其中, ca_idta_idsessionpri分别表示CA的身份信息,TA的身份信息,会话以及会话的优先级,Wlistw_session的集合,Wlist可表示为:

$ Wlist = \left\{ {w\_sessio{n_i}|i \in N} \right\} $ (5)

定义3   Dlist表示执行队列,d_session表示执行队列中的条目,d_session可表示为d_session(ca_id, ta_id, sessionrlp),其中, rlp为会话剩余价值,Dlistd_session的集合,Dlist可记为:

$ Dlist = \left\{ {d\_sessio{n_i}|i \in N} \right\} $ (6)

WlistDlist在系统初始化时,初始为空,系统运行后,普通世界CA请求与安全世界TA通信时,请求建立Session,SSM会截获该请求,PEM模块请求MAM获取当前TEEOS会话的可用状态,如果会话资源不可用,则将Session加入到Wlist中,否则,将Session发送给TEEOS,创建会话,并将该Session加入到Dlist。相应参数的填充由PEM完成,详细过程将在后文描述。

3.2.3 会话优先级、会话剩余价值

定义4    pri表示会话优先级,其由CA以及等待时间确定,pri可表示为:

$ pri = \frac{{a \times merg + c \times wait\_time}}{{b \times p\_dealtime}} $ (7)

式中, abc为非负数,merg表示CA的紧急程度,p_dealtime表示处理该会话预计耗时,wait_time表示会话在等待队列中等待时间。

参数abc由系统自身的属性决定,p_dealtime为自优化参数,其随着会话的调度自我优化,p_dealtime0为会话第1次运行的时间,假设第1次运行时,有会话资源可用则p_dealtimen可表示为:

$ p\_dealtim{e_n} = \frac{{p\_dealtim{e_{n - 1}}}}{2} + \frac{{p\_dealtim{e_{n - 2}}}}{2}, n \ge 2 $ (8)

定义5   rlp表示会话剩余价值,定义为:

$ rlp = \alpha \left( t \right)\frac{{\beta \left( {a \times merg + c \times wait\_time} \right)}}{{b \times p\_dealtime}} $ (9)

式中,wait_time为会话在进入执行队列前已经等待的时间。

$ \alpha \left( t \right) = \left\{ \begin{array}{l} kt + 1, 0 < t \le \bar T, k < 0;\\ \frac{1}{{{a^{(t - \bar T)}} - \frac{{k\bar T}}{{kT + 1}}}}, t > \bar T, k < 0 \end{array} \right. $ (10)

式中,$\bar T=p\_dealtime, \beta > 1$, β用于保证会话能占据理论上足够长的会话时间, k的取值需保证$k\bar T + 1 > 0$对所有会话都成立。

可见,会话的优先级priCA以及等待时间确定,abc参数的配置由系统启动时配置,目的在于使该调度算法更具通用性,能够适用于各种嵌入式系统的需求,如通过增大b的值,能够保证耗时短的会话得到优先响应。在安全世界存储了默认的abc的值,通过设计一个TA提供管理员配置参数的接口。

rlp用于表示正在执行的会话优先级随时间的变化关系,在t < p_dealtime时, 其剩余价值随时间线性递减,当t达到p_dealtime后,其剩余价值急剧减少,当t足够大时,其剩余价值趋近于0。即会话执行的时间超过了预期的时间,迅速减小,能够在调度时优先换出。

3.2.4 调度策略设计

基于以上定义,提出一种基于剩余价值的会话优先级调度策略,该调度为抢占式的。

策略会截获发送给TEEOS的创建会话的请求,PEM请求获取TEEOS当前会话使用情况,如果会话全部被占用,需计算会话的优先级,并加入到Wlist,PEM会从Wlist中将拥有最大pri的会话Sessionw取出与Dlist中拥有最小rlp的会话Sessiond比较,如果pri>rlp,则挂起Sessiond,并处理Sessionw会话请求,算法描述如下:

算法1   基于剩余价值的会话优先级调度策略

输入:Sessioni;

输出:从Wlist中获取待执行的Session

Begin:

1.Session_is_ available();

2.if TRUE;

  Return Sessioni

3.Else

  Context=

  Get_session_infomation(Sessioni);

  Pri=Cal_pri(contextSessioni);

  Pass_to_Wlist(Sessioni);

4.Loop:

  (Session)max=Max_pri_in_Wlist();

  Search_in_rlptable();

  If True

    Return (Session)max;

5.goto Loop;

END

其中,Session_is_available()用于查询当前TEEOS会话的可用状态,Cal_pri(ContextSessioni)用于计算会话的优先级,Get_Session_infomation(Sessioni)用于查询会话的基本信息包括会话的紧急程度等。

定理1  不会存在某一个会话常驻等待队列。

证明:假设存在会话Sessioni常驻等待队列,即等待时间T很大时,此时Sessioni的优先级pri会很大,显然执行队列中存在Sessionjrlp < pri,与算法1相悖,从而定理1得证。

定理2   Sessioni常驻执行队列的必要条件为:Wlist为空。

证明:采用反证法证明,假设Wlist非空,存在Sessionj排在等待队列中,由于Sessioni常驻执行队列,即执行时间T很大,其对应的rlp趋近于0,显然Sessionj的优先级pri>rlp,故Sessioni将被换出,与Sessioni常驻内存相悖,所以Wlist为空,定理2得证。

算法1能够保证在发生会话竞争时,高优先级的会话的得到优先响应。定理2可以解决恶意CA以及软件编程错误导致的会话常驻内存引起的问题。

4 基于TSSP的TrustZone架构实现 4.1 开发工具和环境介绍

基于嵌入式系统的开发需要宿主机环境,嵌入式开发板实验环境以及嵌入式交叉编译环境,交叉编译即在宿主机上编译生成可在目标机上运行的可执行程序[1], 本实验在PC (Ubuntu:14.04)上构建ARM交叉编译环境,编译出hikey开发板上的固件程序。

1)宿主机环境

  a.CPU:AMD A6-4400M

  b.内存:4 GB

  c.Ubuntu:14.04

  d.交叉编译工具:arm-linux-gcc

 e.串口调试工具:minicom

2)目标板环境

  a.开发板:hikey开发板

  b.CPU:HiSilicon Kirin 620

  c.存储:2 GB LPDDR3

  d.TrustZone:OP_TEE

  e.普通世界内核:linux

4.2 SSM模块的实现

SMM主要功能包括处理CA的创建会话请求,安全世界会话可用状态查询、等待队列、执行队列的构建以及CA关键信息存储。

4.2.1 等待队列、执行队列结构体定义

等待队列定义如下:

struct{

    TEEC_Context * Context

    TEEC_Session * Session

    TEEC_UUID * ta

    Time t

    }Wlist[MAX_LEN];

其中, Context表示会话的上下文,包含CA的相关信息,Session标识当前会话请求,ta表示会话请求的UUIDt表示该会话进入等待队列的时间。

执行队列定义如下:

    struct{

    TEEC_Context * Context

    TEEC_Session * Session

    TEEC_UUID * ta

    Time t

    }Dlist[MAX_LEN];

参数与Wlist结构的参数相同,唯一的不同在于t表示会话开始执行时的时间。

4.2.2 等待队列、执行队列相关操作实现

需实现对等待队列、执行队列的相关操作,主要函数包括:

函数1:

TEEC_Result Push_Session_Wlist ();

函数2:

TEEC_Session *Get_HPri_Session ();

函数3:

TEEC_Result Push_Session_Dlist ()。

函数4:

TEEC_Result Pop_Session_Dlist ()。

其中,函数1实现会话入等待队列操作,在安全世界会话全部占用的情况下,会调用该函数。函数2负责从Wlist中取出当前优先级大于Dlist中最小rlp的会话,函数2在Wlist非空的情况下会被循环调用。函数3实现会话入执行队列操作,当CA的会话请求、Wlist中的会话请求被成功处理,会调用该请求,将会话加入到Dlist。函数4实现会话出执行队列操作,在以下情况会调用该函数:1)会话正常结束;2)会话由于调度,被挂起加入到等待队列。

4.2.3 基于剩余价值的会话优先级调度策略的实现

主要需修改TEEC_OpenSession ()的实现,加入会话调度过程Session_Schedule (),其主要调用的函数包括:

函数1:Bool Session_is_available();

函数2:uint32_t Calculate ();

函数3:Get_Session_infomation()。

函数1实现对安全世界会话使用状态查询,函数2实现对会话优先级的计算,函数3实现对请求会话的CA的信息查询,进而获取CA的相关信息,主要包括CA的紧急程度信息,CA紧急程度信息由SMM存储。

4.3 MAM模块的实现

MAM模块主要用于监控会话的使用情况以及SMM模块的完整性度量,需在optee_os/core/arch/arm/kernel/tee_ta_manage.c中加入Session_qurey ()函数,Session_query ()响应会话可用状态查询操作,用于报告会话是否可用。

在optee_os/core/arch/arm/kernel中加入SMM_check.c文件,SMM_chech.c中实现对SMM模块的度量,SMM_check.c被编译成静态TA,在TEEOS启动时启动,用于监控SMM的完整性,如果SMM完整性被破坏,会抛出异常,报告给TEEOS,TEEOS会请求重启操作系统,并从备份中恢复SMM模块。

5 实验分析

实现调度策略主要为了解决以下问题:1)多会话情况下,避免会话请求直接被拒绝;2)能够保证高优先级的会话优先执行;3)能够有效抵抗长时间占用会话资源引起的DOS攻击。主要测试分析调度策略的有效性以及调度策略对系统性能的影响。测试环境为4.1节中的开发环境。

5.1 应对多会话能力

模拟多会话环境,设计总计1 000个需要请求创建会话的CA,在一个较小的时间段内以随机的方式执行,为了尽量还原真实的应用需求,1 000个CA中有800个与加解密相关的程序,分别测试了加入TSSP前和加入TSSP后,系统处理会话的能力,测试共执行4次,测试结果如表 1所示。

表1 测试结果 Tab. 1 Test results

实验结果表明,加入TSSP之前,四次均无法完成测试,而加入TSSP后,会话没有出现直接被拒绝的情况。加入TSSP之前,会话被拒绝的比率差距较大是由于每一次测试程序执行次序都是完全随机的,因此,执行队列中会话持续的时间也是完全随机的,是否有可用会话也是随机的。

5.2 高优先级优先调度测试

设计总计60个需要请求创建会话的CA,其中,30个CA的初始优先级较高,30个CA的初始优先级较低,CA的预计处理时间p_dealtime均为1.0 s。在一个较短时间段内,从30个低初始优先级CA中随机选取N个执行,从30个高初始优先级CA中随机选取7-N个执行,其中0 < N < 7,保证至少有一个低优先级会话在执行,同时,从高优先级CA、低优先级CA中各随机挑选一个执行,进行30次独立实验,测试结果如图 5所示。

图5 高低优先级优先调度测试结果 Fig. 5 Test results of priority scheduling

实验结果表明,高优先级CA请求的会话,其响应时间平均为0.03 s, 主要用于会话调度、会话创建过程。而低优先级CA请求的会话,平均响应时间为1.03 s,说明其在等待队列中等待,直到有可用会话出现,可见,高优先级会话请求能够得到优先响应。

5.3 抗DOS攻击测试

模拟恶意CA攻击的情景,attack_ca为恶意CA,其会请求创建7个会话,并长时间占用会话资源,设计合计50个需请求创建会话的CA。然后运行attack_ca,随机从50个CA中选择CA执行,分别测试加入TSSP之前和加入TSSP后,随着时间变化,合法CA获得会话资源数量情况,测试结果如图 6所示。

图6 抗DOS攻击测试 Fig. 6 Anti-DoS attack test

加入TSSP之前,attack_ca会长时间占用会话,合法的请求无法获得会话资源。加入TSSP后,attack_ca会先占用所有会话资源,当达到一定时间后,时间长短取决于p_dealtime,其rlp会急剧下降,其占用的会话资源会被TEEOS释放,合法的CA能够获取到会话资源。可见,TSSP能够有效抵抗由于长时间占用会话引起的DOS攻击。

5.4 性能测试

主要测试TSSP对会话创建时间的影响,不考虑会话执行任务的时间。设计总计100个CA,CA只用于创建会话,释放会话,不进行实际任务处理,且其优先级高。考虑两种情况:

在会话资源可用的情况下,分别测试加入TSSP之前和加入TSSP之后,响应会话的时间。

在会话资源不可用的情况下,测试加入TSSP后,响应会话的时间。

针对以上两种情况,分别进行5组实验,每组进行100次独立实验,测试结果如图 7所示。

图7 性能测试 Fig. 7 Performance test

加入TSSP之前,会话创建时间约为0.023 s;加入TSSP后,会话可用情况下,会话创建时间约为0.033 s,增加的开销约为0.01 s,在会话不可用情况下,会话创建时间约为0.050 s,增加开销约为0.027 s。实验结果表明,加入调度机制后,增加的性能开销在0.01~0.27 s之间。在会话可用情况下,加入TSSP对性能影响很小,主要因为,此时只进行会话可用状态查询操作,不用计算会话的优先级以及队列操作,而在会话资源不可用情况下,需要计算会话的优先级,以及进行队列操作,其开销相对较大。但会话创建增加的时间相对处理具体操作时间很小,可忽略不计。

5.5 安全性分析

本方案主要需加入Session调度模块与度量模块,度量代理模块部署在安全世界的内核态,以静态TA的方式编译到系统中,其安全性由TrustZone本身的隔离机制保证。Session调度模块部署在普通世界的内核态,由度量代理模块中的SMM监控Session调度模块,在其完整性遭到破坏时,报告给TEEOS,并重启系统,将备份的Session调度模块重新加载,从而能够保证Session调度模块的安全性。可见,加入TSSP后,系统的安全性不会降低。

6 结束语

针对TrustZone架构中,多会话环境下,恶意CA长时间占用会话资源能够引起DOS攻击的问题,提出了一种TrustZone架构中的会话调度方案,实现等待队列、执行队列的构建,提出会话优先级、会话剩余价值的计算方法。实验表明,TSSP能够保证高优先级会话优先执行,能够有效抵抗恶意CA长时间占用会话资源引起的DOS攻击,不会降低系统的安全性,且增加的性能开销在0.01~0.27 s之间,对系统整体性能影响较小,在支持TrustZone架构的系统中具有较高参考价值。

参考文献
[1]
Zhao Bo, Fei Yongkang, Xiang Shuang, et al. Research and implementation of secure boot mechanism for embedded systems[J]. Computer Engineering and Applications, 2014, 50(10): 72-77. [赵波, 费永康, 向騻, 等. 嵌入式系统的安全启动机制研究与实现[J]. 计算机工程与应用, 2014, 50(10): 72-77.]
[2]
Zheng Xianyi, Li Wen, Meng Dan. Analysis and research on TrustZone technology[J]. Chinese Journal of Computers, 2016(9): 1912-1928. [郑显义, 李文, 孟丹. TrustZone技术的分析与研究[J]. 计算机学报, 2016(9): 1912-1928.]
[3]
Lu Xicheng, Li Gen, Lu Kai, et al. High-trusted-software-oriented automatic testing for integer overflow bugs[J]. Journal of Software, 2010, 21(2): 179-193. [卢锡城, 李根, 卢凯, 等. 面向高可信软件的整数溢出错误的自动化测试[J]. 软件学报, 2010, 21(2): 179-193. DOI:10.3724/SP.J.1001.2010.03785]
[4]
Shi Feiyue, Fu Desheng. Research of buffer overflow vulnerability discovering analysis and exploiting[J]. Computer Science, 2013, 40(11): 143-146. [史飞悦, 傅德胜. 缓冲区溢出漏洞挖掘分析及利用的研究[J]. 计算机科学, 2013, 40(11): 143-146.]
[5]
Li Xiaoqi, Liu Qixu, Zhang Yuqing. Automatically exploiting system of kernel privilege escalation vulnerabilities based on imitating attack[J]. Journal of University of Chinese Academy of Sciences, 2015, 32(3): 384-390. [李晓琦, 刘奇旭, 张玉清. 基于模拟攻击的内核提权漏洞自动利用系统[J]. 中国科学院大学学报, 2015, 32(3): 384-390.]
[6]
Sharma R, Soni V K, Mishra M K, et al. An agent based dynamic resource scheduling model with FCFS-job grouping strategy in grid computing[J]. World Academy of Science Engineering & Technology, 2010(64): 467.
[7]
Jin Yingqi, Wu Junmin, Zhao Xiaoyu. Fairness-considered shortest job first strategy for memory scheduling[J]. Computer Engineering, 2012, 38(20): 243-246. [金瑛棋, 吴俊敏, 赵小雨. 公平性考虑的短作业优先内存调度策略[J]. 计算机工程, 2012, 38(20): 243-246.]
[8]
Qiu Xiangcun, Zang Lie, Yang Dan, et al. Survey of scheduling algorithm in the real-time system[J]. Computer and Digital Engineering, 2014(12): 2251-2258. [邱相存, 臧洌, 杨丹, 等. 实时系统调度算法综述[J]. 计算机与数字工程, 2014(12): 2251-2258.]
[9]
Hoganson K. Reducing MLFQ scheduling starvation with feedback and exponential averaging[J]. Journal of Computing Sciences in Colleges, 2009(2): 196-202.
[10]
Parvar M R E, Parvar M E, Safari S. A Starvation free IMLFQ scheduling algorithm based on neural network[J]. International Journal of Computational Intelligence Research, 2008, 4(1): 27-36.
[11]
Yang Bo, Feng Dengguo, Qin Yu, et al. Secure access scheme of cloud services for trusted mobile terminals using TrustZone[J]. Journal of Software, 2016, 27(6): 1366-1383. [杨波, 冯登国, 秦宇, 等. 基于TrustZone的可信移动终端云服务安全接入方案[J]. 软件学报, 2016, 27(6): 1366-1383.]
[12]
Jing Jun, Hao Fuzhen, Xu Donghua. Design and implementation of trusted execution environment under domestic independent platform[J]. Computer Engineering and Design, 2012, 33(10): 3801-3806. [敬军, 郝福珍, 徐东华. 国产自主平台下可信执行环境的设计与实现[J]. 计算机工程与设计, 2012, 33(10): 3801-3806.]
[13]
Sa Qirina, Xie Xiaoyao, Liu Tianzhao. The analysis of embedded system security based on TrustZone[J]. Journal of Guizhou Normal University (Natural Sciences), 2011, 29(3): 59-62. [萨其日娜, 谢晓尧, 刘天昭. 基于TrustZone的嵌入式系统安全性研究[J]. 贵州师范大学学报(自然科学版), 2011, 29(3): 59-62.]
[14]
Zhang Yingjun, Feng Dengguo, Qin Yu, et al. A Trustzone-based trusted code execution with strong security requirement[J]. Journal of Computer Research and Development, 2015, 52(10): 2224-2238. [张英骏, 冯登国, 秦宇, 等. 基于Trustzone的强安全需求环境下可信代码执行方案[J]. 计算机研究与发展, 2015, 52(10): 2224-2238.]