本发明专利技术公开了一种TLS通讯数据安全传输方法。本方法为:1)将客户端的TLS执行环境分为安全环境与普通环境;2)客户端在普通环境中与服务器端协商出本次会话所采用的加密套件、TLS协议版本、压缩算法、会话ID,以及两共享随机数;3)客户端将所需参数由普通环境传入安全环境,然后在安全环境中生成客户端预主密钥、主密钥和密钥分组,以及根据密钥分组导出会话密钥;4)客户端在安全环境用服务器端的公钥对预主密钥进行加密后传入普通环境,然后在普通环境中将加密的预主密钥发送给服务器端;5)普通环境将待加密或解密数据传入安全环境进行相应处理,然后安全环境将处理后的数据传入普通环境。本发明专利技术提高了客户端的通信安全。
【技术实现步骤摘要】
本专利技术属于通信协议安全领域,主要是关于基于TrustZone的TLS安全增强方法,具体的来说提出一种新的基于TrustZone的TLS库安全实现方案。
技术介绍
目前,针对数据在网络中的安全传输已引入许多安全机制,原理都是通过在协议栈的不同层提供额外的安全措施,如网络层的IPSec协议、传输层的SSL/TLS协议、应用层的SET等。其中TLS协议是在电子商务中应用最广泛的安全协议之一,该协议主要部署在HTTPS、邮件传输、VPN、无线通信中,为信息在网络中的传输提供认证、机密性和完整性等安全服务,已经成为事实上的传输层安全标准。针对TLS协议的实现有许多,比如OpenSSL、NSS、GnuTLS、PolarSSL、CyaSSL、MatrixSSL等。OpenSSL是开源安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL/TLS协议,并提供丰富的应用程序供测试或其它目的使用。TrustZone技术是ARM提供的系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理(DRM)、企业服务和基于Web的服务。它在CPU内核中集成系统安全性扩展技术来为嵌入式操作系统提供安全硬件基础,通过隔离所有SoC硬件和软件资源来确保系统安全,使它们分别位于用于安全子系统的安全环境以及用于存储其他所有内容的普通环境,普通环境无权访问安全环境的任何资源。传统TLS协议的执行流程包括:握手与数据传输过程。在握手过程中,TLS协议规定使用RSA、Diffie–Hellman等密钥交换算法确保预主密钥的加密传输,PRF算法生成密钥数据,握手状态机制确保握手的正确进行,最终客户端与服务器端双方生成相应的会话密钥;在数据传输过程中,所有在网络中传输的消息都被加密,并且使用MAC对消息的完整性进行保护。针对TLS协议安全的研究主要包括三个方面:协议逻辑、协议规范、协议实现,如通过对MAC错误消息与Decryption错误消息的统一实现可以抵御Padding Oracle攻击,IETF制定的安全重协商机制可以抵御重协商攻击,通过在握手状态机制里面验证主密钥可以抵御CCS注入攻击,使用AES-GCM加密验证机制代替RC4与CBC加密模式,这一系列的修复措施使得TLS协议安全性不断增强。但是,对于上述提到的攻击都是通过与服务器进行交互的方式,比如攻击者向服务器发送非法挑战消息或者充当中间人的角色劫持连接,没有考虑到如果客户端已被控制的情况。
当攻击者通过植入木马或者系统漏洞等方式已获取目标系统的最高权限,攻击者就可以窃取客户端运行内存同时对网络通信进行监听,此时保护TLS通信中的敏感信息就显得至关重要,其中最关键的要属会话密钥的保护。
技术实现思路
针对上述问题,本专利技术的目的在于提供一种一种TLS通讯数据安全传输方法。本专利技术定义了一种TrustZone平台之上的软件系统整体架构,该架构包括客户端TLS通信过程中安全环境的执行流程以及普通环境与安全环境的交互过程。本专利技术所解决的技术问题可以采用以下技术方案来实现。一种TLS通讯数据安全传输方法,其步骤为:1)将客户端的TLS执行环境分为安全环境与普通环境;2)客户端在普通环境中与服务器端协商出本次会话所采用的加密套件、TLS协议版本、压缩算法、会话ID,以及两共享随机数:客户端随机数、服务器端随机数;3)客户端将所需参数由普通环境传入安全环境,然后在安全环境中生成客户端预主密钥、主密钥和密钥分组,以及根据密钥分组导出会话密钥;4)客户端在安全环境用服务器端的公钥对预主密钥进行加密后传入普通环境,然后在普通环境中将加密的预主密钥发送给服务器端;5)客户端在安全环境计算主密钥的摘要,并将计算结果传入普通环境后发送给服务器端进行验证;6)验证通过后,普通环境将待加密或解密数据传入安全环境进行相应处理,然后安全环境将处理后的数据传入普通环境。进一步的,所述预主密钥、主密钥的生成方法为:客户端首先在安全环境生成预主密钥,然后基于预主密钥和传入的客户端随机数、服务器端随机数生成主密钥。进一步的,根据所述主密钥、客户端随机数、服务器端随机数生成所述密钥分组。进一步的,所述密钥分组包括六部分:客户端写MAC密钥、服务器端写MAC密钥、客户端写密钥、服务器端写密钥、客户端写初始化向量、服务器端写初始化向量,每部分长度分别对应为mac_len、mac_len、key_len、key_len、iv_len、iv_len。进一步的,所述安全环境根据由所述普通环境传入的MAC密钥长度mac_len、对称加密密钥长度key_len、对称加密初始化向量长度iv_len从密钥分组中导出所述会话密钥;其中,所述客户端写MAC密钥、服务器端写MAC密钥传入并存储于所述普通环境;所述客户端写密钥、服务器端写密钥、客户端写初始化向量、服务器端写初始化向量存储于所述安全环境。进一步的,所述安全环境对传入的待加密或解密数据进行处理的方法为:首先在安全环境中创建一加解密结构体,其包括用于初次加密使用的原始向量和非初次加密使用的有效向量;并在安全环境设置一全局数组记录每次加解密之后的有效向量;然后当收到待加密数据后,为该加解密结构体分配堆内存,并初始化该加解密结构体,包括:加解密标志,加密算法,加密密钥,原始向量;然后判断待处理数据是否为首次加解密,如果是,则调用加解密函数对数据进行相应操作,然后记录本次操作的有效向量、释放内存;如果不是,则根据全局数组的记录结果更新加解密结构体中的有效向量,调用加解密函数对数据进行相应操作,然后记录本次操作的有效向量、释放内存。进一步的,所述安全环境通过共享内存的方式接收普通环境传来的参数。本专利技术主要包括TLS密钥的安全产生与存储、数据的安全加解密。本专利技术的实现基础为OpenSSL开源软件,在安全环境中生成TLS相关密钥,利用TrustZone系统总线构造的内存隔离机制,达到会话密钥安全存储的目的。即使攻击者已经获取普通环境的最高权限,也能确保客户端通信过程中会话密钥的安全,进而确保通信内容的安全。本专利技术提出了基于TrustZone技术的新的TLS安全实现系统架构。在本架构中,主要功能包括如下几类:1、TLS密钥的安全生成与存储:TLS相关密钥在安全环境中产生,普通环境内存中不存在任何与会话密钥有关的信息,所需参数由应用程序在普通环境中通过调用安全服务传入安全环境。2、数据的安全加解密:在数据传输阶段,应用程序通过调用安全服务将原始数据传入安全环境,并在其中进行相应操作后,将数据返回至应用程序。具体来说,上述新的TLS库的安全实现,其特征如下所示:特征1:所述方案中,客户端TLS的执行环境被TrustZone技术分为安全环境与普通环境,安全环境负责TLS密钥生成以及数据加解密操作,普通环境负责TLS连接的建立以及数据传输操作。特征2:如特征1所述,原始的安全环境是没有加解密功能的,但是由于要将TLS密钥产生与数据加解密操作放入安全环境中执行,所以需要在其中重新设计加密库,即安全环境应提供对称加密、非对称加密、摘要功能,具体设计功能如下:①Stack:存放缓存数据;②哈希表:加快查询操作;③Buffer机制:一种缓存数据的封装形式;④摘本文档来自技高网...
【技术保护点】
一种TLS通讯数据安全传输方法,其步骤为:1)将客户端的TLS执行环境分为安全环境与普通环境;2)客户端在普通环境中与服务器端协商出本次会话所采用的加密套件、TLS协议版本、压缩算法、会话ID,以及两共享随机数:客户端随机数、服务器端随机数;3)客户端将所需参数由普通环境传入安全环境,然后在安全环境中生成客户端预主密钥、主密钥和密钥分组,以及根据密钥分组导出会话密钥;4)客户端在安全环境用服务器端的公钥对预主密钥进行加密后传入普通环境,然后在普通环境中将加密的预主密钥发送给服务器端;5)客户端在安全环境计算主密钥的摘要,并将计算结果传入普通环境后发送给服务器端进行验证;6)验证通过后,普通环境将待加密或解密数据传入安全环境进行相应处理,然后安全环境将处理后的数据传入普通环境。
【技术特征摘要】
1.一种TLS通讯数据安全传输方法,其步骤为:1)将客户端的TLS执行环境分为安全环境与普通环境;2)客户端在普通环境中与服务器端协商出本次会话所采用的加密套件、TLS协议版本、压缩算法、会话ID,以及两共享随机数:客户端随机数、服务器端随机数;3)客户端将所需参数由普通环境传入安全环境,然后在安全环境中生成客户端预主密钥、主密钥和密钥分组,以及根据密钥分组导出会话密钥;4)客户端在安全环境用服务器端的公钥对预主密钥进行加密后传入普通环境,然后在普通环境中将加密的预主密钥发送给服务器端;5)客户端在安全环境计算主密钥的摘要,并将计算结果传入普通环境后发送给服务器端进行验证;6)验证通过后,普通环境将待加密或解密数据传入安全环境进行相应处理,然后安全环境将处理后的数据传入普通环境。2.如权利要求1所述的方法,其特征在于,所述预主密钥、主密钥的生成方法为:客户端首先在安全环境生成预主密钥,然后基于预主密钥和传入的客户端随机数、服务器端随机数生成主密钥。3.如权利要求1或2所述的方法,其特征在于,根据所述主密钥、客户端随机数、服务器端随机数生成所述密钥分组。4.如权利要求3所述的方法,其特征在于,所述密钥分组包括六部分:客户端写MAC密钥、服务器端写MAC密钥、客户端写密钥、服务器端写密钥、客户端写初始化向量、服务器端写初始化向量,每部分长度分别对应为mac_len、...
【专利技术属性】
技术研发人员:于爱民,穆振,马建刚,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。