本发明涉及可信应用技术,尤其涉及一种下载方法及终端。
背景技术:
随着智能手机软硬件技术的高速发展,用户使用智能手机的频率在显著提高。智能手机给用户带来便利的同时,开放的手机操作系统(如安卓(android))环境也暴露出越来越多的安全问题。因此提升开放手机操作系统环境的安全性成为了一个亟待解决的问题,尤其是针对高安全应用,比如移动支付、企业应用、内容版权管理等,安全更是重中之重。
基于此,产生了可信执行环境(tee,trustedexecutionenvironment)。tee是设备上与富执行环境(ree,richexecutionenvironment)((ree,richexecutionenvironment)并存的运行环境,tee提供隔离的执行环境。可信应用(ta,trustedapplication)运行在tee中,以保证应用的安全性。
在设备上安全、有效地部署ta也是整个安全生态链上非常重要的一环。
然而,目前当ta下载到设备中后,不能再单独下载其他ta,这样就不能安全、有效地在设备上部署ta。
技术实现要素:
为解决现有存在的技术问题,本发明实施例提供一种下载方法及终端。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种下载方法,所述应用于终端,所述终端支持ree和tee,所述方法包括:
在所述ree中接收服务器发送的下载命令;所述下载命令包含ta的第一数据;
通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;
在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;
在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储。
上述方案中,所述对所述第三数据进行存储,包括:
通过所述数据通道将所述第三数据传输至所述ree中;
在所述ree中,将所述第三数据存储至所述ree中的第一非易失性存储器中。
上述方案中,所述在所述tee中对所述第二数据进行安全处理,包括:
在所述tee中,使用第一密钥对所述第二数据进行加密;
并使用第二密钥对加密后的第二数据进行签名,得到所述第三数据。
上述方案中,所述方法还包括:
在所述tee中,从所述tee中的第二非易失性存储器中读取所述第一密钥和第二密钥;所述第二非易失性存储器为只读存储器或者验证通过后可访问的存储器。
上述方案中,所述方法还包括:
在所述ree中,生成第一指令;所述第一指令用于在所述tee中加载ta;
通过所述数据通道将所述第一指令传输至所述tee中;
在所述tee中,响应所述第一指令,通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据;
对所述第三数据进行解安全处理,得到所述第二数据;加载所述第二数据至所述tee对应的内核空间运行,以在所述ree与tee中建立对应的会话。
上述方案中,所述通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据,包括:
在所述tee中生成第一请求;所述第一请求用于从所述ree中获取ta数据;
通过所述数据通道将所述第一指令传输至所述ree中;
在ree中,根据所述第一请求,从所述第一非易失性存储器中读取所述第三数据;
通过所述数据通道将读取的所述第三数据传输至所述tee中。
上述方案中,所述对所述第三数据进行解安全处理,包括:
在所述tee中,使用第三密钥对所述第三数据进行签名验证,验证通过后得到加密的第二数据;
使用第四密钥对加密的第二数据进行解密。
本发明实施例还提供了一种终端,所述终端支持ree和tee,所述终端包括:
第一操作单元,用于在所述ree中接收服务器发送的下载命令;所述下载命令包含ta的第一数据;以及通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;
第二操作单元,用于在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;以及在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储。
上述方案中,所述第二操作单元,具体用于:
通过所述数据通道将所述第三数据传输至所述ree中;
在所述ree中,将所述第三数据存储至所述ree中的第一非易失性存储器中。
上述方案中,所述第二操作单元,具体用于:
在所述tee中,使用第一密钥对所述第二数据进行加密;
并使用第二密钥对加密后的第二数据进行签名,得到所述第三数据。
上述方案中,所述第二操作单元,还用于在所述tee中,从所述tee中的第二非易失性存储器中读取所述第一密钥和第二密钥;所述第二非易失性存储器为只读存储器或者验证通过后可访问的存储器。
上述方案中,所述第一操作单元,还用于:在所述ree中,生成第一指令;所述第一指令用于在所述tee中加载ta;以及通过所述数据通道将所述第一指令传输至所述tee中;
所述第二操作单元,还用于在所述tee中,响应所述第一指令,通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据;对所述第三数据进行解安全处理,得到所述第二数据;以及加载所述第二数据至所述tee对应的内核空间运行,以在所述ree与tee中建立对应的会话。
上述方案中,所述第二操作单元,具体用于:
在所述tee中生成第一请求;所述第一请求用于从所述ree中获取ta数据;以及通过所述数据通道将所述第一指令传输至所述ree中;
所述第一操作单元,还用于在ree中,根据所述第一请求,从所述第一非易失性存储器中读取所述第三数据;以及通过所述数据通道将读取的所述第三数据传输至所述tee中。
上述方案中,所述第二操作单元,具体用于:
在所述tee中,使用第三密钥对所述第三数据进行签名验证,验证通过后得到加密的第二数据;
使用第四密钥对加密的第二数据进行解密。
本发明实施例提供的下载方法及终端,终端支持ree和tee,在所述ree中接收服务器发送的下载命令;所述下载命令包含ta的第一数据;通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储,通过ree的代理作用,实现服务器与tee的安全交互,可实现ta的动态下载,从而提高了下载效率,提升了用户体验。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为tee与ree关系示意图;
图2为相关技术中ta通过预置的方式下载到手机中示意图;
图3为相关技术中通过fota技术下载ta中设备交互示意图;
图4为本发明实施例一下载的方法流程示意图;
图5为本发明实施例二终端结构示意图;
图6为本发明实施例三系统结构示意图;
图7为本发明实施例三ta下载过程中各模块的交互示意图;
图8为本发明实施例三ta存储过程中各模块的交互示意图;
图9为本发明实施例三ta加载过程中各模块的交互示意图;
图10为本发明实施例三安全机制示意图;
图11为本发明实施例三存储机制意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
tee提供隔离的执行环境。如图1所示,这种隔离的执行环境是基于armtrustzone硬件隔离技术实现的。正是由于tee具有独立的执行空间,因此比ree的安全级别更高。这里,ree还可以称为普通执行环境,比如android等。
ta是运行在tee中的应用,硬件隔离技术可以保证ta不受下载到ree中的应用(app,application)的影响。tee和ta的使用可以有效地提升应用的安全性,但同时,安全、有效地部署ta也是整个安全生态链上重要的一环。
现有在手机设备上部署ta的方案主要有以下两种:
第一种,如图2所示,ta通过预置的方式下载到手机系统中,即在手机生产环节部署ta。由于ta是在手机生产环节部署的,所以用户在使用过程中,是无法再下载其他ta的。
第二种,如图3所示,利用现有的空中下载软件升级(fota,firmwareover-the-air)技术下载ta。具体地,fota服务器通过网络,为具有连网功能的设备提供固件升级服务。针对ree,如android系统,fota技术可以进行增量更新,即可以进行app的增量下载。而针对tee,fota技术只能更新整个tee镜像文件,因此,当需要额外下载ta时,不能只下载ta,而是需要下载更新整个tee镜像文件。更新tee镜像文件后,系统需要重新启动来运行可信执行环境加载ta。
通过fota技术下载ta,不支持ta的增量下载,如果要进行增量下载,需要下载更新整个tee镜像文件,如此,下载ta所需的时间长,且下载效率低。另外通过fota技术下载ta后,由于是更新了整个tee镜像文件,所以系统需要重新启动,从而使得用户体验较差。
从上面的描述中可以看出,上述两种方式中,都不能再单独下载ta,进行ta的增量,不能安全、有效地在设备上部署ta。
基于此,在本发明的各种实施例中:在ree中接收服务器发送的下载命令;所述下载命令包含ta的第一数据;通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储。
实施例一
本发明实施例提供一种下载方法,具体来说是一种ta的下载方法,应用于终端。该终端支持ree和tee。其中,所述tee提供隔离的执行的环境,具有独立的执行空间,可以采用基于armtrustzone硬件隔离技术实现。
ree提供普通的操作系统运行,tee提供安全操作系统运行,由安全操作系统加载并运行ta。
这里,所述普通的操作系统是指开放的操作系统,比如linux、或andriod等。
图4为本发明实施例一下载的方法流程示意图。如图4所示,该方法包括以下步骤:
步骤401:在所述ree中接收服务器发送的下载命令;
这里,所述下载命令包含ta的第一数据。
步骤402:通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;
步骤403:在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;
步骤404:在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储。
这里,所述在所述tee中对所述第二数据进行安全处理,得到第三数据,具体包括:
在所述tee中,使用第一密钥对所述第二数据进行加密;
并使用第二密钥对加密后的第二数据进行签名,得到所述第三数据。
其中,实际应用时,为了安全性,可以将第一密钥(加密密钥)和第二密钥(签名密钥)存储在安全度高的区域(比如efuse区或者回环保护分区(rpmb,replayprotectmemoryblock)等)。
这里,efuse是指编程熔丝,使用该技术能确保该区域只能写入1次数据,通常用于保护关键数据。
基于此,在一实施例中,该方法还可以包括:
在所述tee中从第二非易失性存储器中读取所述第一密钥和第二密钥;所述第二非易失性存储器为只读存储器或者验证通过后可访问的存储器(安全度高的区域)。
所述对所述第三数据进行存储,具体包括:
通过所述数据通道将所述第三数据传输至所述ree中;
在所述ree中,将所述第三数据存储至所述ree中的第一非易失性存储器中。
其中,目前ta的存储方案是将ta存储在tee中,这就需要tee实现文件系统,从而增加了tee操作系统实现的复杂性。而在本发明实施例中,将所述第三数据存储至所述ree中的第一非易失性存储器中,将ta加密存储在ree中,这样ree和tee可以共享ree的文件系统,从而可以有效地降低tee系统功能的复杂性。
当将ta存储至所述第一非易失性存储器后,在tee中生成下载响应;
通过所述数据通道将所述下载响应传输至所述ree中;
在所述ree中,将所述下载响应发送给所述服务器。
实际应用时,所述第一非易失性存储器可以是:文件系统的/system分区。
当将所述ta存储至所述ree中的第一非易失性存储器后,可以通过ree中的app来实现ta在tee的加载。
基于此,在一实施例中,该方法还可以包括:
在所述ree中,生成第一指令;所述第一指令用于在所述tee中加载ta;
通过所述数据通道将所述第一指令传输至所述tee中;
在所述tee中,响应所述第一指令,通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据;
对所述第三数据进行解安全处理,得到所述第二数据;加载所述第二数据至所述tee对应的内核空间运行,以在所述ree与tee中建立对应的会话。
其中,所述通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据,具体包括:
在所述tee中生成第一请求;所述第一请求用于从所述ree中获取ta数据;
通过所述数据通道将所述第一指令传输至所述ree中;
在ree中,根据所述第一请求,从所述第一非易失性存储器中读取所述第三数据;
通过所述数据通道将读取的所述第三数据传输至所述tee中。
所述对所述第三数据进行解安全处理,具体包括:
在所述tee中,使用第三密钥对所述第三数据进行签名验证,签名验证通过后得到加密的第二数据;
使用第四密钥对加密的第二数据进行解密。
这里,实际应用时,根据加密时所采用加密算法,第一密钥与第四密钥可以相同,也可以不同。具体来说,如果采用的加密算法是对称加密算法,那么第一密钥与第四密钥相同;如果采用的加密算法是非对称加密算法,则第一密钥与第四密钥不同。
对于第二密钥和第三密钥,由于这两个密钥是用于数字签名/验证的,所以一般来讲是不同的。
相应地,第三密钥和第四密钥也可以存储在所述第二非易失性存储器中。那么,在对第三数据进行签名验证以及解密之前,先从所述第二非易失性存储器中读取第三密钥和第四密钥,再使用第三密钥对所述第三数据进行签名验证,签名验证通过后得到加密的第二数据;并使用第四密钥对加密的第二数据进行解密。
实际应用时,实时本发明实施例的方案,需要额外增加服务器(可以称为远程服务器),当在tee中运行ta后,所述服务器可以基于应用安全策略,来确定是否删除运行的ta,当确定需要删除运行的ta时,需要向终端发送删除命令,以删除对应的ta。
基于此,在一实施例中,该方法还可以包括:
在所述ree中接收所述服务器发送的第一删除命令;
通过所述数据通道将所述第一删除命令传输至所述tee中;
在所述tee中对所述删除命令进行安全验证,并在验证通过后响应所述删除命令,在所述tee中删除对应的ta,并生成第二删除命令;
通过所述数据通道将所述第二删除命令传输至所述ree中;
在ree中,响应所述第二删除命令,从所述第一非易失性存储器中删除对应的ta数据。
当然,实际应用时,所述服务器还可以具有其他功能,比如:ta生命周期状态管理、应用数据个人化等等。
本发明实施例提供的下载方法,终端在ree中接收服务器发送的下载命令;所述下载命令包含ta的第一数据;通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储,通过ree的代理作用,实现服务器与tee的安全交互,可实现ta的动态下载,从而提高了下载效率,提升了用户体验。
另外,ta下载后,在所述ree中,生成第一指令;所述第一指令用于在所述tee中加载ta;通过所述数据通道将所述第一指令传输至所述tee中;在所述tee中,响应所述第一指令,通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据;对所述第三数据进行解安全处理,得到所述第二数据;加载所述第二数据至所述tee对应的内核空间运行,以在所述ree与tee中建立对应的会话,利用ree可在tee中动态加载ta,由于并没有改变tee的镜像文件,只是加载ta,不需要重新启动终端,如此,进一步提升了用户体验。
通过所述数据通道将所述第三数据传输至所述ree中;在所述ree中,将所述第三数据存储至所述ree中的第一非易失性存储器中,将ta数据存储至ree中,ree和tee可以共享ree的文件系统,如此,有效地降低了tee系统功能的复杂度。
而且,在所述tee中,使用第一密钥对所述第二数据进行加密;并使用第二密钥对加密后的第二数据进行签名,得到所述第三数据,使用tee的加密机制保护ta的存储,提升了ta存储的安全性。
实施例二
为实现本发明实施例的方法,本实施例提供一种终端,该终端支持ree和tee。其中,所述tee提供隔离的执行的环境,具有独立的执行空间,可以采用基于armtrustzone硬件隔离技术实现。
ree提供普通的操作系统运行,tee提供安全操作系统运行,由安全操作系统加载并运行ta。
这里,所述普通的操作系统是指开放的操作系统,比如linux、或andriod等。
图5为本发明实施例二终端结构示意图。如图5所示,该终端包括:
第一操作单元51,用于在所述ree中接收服务器发送的下载命令;所述下载命令包含ta的第一数据;以及通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;
第二操作单元52,用于在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;以及在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储。
其中,所述第二操作单元52,具体用于:
在所述tee中,使用第一密钥对所述第二数据进行加密;
并使用第二密钥对加密后的第二数据进行签名,得到所述第三数据。
这里,实际应用时,为了安全性,可以将第一密钥(加密密钥)和第二密钥(签名密钥)存储在安全度高的区域(比如efuse区或者rpmb等)。
其中,efuse是指编程熔丝,使用该技术能确保该区域只能写入1次数据,通常用于保护关键数据。
基于此,在一实施例中,所述第二操作单元52,还用于在所述tee中,从所述tee中的第二非易失性存储器中读取所述第一密钥和第二密钥;所述第二非易失性存储器为只读存储器或者验证通过后可访问的存储器(安全度高的区域)。
所述第二操作单元52,具体用于:
通过所述数据通道将所述第三数据传输至所述ree中;
在所述ree中,将所述第三数据存储至所述ree中的第一非易失性存储器中。
其中,目前ta的存储方案是将ta存储在tee中,这就需要tee实现文件系统,从而增加了tee操作系统实现的复杂性。而在本发明实施例中,将所述第三数据存储至所述ree中的第一非易失性存储器中,将ta加密存储在ree中,这样ree和tee可以共享ree的文件系统,从而可以有效地降低tee系统功能的复杂性。
当将所述ta存储至所述第一非易失性存储器后,所述第二操作单元52在tee中生成下载响应;并通过所述数据通道将所述下载响应传输至所述ree中;
在所述ree中,所述第一操作单元51将所述下载响应发送给所述服务器。
实际应用时,所述第一非易失性存储器可以是:文件系统的/system分区。
当将所述ta存储至所述ree中的第一非易失性存储器后,可以通过ree中的app来实现ta在tee的加载。
基于此,在一实施例中,所述第一操作单元51,还用于:在所述ree中,生成第一指令;所述第一指令用于在所述tee中加载ta;以及通过所述数据通道将所述第一指令传输至所述tee中;
所述第二操作单元,还用于在所述tee中,响应所述第一指令,通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据;对所述第三数据进行解安全处理,得到所述第二数据;以及加载所述第二数据至所述tee对应的内核空间运行,以在所述ree与tee中建立对应的会话。
其中,所述第二操作单元52,具体用于:
在所述tee中生成第一请求;所述第一请求用于从所述ree中获取ta数据;以及通过所述数据通道将所述第一指令传输至所述ree中;
所述第一操作单元51,还用于在ree中,根据所述第一请求,从所述第一非易失性存储器中读取所述第三数据;以及通过所述数据通道将读取的所述第三数据传输至所述tee中。
所述对所述第三数据进行解安全处理,具体包括:
在所述tee中,所述第二操作单元52使用第三密钥对所述第三数据进行签名验证,签名验证通过后得到加密的第二数据;
所述第二操作单元52使用第四密钥对加密的第二数据进行解密。
这里,实际应用时,根据加密时所采用加密算法,第一密钥与第四密钥可以相同,也可以不同。具体来说,如果采用的加密算法是对称加密算法,那么第一密钥与第四密钥相同;如果采用的加密算法是非对称加密算法,则第一密钥与第四密钥不同。
对于第二密钥和第三密钥,由于这两个密钥是用于数字签名/验证的,所以一般来讲是不同的。
相应地,第三密钥和第四密钥也可以存储在所述第二非易失性存储器中。那么,在对第三数据进行签名验证以及解密之前,所述第二操作单元52先从所述第二非易失性存储器中读取第三密钥和第四密钥,再使用第三密钥对所述第三数据进行签名验证,签名验证通过后得到加密的第二数据;并使用第四密钥对加密的第二数据进行解密。
实际应用时,实时本发明实施例的方案,需要额外增加服务器(可以称为远程服务器),当在tee中运行ta后,所述服务器可以基于应用安全策略,来确定是否删除运行的ta,当确定需要删除运行的ta时,需要向终端发送删除命令,以删除对应的ta。
基于此,在一实施例中,所述第一操作单元51,还用于在所述ree中接收所述服务器发送的第一删除命令;通过所述数据通道将所述第一删除命令传输至所述tee中;以及在ree中,响应所述第二删除命令,从所述第一非易失性存储器中删除对应的ta数据;
所述第二操作单元52,还用于在所述tee中对所述删除命令进行安全验证,并在验证通过后响应所述删除命令,在所述tee中删除对应的ta,并生成第二删除命令;通过所述数据通道将所述第二删除命令传输至所述ree中。
当然,实际应用时,所述服务器还可以具有其他功能,比如:ta生命周期状态管理、应用数据个人化等等。
实际应用时,所述第一操作单元51及第二操作单元52可由终端中的中央处理器(cpu,centralprocessingunit)、微处理器(mcu,microcontrolunit)、数字信号处理器(dsp,digitalsignalprocessor)或可编程逻辑阵列(fpga,field-programmablegatearray)实现。
本发明实施例提供的方案,所述第一操作单元51在ree中接收服务器发送的下载命令;所述下载命令包含ta的第一数据;通过所述ree与tee之间的数据通道将所述下载命令传输至所述tee中;所述第二操作单元52在所述tee中对所述下载命令进行安全验证,并在验证通过后对所述第一数据进行解密,得到第二数据;在所述tee中对所述第二数据进行安全处理,得到第三数据;并对所述第三数据进行存储,通过ree的代理作用,实现服务器与tee的安全交互,可实现ta的动态下载,从而提高了下载效率,提升了用户体验。
另外,ta下载后,在所述ree中,所述第一操作单元51生成第一指令;所述第一指令用于在所述tee中加载ta;通过所述数据通道将所述第一指令传输至所述tee中;在所述tee中,所述第二操作单元52响应所述第一指令,通过所述数据通道,从所述第一非易失性存储器中获取所述第三数据;对所述第三数据进行解安全处理,得到所述第二数据;加载所述第二数据至所述tee对应的内核空间运行,以在所述ree与tee中建立对应的会话,利用ree可在tee中动态加载ta,由于并没有改变tee的镜像文件,只是加载ta,不需要重新启动终端,如此,进一步提升了用户体验。
通过所述数据通道将所述第三数据传输至所述ree中;在所述ree中,所述第一操作单元51将所述第三数据存储至所述ree中的第一非易失性存储器中,将ta数据存储至ree中,ree和tee可以共享ree的文件系统,如此,有效地降低了tee系统功能的复杂度。
而且,在所述tee中,所述第二操作单元52使用第一密钥对所述第二数据进行加密;并使用第二密钥对加密后的第二数据进行签名,得到所述第三数据,使用tee的加密机制保护ta的存储,提升了ta存储的安全性。
实施例三
在实施例一、二的基础上,本实施例以手机为例,详细描述ta的下载、存储及加载过程。
图6为实施本发明实施例的系统结构示意图。如图6所示,该系统包括:tee可信服务管理(tsm,trustedservicemanagement)服务器(远程服务器)及手机,而终端支持ree和tee。其中,在ree中,包括:tee代理、tee通信模块、tee存储模块及文件系统(比如andriod文件系统)。在tee中,包括tee核心处理模块和ta管理模块(adminta)。
这里,ree提供andriod运行,ree提供tee操作系统(os)运行。
下面描述各模块的功能。其中,
1)远程服务器负责管理ta,包括应用下载、删除,应用数据个人化,应用生命周期状态管理,实施安全策略等。
其中,安全策略可以根据需要来制定。比如可以根据ta的生命周期等。
2)tee代理负责处理tee与远程服务器之间的消息,具体地,将远程服务器指令传递给tee,将tee执行结果返回给远程服务器。
3)tee存储模块是预置在手机的ree中的系统服务,具有高权限,可访问ree文件系统的/system分区。tee存储模块负责接收tee核心处理模块命令,以存储ta。
4)tee核心处理模块是tee的系统功能模块;实现ree与tee之间的安全交互。
5)adminta是预置在tee中的一个tee,负责处理远程服务器的命令,应用安全策略,进行ta的下载、加载、删除等。
图7为本实施例ta下载过程中各模块的交互示意图。在图7中,
步骤701:在ree中,远程服务器与tee代理建立连接,之后实施应用安全策略,发起下载ta命令,传输ta数据到tee代理;
步骤702:tee代理收到命令和数据后,调用tee通信模块,以建立与tee核心处理模块的会话,将命令和数据传送到tee核心处理模块;
这里,tee通信模块与tee核心处理模块的会话建立后,表明ree与tee之间的数据通道已建立。
步骤703:tee核心处理模块将下载命令和ta数据传递给adminta;
步骤704:adminta对下载命令进行安全验证,并对ta数据解密;
这里,工厂安区生产环境预置tee的相关密钥,同时将相关密钥通过安全方法传输给远程服务器。这样,远程服务器使用密钥加密待下载的ta数据,使用签名密钥计算加密ta的签名;然后再发送给tee代理。
相应地,adminta使用签名密钥验证加密ta的签名,验证通过,使用加解密密钥解密ta数据。
步骤705:adminta调用tee核心处理模块的可信存储接口存储ta数据,以进行ta数据的安全存储。
这里,当adminta调用tee核心处理模块存储ta数据后,会通过tee核心处理模块及tee通信模块给tee代理发送执行结果;tee代理收到执行结果后,向远程服务器发送执行结果。
图8为本实施例ta安全存储过程中各模块的交互示意图。在图8中,
步骤801:被adminta调用后,tee核心处理模块使用tee存储的密钥加密ta数据,发起存储ta命令;
这里,命令中携带加密的ta数据。
其中,tee核心处理模块使用存储在tee高安区(efuse或rpmb区)的密钥加密ta数据,使用存储在tee高安区(efuse或rpmb区)的签名密钥对加密ta数据进行签名,并生成存储ta命令。
步骤802:tee通信模块收到存储ta命令后,将命令传输给tee存储模块;
步骤803:tee存储模块接收到tee核心处理模块传输的命令后,将签名后的加密ta数据存储到/system分区;
步骤804:tee存储模块将执行结果通过tee通信模块返回给tee核心处理模块;
步骤805:tee核心处理模块将执行结果发送给adminta。
图9为本实施例ta安全加载过程中各模块的交互示意图。在图9中,
步骤901:ree中,app调用tee通信模块,向tee核心处理模块发送请求,调用ta;
步骤902:tee核心处理模块处理请求,通过tee通信模块,向tee存储模块发送读取请求;
步骤903:tee存储模块收到请求后,从ree/system分区中读取ta数据;
步骤904:tee存储模块通过tee通信模块,将读取的ta数据发送给tee核心处理模块;
步骤905:tee核心处理模块收到ta数据后,验证ta数据的签名,验证成功后解密ta数据,加载ta数据到tee内核空间运行;
步骤906:tee核心处理模块将普通执行环境app的命令传递给运行的ta,以使app与ta建立会话。
综上所述,本发明实施例提供的安全机制,如图10所示,主要包括以下几点:
1)工厂安区生产环境预置可信执行环境相关密钥,同时将相关密钥通过安全方法传输给远程服务器;
2)远程服务器使用加解密密钥加密待下载的ta数据,使用签名密钥计算加密ta数据的签名;
3)adminta使用签名密钥验证加密ta数据的签名,验证通过后,使用加解密密钥解密ta数据;
4)tee核心处理模块存储ta数据时,使用存储在高安区(efuse或rpmb)加密密钥加密ta数据,并使用存储签名密钥对密文进行签名;
5)tee核心处理模块加载ta时,验证ta数据签名,验证通过后,解密ta数据,然后再在tee内核空间运行ta。
从1)至3)点可以看出,远程服务器与adminta之间可以认为建立了安全通道。
如图11所述,本发明实施例的存储机制包括:
tee存储模块是预置系统服务,具有访问/system分区的权限,生产时随手机镜像文件一起下载到手机上;
tee核心处理模块与tee存储模块定义ta数据存储接口,通过该接口,tee核心处理模块调用tee存储模块访问/system分区;
ta数据存储在ree的/system分区,普通应用没有权限访问该分区。
现有的ta数据存储方法是将ta数据存储在tee中,这就需要tee实现文件系统,从而增加了tee系统实现的复杂性。而在本发明实施例中,如图11所示,将ta数据加密存储在ree,通过共享ree的文件系统,可有效降低可信执行环境复杂性。
从上面的描述中可以看出,采用本发明实施例的方案后,可以带来以下效果:
1、支持ta的动态下载,提高了下载效率。
2、ta下载后,可动态加载ta,不需要重启手机,缩短了时间,从而提升了用户体验。
3、使用ree存储ta数据,降低了tee的系统功能复杂度;使用tee加密机制保护ta数据的存储,提升ta数据存储的安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。