一种面向片外非易失性存储的安全防护方法与流程

文档序号:19491939发布日期:2019-12-24 14:03阅读:240来源:国知局
一种面向片外非易失性存储的安全防护方法与流程

本发明涉及计算机安全防护领域,更具体的说,涉及一种面向片外非易失性存储的安全防护方法。



背景技术:

计算机系统正在越来越多的受到恶意软件攻击,体现在用户的敏感数据被窃取、数字版权被滥用、移动支付存在重大安全隐患等方面,其面临的安全威胁越来越大,故在计算机系统中引入一个可信执行环境tee(trustedexecutionenvironment)用以解决上述问题。tee是系统级芯片soc(system-on-chip)上的一个安全区域,提供了隔离执行、可信应用的完整性、可信数据的机密性、安全存储等功能。普通执行环境ree(richexecutionenvironment)为所有移动设备通用的环境,运行通用的os,例如android、ios系统等,tee是与设备上通用的os并存的运行环境,并且给通用的os提供安全服务,tee比ree的安全级别更高,运行在tee的应用称为可信应用ta(trustedapps),其可以访问设备的全部功能,且硬件隔离技术保护其不受运行在普通执行环境ree的apps影响。tee的os保护每个ta不相互影响,可以为多个不同的服务提供商同时使用,而不影响安全性。

soc中的数据代码等最终都是存储在片外非易失性存储器内的,现有的tee安全方案对片外非易失性存储器的采取以下防护措施之一:1)将片外非易失性存储器全部划分在tee访问的安全空间;2)硬件上实现两个片外非易失性存储器,一个划分为tee访问,另一个划分为ree访问;3)将片外非易失性存储器全部划分在ree访问的普通空间,tee内的数据加密后通过ree存入片外非易失性存储器。但是三种方案均有缺陷,1)防护措施导致ree完全不能访问片外非易失性存储器;2)防护措施导致硬件成本高、功耗高、面积大等问题;3)防护措施导致ree可以获取tee的密文数据,存在被破解的风险。



技术实现要素:

有鉴于此,本发明提出了一种面向片外非易失性存储的安全防护方法,完成了tee和ree对片外非易失性存储器的分区访问,解决了现有技术中ree完全不能访问片外非易失性存储器,硬件成本高、功耗高、面积大等问题,ree能够获取tee的密文数据从而存在被破解的风险等技术问题。

1)可信执行环境tee下对片外非易失性存储器进行初始化;

2)有配置请求时,检查配置请求是否为安全请求,若为安全请求,则将请求数据写入安全寄存器内,在收到请求启动安全直接存储访问dma时,启动安全dma,完成访问请求,并返回完成普通中断到tee中;若为普通请求,则将请求数据写入普通寄存器内,在收到请求启动普通dma时,执行步骤3);

3)检查dma请求访问的地址空间是否与安全寄存器标识的地址空间存在重叠,若存在重叠,则认为该请求非法,丢弃该请求,并返回错误普通中断到普通执行环境ree中;若不存在重叠,认为该请求合法,启动普通dma,完成访问请求,并返回完成普通中断到ree中。

可选的,步骤2)中的安全请求为来自tee的配置请求。

可选的,步骤1)中所述的初始化包括:对片外非易失性存储器进行分区,在其中划分安全存储区域和普通存储区域,所述安全存储区域和安全寄存器只能在tee下访问。

可选的,所述安全寄存器包括安全标志位寄存器、安全域容量寄存器、安全中断寄存器和安全dma寄存器。

可选的,所述安全存储区域划分在片外非易失性存储器的高地址处。

可选的,若需要安全域,则通过安全请求将安全标志位寄存器置1,并配置安全域容量寄存器,若不需要安全域,则通过安全请求将安全标志位寄存器置0。

可选的,在配置启动dma时,与发出配置请求环境相应的flag标志位被置1,dma完成访问请求后,该flag标志位被置0,同时检查另外一个flag标志位是否为1,若为1,则处理对应的dma请求。

