一种基于可信执行环境高安全应用系统的实现方法

文档序号:6630211阅读:217来源:国知局
一种基于可信执行环境高安全应用系统的实现方法
【专利摘要】本发明涉及一种基于可信执行环境高安全应用系统的实现方法,首先,使用敏感业务库实现高敏感业务逻辑,并将敏感业务库完成可信第三方CA的签名;其次,通过垫片共享库实现与可信环境中敏感业务库的数据交互;最后,通过应用系统打包技术,发布高安全的应用系统供用户下载安装于支持可信执行环境的终端中,完成敏感业务库动态安全地加载到可信执行环境中。本发明具有应用系统安全性高、开发周期短、降低可信执行环境构建的复杂度等优势。
【专利说明】一种基于可信执行环境高安全应用系统的实现方法

【技术领域】
[0001] 本发明涉及一种基于可信执行环境高安全应用系统的实现方法,属于移动终端基 于可信执行环境的高安全应用构建领域。

【背景技术】
[0002] 伴随着移动互联网的迅猛发展,移动设备承载的业务已从原来的通信,短信,社 交,游戏等,逐渐转变为包含企业办公,移动支付等高安全性需求领域。
[0003] 传统方法上对于解决移动设备高安全系统的需求,一般采用在智能终端的框架层 进行应用系统高敏感业务的处理(如数据的加解密、签名验签,密钥生成、销毁等)。在该层 完成应用系统敏感业务处理,能一定程度上保证应用系统的安全,但是由于智能终端操作 系统(如安卓操作系统)本身存在严重的碎片化问题,若用户移动设备中诸多的系统漏洞 得不到及时的修复,将使应用系统面临着严重的安全风险(如木马威胁、应用系统被挟持 等)。同时所有的应用系统代码运行在同一个智能终端操作系统中,很难保证与其他应用系 统的完全隔离,敏感数据不被窃取。因此,这种方案安全等级不够高,难以真正地解决高敏 感应用系统的安全问题。为了从根本上解决上述问题,有必要从底层硬件架构、操作系统以 及应用服务等多个环节,设计软硬件结合的高安全应用系统整体解决方案。
[0004] 目前,部分处理器已可提供安全扩展功能(如ARM处理器的TrustZone安全功 能),在移动终端构建普通程序执行环境和可信执行环境两个独立的运行世界,并利用处理 器的监控模式提供两个世界的切换与数据传递,有效地实现应用系统高敏感业务与普通业 务的隔离。但是,基于可信执行环境的安全应用系统面临着几大问题,如何将应用系统的高 敏感数据和高敏感业务处理完整安全的加载到可信执行环境;如何开发者在不拥有可信执 行环境的源码树,将应用系统自身相关的敏感业务的源代码与可信执行环境的源代码树混 合编译,降低可信执行环境构建的复杂度;如何解决普通应用系统开发者,使用这种上层应 用开发和底层实现机制紧耦合绑定的方式,降低开发者开发效率、提高使用的方便性。


【发明内容】

