一种Android终端安全连接的方法及终端与流程

文档序号:24496044发布日期:2021-03-30 21:23阅读:160来源:国知局
一种Android终端安全连接的方法及终端与流程

本发明涉及android系统安全领域,尤其涉及一种android终端安全连接的方法及终端。



背景技术:

随着android智能终端的普及,android智能终端设备在市场的存量越来越大,对于设备的管理和维护提出了越来越高的要求。进行管理和维护的挑战也越来越大;在android终端的生产研发和维修过程中,往往需要向终端下载各种敏感数据,如注入证书密钥、下载配置文件等等,这些信息若在交互过程中被窃取会严重影响android智能设备的安全,这就需要一个足够安全的通道完成连接来实现数据交互。

现有的终端安全通道有很多种,目前广泛普及的技术主要是通过https进行安全连接;请参照图4,但是在android终端中实现https中的tls协议时,不是在安全的可信执行环境中工作,而是直接在ree(richexecutionenvironment,富运行环境)中的app中实现的,tee(trustedexecutionenvironment,可信执行环境)中的ta(trustedapplication,可信程序,在tee中运行的程序)指示作为加密机进行工作,而tls的会话密钥由app持有,在整个通信过程中app都能够获取数据明文,并且通信的过程也依赖于在ree中运行的app自身,由于ree并不是一个安全的执行环境,存在app被替换等威胁安全的可能事件导致终端与服务器之间的通信被劫持,这种做法对于android智能终端来说无法保证连接安全。



技术实现要素:

本发明所要解决的技术问题是:提供一种android终端安全连接的方法及终端,提高android终端连接的安全性。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种android终端安全连接的方法,包括步骤:

s1、在ree中建立与服务端的连接并在tee中实现tls协议;

s2、通过预设的通信接口实现所述tee与所述ree之间的数据交互;

s3、通过所述ree与所述服务端的连接以及所述tee与所述ree之间的数据交互实现所述ree中的tls协议与所述服务端之间的数据交互。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种android终端安全连接的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

s1、在ree中建立与服务端的连接并在tee中实现tls协议;

s2、通过预设的通信接口实现所述tee与所述ree之间的数据交互;

s3、通过所述ree与所述服务端的连接以及所述tee与所述ree之间的数据交互实现所述ree中的tls协议与所述服务端之间的数据交互。

本发明的有益效果在于:将https协议分离,在ree中只建立与服务端的连接,在ree中实现tls协议,通过建立预设的通信接口实现tee与ree之间的通信,以使得tee能够与ree协作共同完成连接的相关操作,tls协议相关的安全信息处理都在tee环境中执行,即时在ree中的通信被劫持,也无法获取安全相关的数据,保证了android终端连接的安全性,为android终端的连接提供了更加稳固的安全保障。

附图说明

图1为本发明实施例的一种android终端安全连接的方法的步骤流程图;

图2为本发明实施例的一种android终端安全连接的终端的结构示意图;

图3为本发明实施例的一种android终端安全连接的组成示意图;

图4为现有技术的一种android终端连接的组成示意图;

图5为本发明实施例的通过android终端安全连接实现通信的过程示意图;

标号说明:

1、一种android终端安全连接的终端;2、处理器;3、存储器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1及图3,一种android终端安全连接的方法,包括步骤:

s1、在ree中建立与服务端的连接并在tee中实现tls协议;

s2、通过预设的通信接口实现所述tee与所述ree之间的数据交互;

s3、通过所述ree与所述服务端的连接以及所述tee与所述ree之间的数据交互实现所述ree中的tls协议与所述服务端之间的数据交互。

从上述描述可知,本发明的有益效果在于:将https协议分离,在ree中只建立与服务端的连接,在ree中实现tls协议,通过建立预设的通信接口实现tee与ree之间的通信,以使得tee能够与ree协作共同完成连接的相关操作,tls协议相关的安全信息处理都在tee环境中执行,即时在ree中的通信被劫持,也无法获取安全相关的数据,保证了android终端连接的安全性,为android终端的连接提供了更加稳固的安全保障。

