一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动选择加密协议的方法与流程

2022-06-04 21:48:53 来源:中国专利 TAG:

1.本发明涉及到网站加密、文件传输加密的技术领域,尤其涉及一种自动选择加密协议的方法。


背景技术:

2.当前几乎所有网站都会使用加密算法保护客户端到服务器端之间的数据传递不被非法的第三方窃取或篡改;比较常用的是使用安全传输层协议(tls:transportlayersecurity,以下简称“tls”),国内部分企事业单位和科研机构对于信息安全要求高或基于加密算法必须自主可控的原则会使用国家商用密码算法(以下简称“国密”或“国密算法”)。
3.目前在网站加密协议中大多数使用了tls,少数国内网站使用了国密算法。客户端在连接服务器前无法确定服务器使用了何种协议进行加密,如果使用了错误的协议则会导致连接失败。
4.因此,现有技术存在缺陷,需要改进。


技术实现要素:

5.本发明的目的在于为解决上述问题而提供一种自动选择加密协议的方法,使客户端自动选择一种合适的加密协议与服务器建立安全的连接,其技术方案如下:一种自动选择加密协议的方法,包括步骤1,通过tls协议向服务端发送tls握手请求clienthello消息;步骤2,根据从服务端返回的响应消息来确定是否建立连接;若返回的响应消息包括serverhello消息,则向服务端发送第一校验消息,检验通过后建立与服务端的tls连接;若返回的响应消息包括handshakefailure消息,则断开连接,通过国密ssl协议向服务端发送ssl握手消息,向服务端发送第二校验消息,检验通过后建立与服务端的ssl连接。
6.可选地,所述步骤1中,tls握手请求clienthello消息包括客户端使用的tls协议的版本信息、加密套件候选列cipher suites、压缩算法候选列表compression methods以及随机数random_c。
7.可选地,所述步骤2中,协商信息serverhello包括选择使用的协议版本version,选择的加密套件cipher suite,选择的压缩算法compression method以及随机数random_s。
8.可选地,所述步骤2中,响应消息还包括certificates消息;在向服务端发送第一校验消息前,先验证certificates消息中证书的合法性,验证通过后,向服务端发送第一校验消息。
9.本发明具有以下有益效果:通过客户端与服务端第一次握手消息的交互,可以选
择出合适的加密协议与服务端建立安全连接;客户端只需要一个服务端的端口,不需要事先指定使用何种加密协议即可兼容两种加密协议,保证了系统的兼容性。
附图说明
10.图1为本发明提供的自动选择加密协议的方法的流程图。
具体实施方式
11.以下结合附图和具体实施例,对本发明进行详细说明。
12.如图1所示,本发明提供一种自动选择加密协议的方法,该自动选择加密协议的方法包括步骤:步骤1,客户端使用tls协议向服务端发起握手请求,以明文传输clienthello消息,该clienthello消息包括客户端使用的tls协议的版本信息、加密套件候选列cipher suites、压缩算法候选列表compression methods以及随机数random_c等,其中,版本信息为客户端支持的最高tsl协议版本,从低到高依次tls_v1、 tls_v1.1 、tls_v1.2。客户端支持的加密套件列表cipher suites,每个加密套件对应前面 tls 原理中的四个功能的组合:认证算法 au (身份验证)、密钥交换算法 keyexchange(密钥协商)、对称加密算法 enc (信息加密)和信息摘要 mac(完整性校验);压缩算法列表compression methods中的压缩算法,用于后续的信息压缩传输;随机数 random_c,用于后续的密钥的生成。
13.步骤2,服务端根据当前配置的是tls协议或国密ssl协议返回响应消息。具体地,若服务端配置的是tls协议时,返回serverhello消息;否则返回handshakefailure消息。
14.在步骤s2中,serverhello消息为服务端返回协商的信息结果,包括选择使用的协议版本version,选择的加密套件cipher suite,选择的压缩算法 compression method、随机数 random_s等,其中随机数用于后续的密钥协商。同时,响应信息还包括certificates消息以及serverhellodone消息,certificates消息中包含有服务端配置对应的证书,用于身份验证与密钥交换;serverhellodone消息用于通知客户端serverhello消息发送结束。
15.步骤3,客户端根据服务端返回的响应消息来判断是否建立连接。具体地,当客户端收到服务端返回的serverhello消息时,表示服务端当前使用的是tls协议,则继续向服务端发送校验消息以完成tls连接的建立,具体tls连接的建立包括如下步骤:步骤31,客户端对服务端返回的证书进行合法性验证,如果验证通过进行下一步,否则根据错误情况不同做出提示和操作;步骤32,客户端产生一个随机数pre_master_secret,并用证书中的公钥进行加密再发送给服务端;步骤33,客户端根据随机数random_c 、 random_s以及master-secret生成协商密钥fuc(random_c, random_s,pre_ master_secret);步骤34,客户端根据接收的所有握手消息的mac值生成一段验证数据,并采用协商密钥和服务端选择的加密算法进行加密,然后然后发送给服务端进行握手验证;步骤35,服务端采用其证书私钥解密以得到pre_master_secret,结合之前交换的明文随机数random_c 、 random_s,得到协商密钥2。
16.步骤36,服务端采用步骤s35中得到的协商密钥2和在步骤s2中选择的加密算法对
步骤s34中的发送过来的验证数据进行解码,再通过协商密钥2和加密算法对解密出来的验证数据重新加密;步骤37,客户端接收步骤36中返回的验证数据并解密,将该验证数据中mac值与步骤s34中的mac值进行一致性校验,验证通过后则握手完成,建立客户端与服务端之间的tls连接。
17.当客户端收到服务端返回的handshakefailure消息时,则表示服务端当前使用的不是tls协议,并断开与服务端的连接;由客户端使用国密ssl协议向服务端重新发送ssl握手请求并建立ssl连接。
18.应当说明书的是,建立ssl连接的过程与建立tsl连接的过程原理相同,再次不详细赘述。
19.本发明具有以下有益效果:通过客户端与服务端第一次握手消息的交互,可以选择出合适的加密协议与服务端建立安全连接;客户端只需要一个服务端的端口,不需要事先指定使用何种加密协议即可兼容两种加密协议,保证了系统的兼容性。
20.以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献