可选的,在配置启动dma时,若所述配置请求为安全请求,则tee相应的flag标志位sflag被置1,dma完成访问请求后,sflag被置0,同时检查ree相应的flag标志位nflag是否为1,若为1,则处理ree的dma请求;若所述配置请求为普通请求,则ree相应的flag标志位nflag被置1,dma完成访问请求后,nflag被置0,同时检查tee相应的flag标志位sflag是否为1,若为1,则处理tee的dma请求。

可选的,所述安全容量寄存器和普通容量寄存器的容量之和等于片外非易失性存储器的总容量。

可选的,当与发出配置请求环境相应的dma启动后,可以对与发出配置请求环境不同的另外一个环境的寄存器进行配置,但不会引起与发出配置请求环境不同的另外一个环境相应的dma启动,直到当前dma完成。

与现有技术相比,本发明之技术方案具有以下优点:本发明的面向片外非易失性存储的安全防护方法将片外非易失性存储器的空间划分为安全存储区域和普通存储区域,并基于tee与ree双体系结构,将tee的请求数据加密后通过tee的驱动直接存入片外非易失性存储器的安全存储区域,而ree不能访问安全存储区域,ree只能访问普通存储区域。本发明解决了现有技术中ree完全不能访问片外非易失性存储器,硬件成本高、功耗高、面积大等问题,ree可以获取tee的密文数据从而存在被破解的风险等技术问题,完成了tee和ree对片外非易失性存储器的分区访问,增强了片外非易失性存储器的安全防护,且本发明设计简单,对性能的影响较小,具有很大的灵活性,兼顾了安全性、性能及成本三方面的要求。

附图说明

图1为本发明面向片外非易失性存储的安全防护方法的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细描述,但本发明并不仅仅限于这些实施例。本发明涵盖任何在本发明的精神和范围上做的替代、修改、等效方法以及方案。

为了使公众对本发明有彻底的了解,在以下本发明优选实施例中详细说明了具体的细节,而对本领域技术人员来说没有这些细节的描述也可以完全理解本发明。

在下列段落中参照附图以举例方式更具体地描述本发明。需说明的是,附图均采用较为简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

图1示意了本发明面向片外非易失性存储的安全防护方法的流程图。所述面向片外非易失性存储的安全防护方法,包括以下步骤:

1)可信执行环境tee下对片外非易失性存储器进行初始化;

2)外围总线apb或系统总线ahb等总线发出配置请求,有配置请求时,检查配置请求是否为安全请求,若为安全请求,则将请求数据写入安全寄存器内,在收到请求启动安全直接存储访问dma时,启动安全dma,完成axi等的访问请求,并返回完成安全中断到tee中;若为普通请求,则将请求数据写入普通寄存器内,在收到请求启动普通dma时,执行步骤3);

3)检查dma请求访问的地址空间是否与安全寄存器标识的地址空间存在重叠,若存在重叠,则认为该请求非法,丢弃该请求,并返回错误普通中断到普通执行环境ree中;若不存在重叠,认为该请求合法,启动普通dma,完成axi等的访问请求,并返回完成普通中断到ree中。

步骤2)中的安全请求为来自tee的配置请求,非安全请求为来自ree的配置请求。

步骤1)中所述的初始化包括:对片外非易失性存储器进行分区,在其中划分安全存储区域和普通存储区域,所述安全存储区域只能在tee下访问。

所述安全寄存器包括安全标志位寄存器、安全域容量寄存器、安全中断寄存器和安全dma寄存器等。所述安全存储区域划分在片外非易失性存储器的高地址处。若需要安全域,则通过安全请求将安全标志位寄存器置1,并配置安全域容量寄存器;若不需要安全域,则通过安全请求将安全标志位寄存器置0。

在配置启动dma时,与发出配置请求环境相应的flag标志位被置1,dma完成访问请求后,该flag标志位被置0,同时检查另外一个flag标志位是否为1,若为1,则处理对应的dma请求。

具体的,若所述配置请求为安全请求,则tee相应的flag标志位sflag被置1,dma完成访问请求后,sflag被置0,同时检查ree相应的flag标志位nflag是否为1,若为1,则处理ree的dma请求;若所述配置请求不为安全请求,则ree相应的flag标志位nflag被置1,dma完成访问请求后,nflag被置0,同时检查tee相应的flag标志位sflag是否为1,若为1,则处理tee的dma请求。