进一步的,所述s1具体为:

在ree中建立第一程序,所述第一程序与所述服务端建立连接;

在tee中建立第二程序,在所述第二程序中实现所述tls协议。

由上述描述可知,在ree中建立第一程序实现与服务端的连接,在tee中建立第二程序实现tls协议,将tls协议的相关处理放置于tee可信执行环境中进行处理,保证相应数据不会在不安全的ree环境中导致数据泄露,提升android连接的安全性。

进一步的,所述s1中所述在ree中建立与服务端的连接具体为:

在所述ree中建立与服务端的tcp连接。

由上述描述可知,在ree中建立与服务端的tcp连接,tcp与tls协议能够实现相互配合对通信中的数据进行加密。

进一步的,所述s2具体为:

判断所述ree是否接收到所述服务端发送的下行数据,若是,则将所述下行数据通过所述通信接口转发给所述tee;

判断所述tee是否生成所述下行数据对应的应答数据,若是,则将所述应答数据通过所述通信接口转发给所述ree。

由上述描述可知,tee和ree通过通信接口实现数据交互,实现将tls协议置于tee中运行并且不影响android终端与服务器的数据交互过程。

进一步的,所述s3还包括:

判断所述tee是否接收到所述下行数据,若是,则在所述tee中对所述下行数据进行解密得到解密数据;

在所述tee中保存所述解密数据。

由上述描述可知,在tee中完成对下行数据的解密且在tee中保存相应解密数据,向ree发送应答数据而不是解密数据,将解密过程在可信执行环境中进行,进一步降低了数据被泄露的可能性。

请参照图2,一种android终端安全连接的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

s1、在ree中建立与服务端的连接并在tee中实现tls协议;

s2、通过预设的通信接口实现所述tee与所述ree之间的数据交互;

s3、通过所述ree与所述服务端的连接以及所述tee与所述ree之间的数据交互实现所述ree中的tls协议与所述服务端之间的数据交互。

本发明的有益效果在于:将https协议分离,在ree中只建立与服务端的连接,在ree中实现tls协议,通过建立预设的通信接口实现tee与ree之间的通信,以使得tee能够与ree协作共同完成连接的相关操作,tls协议相关的安全信息处理都在tee环境中执行,即时在ree中的通信被劫持,也无法获取安全相关的数据,保证了android终端连接的安全性,为android终端的连接提供了更加稳固的安全保障。

进一步的,所述s1具体为:

在ree中建立第一程序,所述第一程序与所述服务端建立连接;

在tee中建立第二程序,在所述第二程序中实现所述tls协议。

由上述描述可知,在ree中建立第一程序实现与服务端的连接,在tee中建立第二程序实现tls协议,将tls协议的相关处理放置于tee可信执行环境中进行处理,保证相应数据不会在不安全的ree环境中导致数据泄露,提升android连接的安全性。

进一步的,所述s1中所述在ree中建立与服务端的连接具体为:

在所述ree中建立与服务端的tcp连接。

由上述描述可知,在ree中建立与服务端的tcp连接,tcp与tls协议能够实现相互配合对通信中的数据进行加密。

进一步的,所述s2具体为:

判断所述ree是否接收到所述服务端发送的下行数据,若是,则将所述下行数据通过所述通信接口转发给所述tee;

判断所述tee是否生成所述下行数据对应的应答数据,若是,则将所述应答数据通过所述通信接口转发给所述ree。

由上述描述可知,tee和ree通过通信接口实现数据交互,实现将tls协议置于tee中运行并且不影响android终端与服务器的数据交互过程。

进一步的,所述s3还包括:

判断所述tee是否接收到所述下行数据,若是,则在所述tee中对所述下行数据进行解密得到解密数据;

在所述tee中保存所述解密数据。

由上述描述可知,在tee中完成对下行数据的解密且在tee中保存相应解密数据,向ree发送应答数据而不是解密数据,将解密过程在可信执行环境中进行,进一步降低了数据被泄露的可能性。

请参照图1,本发明的实施例一为:

