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

文档序号:9506470阅读:来源:国知局
ize |H’ text);其中Text表示普通应用程序进程的代码段;
[0060](33)合法性检测模块104使用第三方可信CA证书公钥对步骤(31)获取的特征信息签名Signapp进行验签,得到普通应用程序100的特征信息Speclnfo app =(Sizetext I I Htext);
[0061](34)合法性检测模块104比较特征信息SpecInfoapp和Speclnfo’ app是否相等。如果相等,并且满足TextBase〈Addrins〈TextBase+TextSize,则判定当前普通应用程序100进程是合法的,并将检测状态标志位置1 ;否则判定当前普通应用程序进程是非法的,则将检测状态标志位置0 ;其中检测状态标志位表示当前普通应用程序进程是否通过合法性检测,如果检测标志位为1,则表示通过检测;否则表示未通过检测。
[0062]四、基于可信执行环境的数据处理模块和秘钥管理模块的实现方法
[0063]同样依据可信执行环境(TEE)的内部API为安全存储服务实现数据处理模块103,数据处理模块提供三类数据存储操作接口:数据存储操作接口 SE_St0reData、数据加载操作接口 SE_LoadData和数据销毁操作接口 SE_DestroyData ;可信应用程序102通过远程调用数据处理模块101的各接口完成普通应用程序100的数据安全存储服务请求。
[0064](41)结合图4具体描述数据存储调用接口的具体实现步骤
[0065]a)可信应用程序102向数据处理模块103发起数据存储操作的远程调用,请求参数中包括可信应用程序标示符UUID、待处理的敏感数据DATAta和密码算法标示符ID algo;
[0066]b)数据处理模块103接收到可信应用程序102的数据存储调用请求后,通过判断
(34)步骤中合法性检测模块104设定的检测状态标志位来决定远程调用是否可以被接受处理。若检测状态标志位为0,则拒绝远程调用;若检测状态标志位为1,则处理远程调用;
[0067]c)合法性检测通过后,数据处理模块103根据密码算法标示符IDalgC]向秘钥管理模块105发起秘钥生成请求;
[0068]d)秘钥管理模块105收到秘钥生成请求后,首先根据密码算法标示符ID‘调用秘钥生成器生成对称密码算法的随机秘钥KEYalgc = KeyGenerator(IDalgo);其次加载可信应用程序的证书公钥KEYta对密码算法标示符ID alg。和随机秘钥KEY alg。加密,生成秘钥加密数据EKEYta= AsymEncrypt (KEY ta, (IDalgo KEYalgo));接着加载可信应用程序102的证书私钥PKEYJi秘钥加密数据EKEYta签名,产生秘钥签名数据SKEYta = Sign(PKEYta,EKEYta);最后以可信应用程序标示符UUID为索引将秘钥加密数据EKEYtJP秘钥签名数据SKEY照特定的组织方式存储到可信执行环境中的非易失性存储器上,并向数据处理模块103返回生成的随机秘钥KEYalg。。其中,KeyGenerator是对称密钥生成器算法;AsymEncrypt是公钥加密算法;Sign是公钥签名算法;
[0069]e)秘钥成功生成后,数据处理模块103首先根据密码算法标示符IDalgJf用对应的对称密码加密算法并使用随机秘钥KEYalg。对敏感数据DATA ta进行加密,生成加密数据EDATAta= SymEncrypt (KEY algo, DATAta);其次使用哈希算法对加密数据计算哈希值HDATAta=Hash (EDATAta);接着使用可信应用程序102的证书私钥PKEYta对哈希值签名,生成签名数据SDATAta= Sign(PKEY ta, HDATAta);最后数据处理模块103以可信应用程序标示符UUID为索引将加密数据EDATAta和签名数据SDATA 照特定的组织方式存储到可信执行环境中的非易失性存储器上,并向可信应用程序返回数据存储结果。其中,SymEncrypt是对称加密算法;Hash是哈希算法;Sign是公钥签名算法。
[0070](42)结合图5具体描述数据加载调用接口的具体实现步骤
[0071]a)可信应用程序102向数据处理模块103发起数据加载操作的远程调用,请求参数中包括可信应用程序标示符UUID ;
[0072]b)数据处理模块103接收到可信应用程序102的数据加载调用请求后,按照(41-b)步骤对调用请求进行合法性检测;
[0073]c)合法性检测通过后,数据处理模块103根据可信应用程序标示符UUID向秘钥管理模块104发起秘钥加载请求;
[0074]d)秘钥管理模块收到秘钥加载请求后,首先以可信应用程序标示符UUID为索引从可信执行环境中加载秘钥加密数据EKEYtJP秘钥签名数据SKEY ta;其次加载可信应用程序102的证书公钥KEYtJ#秘钥签名数据SKEY ta验签,得到秘钥加密数据EKEY’ ta =Verify (KEYta, SKEYta);接着判断EKEYjP EKEY’ ta是否相等,若不相等,则拒绝处理秘钥加载操作并向数据处理模块103返回秘钥加载失败结果;若相等,则加载可信应用程序102的证书私钥PKEYtJi秘钥加密数据EKEY’ ta解密,获得密码算法标示符和随机秘钥,即(IDalgo KEYalgo) = AsymDecrypt (PKEYta, EKEY' ta);最后秘钥管理模块 105 返回秘钥加载成功结果并向数据处理模块发送密码算法标示符IDalg。和随机秘钥KEY alg。。其中,AsymDecrypt是公钥解密算法;Verify是公钥验签算法;
[0075]e)秘钥成功加载后,数据处理模块103首先以可信应用程序标示符UUID为索引从可信执行环境中加载加密数据EDATAta和签名数据SDATA ta;其次加载可信应用程序102的证书公钥KEYta对签名数据SDATA ta验签,得到加密数据的哈希值HDATA’ ta =Verify (KEYta, SDATAJ ;接着使用(41_e)步骤中的哈希算法对加密数据EDATAtJ+算哈希值HDATAta= Hash (EDATA ta),并判断HDATA’ ta^P HDATA ^是否相等,若不相等,则拒绝处理数据加载操作;若相等,则根据密码算法标示符IDalgC]调用对应的对称密码解密算法并使用随机秘钥对加密数据进行解密,获得敏感数据DATAta= SymDecrypt (KEY algo, EDATAta);最后数据处理模块103向可信应用程序102返回数据加载成功结果并发送敏感数据DATAta。其中,Verify是公钥验签算法。Hash是哈希算法,SymDecrypt是对称解密算法。
[0076](43)结合图6具体描述数据销毁调用接口的具体实现步骤
[0077]a)可信应用程序102向数据处理模块103发起数据销毁操作的远程调用,请求参数中包括可信应用程序标示符UUID ;
[0078]b)数据处理模块103接收到可信应用程序102的数据销毁调用请求后,按照(41-b)步骤对调用请求进行合法性检测;
[0079]c)合法性检测通过后,数据处理模块103首先以可信应用程序标示符UUID为索引从可信执行环境中加载加密数据EDATAta和签名数据SDATA ta;其次加载可信应用程序102的证书公钥KEYta对签名数据SDATA ta验签,得到加密数据EDATA 哈希值HDATA’ ta =Verify (KEYta, SDATAJ ;最后使用(41_e)步骤中的哈希算法对加密数据EDATAtJ+算哈希值HDATAta= Hash (EDATA ta),并判断HDATA’ ta^P HDATA ^是否相等,若不相等,则拒绝处理数据销毁操作;若相等,则以可信应用程序标示符UUID为索引从可信执行环境中安全地清除加密数据EDATAta和签名数据SDATA ta,并向秘钥管理模块105发起秘钥销毁请求;
[0080]d)秘钥管理模块105收到秘钥销毁请求后,以可信应用程序标示符UUID为索引从可信执行环境中安全地清除秘钥加密数据EKEYtJP秘钥签名数据SKEY ta;
[0081]e)数据处理模块103成功销毁加密数据和签名数据后,向可信应用程序10
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1