【技术实现步骤摘要】
本专利技术涉及互联网
,特别是涉及基于TLS协议实现加密通信的方法及装置。
技术介绍
安全传输层协议TLS用于在两个通信应用程序之间提供保密性和数据完整性,TLS正在越来越广泛的用于保障互联网数据安全。TLS协议的基本过程包括:(1)客户端向服务器端索要并验证公钥;(2)双方协商生成\对话密钥\;(3)双方采用\对话密钥\进行加密通信。上面过程的前两步,又称为\握手阶段\(handshake),\握手阶段\涉及如下四次通信过程:H1、客户端发出请求(ClientHello)客户端(通常是浏览器)先向服务器发出加密通信的请求,这被叫做ClientHello请求。该请求中包括客户端支持的协议版本,比如TLS1.0版;一个客户端生成的随机数,稍后用于生成\对话密钥\;客户端支持的加密方法,比如RSA公钥加密;客户端支持的压缩方法等信息。H2、服务器回应(SeverHello)服务器收到客户端请求后,向客户端发出回应,该回应中包含服务器端确认使用的加密通信协议版本,比如TLS1.0版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信;一个服务器生成的随机数,稍后用于生成\对话密钥\;确认使用的加密方法,比如RSA公钥加密;以及一张数字证书。H3、客户端回应客户端收到服务器回应以后,首先验证服务器证书。如果证书不是可信机构颁布、或者证书中的域名与实际域名不一致、或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信;如果证书没有问题,客户端就会从证书中取出服务器的公钥,然后向服务器发送下面信息:一个随机数(也称作pre-masterke ...
【技术保护点】
一种基于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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。