一种基于TrustZone技术的安全存储服务系统及方法_2

文档序号:9506470阅读:来源:国知局
用前,对普通应用程序请求的原始数据进行一些必要的处理操作。例如,普通应用程序从远程服务器下载一份机密文件,机密文件内容实际由可信应用程序和远程服务器的共享密钥加密,当可信应用程序接收到普通应用程序存储文件的调用请求后,首先需要使用可信应用程序和远程服务器的共享密钥对加密的文件内容进行解密,然后再通过远程调用数据处理模块对解密后的文件内容执行安全存储操作。
[0023]所述步骤(5)中,数据安全存储远程调用接口包括:数据存储调用接口、数据加载调用接口和数据销毁调用接口。数据安全存储远程调用接口在执行前,需要判断由合法性检测模块设定的检测状态标志位,来决定是否为可信应用程序执行相应的数据安全存储操作。所述数据安全存储操作包括:数据存储操作、数据加载操作和数据销毁操作。
[0024]本发明与现有技术相比,具有以下优点:
[0025](1)利用TrustZone隔离技术将数据安全存储做为敏感业务隔离在可信执行环境的安全操作系统中,并以服务的形式为可信应用程序提供统一的远程调用接口,即使普通操作系统遭受攻击,仍然可以保证安全存储服务的安全性。
[0026](2)在普通操作系统中,通过数据请求模块为普通应用程序提供统一的数据安全存储服务请求接口 ;并且在传统TrustZone隔离技术的基础上,结合普通操作系统的软件中断机制和安全存储服务的合法性检测模块对发送数据安全存储服务请求的普通应用程序的进程进行合法性检测。
[0027](3)安全存储服务存储的敏感数据是经过加密和可信应用程序证书签名认证后存放在可信执行环境中的非易失性存储器中,既保证了敏感数据与普通操作系统隔离,也保证了敏感数据在可信应用程序之间的隔离。
[0028](4)安全存储服务存取敏感数据时的加解密秘钥由安全存储服务统一管理并存储在可信执行环境中的非易失性存储器中,既保证了数据秘钥与普通操作系统隔离,也实现了加解密操作对应用程序的透明性。
[0029]综上所述,本发明相比较传统的数据加密存储方式,不仅提高了数据存储的安全性,同时也为应用程序开发提供了统一的程序调用接口。
【附图说明】
[0030]图1为本发明的整体框架示意图;
[0031]图2为本发明的数据请求模块实现流程图;
[0032]图3为本发明的普通应用程序特征信息提取及存储流程图;
[0033]图4为本发明的数据存储操作流程图;
[0034]图5为本发明的数据加载操作流程图;
[0035]图6为本发明的数据销毁操作流程图。
【具体实施方式】
[0036]本发明利用ARM TrustZone硬件隔离技术和可信执行环境(TEE)作为基础平台,实现可以有效提供数据安全存储服务,基础平台上的普通应用程序和可信应用程序通过调用安全存储服务系统提供的统一接口实现敏感数据的安全存储、安全加载和安全销毁;同时保证对操作系统最小修改的前提下,在可信执行环境中对发起数据安全存储服务请求的普通应用程序做运行时的合法性检测,拒绝非法普通应用程序发起的或者合法普通应用程序遭受恶意攻击后发起的服务请求,防止敏感数据泄露,从而有效地保证数据安全性。基于此,本发明基于TrustZone技术的安全存储服务系统及方法具有数据存储安全性高、程序开发接口统一等优势。
[0037]为使本发明的目的、优点以及技术方案更加清楚明白,以下通过具体实施,并结合附图,对本发明进一步详细说明。
[0038]对于图1从整体上描述了该方案实施的总体架构,主要包括以下四部分的内容。
[0039]—、基于普通执行环境的数据请求模块的实现方法
[0040]依据可信执行环境(TEE)的客户端API为普通应用程序100实现数据请求模块101,数据处理模块提供三类数据存储服务请求接口:数据存储请求接口 NS_ReqSt0reData、数据加载请求接口 NS_ReqLoadData和数据销毁请求接口 NS_ReqDestroyData ;普通应用程序100通过调用数据请求模块101接口向可信应用程序102发送数据安全存储服务请求。
[0041]为了使可信执行环境能够在普通应用程序发送数据安全存储服务请求时对其进程进行合法性检测,需要对普通操作系统和数据请求模块作特别处理;下面结合图2具体描述数据请求模块接口的处理过程:
[0042](11)在每个数据请求模块101接口的第一条指令前插入软件中断指令SWI,并定义新的软件中断号;
[0043](12)当普通应用程序100调用数据请求模块接口时,触发SWI软件中断异常;
[0044](13)普通操作系统捕获SWI软件中断,进入管理模式;
[0045](14)普通操作系统的软件中断处理程序完成新软件中断号的处理逻辑:
[0046]a)通过LR_svc寄存器计算数据请求模块接口被调用时的指令地址Addrins= LR_svc-4 ;从参数寄存器R0中获取可信应用程序标示符UUID ;
[0047]b)获取当前普通应用程序的进程代码段基地址TextBase和代码段大小TextSize ;
[0048]c)将接口被调用时指令地址Addrins、进程代码段基地址TextBase、进程代码段大小TextSize和可信应用程序标示符UUID封装成普通应用程序100的进程异常信息,通过执行SMC指令将进程异常信息发送给可信执行环境,并由合法性检测模块104完成对普通应用程序进程的合法性检测。
[0049](15)普通操作系统恢复普通应用程序的软件中断异常,并通过TrustZone可信执行环境通信代理向可信应用程序102发送数据安全存储服务请求。
[0050]二、普通应用程序特征信息提取及存储的实现方法
[0051]为了实现可信执行环境中的合法性检测模块104对普通应用程序100进行合法性检测,需要为合法性检测模块提供普通应用程序的特征信息作为检验参照,特征信息是一段可以唯一标记普通应用程序的信息。下面结合图3描述本发明中对普通应用程序特征信息提取和存储的实现步骤:
[0052](21)在普通应用程序100发布前,开发人员读取普通应用程序二进制文件信息获取代码段大小3^^&;使用哈希算法对普通应用程序代码段二进制信息进行哈希运算,生成代码段哈希值Htext= Hash (Text),其中Text代表普通应用程序代码段;将代码段大小SizetraijP代码段哈希值H text做为普通应用程序的特征信息Speclnfo app =(Sizetext I I Htext);
[0053](22)使用可信第三方CA证书签名普通应用程序的特征信息Speclnf0.,生成特征信息签名 Signapp= Sign (Size text| Htext);
[0054](23)将特征信息签名Signapp存储到可信应用程序102的特定数据段中。所述可信应用程序是指接受普通应用程序数据存储调用请求的可信应用程序。
[0055]三、基于可信执行环境的合法性检测模块的实现方法
[0056]当普通应用程序100调用数据请求模块101接口向可信应用程序102发送数据存储调用请求时,将触发软件中断异常,普通操作系统将普通应用程序的进程异常信息发送给可信执行环境的TrustZone监视器JrustZone监视器捕获进程异常信息后,调用安全存储服务的合法性检测模块104对普通应用程序100的进程异常信息进行合法性检验。
[0057]合法性检测的具体实现步骤如下:
[0058](31)合法性检测模块104通过步骤(14)获取普通应用程序100的进程异常信息(包括接口调用指令地址Addrins、进程代码段基地址TextBase、进程代码段大小TextSize与可信应用程序标示符UUID),并根据可信应用程序标示符UUID从对应的可信应用程序102的特定数据段加载普通应用程序特征信息签名Signapp;
[0059](32)合法性检测模块104使用步骤(21)中的哈希算法对进程内存地址TextBase到TextBase+TextSize之间的代码段数据进行哈希运算,计算普通应用程序100进程的代码段哈希值H’ text = Hash (Text),得到普通应用程序的进程特征信息Speclnfo’ app =(TextS
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1