[0005] 本发明旨在针对移动终端基于可信执行环境的高安全应用系统构建领域技术挑 战,本发明的目的在于提出一种基于可信执行环境高安全应用系统的实现方法。
[0006] 本发明拟利用可信执行环境作为安全应用系统运行的基础平台,并保证开发者的 开发效率下,首先,使用敏感业务库实现高敏感业务逻辑,并将敏感业务库完成可信第三方 CA的签名;其次,通过垫片共享库实现与可信环境中敏感业务库的交互;最后,通过应用系 统打包技术,发布高安全的应用系统供用户下载安装于支持可信执行环境的终端中,完成 敏感业务库动态安全地加载到可信执行环境中。基于此,本发明的基于可信执行环境高安 全应用系统的实现方法具有应用系统安全性高、开发周期短、降低可信执行环境构建复杂 度等优势。
[0007] 下面简要介绍下本方案的基本思想,本发明在吸取已有解决方案优点的基础之 上,提出了自己的设计思想,具体来说,本发明技术方案包括下列几个方面:
[0008] 方面一,开发者将应用系统的敏感业务逻辑用动态共享库的方式实现,该库被称 为敏感业务库,并且敏感业务库被可信第三方CA签名,同时保持了非敏感业务原有的开发 方式不变。该过程的实施将为基于可信执行环境高安全应用系统的实现奠定前提条件,实 现安全应用敏感业务逻辑处理单元与非敏感业务逻辑处理单元的分离,即将应用系统的敏 感业务逻辑单元转移到可信执行环境中。
[0009] 方面二,借助垫片共享库,完成可信执行环境驱动层逻辑及通过处理器监控模式 实现与可信执行环境中敏感业务逻辑间的数据通信。该过程的实施将实现普通执行环境与 可信执行环境数据通信的安全,为可信执行环境中高安全应用系统的实现提供基础互通条 件。
[0010] 方面三,利用打包技术,将应用系统的垫片共享库、敏感业务库和非敏感业务操作 打包发布,完成可信执行环境中高安全应用系统的开发。用户在支持可信执行环境的智能 终端,下载安装高安全应用系统,可信执行环境平台将敏感业务库动态安全地加载到可信 执行环境中,依次满足用户对高安全性应用的需求。
[0011] 本发明具体实现步骤为:
[0012] (1)首先,将智能终端应用系统的业务处理单元划分为敏感业务处理单元和非敏 感业务处理单元,所述敏感业务处理单元包含核心数据的产生、存储及密码学相关操作;所 核心数据是指密码信息、交易数据、身份信息;所述密码学相关操作包括密钥生成、签名验 签、加解密函数、证书验证及安全随机数生成;所述非敏感业务处理单元是指处理非核心数 据的代码逻辑;再将敏感业务处理逻辑单元用动态共享库实现,作为敏感业务库;所述非 核心数据即是指除核心数据以外的其它相关数据,非核心数据因为每个应用系统关注点不 同,一些非核心数据也能被一些定义为核心数据,如应用系统提供的位置信息、上网记录、 播放视频内容等;所述敏感业务库是由一些处理核心数据的函数组成,包括密钥生成函数、 加解密函数、签名验签函数、安全随机数函数;并完成敏感业务库被可信第三方CA的签名, 从而将敏感业务库动态安全地加载到可信执行环境中;
[0013] (2)其次,通过垫片共享库实现与可信环境中敏感业务库的交互;
[0014] (3)最后,利用打包技术,将步骤⑴和步骤⑵实现的垫片共享库、敏感业务库及 非敏感业务处理单元打包发布,用户在支持可信执行环境的智能终端,下载安装应用系统, 可信执行环境平台将敏感业务库动态安全地加载到可信执行环境中。
[0015] 所述步骤(1)中完成敏感业务库被可信第三方CA的签名的具体实现步骤如下:
[0016] (11)对敏感业务库中函数的二进制信息进行哈希算法运行,生成各函数的哈希值HUuuthms = HashUimctioni)
[0017] (12)敏感业务库对应的应用系统的包名进行哈希运行,生成应用系统包名的哈希 Hpackage = hash (package);
[0018] (13)对各函数的哈希值#細和应用系统包名的哈希值Hpaekage进行哈希运算, 生成哈希值开=細Il ,用可信第三方CA对哈希值H签名,生成签 名值sign[H];其中package代表的是应用系统的包名,function代表敏感业务库中的函 数。
[0019] 所述步骤(2)中的通过垫片共享库实现与可信环境中敏感业务库过程为:
[0020] (21)在垫片共享库中利用可信执行环境提供的代理驱动层API接口,实现可信环 境代理驱动逻辑的处理工作;
[0021] (22)垫片共享库借助处理器监控模块提供的API接口,及敏感业务库中敏感业 务处理逻辑API接口,实现普通执行环境与敏感业务库间的安全数据交互;处理器监控模 块负责垫片共享库与敏感业务库间数据通信的监控工作,若存在不参照可信执行环境设置 模式的垫片共享库,处理器监控模块将拒绝垫片共享库调用敏感业务库的敏感业务处理请 求;
[0022] (23)垫片共享库向普通执行环境上层代码逻辑提供敏感业务通信的API接口,实 现普通执行环境上层代码逻辑通过该接口对可信执行环境安全处理过数据的网络通信,从 而完成基于可信执行环境的垫片共享库。
[0023] 所述步骤(3)中用户在支持可信执行环境的智能终端,下载安装应用系统,可信 执行环境平台将敏感业务库动态安全地加载到可信执行环境中的具体步骤:
[0024] (31)通过加载/调用函数读取敏感业务库中特定字段位置的数据信息,包括应用 系统包名、各函数字段位置、签名值和哈希算法;
[0025] (32)采用(31)步骤读取的哈希算法对应用系统包名进行哈希运算,生成哈希值 Hpackage = hash (package);
[0026] (33)利用步骤(31)读取的各函数字段位置信息,读取各函数的二进制 信息,并采用①读取的哈希算法对各函数二进制信息进行哈希运算,生成哈希值Hnuuu〇n, =Hashifunctioni),
[0027] (34)对各函数的哈希值#和应用系统包名的哈希值Hpadtage采用步骤(31) 读取的哈希算法进行哈希运算,生成哈希值丑=Il ;
[0028] (35)可信执行环境加载/调用函数读取可信第三方CA的公钥,验证步骤(31)读 取的签名值得到= functiont Il ipdbgJ ;其中Package代表的是应用系统的 包名,function代表敏感业务库中的函数;
[0029] (36)可信执行环境中的加载/调用函数比较哈希值H和H'是否相等,若相等,则 加载/调用函数加载该敏感库到可信执行中,否则,停止加载。
[0030] 本发明与现有技术相比,具有以下优点:本发明在保证开发效率的情况下,将核心 数据操作转移到可信执行环境中,将普通应用改造为基于可信执行环境的客户端/服务器 架构的安全应用系统。该方法在有效提高应用系统的安全性并保护了开发者的开发习惯, 同时降低了可信执行环境构建的复杂度,为市场中大部分高安全应用的研发提供了有力的 技术支持。

