基于TLS协议实现加密通信的方法及装置制造方法及图纸

技术编号:15186938 阅读:47 留言:0更新日期:2017-04-19 03:50
本发明专利技术涉及基于TLS协议实现加密通信的方法及装置。所述方法包括:将预设的计算模块配置到服务器端软件中,所述计算模块兼容TLS标准的密码算法,还兼容自定义的密码算法;接收客户端的加密通信请求,根据所述加密通信请求识别所述客户端支持的加密方法;从所述计算模块兼容的密码算法中选择出与所述客户端支持的加密方法相适应的密码算法,采用选出的密码算法与所述客户端进行加密通信。本发明专利技术能够扩展传统TLS协议的密码算法。

【技术实现步骤摘要】

本专利技术涉及互联网
,特别是涉及基于TLS协议实现加密通信的方法及装置
技术介绍
安全传输层协议TLS用于在两个通信应用程序之间提供保密性和数据完整性,TLS正在越来越广泛的用于保障互联网数据安全。TLS协议的基本过程包括:(1)客户端向服务器端索要并验证公钥;(2)双方协商生成\对话密钥\;(3)双方采用\对话密钥\进行加密通信。上面过程的前两步,又称为\握手阶段\(handshake),\握手阶段\涉及如下四次通信过程:H1、客户端发出请求(ClientHello)客户端(通常是浏览器)先向服务器发出加密通信的请求,这被叫做ClientHello请求。该请求中包括客户端支持的协议版本,比如TLS1.0版;一个客户端生成的随机数,稍后用于生成\对话密钥\;客户端支持的加密方法,比如RSA公钥加密;客户端支持的压缩方法等信息。H2、服务器回应(SeverHello)服务器收到客户端请求后,向客户端发出回应,该回应中包含服务器端确认使用的加密通信协议版本,比如TLS1.0版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信;一个服务器生成的随机数,稍后用于生成\对话密钥\;确认使用的加密方法,比如RSA公钥加密;以及一张数字证书。H3、客户端回应客户端收到服务器回应以后,首先验证服务器证书。如果证书不是可信机构颁布、或者证书中的域名与实际域名不一致、或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信;如果证书没有问题,客户端就会从证书中取出服务器的公钥,然后向服务器发送下面信息:一个随机数(也称作pre-masterkey)。该随机数用服务器公钥加密,防止被窃听;编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送;客户端握手结束通知,表示客户端的握手阶段已经结束。H4、服务器的最后回应服务器收到客户端的随机数pre-masterkey之后,计算生成本次会话所用的\会话密钥\。然后向客户端最后发送下面信息:编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送;服务器握手结束通知,表示服务器的握手阶段已经结束。至此,握手阶段全部结束。接下来客户端与服务器进入加密通信,相当于使用普通的HTTP协议,不同的是采用\会话密钥\加密通信内容。然而目前TLS协议中所定义的标准密码算法均为国外设计的密码算法,其安全性尚未得到充分的证明。并且由于现有TLS协议的服务器端软件和客户端软件也绝大多数都由国外开发和维护,导致其难以兼容其他密码算法。
技术实现思路
基于此,本专利技术实施例提供基于TLS协议实现加密通信的方法及装置,能够扩展TLS协议的密码算法。本专利技术一方面提供基于TLS协议实现加密通信的方法,包括:将预设的计算模块配置到服务器端软件中,所述计算模块兼容TLS标准的密码算法,还兼容自定义的密码算法;接收客户端的加密通信请求,根据所述加密通信请求识别所述客户端支持的加密方法;从所述计算模块兼容的密码算法中选择出与所述客户端支持的加密方法相适应的密码算法,采用选出的密码算法与所述客户端进行加密通信。本专利技术还提供一种基于TLS协议实现加密通信的方法,包括:读取预设的配置项信息,判断本端是否支持自定义的密码算法;向服务器端发送加密通信请求,接收服务器对所述加密通信请求的回应消息;若本端支持自定义的密码算法,检测所述数字证书中是否存在用于存放自定义的非对称密码算法对应的公钥和自定义的对称密码算法标识的扩展项;若存在,缓存自定义的非对称密码算法对应的公钥和自定义的对称密码算法标识到本地;构造自定义非对称密码算法加密结果SecretTLS,并根据缓存的公钥对所述SecretTLS加密得到自定义密文SelfCipher;将所述自定义密文SelfCipher作为TLS协议中定义的客户端密钥交换消息ClientKeyExchange中的一部分;发送所述ClientKeyExchange消息至服务器;采用自定义的密码算法与服务器端进行加密通信。本专利技术还提供一种TLS协议的服务器端装置,包括:配置模块,用于将预设的计算模块配置到服务器端软件中,所述计算模块兼容TLS标准的密码算法,还兼容自定义的密码算法;请求接收模块,用于接收客户端的加密通信请求,根据所述加密通信请求识别所述客户端支持的加密方法;算法选择模块,用于从所述计算模块兼容的密码算法中选择出与所述客户端支持的加密方法相适应的密码算法,采用选出的密码算法与所述客户端进行加密通信。本专利技术还提供一种TLS协议的客户端装置,包括:检测模块,用于读取预设的配置项信息,判断本端是否支持自定义的密码算法;加密请求模块,用于向服务器端发送加密通信请求,接收服务器对所述加密通信请求的回应消息,所述回应消息包括服务器端的数字证书;证书解析模块,用于若本端支持自定义的密码算法,检测所述数字证书中是否存在用于存放自定义的非对称密码算法对应的公钥和自定义的对称密码算法标识的扩展项;若存在,缓存自定义的非对称密码算法对应的公钥和自定义的对称密码算法标识到本地;回应模块,用于构造自定义非对称密码算法加密结果SecretTLS,并根据缓存的公钥对所述SecretTLS加密得到自定义密文SelfCipher;将所述自定义密文SelfCipher作为TLS协议中定义的客户端密钥交换消息ClientKeyExchange中的一部分;发送所述ClientKeyExchange消息至服务器;通信模块,用于采用自定义的密码算法与服务器端进行加密通信。上述技术方案,通过将预设的计算模块配置到服务器端软件中,所述计算模块兼容TLS标准的密码算法,还兼容自定义的密码算法;当接收客户端的加密通信请求时,根据所述加密通信请求识别所述客户端支持的加密方法;并能够从所述计算模块兼容的密码算法中选择出与所述客户端支持的加密方法相适应的密码算法,使得服务器端采用选出的密码算法与所述客户端进行加密通信。仅需为主流的服务器端软件(如:Weblogic,Tomcat,IIS等)配置具有兼容功能的计算模块,即可使得服务器端同时支持TLS标准密码算法和自定义密码算法,同时为支持自定义密码算法和不支持自定义密码算法的客户端提供服务,有利于自定义密码算法在实际应用环境中的推广。附图说明图1为一实施例的基于TLS协议实现加密通信的方法的示意性流程图;图2为另一实施例的基于TLS协议实现加密通信的方法的示意性流程图;图3为一实施例的TLS协议的服务器端装置的示意性结构图;图4为一实施例的TLS协议的客户端装置的示意性结构图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。图1为一实施例的基于TLS协议实现加密通信的方法的示意性流程图;在该实施例中,是以该方法应用于TLS系统中服务器端为例进行说明。如图1所示,本实施例中的基于TLS协议实现加密通信的方法包括步骤:S11,将预设的计算模块配置到服务器端软件中,所述计算模块兼容TLS标准的密码算法,还兼容自定义的密码算法;本实施例中所述TLS标准的密码算法、自定义的密码算法均包括对称密码算法和非对称密码算法。TLS标准本文档来自技高网
...
基于TLS协议实现加密通信的方法及装置