所述安全容量寄存器和普通容量寄存器的容量之和等于片外非易失性存储器的总容量。

当与发出配置请求环境相应的dma启动后,对与发出配置请求环境不同的另外一个环境的寄存器进行配置,但不会引起与发出配置请求环境不同的另外一个环境相应的dma启动,直到当前dma完成。即当某个环境对应的dma启动后,另一个环境可以对该环境相应的寄存器进行配置,但不会引起另一个环境对应的dma启动,直到当前dma完成。

本发明基于tee与ree双体系结构,提供一种面向片外非易失性存储的安全防护方法。由于每一种片外非易失性存储器都有对应的标准协议,即使同一个标准协议实现的控制器也是略有差异,因此不同片外非易失性存储器的安全防护方案也不完全相同,但是总体的解决思路和大体的步骤是相同的,本本发明给出了即为该总体的思路和大体的步骤。

通过修改控制器及驱动程序,将片外非易失性存储器的空间划分为2个域,一个安全存储区域和一个普通存储区域,实现片外非易失性存储器的安全增强。在片外非易失性存储器的控制器内增加一些安全控制相关逻辑,从存储空间中划分出一个安全区域,将tee的数据加密后通过tee的驱动直接存入片外非易失性存储器的安全域内,ree不能访问安全区域。

为实现片外存储器的安全访问,在其控制器的原有寄存器及空寂逻辑的基础上,增加了安全寄存器,如安全标志位寄存器、安全域容量寄存器、安全中断寄存器以及安全dma寄存器等和一些控制逻辑,安全状态寄存器只能在tee环境下访问。将安全域划在存储器的高地址处,可以避免控制器内部地址映射,减小控制逻辑的复杂度,但本发明不对此进行限制,客户可以根据实际需要进行任意限制。

片外非易失性存储器必须由tee进行初始化,如果需要安全域,则将安全标志位寄存器置1,并配置安全域容量寄存器(必须小于等于存储器的总容量),tee通过核间交互方式通知ree访问片外非易失性存储器所需的参数,如存储器的普通存储区域容量(总容量-安全存储区域容量),即ree只能看到普通存储区域的地址空间。如果不需要安全域,则将安全标志位寄存器置0。

因片外非易失性存储器的地址空间是独立编制的,不能被直接访问,所以一般是通过dma的方式进行访问的。在访问片外非易失性存储器的地址空间时需要配置一系列的寄存器,新增逻辑将检查配置请求是来自tee还是ree,来自tee的请求数据被写入对应的安全寄存器内,来自ree的请求数据被写入对应的普通寄存器内。在配置启动dma的寄存器时,与之对应的flag标志位将被置为1,在dma服务完成之后将清除该标志位,与此同时检查另一个标志位是否为1,若为1,则直接处理对应的dma请求。当dma启动之后,另一分支的寄存器可以配置,但不会真的启动dma,直到当前dma完成,可以避免tee环境与ree环境中的两个驱动之间的竞争。

如果是安全请求启动dma,将不进行安全检查;如果是普通请求启动dma,则需要检查dma请求访问的地址空间是否与划分的安全寄存器所标识的址空间存在重叠部分,如有重叠,则丢弃该请求,并返回错误中断,若没有重叠则启动dma。

需要注意的是,本发明的面向片外非易失性存储的安全防护方法中:使用tee初始化控制器;控制逻辑必须保证请求的完整性,避免控制器或者总线产生死锁;完成中断或者错误中断都应该发给发出该请求的环境中。

通过本发明公开的方法的应用,能有效增强片外非易失性存储器的安全性;且本发明设计简单,对性能的影响较小,具有很大的灵活性,能够很好的平衡安全性与性能及成本的开销。

虽然以上将实施例分开说明和阐述,但涉及部分共通之技术,在本领域普通技术人员看来,可以在实施例之间进行替换和整合,涉及其中一个实施例未明确记载的内容,则可参考有记载的另一个实施例。

以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1