发明内容
本发明所要解决的技术问题是:提供一种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及图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通过登记信息register event建立与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终端进行数据传递过程中的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。