【技术保护点】
一种基于TLS协议实现加密通信的方法,其特征在于,包括:将预设的计算模块配置到服务器端软件中,所述计算模块兼容TLS标准的密码算法,还兼容自定义的密码算法;接收客户端的加密通信请求,根据所述加密通信请求识别所述客户端支持的加密方法;从所述计算模块兼容的密码算法中选择出与所述客户端支持的加密方法相适应的密码算法,采用选出的密码算法与所述客户端进行加密通信。

【技术特征摘要】
1.一种基于TLS协议实现加密通信的方法,其特征在于,包括:将预设的计算模块配置到服务器端软件中,所述计算模块兼容TLS标准的密码算法,还兼容自定义的密码算法;接收客户端的加密通信请求,根据所述加密通信请求识别所述客户端支持的加密方法;从所述计算模块兼容的密码算法中选择出与所述客户端支持的加密方法相适应的密码算法,采用选出的密码算法与所述客户端进行加密通信。2.根据权利要求1所述的基于TLS协议实现加密通信的方法,其特征在于,所述TLS标准的密码算法、自定义的密码算法均包括对称密码算法和非对称密码算法。3.根据权利要求2所述的基于TLS协议实现加密通信的方法,其特征在于,将预设的计算模块配置到服务器端软件中的步骤之后,还包括:在为服务器端配置TLS标准的非对称密码算法的密钥对时,还为服务器配置所述自定义的非对称密码算法对应的密钥对;在服务器端的数字证书中增设自定义扩展项,用于存放所述自定义的非对称密码算法的公钥和自定义对称密码算法的标识。4.根据权利要求2所述的基于TLS协议实现加密通信的方法,其特征在于,所述TLS标准非对称密码算法和自定义非对称密码算法为满足以下条件一或条件二的算法:条件一:在TLS系统不需支持TLS标准对称密码算法与自定义对称密码算法的兼容的情况下,自定义非对称密码算法对TLS协议中pre_master_secret数据的加密结果的长度小于等于TLS标准非对称密码算法对pre_master_secret加密结果的长度;pre_master_secret为TLS协议中用于产生主密钥的一段随机数;条件二:在TLS系统需支持TLS标准对称密码算法与自定义对称密码算法的兼容的情况下,自定义非对称密码算法对TLS协议中pre_master_secret、client_random以及server_random三段数据以及描述信息的加密结果的长度小于等于TLS标准非对称密码算法对pre_master_secret加密结果的长度;client_random为TLS协议中所定义的客户端随机数;server_random为TLS协议中所定义的服务器端随机数;所述TLS标准对称密码算法和自定义对称密码算法为满足以下条件三的算法:条件三:在TLS系统需支持TLS标准对称密码算法与自定义对称密码算法的兼容的情况下,TLS标准对称密码算法与自定义对称密码算法的密钥长度相等;当对称密码算法为分组密码算法时,还要求TLS标准对称密码算法与自定义对称密码算法的分组长度相等;所述的基于TLS协议实现加密通信的方法还包括:预先配置所述计算模块的步骤,具体包括:设置自定义密文的总长度等于TLS标准非对称密码算法对TLS协议中pre_master_secret加密结果的长度;将对称密钥表的每条记录配置为包括SymmAlgo、RecordTime、client_write_key、server_write_key四个数据列;其中,SymmAlgo用于标识自定义对称密码算法的类型;RecordTime用于标识该条记录创建时的时间;client_write_key为TLS协议中所定义的客户端进行写操作时对数据进行加密所使用的密钥;server_write_key为TLS协议中所定义的服务器端进行写操作时对数据进行加密所使用的密钥;设置所述计算模块的维护机制为:根据RecordTime计算出对称密钥表中各条记录的存在时长,间隔设定时间清除所述对称密钥表中存在时长超出设定限值的记录;配置在服务器端的计算逻辑,包括:在进行自定义非对称密码算法解密计算时,对输入数据进行分析以判断是否为自定义密文;若是,对输入数据执行预设的自定义计算;若否,对输入数据执行TLS标准非对称密码算法解密计算;在进行TLS标准非对称密码算法验证签名计算时,对输入数据全部执行TLS标准非对称密码算法验证签名计算;在进行自定义对称密码算法计算时,查询当前对称密钥表中是否存在输入的对称密钥;若不存在,使用TLS标准对称密码算法对输入数据进行计算;若存在,使用自定义对称密码算法对输入数据进行计算。5.根据权利要求4所述的基于TLS协议实现加密通信的方法,其特征在于,所述自定义密文SelfCipher的结构设置为至少包含cipher和padding两个部分:cipher:SecretTLS的自定义非对称密码算法加密结果;padding:填充字节,填充字节数大于等于0,用于保证自定义密文的长度等于TLS标准非对称密码算法对TLS协议中pre_master_secret加密结果的长度;所述SecretTLS由pre_master_secret部分构成;或者由pre_master_secret部分,以及infoBytes、client_random、server_random所组成的部分构成:pre_master_secret:TLS协议定义的pre_master_secret;infoBytes:至少一个字节的描述信息,用于描述当前TLS版本和自定义对称算法类型;client_random:TLS协议定义的客户端随机数;server_random:TLS协议定义的服务器端随机数。6.根...

【专利技术属性】
技术研发人员:刘磊廖卫民郭成耀
申请(专利权)人:广东信鉴信息科技有限公司数安时代科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1