【专利附图】

【附图说明】
[0031] 图1为本发明的整体实施示意图;
[0032] 图2为本发明中敏感业务库实现的示意图;
[0033] 图3为本发明中垫片共享库实现的示意图;
[0034] 图4为本发明发布与安装实现方法的示意图。

【具体实施方式】
[0035] 为使本发明的目的、优点以及技术方案更加清楚明白,以下通过具体实施,并结合 附图,对本发明进一步详细说明。
[0036] 对于图1从整体上描述了该方案实施的总体架构,主要包括下面三个部分的内 容。
[0037] -、基于可信执行环境安全应用系统的敏感业务库实现方法
[0038] 高安全应用的开发者将应用系统的敏感业务处理单元和非敏感业务处理单元,非 敏感业务处理单元是指处理非核心数据的代码逻辑,敏感业务处理单元是处理核心数据的 代码逻辑,并完成敏感业务库被可信第三方CA签名,从而实现基于可信执行环境应用系统 敏感业务库。下面结合图2具体描述其处理过程:
[0039] a)高安全应用的开发者,要将安全应用系统的业务处理单元,清晰的划分为敏感 业务处理单元和非敏感业务处理单元,如敏感业务处理逻辑单元包含核心数据的产生、存 储,密码学相关操作(密钥生成、签名验签、加解密函数、证书验证、安全随机数生成)等,并 将敏感业务处理逻辑单元用动态共享库实现,作为敏感业务库,如安卓系统下so库;
[0040] b)开发者对敏感业务库完成可信第三方CA的签名,签名步骤为:①敏感业务库 中各函数(敏感业务库是由一些处理核心数据的函数组成,如密钥生成函数、加解密函 数、签名验签函数、安全随机数函数等)的二进制信息进行哈希算法(如SHA1、SHA256、 SHA512、SM3等)运行,生成各函数的哈希值"細= 服力;②敏感业务库 对应的应用系统包名进行哈希运行,生成应用系统包名的哈希值Hpaekage = hash (package); ③对各函数的哈希值#和应用系统包名的哈希值Hpadtage进行哈希运算,生成哈 希值if = 11 南),用可信第三方CA对哈希值H签名,生成签名值 sign[H];
[0041] c)开发者需按照可信执行环境设定模式,将上述b)所涉及到信息,如应用系统包 名、各函数字段位置、签名值及哈希算法(如SHA256、SHA512、SM3等),按照可信执行环境 加载模式规定字段位置,存放在敏感业务库内,以便在可信执行环境中实现该库动态安全 地加载。
[0042] 该过程执行是基于可信执行环境高安全应用系统实施的第一步,将为基于可信执 行环境高安全应用系统的实现奠定前提条件。
[0043] 二、基于可信执行环境安全应用系统的垫片共享库实现方法
[0044] 开发者在垫片共享库中实现可信执行环境驱动逻辑处理,及利用处理器监控模 式,实现普通执行环境与可信执行环境中敏感业务逻辑间的数据通信。下面结合附图3具 体描述其处理过程:
[0045] a)开发者在垫片共享库中利用可信执行环境提供的代理驱动层API接口,实现可 信环境代理驱动逻辑的处理工作;
[0046] b)垫片共享库借助处理器监控模块提供的API接口,及敏感业务库中敏感业务处 理逻辑API接口,如密钥生成API接口、签名验签API接口、加解密函数API接口、证书验证 API接口、安全随机数生成API接口,实现普通执行环境与敏感业务库间的安全数据交互。 处理器监控模块负责垫片共享库与敏感业务库间数据通信的监控工作,若存在不参照可信 执行环境设置模式的垫片共享库,处理器监控模块将拒绝垫片共享库调用敏感业务库的敏 感业务处理请求;
[0047] c)垫片共享库向普通执行环境上层代码逻辑(如java层代码)提供敏感业务通 信的API接口,实现普通执行环境上层代码逻辑通过该接口对可信执行环境安全处理过数 据的网络通信,从而完成基于可信执行环境的垫片共享库,如安卓系统下so库。
[0048] 该过程的实施将实现普通执行环境与可信执行环境中敏感业务库数据安全通信, 为可信执行环境中高安全应用系统的实现奠定通信基础。
[0049] 三、基于可信执行环境安全应用系统发布与安装的实现方法
[0050] 如图4所示,利用打包技术,将步骤一和步骤二完成应用系统的垫片共享库、敏感 业务库及非敏感业务处理单元打包发布,用户在支持可信执行环境的智能终端,下载安装 高安全应用系统,可信执行环境平台将敏感业务库动态安全地加载到可信执行环境中,实 现用户对高安全性应用的处理需求。
[0051] a)开发者通过打包技术,将垫片共享库、敏感业务库及普通业务操作逻辑打包发 布应用系统;
[0052] b)用户在支持可信执行环境的智能终端安装a)打包的应用系统,可信执 行环境中的加载/调用函数库完成敏感业务库的动态安全加载,具体步骤:①通过加 载/调用函数读取敏感业务库中特定字段位置的数据信息,如应用系统包名、各函数 字段位置、签名值和哈希算法;②采用①步骤读取的哈希算法对应用系统包名进行哈 希运算,生成哈希值Hpaekage = hash (package);③利用①步骤读取的各函数字段位置信 息,读取各函数的二进制信息,并采用①读取的哈希算法对各函数二进制信息进行哈 希运算,生成哈希值#/"时_ = );④对各函数的哈希值//細和 应用系统包名的哈希值Hpadtage采用①步骤读取的哈希算法进行哈希运算,生成哈希值 /7 = /細(7/〇": Il ;⑤可信执行环境加载/调用函数读取可信第三方CA的 公钥,验证①步骤读取的签名值得到开11 ;⑥可信执行环境 中的加载/调用函数比较哈希值H和H '是否相等,若相等,则加载/调用函数加载该敏感 库到可信执行中,否则,停止加载。
[0053] c)可信执行环境在加载敏感业务库成功后,为该敏感业务库创建守护服务,保证 及时处理来自普通程序执行环境中的敏感业务处理单元请求,至此基于可信执行环境高安 全应用系统实施完毕。
[0054] 提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本 发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修 改,均应涵盖在本发明的范围之内。
【权利要求】
1. 一种基于可信执行环境高安全应用系统的实现方法,其特征在于实现步骤为: (1) 首先,将智能终端应用系统的业务处理单元划分为敏感业务处理单元和非敏感业 务处理单元,所述敏感业务处理单元包含核心数据的产生、存储及密码学相关操作;所核心 数据是指密码信息、交易数据、身份信息等;所述密码学相关操作包括密钥生成、签名验签、 加解密函数、证书验证及安全随机数生成;所述非敏感业务处理单元是指处理非核心数据 的代码逻辑;再将敏感业务处理逻辑单元用动态共享库实现,作为敏感业务库,所述敏感业 务库是由一些处理核心数据的函数组成,包括密钥生成函数、加解密函数、签名验签函数、 安全随机数函数;并完成敏感业务库被可信第三方CA的签名,从而将敏感业务库动态安全 地加载到可信执行环境中; (2) 其次,通过垫片共享库实现与可信环境中敏感业务库的交互; (3) 最后,利用打包技术,将步骤(1)和步骤(2)实现的垫片共享库、敏感业务库及非敏 感业务处理单元打包发布,用户在支持可信执行环境的智能终端,下载安装应用系统,可信 执行环境平台将敏感业务库动态安全地加载到可信执行环境中。
2. 根据权利要求1所述的基于可信执行环境高安全应用系统的实现方法,其特征在 于:所述步骤(1)中完成敏感业务库被可信第三方CA的签名的具体实现步骤如下: (11) 对敏感业务库中函数的二进制信息进行哈希算法运行,生成各函数的哈希值
(12) 敏感业务库对应的应用系统的包名进行哈希运行,生成应用系统包名的哈希值 Hpackage =hash(package); (13) 对各函数的哈希值和应用系统包名的哈希值Hpadtage进行哈希运算,生成 哈希值
,用可信第三方CA对哈希值H签名,生成签名值 sign[H];其中package代表的是应用系统的包名,function代表敏感业务库中的函数。
3. 根据权利要求1所述的基于可信执行环境高安全应用系统的实现方法,其特征在 于:所述步骤(2)中的通过垫片共享库实现与可信环境中敏感业务库过程为: (21) 在垫片共享库中利用可信执行环境提供的代理驱动层API接口,实现可信环境代 理驱动逻辑的处理工作; (22) 垫片共享库借助处理器监控模块提供的API接口,及敏感业务库中敏感业务处理 逻辑API接口,实现普通执行环境与敏感业务库间的安全数据交互;处理器监控模块负责 垫片共享库与敏感业务库间数据通信的监控工作,若存在不参照可信执行环境设置模式的 垫片共享库,处理器监控模块将拒绝垫片共享库调用敏感业务库的敏感业务处理请求; (23) 垫片共享库向普通执行环境上层代码逻辑提供敏感业务通信的API接口,实现普 通执行环境上层代码逻辑通过该接口对可信执行环境安全处理过数据的网络通信,从而完 成基于可信执行环境的垫片共享库。
4. 根据权利要求1所述的基于可信执行环境高安全应用系统的实现方法,其特征在 于:所述步骤(3)中用户在支持可信执行环境的智能终端,下载安装应用系统,可信执行环 境平台将敏感业务库动态安全地加载到可信执行环境中的具体步骤: (31)通过加载/调用函数读取敏感业务库中特定字段位置的数据信息,包括应用系统 包名、各函数字段位置、签名值和哈希算法; (32) 采用(31)步骤读取的哈希算法对应用系统包名进行哈希运算,生成哈希值Hpadtage =hash(package); (33) 利用步骤(31)读取的各函数字段位置信息,读取各函数的二进制信 息,并采用①读取的哈希算法对各函数二进制信息进行哈希运算,生成哈希值
(34) 对各函数的哈希值,和应用系统包名的哈希值民^^采用步骤(31)读取 的哈希算法进行哈希运算,生成哈希值-
(35) 可信执行环境加载/调用函数读取可信第三方CA的公钥,验证步骤(31)读取的 签名值得到
;其中package代表的是应用系统的包名, function代表敏感业务库中的函数; (36) 可信执行环境中的加载/调用函数比较哈希值H和H'是否相等,若相等,则加载 /调用函数加载该敏感库到可信执行中,否则,停止加载。
【文档编号】G06F21/57GK104408371SQ201410543247
【公开日】2015年3月11日 申请日期:2014年10月14日 优先权日:2014年10月14日
【发明者】王雅哲, 王瑜, 田琛 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1