一种ssl/tls连接的实现方法、装置及系统的制作方法

文档序号:7858304阅读:158来源:国知局
专利名称:一种ssl/tls连接的实现方法、装置及系统的制作方法
技术领域
本发明涉及网络安全的技术领域,具体地,涉及一种SSL/TLS连接的实现方法、装置及系统。
背景技术
随着网络技术的发展,越来越多的人通过网络来进行信息交流,包括网上购物、网上银行等个人金融服务方式也得到了广泛应用,随之而来的网络信息的安全问题也日益凸显。例如,在用户使用网上银行时,电脑病毒等黑客程序威胁着网上银行的用户的信息安全。目前,客户端和服务器端通常采用安全套接层(Secure Socket Layer, SSL)协议或者传输层安全(Transport Layer Security, TLS)协议建立连接,以确保客户端访问服务器端的过程中的信息安全问题。 现有技术中,客户端向远程的服务器端请求SSL/TLS连接以进行信息交流时,客户端和服务器端之间通过使用密码技术完成双方的密钥协商,密钥协商的内容包括会话所使用的数据压缩算法、对称加密算法、Hash算法以及相应的加密密钥、MAC密钥等。在客户端和服务器端得到相对应的加密密钥和MAC密钥后,便可以建立安全通道,该通道保护服务器端与客户端之间数据的安全性和完整性。然而,在客户端与服务器端的密钥协商过程中,预主密钥、主密钥、加密密钥和MAC密钥的生成均为客户端或服务器端的应用程序调用默认的SSL/TLS模块,在内存中利用软件处理来实现,并且对数据的加密和解密。黑客程序一旦从客户端内存中捕获到预主密钥或主密钥,则可以计算出加密密钥与MAC密钥,或者黑客程序直接捕获到加密密钥与MAC密钥,则黑客程序可以在网络上直接窃取加密传输的明文数据,甚至直接篡改明文数据,导致用客户端或服务器端的数据被窃取,数据的安全性较低。

发明内容
为解决上述问题,本发明提供一种SSL/TLS连接的实现方法、装置及系统,用于解决现有技术中客户端与服务器端之间采用SSL/TLS协议连接时,信息的安全性较低的问题。为此,本发明提供一种SSL/TLS连接的实现方法,其中,包括在客户端与服务器端完成证书验证之后,客户端的应用程序调用专用安全模块向硬件单元发送密钥运算的指令;所述硬件单元根据密钥运算的指令,计算出预主密钥、主密钥、加密密钥和MAC密钥中的至少一个,从而在所述客户端与所述服务器端之间建立传输数据的安全通道。其中,所述客户端与服务器端完成证书验证包括所述客户端向所述服务器端发出握手请求,所述客户端与所述服务器端之间相互进行证书验证。其中,在所述客户端与所述服务器端之间建立传输数据的安全通道之后还包括
所述客户端的硬件单元利用密钥对客户端发送的请求数据进行加密操作,以及对接收到的所述服务器端发送的响应数据进行解密操作。其中,在所述客户端与所述服务器端建立传输数据的安全通道之后还包括所述服务器端的硬件单元对接收的客户端发送的数据进行解密操作,以及对将要发送的数据进行加密操作。本发明还提供一种SSL/TLS连接的实现装置,其中包括客户端的应用程序、专用安全模块和硬件单元;所述客户端的应用程序调用专用安全模块,所述专用安全模块向硬件单元发送密钥运算的指令;所述硬件单元根据密钥运算的指令,计算预主密钥、主密钥、加密密钥和MAC密钥中的至少一个。 其中,所述硬件单元利用密钥对客户端发送的请求数据进行加密操作,以及对接收到的所述服务器端发送的响应数据进行解密操作。其中,所述客户端或服务器终端设备包括如下中的至少一种计算机、加密机、手机、PDA。其中,所述硬件单元包括如下中的至少一种智能卡、CPU卡、USBkey、安全SD卡、音频接口硬件、Dock接口硬件、OTG接口硬件、SM卡和PCI硬件卡。本发明还提供一种SSL/TLS连接的实现系统,其中包括服务器端与上述的任意一种SSL/TLS连接的实现装置。本发明具有下述有益效果本发明提供的SSL/TLS连接的实现方法的实施例中,客户端通过客户端的应用程序调用专用安全模块,专用安全模块再调用硬件单元来进行密钥运算,避免在计算机内存中计算密钥所带来的风险,有效防止黑客程序窃取甚至篡改密钥,提高了密钥的安全性,从而确保客户端和服务器端之间传输的数据的安全性。本发明提供的SSL/TLS连接的实现装置及系统也具有上述的有益效果。