一种android终端安全连接的方法,包括步骤:

s1、在ree中建立与服务端的tcp连接并在tee中实现tls协议;

在本实施例中,步骤s1具体为:

在ree中建立第一程序,所述第一程序与所述服务端建立tcp连接;

在tee中建立第二程序,在所述第二程序中实现所述tls协议;

将tls协议移植到tee中一方面要对tls协议(一般使用开源库)进行修改,使修改后的tls协议能够在tee环境中正常运行,具体的,基于开源库mbedtls进行修改,将其依赖的基础libc库改为芯片平台(比如高通)提供的libc库,这样适配后才能在芯片平台对应的tee环境中正常运行;另一方面要将tls协议中的加解密算法从软实现改为tee自带的硬实现,具体的,将tls协议库(mbedtls)中的加解密算法删除,改为tee自带的相应编码所实现的加解密算法的接口;

而对于ree与tee的通信,要避免长时间的阻塞式交互,否则容易引起android系统的稳定性;

s2、通过预设的通信接口实现所述tee与所述ree之间的数据交互;

在本实施例中,步骤s2具体为:

判断所述ree是否接收到所述服务端发送的下行数据,若是,则将所述下行数据通过所述通信接口转发给所述tee;

判断所述tee是否生成所述下行数据对应的应答数据,若是,则将所述应答数据通过所述通信接口转发给所述ree;

s3、通过所述ree与所述服务端的连接以及所述tee与所述ree之间的数据交互实现所述ree中的tls协议与所述服务端之间的数据交互;

在本实施例中,步骤s3还包括:

判断所述tee是否接收到所述下行数据,若是,则在所述tee中对所述下行数据进行解密得到解密数据;在所述tee中保存所述解密数据。

请参照图3,本发明的实施例二为:

将上述的一种android终端安全连接的方法应用于实际场景中:

在android终端的android系统中ree环境中建造第一程序(app),在该第一程序中实现与服务器之间的tcp连接,通过tcp连接实现与服务器的数据交互;

在android系统中tee环境下建造第二程序(ta),在该第二程序中实现tls协议和数据存储;tee环境由android终端的trusty系统提供,trusty系统与android系统相独立,通过接口互相调用;

第一程序与第二程序通过android终端提供的通信接口进行数据交互,第一程序转发第二程序的相应数据,相当于在服务器与tee之间建立数据传输的虚拟通道,第二程序中tls与服务器中tls进行交互,保证数据在传输过程中是加密且可信的;

第二程序接收到数据后,存储在tee中的系统存储器中,系统存储器由trusty系统提供,能够防止数据被篡改;

请参照图5,具体建立通信的过程为:ree中的第一程序向服务器(sever)发送连接请求connect,服务器确认连接后返回connected表示已与服务器成功建立tcp连接,ree通过登记信息registerevent建立与tee的连接,完成连接的建立,tee通过ree与服务器之间的tcp连接发送加密后的数据至服务器,直至完成tee与服务器之间的tls握手完成,此时tee和服务器都持有会话密钥,而ree中没有密钥相关信息;tee与服务器之间通过tls及ree进行业务数据的通信,直至业务数据传递完成。

请参照图2,本发明的实施例三为:

一种android终端安全连接的终端1,包括处理器2、存储器3及存储在存储器3上并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现实施例一或实施例二中的各个步骤。

综上所述,本发明提供了一种android终端安全连接的方法及终端,将tls协议在tee环境中执行,ree环境中的app只负责与服务端建立连接,不进行会话密钥的保存等实现tls协议所需的操作,而是将所接收到的数据通过相应通信接口转发到tee中的ta进行处理,ta获取到数据后也仅在tee中进行保存,根据tls协议规定对答复数据进行加密后发送给ree,ree全程只获取加密后的数据无法获取到明文数据,即使ree与服务端是通过tcp进行明文交互,也只是加密后的明文,且富执行环境ree中不含任何会话密钥或解密后的数据,提升了数据本破解的难度,加强了android终端进行数据传递过程中的安全性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1