基于可信执行环境中虚拟安全元件的安全系统实现方法
【技术领域】
[0001]本发明涉及的是一种移动设备安全领域的技术,具体是一种基于可信执行环境(TEE, Trusted Execut1n Environment)中虚拟安全元件(SE,Secure Element)的安全系统实现方法。
【背景技术】
[0002]软件运行环境是指软件运行所需的各种条件,可分为丰富运行环境和可信执行环境。
[0003]丰富运行环境由软件和硬件组成,提供丰富的功能接口,是针对多功能性和丰富性创建的软件执行环境。它包括多功能操作系统以及运行在其上面的各种应用程序,多功能操作系统又名Rich操作系统,Rich OS。举个移动设备上的多功能操作系统的例子,如Android,它可运行在智能手机、平板电脑和智能手表等移动设备上,提供了非常丰富的功能接口,Android应用程序调用这些接口实现各类需求,例如无线通信、网上购物等。但其安全性相对较低,数据容易被窃取。
[0004]可信执行环境由可信软件和可信硬件组成,与设备上的Rich OS并存并共享处理器资源。它提供了仅次于安全元件芯片的高安全性,可以针对在Rich OS环境中生成的软件攻击提供保护,在访问与Rich OS隔离的敏感性应用时,提供访问控制处理,并且可以提供对敏感数据的安全存储。例如,TEE是内容提供商在限定的时间段内提供视频服务的理想环境,因为其重要内容(例如高清视频)的安全需要得到保障,使其无法被免费共享。目前相对于Rich OS来说,提供的功能相对简单。
[0005]一个移动设备上可信执行环境的商用实例是基于ARM trustZone的系统级芯片技术,几个常用的应用场景包括内容管理,移动金融服务,可信用户界面,硬件资源隔离,安全数据存储,高安全性的身份识别及访问控制等。
[0006]安全元件芯片由软件和防篡改硬件组成,支持高级别的安全性。对于需要最高安全级别的近距离支付或官方电子签名,SE是强制的安全措施。其内部具有加密/解密逻辑电路或算法,以防止外部恶意解析攻击,保护数据安全。比如银行卡内都会包含一颗安全元件芯片,以保护用户账户,密钥,证书等敏感数据。
[0007]目前已知方案中,安全元件芯片连接到Rich OS,Rich OS应用通过Rich OS访问和操作安全元件芯片,如图1所示。Rich OS将安全元件视为外部设备,各类应用可以调用内置在Rich OS的通道管理及访问控制模块来访问安全元件芯片。通道管理及访问控制模块包括通道管理模块和访问控制模块。在应用同时打开多个通道发起访问至安全元件芯片,通道管理模块管理在多个通道上同时传输数据的同步处理。访问控制模块根据访问控制规则判断应用是否可以访问安全元件芯片内的applet,该规则保存在安全元件芯片的访问控制applet内,在通道管理及访问控制模块初始化时从安全元件芯片的访问控制applet读出并缓存在Rich OS内。
[0008]已知的通用访问安全元件芯片的流程是,当Rich OS应用需要访问安全元件芯片,首先调用通道管理及访问控制模块的通道管理模块使用相应的终端打开一个通道,在打开通道时,访问控制模块会根据访问控制规则判断是否接受该次访问。如果接受,通道管理模块会打开一个数据通道访问安全元件芯片,如果不接受,通道管理模块会停止。
[0009]目前已知的可信执行环境仅支持C/C++实现的安全应用数量极少,且可移植性差,无法适应目前应用的快速更新及跨平台需求。并且由于开发安全应用的复杂度,例如,无法在线调试,将可能引入新的安全问题导致可信执行环境内的敏感数据泄漏,以致整个系统易受攻击。
[0010]经过对现有技术的检索发现,Zaheer Ahmad等在“Enhancing the Security ofMobile Applicat1ns by using TEE and (U) SIM(通过 TEE和(U) SIM加强移动应用的安全性)”(2013 IEEE UIC/ATC)中提出了一种安全体系结构和一种新颖的移动支付和多媒体内容回放解决方案,利用在现有的后付费记帐方法,整合了 TEE和(U) SIM的网络安全技术,以提供用户身份验证,内容购买增强的安全性,受保护的存储和安全内容的观看。欧洲专利文献号EP2746981A1,公开(公告)日2014.06.25,公开了一种针对可信应用的接入控制方法,通过在Rich OS的现有规则中增加针对可信应用的控制规则。
[0011]但由于上述技术中涉及操作系统对于可信通道以及权限管理的控制,使得实际应用对可信执行环境的访问无法摆脱外置硬件的约束,在安全性和系统架构有效性之间难以实现平衡,使得造成了现阶段可信执行环境的推广受到较大阻碍。
【发明内容】
[0001]本发明针对现有技术存在的上述不足,提出一种基于可信执行环境中虚拟安全元件的安全系统实现方法,简化了现有系统结构的同时,显著提高了系统安全性;每个虚拟安全元件内设虚拟机使得易用性及可移植性显著提高。
[0002]本发明是通过以下技术方案实现的:
[0003]本发明通过在Rich OS内置的通道管理和访问控制模块中移除针对访问可信执行环境的访问控制处理,然后在可信执行环境中设置一个向Rich OS中的应用提供统一访问接口的安全管理模块和至少一个虚拟安全元件,通过安全管理模块接收所有来自Rich OS中的应用的访问请求,从而实现对系统安全性的改进。
[0004]所述的通道管理和访问控制模块对每个终端的实现都配置有访问控制,但RichOS的低安全性降低了它存在的必要性,因此移除针对访问可信执行环境的访问控制处理。
[0005]所述的访问请求通过Rich OS中的应用发出,由设置于Rich OS中的通道管理及访问控制模块传输至所述安全管理模块。
[0006]所述的访问请求针对可行执行环境中虚拟安全元件中的安全应用或针对安全元件芯片中的安全应用。
[0007]所述的安全管理模块在可信执行环境初始化或收到初次请求时,从源数据中读入并解析访问控制规则集合。所述的源数据保存于安全管理模块内和/或虚拟安全元件内。
[0008]所述的虚拟安全元件采用虚拟机机制来承载多个安全应用,可支持安全应用的安装、卸载及更新等管理功能。具体为,所述的虚拟安全元件包括至少一个安全应用、一个用于接收访问请求并保存证书或签名数据的权限管理单元和一个用于进行动态安装、卸载或更新应用的应用管理单元。
[0009]所述的采用虚拟机机制来承载多个安全应用可采用本领域技术人员通晓的开源/非开源操作系统实现。
[0010]所述的虚拟安全元件中优选进一步设有访问控制应用,该访问控制应用用于生成或修改针对安全应用的访问规则。
[0011]所述的应用管理单元在收到来自Rich OS的初次访问请求时,启动一用于执行所述安全应用的虚拟机进程,该虚拟机进程接收并处理所有指向该安全应用的访问请求。
[0012]所述的虚拟机优选为运行于可信执行环境中的JAVA虚拟机。
[0013]所述的安全应用优选通过JAVA实现。
[0014]所述的权限管理单元通过解析证书或签名数据获得相应的访问权限信息,并根据访问权限信息反馈所述访问请求。
技术效果
[0015]与现有技术相比,本发明技术效果包括:
[0016]第一,在Rich OS内置的通道管理和访问控制模块中增加对可信执行环境中应用访问的终端,并且由于Rich OS的低安全性,移除该通道管理和访问控制模块中针对访问可信执行环境的访问控制处理,简化了系统设计,提高了系统效率。
[0017]第二,可信执行环境中,增加安全管理模块,由安全管理模块按照访问控制配置统一处理Rich OS应用对虚拟安全元件的访问,提高了安全性。
[0018]第三,可信执行环境内实现一个或多个独立的虚拟安全元件。每个虚拟安全元件内设有虚拟机,可支持多个安全应用同时工作,并且可以支持应用的安装、下载以及更新,提高了易用性及可移植性。
[0019]第四,每个虚拟安全元件都支持统一的证书管理功能,保证证书或者签名数据在可信执行环境中,不会外泄,提高了用户数据的安全性。
[0020]第五,将安全元件芯片连接到可信执行环境,由安全管理模块管理读取其访问控制规则,来处理对安全元件芯片的访问,提高了安全性。
【附图说明】
[0021]图1为现有技术示意图;
[0022]图2为本发明实施示意图;
[0023]图3为图2中Rich OS应用对虚拟安全元件访问的示意图;[0024]图4为访问规则集合的初始化示意图;
[0025]图5为虚拟安全元件示意图;
[0026]图6为安全芯片连接示意图。
【具体实施方式】
[0027]下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
[0028]如图2所示,本实施例为访问请求针对可行执行环境中虚拟安全元件中的安全应用。
[0029]本实施例通过在Rich OS内置的通道管理和访问控制模块中增加对可信执行环境访问的终端,并移除针对访问可信执行环境的访问控制处理,再在可信执行环境中设置一个向Rich OS中的应用提供统一访问接口的安全管理模块和至少一个虚拟安全元件,通过安全管理模块接收所有来自Rich OS中的应用的访问请求。
[0030]所述的安全管理模块接收来自Rich OS中的应用对虚拟安全元件的访问请求,该访问请求通过设置于Rich OS中的通道管理及访问控制模块向安全管理模块发出。
[0031]所述的通道管理及访问控制模块中设有多个终端,每个终端对应可信执行环境中一个虚拟安全元件。
[0032]如图3中虚线所示,当Rich OS中的应用发起访问请求,要求运行可信执行环境中虚拟安全元件上的一个安全应用时,如实线所示,本实施例将首先通过Rich OS内置的通道管理及访问控制模块建立一个可信通道,并通过终端获取Rich OS中该应用的唯一标识符;然后将该唯一标识符和访问请求通过可信通道发送至安全管理模块;安全管理模块收到唯一标识符和访问请求后,根据预存的访问控制规则集合判断是否接受访问,并进一步将访问请求和唯一识别符号传输至虚拟安全元件。
[0033]所述的唯一标识符包括但不限于:应用ID、芯片ID、应用签名、应用签名的hash值、应用名字符串等,该唯一标识符可以由可信执行环境提供商直接指定或通过软件扫描并动态分配。
[0034]如图3和图4所示,所述的安全管理模块中包括用于判断上述访问请求是否合法的访问控制模块和用于分配可信通道的通道管理模块。
[0035]所述的安全管理模块在可信执行环境初始化或收到初次请求时,从源数据中读入并解析访问控制规则集合,具体步骤为:
[0036]I)访问控制模块遍历可信执行环境内虚拟安全元件,读取其中的访问控制应用。
[0037]2)当虚拟安全元件中不存在访问控制应用时,则设置访问规则为空,即无需访问控制处理,否则读取该访问控制应用中持有的访问控制规则。
[0038]3)访问控制模块将访问控制规则分类,优化后保存在访问控制规则的缓存中,供后续访问时判断权限使用,完成初始化。所述分类方式,可以包括但不限于以下方法,根据虚拟安全元件ID区分不同虚拟安全元件上的不同应用,或者根据不同应用的唯一标识符的顺序排序,例如首字母顺序。
[0039]所述的访问规则集合包括但不限于:{Rich OS应用ID,安全应用ID}、{Rich OS应用签名}、{虚拟安全元件/安全元件芯片ID,安全应用ID}等,其中:应用ID/签名可以是应用名、应用的唯一标识或者其他形式的表示符号,安全元件ID。
[0040]所述的访问规则采用但不限于存储于安全元件内部的文件系统或存储于安全元件的安全应用或存储与安全管理模块本身,并通道管理模块负责对安全元件的管理,根据请求中目标安全元件将请求的数据传送至正确的安全元件,并返回请求的结果数据至正确的Rich OS应用。
[0041]由于可信执行环境中实现的至少一个虚拟安全元件唯一通过安全管理模块访问,而安全管理模块的关键数据,如用户名,密码,各类密钥/数字证书等,保存于可信执行环境中不会外泄,从而提高了安全性。
[0042]如图5所示,所述的虚拟安全元件包括:安全文件系统、安全存储单元、加密解密单元、图形界面接口(GUI)、虚拟机、应用管理单元以及权限管理单元,其中:安全文件系统通过虚拟机与安全应用相连并接收数据保存请求,实现不同安全应用生成的文件仅对该安全应用可见,安全存储单元通过虚拟机与安全应用相连并接收证书或密钥保存请求,加密解密单元与通过虚拟机与安全应用相连并接收数据加密解密请求,图形界面接口通过虚拟机与安全应用相连并接收图形数据信息以提供安全的人机界面。
[0043]所述应用管理单元实现安全应用的下载、安装、更新、删除并通过虚拟机与安全文件系统及安全存储单元相连以传输安全应用安装包。
[0044]所述权限管理单元提供证书管理功能,并通过虚拟机与安全文件系统及安全存储单元相连以传输证书和/或密钥。
[0045]所述的虚拟机优选为JAVA虚拟机,该虚拟机与多个安全应用相连。
[0046]所述的安全应用安装包保存于安全文件系统或安全存储单元内。
[0047]所述的权限管理单元处理来自本安全元件内安全应用的保存/生成/删除证书需求,并支持移动支付环境下交易双方对安全证书的需求。
实施例2
[0048]如图6所示,本实施例与实施例1的区别在于,所述的访问请求针对安全元件芯片中的安全应用,同样地,本实施例中通过安全管理模块接收所有来自Rich OS中的应用的访问请求,将安全元件芯片与可信执行环境相连,Rich OS中的应用发出访问安全芯片内的安全应用的请求时,该访问请求首先被传输至可信执行环境中安全管理模块,安全管理模块通过判断该访问请求是否符合访问控制规则以接受或拒绝该请求。
[0049]本实施例中访问规则的初始化同样由安全管理模块在可信执行环境初始化或收到初次请求时,从源数据中读入。
【主权项】
1.一种基于可信执行环境中虚拟安全元件的安全系统实现方法,其特征在于,通过在Rich OS内置的通道管理和访问控制模块中增加对可信执行环境访问的终端,并移除针对访问可信执行环境的访问控制处理,然后在可信执行环境中设置一个向Rich OS中的应用提供统一访问接口的安全管理模块和至少一个虚拟安全元件,通过安全管理模块接收所有来自Rich OS中的应用的访问请求,从而实现对系统安全性的改进。2.根据权利要求1所述的方法,其特征是,所述的访问请求通过RichOS中的应用发出,由设置于Rich OS中的通道管理及访问控制模块传输至所述安全管理模块。3.根据权利要求1所述的方法,其特征是,所述的虚拟安全元件包括至少一个安全应用、一个用于接收访问请求并保存证书或签名数据的权限管理单元和一个用于进行动态安装、卸载或更新应用的应用管理单元。4.根据权利要求1或3所述的方法,其特征是,所述的访问请求针对可行执行环境中虚拟安全元件中的安全应用或针对安全元件芯片中的安全应用。5.根据权利要求1所述的方法,其特征是,所述的安全管理模块在可信执行环境初始化或收到初次请求时,从源数据中读入并解析访问控制规则集合。6.根据权利要求5所述的方法,其特征是,所述的源数据保存于安全管理模块内和/或虚拟安全元件内。7.根据权利要求1或3或4或6所述的方法,其特征是,所述的虚拟安全元件中设有访问控制应用,该访问控制应用用于生成或修改针对安全应用的访问规则。8.根据权利要求1所述的方法,其特征是,所述的应用管理单元在收到来自RichOS的初次访问请求时,启动一用于执行所述安全应用的虚拟机进程,该虚拟机进程接收并处理所有指向该安全应用的访问请求。9.根据权利要求1所述的方法,其特征是,所述的权限管理单元通过解析证书或签名数据获得相应的访问权限信息,并根据访问权限信息反馈所述访问请求。
【专利摘要】一种信息安全领域的基于可信执行环境中虚拟安全元件的安全系统实现方法,通过在Rich OS内置的通道管理和访问控制模块中增加对可信执行环境访问的终端,并移除针对访问可信执行环境的访问控制处理,然后在可信执行环境中设置一个向Rich OS中的应用提供统一访问接口的安全管理模块和至少一个虚拟安全元件,通过安全管理模块接收所有来自Rich OS中的应用的访问请求,从而实现对系统安全性的改进。本发明简化了现有系统结构的同时,显著提高了系统安全性;每个虚拟安全元件内设虚拟机使得易用性及可移植性显著提高。
【IPC分类】G06F21/53, G06F21/62, G06F21/74
【公开号】CN104899506
【申请号】CN201510232658
【发明人】韩医徽, 章勇, 姜波, 赵晨曦, 方琍, 李川川, 王巨
【申请人】深圳市雪球科技有限公司
【公开日】2015年9月9日
【申请日】2015年5月8日