图I为本发明SSL/TLS连接的实现方法第一实施例的流程图;图2为本发明SSL/TLS连接的实现方法第二实施例客户端和服务器端的架构图;图3为本发明SSL/TLS连接的实现方法第二实施例的流程图;图4为本发明SSL/TLS连接的实现装置实施例的结构示意图。
具体实施例方式为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明提供的SSL/TLS连接的实现方法、装置及系统进行详细描述。图I为本发明SSL/TLS连接的实现方法第一实施例的流程图。如图I所示,本实施例SSL/TLS连接的实现方法的流程具体包括如下步骤步骤101、在客户端与服务器端完成证书验证之后,客户端的应用程序调用专用安全模块向硬件单元发送密钥运算的指令。
在本步骤中,在客户端与服务器端完成证书验证之后,客户端的应用程序不是在计算机内存中进行密钥计算,而是调用专用安全模块向硬件单元发送密钥运算的指令,然后进入步骤102。步骤102、硬件单元根据密钥运算的指令计算出预主密钥、主密钥、加密密钥和MAC密钥中的至少一种,从而在客户端与服务器端之间建立传输数据的安全通道。在本步骤中,硬件单元接收到密钥运算的指令之后,硬件单元将进行密钥运算,由于黑客程序可以容易窃取内存中的数据,而难以窃取硬件单元中的密钥,从而提高密钥运算的安全性,确保密钥的安全,同时也确保利用密钥加密的数据的安全。其中,加密密钥可以确保数据机密性,MAC密钥可以确保数据完整性的,客户端和服务器端同时计算得到加密密钥和MAC密钥之后,在客户端与服务器端之间建立传输数据的安全通道。在本步骤中,客户端根据硬件单元计算得到密钥之后,可以对发送的请求数据进行加密,也可以对接收到的响应数据进行解密操作。利用加密密钥对数据进行加密,可以确保数据的机密性,利用MAC密钥对数据加密,可以确保数据的完整性,从而确保数据的安全 性。在实际应用中,硬件单元也可以只计算预主密钥、主密钥、加密密钥和MAC密钥中的部分密钥,例如,只计算加密密钥和MAC密钥。本实施例中,客户端通过应用程序调用专用安全模块,专用安全模块再调用硬件单元来进行密钥运算,避免在计算机内存中计算密钥所带来的风险,有效防止黑客程序窃取甚至篡改加密密钥和MAC密钥,提高了密钥的安全性,从而确保客户端和服务器端之间传输数据的安全性。图2为本发明SSL/TLS连接的实现方法第二实施例客户端和服务器端的架构图,图3为本发明SSL/TLS连接的实现方法第二实施例的流程图。如图2所示,客户端10包括客户端应用程序101、SSL/TLS模块102、专用安全模块103和硬件单元104,专用安全模块103可以设置在SSL/TLS模块102中,也可以与SSL/TLS模块102相对独立地设置,本实施例以专用安全模块103设置在SSL/TLS模块102中为例来介绍技术方案。服务器端20包括服务器端应用程序模块201、服务器端SSL/TLS模块202、服务器端专用安全模块203和服务器端硬件单元204。客户端10和服务器端20在发送数据时,需要对将要发送的数据进行加密操作,以及对接收到的数据进行解密操作。在本实施例中,在客户端10需要与服务器端20利用SSL/TLS协议建立连接时,客户端的应用程序101将调用专用安全模块103,专用安全模块103向硬件单元104发出密钥运算的指令,硬件单元104计算出加密密钥和MAC密钥,服务器端应用程序201将调用专用服务器端安全模块203,服务器端专用安全模块203向服务器端硬件单元204发出密钥运算的指令,服务器端硬件单元204计算出加密密钥和MAC密钥,服务器端硬件单元204将利用加密密钥和MAC密钥对数据进行加密操作或解密操作。如图3所示,本实施例SSL/TLS连接的实现方法的流程具体包括如下步骤步骤301、客户端向服务器端发送请求。在本步骤中,客户端10向服务器端20发送请求,以请求服务器端20的相应数据,然后进入步骤302。步骤302、客户端与服务器端之间进行算法协商。在本步骤中,客户端10内部的SSL/TLS协议栈向服务器端20发起SSL握手请求参数,握手请求参数中包括SSL/TLS协议的版本号、会话ID、随机数、客户端10支持的非对称算法、对称算法、Hash算法以及其它相关信息。服务器端20接收到客户端10发送的握手请求参数后,从中选择一个SSL/TLS协议的版本号,并选择非对称算法、对称算法和Hash算法,接着服务器端20生成会话ID、随机数以及其它相关信息等握手响应参数,然后服务器端20将上述握手响应参数发送给客户端10,从而在客户端10和服务器端20之间完成完成算法协商,然后进入步骤303。步骤303、客户端与服务器端之间进行证书验证。在本步骤,客户端10与服务器端20完成算法协商之后,服务器端20把自己的数字证书发送给客户端10,客户端10验证服务器20的数字证书的合法性,数字证书可以为一个X509证书,也可以是一个证书链。如果客户端10验证服务器端20发送的数字证书不合法,则将与服务器端20终止SSL/TLS协议,如果验证服务器端20的数字证书合法,则将继续执行SSL/TLS协议。在实际应用中,如果服务器端20要求验证客户端10的数字证书,则需要客户端10 对步骤302中的握手请求数据进行签名,并将客户端10的数字证书和签名发送给服务器,服务器端20在收到客户端10的数字证书和签名后,对客户端10的数字证书和签名进行验证,如果验证到客户端10的签名是非法的,则服务器端20将终止SSL/TLS协议,如果验证到客户端10的签名是合法的,则将继续执行SSL/TLS协议。本步骤中,如果在客户端10验证服务器端20的数字证书合法,则完成证书验证;进一步的,服务器端20还可以验证客户端10的签名是否合法,如果服务器端20验证客户端10的签名合法,则完成证书验证。在客户端10与服务器端20之间完成证书验证之后,进入步骤304。步骤304、客户端与服务器端进行密钥协商。在本步骤中,在客户端10与服务器端20之间完成证书验证之后,客户端10与服务器端20进行密钥协商。客户端10与服务器端20之间首先完成预主密钥的协商,由于依据不同的非对称算法,所以客户端10与服务器端20进行协商预主密钥的过程不完全相同,最终,客户端10与服务器端20将得到相同的预主密钥;然后,双方执行相同的计算步骤,根据预主密钥计算得到主密钥,再根据主密钥计算得到加密密钥与MAC密钥,以使客户端10与服务器端20得到对应的加密密钥与MAC密钥,从而在客户端10与服务器端20之间完成密钥协商。在本步骤中,客户端10将预主密钥、主密钥、加密密钥和MAC密钥的生成过程均交给硬件单元104来计算处理,从而大大提高黑客程序窃取密钥的难度,确保加密密钥和MAC密钥的安全。服务器端20也将预主密钥、主密钥、加密密钥和MAC密钥的生成过程均交给服务器端硬件单元204来计算处理,以及利用硬件单元对数据进行加密或解密。进一步的,本实施例中的客户端10中的SSL/TLS模块102、客户端应用程序101设置在计算机等终端设备或者终端设备的外接存储设备上,终端设备和硬件单元104连接,连接方式可以为活动式连接或非活动式连接,在客户端10与服务器端20没有连接的时候,可以将硬件单元从终端设备上拔出或者断开连接,避免硬件单元遭受黑客程序的攻击,从而进一步确保主密钥、加密密钥和MAC密钥的安全性。在本步骤中,客户端10也可以将预主密钥、主密钥、加密密钥和MAC密钥中部分密钥的生成过程交给硬件单元104来计算处理。在客户端10与服务器端20完成密钥协商之后,进入步骤305。步骤305、客户端与服务器端之间建立安全的数据通道。在本步骤中,客户端10与服务器端20之间的算法、密钥协商完成后,客户端10与服务器端20均需要发送“交换密钥声明”和“结束握手”消息来完成握手过程,握手过程的结束标志着安全通道的建立成功。步骤306、客户端利用安全通道向服务器端发送数据。在本步骤中,客户端10向服务器端20发送请求数据时,客户端应用程序101调用专用安全模块103,专用安全模块103指令硬件单元利用加密密钥和MAC密钥对请求数据进行加密操作,加密密钥可以确保请求数据的机密性,MAC密钥可以确保请求数据的完整性。 在本实施例中,客户端10通过专用安全模块103将计算加密密钥、MAC密钥以及进行对数据进行加密操作都交给硬件单元104来处理,由于黑客程序难以进入硬件单元104,从而确保硬件单元中的各个密钥的安全,同时也确保利用密钥加密的数据的安全。步骤307、客户端利用安全通道接收服务器端发送的数据。在本步骤中,客户端10接收到服务器端20发送的响应数据后,通过专用安全模块103指令硬件单元104利用加密密钥和MAC密钥来解密响应数据。在实际应用中,客户端应用程序101、SSL/TLS模块102和专用安全模块103可以为集成在计算机、手机或PDA等终端设备上或者设置于和终端设备相连的存储设备上,硬件单元104可以通过多种接口与终端设备进行活动式或非活动式连接。本实施例中,在与服务器端进行加密数据的交互时,客户端通过客户端应用程序调用专用安全模块,专用安全模块调用硬件单元进行密钥运算,避免在计算机内存中计算密钥所带来的风险,有效防止黑客程序窃取甚至篡改加密密钥和MAC密钥,提高了密钥的安全性,从而确保客户端和服务器端之间传输数据的安全性。图4为本发明SSL/TLS连接的实现装置实施例的结构示意图。如图4所示,本实施例SSL/TLS连接的实现装置包括客户端应用程序101、SSL/TLS模块102、专用安全模块103和硬件单元104,在客户端需要与服务器端进行加密数据的交互时,客户端应用程序101将调用专用安全模块103,然后专用安全模块103向硬件单元104发出密钥运算的指令,硬件单元104计算出加密密钥和MAC密钥,硬件单元104将利用加密密钥和MAC密钥对数据进行加密操作或解密操作,以确保数据的安全。在实际应用中,硬件单元104可以包括如下中的至少一种智能卡、CPU卡、USBkey、安全SD卡、音频接口硬件、Dock接口硬件、OTG接口硬件、SM卡和PCI硬件卡。本实施例中,客户端通过客户端应用程序调用专用安全模块,专用安全模块再调用硬件单元来进行密钥运算,避免客户端应用程序在计算机内存中计算密钥所带来的风险,有效防止黑客程序窃取甚至篡改加密密钥和MAC密钥,提高了密钥的安全性,从而确保客户端和服务器端之间传输数据的安全性。本发明还提供一种SSL/TLS连接的实现系统,其中包括服务器端和客户端,客户端可以采用图4所示的结构,在此不再赘述。可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保 护范围。
权利要求
1.一种SSL/TLS连接的实现方法,其特征在于,包括 在客户端与服务器端完成证书验证之后,客户端的应用程序调用专用安全模块向硬件单元发送密钥运算的指令; 所述硬件单元根据密钥运算的指令,计算出预主密钥、主密钥、加密密钥和MAC密钥中的至少一个,从而在所述客户端与所述服务器端之间建立传输数据的安全通道。
2.根据权利要求I所述的SSL/TLS连接的实现方法,其特征在于,所述客户端与服务器端完成证书验证包括 所述客户端向所述服务器端发出握手请求,所述客户端与所述服务器端之间相互进行证书验证。
3.根据权利要求I所述的SSL/TLS连接的实现方法,其特征在于,在所述客户端与所述服务器端之间建立传输数据的安全通道之后还包括 所述客户端的硬件单元利用密钥对客户端发送的请求数据进行加密操作,以及对接收到的所述服务器端发送的响应数据进行解密操作。
4.根据权利要求I所述的SSL/TLS连接的实现方法,其特征在于,在所述客户端与所述服务器端建立传输数据的安全通道之后还包括 所述服务器端的硬件单元对接收的客户端发送的数据进行解密操作,以及对将要发送的数据进行加密操作。
5.一种SSL/TLS连接的实现装置,其特征在于包括客户端的应用程序、专用安全模块和硬件单兀; 所述客户端的应用程序调用专用安全模块,所述专用安全模块向硬件单元发送密钥运算的指令; 所述硬件单元根据密钥运算的指令,计算预主密钥、主密钥、加密密钥和MAC密钥中的至少一个。
6.根据权利要求5所述的SSL/TLS连接的实现装置,其特征在于,所述硬件单元利用密钥对客户端发送的请求数据进行加密操作,以及对接收到的所述服务器端发送的响应数据进行解密操作。
7.根据权利要求5所述的SSL/TLS连接的实现装置,其特征在于, 所述客户端或服务器终端设备包括如下中的至少一种计算机、加密机、手机、PDA。
8.根据权利要求5所述的SSL/TLS连接的实现装置,其特征在于,所述硬件单元包括如下中的至少一种智能卡、CPU卡、USBkey、安全SD卡、音频接口硬件、Dock接口硬件、OTG接口硬件、SM卡和PCI硬件卡。
9.根据权利要求5所述的SSL/TLS连接的实现装置,其特征在于,所述应用程序包括如下中的至少一种浏览器、基于B/S架构的应用程序和基于C/S架构的应用程序。
10.一种SSL/TLS连接的实现系统,其特征在于包括服务器端与权利要求5-9任一所述的SSL/TLS连接的实现装置。
全文摘要
本发明提供一种SSL/TLS连接的实现方法、装置及系统,其中,所述方法包括在客户端与服务器端完成证书验证之后,客户端的应用程序调用专用安全模块向硬件单元发送密钥运算的指令;所述硬件单元根据密钥运算的指令,计算出预主密钥、主密钥、加密密钥和MAC密钥中的至少一个,从而在所述客户端与所述服务器端之间建立传输数据的安全通道。本发明提供的实施例中,客户端与服务器端的应用程序分别调用专用安全模块,专用安全模块再调用硬件单元来进行密钥运算,避免在计算机内存中计算密钥所带来的风险,有效防止黑客程序窃取甚至篡改加密密钥和MAC密钥,提高了密钥的安全性,从而确保客户端和服务器端之间传输数据的安全性。
文档编号H04L29/06GK102811224SQ20121029522
公开日2012年12月5日 申请日期2012年8月2日 优先权日2012年8月2日
发明者张秋璞 申请人:天津赢达信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1