基于安全传输层协议的安全认证方法、设备及系统的制作方法

文档序号:8003053阅读:198来源:国知局
基于安全传输层协议的安全认证方法、设备及系统的制作方法
【专利摘要】本发明实施例公开了基于TLS的安全认证方法和相关设备及通信系统。一种基于TLS协议的安全认证的方法,包括:客户端向服务器发送客户端初始化握手消息,客户端初始化握手消息中携带N个算法套标识,N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;接收服务器发送的服务器初始化握手消息,服务器初始化握手消息中携带第一算法套标识,第一算法套标识为M个算法套标识之中的一个;基于第一算法套标识所对应的第一算法套与服务器进行安全认证。本发明实施例的方案提供能够利用SM2算法进行数据传输的机制,有利于发挥SM2算法在安全性方面的优势,提高安全认证和数据传输的安全性和性能。
【专利说明】基于安全传输层协议的安全认证方法、设备及系统
【技术领域】
[0001]本发明涉及通信【技术领域】,具体涉及基于安全传输层协议的安全认证方法、设备及系统。
【背景技术】
[0002]当前,安全传输层(TLS, Transport Layer Security)协议是网络传输中应用最广泛的安全协议。TLS协议属于国际标准,TLS协议使用了大量国际通用的相关算法。
[0003]SM2算法是中国国家标准密码局颁发的非对称加密算法,并且是国家工信部指定用于替换RSA算法的。其中,SM2算法采用椭圆曲线原理,其密钥相对更短且安全性相对更高,同时性能也相对更高。其中,SM2算法包括:SM2公钥加密算法、SM2签名算法(SM2E⑶SA)和SM2密钥交换算法(SM2ECDH)等等。可以预判,SM2算法在中国国内以及未来中国和国际间的安全算法使用具有重要意义,可能普及到政府和企事业单位等。然而,SM2算法目前还正处于推广阶段,尚未提出有效的应用SM2算法进行安全数据传输的机制。

【发明内容】

[0004]本发明实施例提供基于安全传输层协议的安全认证方法和相关设备及通信系统,以期提供能够利用SM2算法进行数据传输的机制,进而发挥SM2算法在安全性方面的优势,提高安全认证和数据传输的安全性和性能。
[0005]本发明第一方面提供一种基于安全传输层TLS协议的安全认证的方法,可包括:客户端向服务器发送客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,其中,所述N大于或等于所述M,所述N和M为正整数;
[0006]所述客户端接收所述服务器发送的用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;
[0007]所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证。
[0008]结合第一方面,在第一种可能的实施方式中,所述第一算法套为认证类算法套或者匿名类算法套;
[0009]其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0010]结合第一方面的第一种可能的实施方式,在第二种可能的实施方式中,若所述第一算法套为认证类算法套,则所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证,包括:
[0011]所述客户端接收所述服务器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0012]所述客户端接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的;
[0013]所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0014]所述客户端接收所述服务器发送的第一证书请求消息;
[0015]所述客户端向所述服务器发送用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;
[0016]所述客户端向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;
[0017]所述客户端向所述服务器发送客户端用户证书验证消息,以便于所述服务器基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
[0018]结合第一方面的第一种可能的实施方式,在第三种可能的实施方式中,若所述第一算法套为认证类算法套,则所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证,包括:
[0019]所述客户端接收所述服务器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0020]所述客户端接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的;
[0021]所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0022]所述客户端向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。[0023]结合第一方面的第一种可能的实施方式,在第四种可能的实施方式中,若第一算法套为匿名类算法套,则所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证,包括:
[0024]所述客户端接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥;其中,所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0025]所述客户端向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0026]结合第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第五种可能的实施方式中,所述客户端向所述服务器发送客户端密钥交互消息之后,还包括:
[0027]所述客户端向所述服务器发送客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值,以便于所述服务器验证所述客户端校验摘要值;接收所述服务器在对所述客户端校验摘要值验证通过后发送的服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,所述客户端对所述服务器校验摘要值进行验证。
[0028]本发明第二方面提供一种TLS协议的安全认证的方法,可包括:服务器接收客户端发送的客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;
[0029]所述服务器向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带所述服务器从所述M个算法套标识选出的第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;
[0030]所述服务器基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证。
[0031]结合第二方面,在第一种可能的实施方式中,
[0032]所述第一算法套为认证类算法套或匿名类算法套,
[0033]其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0034]结合第二方面的第一种可能的实施方式,在第二种可能的实施方式中,若第一算法套为认证类算法套,则所述服务器基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证,包括:
[0035]所述服务器向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0036]所述服务器向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0037]所述服务器向所述客户端发送第一证书请求消息;
[0038]所述服务器接收所述客户端发送的用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;
[0039]所述服务器接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;
[0040]所述服务器接收所述客户端发送的客户端用户证书验证消息,基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
[0041]结合第二方面的第一种可能的实施方式,在第三种可能的实施方式中,若第一算法套为认证类算法套,则所述服务器基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证,包括:
[0042]所述服务器向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0043]所述服务器向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0044]所述服务器接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0045]结合第二方面的第一种可能的实施方式,在第四种可能的实施方式中,若第一算法套为匿名类算法套,则所述服务器与所述客户端基于所述第一算法套标识所对应的第一算法套进行安全认证,包括:
[0046]所述服务器向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥,以便于所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0047]所述服务器接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0048]结合第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式或第二方面的第四种可能的实施方式,在第五种可能的实施方式中,所述服务器接收所述客户端发送的客户端密钥交互消息之后,还包括:
[0049]所述服务器接收所述客户端发送的客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值;在对所述客户端校验摘要值验证通过后,向所述客户端发送服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,以便于所述客户端对所述服务器校验摘要值进行验证。
[0050]本发明第三方面提供一种客户端,可包括:
[0051]发送单元,用于向服务器发送客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,其中,所述N大于或等于所述M,所述N和M为正整数;
[0052]接收单元,用于接收所述服务器发送的用于响应所述客户端初始化握手消息的服务器初始化握手消息,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;
[0053]认证交互单元,用于基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证。
[0054]结合第三方面,在第一种可能的实施方式中,所述第一算法套为认证类算法套或者匿名类算法套;
[0055]其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0056]结合第三方面的第一种可能的实施方式,在第二种可能的实施方式中,
[0057]若第一算法套为认证类算法套,则认证交互单元具体用于,接收所述服务器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0058]接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的;基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0059]接收所述服务器发送的第一证书请求消息;
[0060]向所述服务器发送用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;
[0061]向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;
[0062]向所述服务器发送客户端用户证书验证消息,以便于所述服务器基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
[0063]结合第三方面的第一种可能的实施方式,在第三种可能的实施方式中,
[0064]若第一算法套为认证类算法套,则认证交互单元具体用于,
[0065]接收所述服务器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0066]接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的;基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0067]向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;
[0068]结合第三方面的第一种可能的实施方式,在第四种可能的实施方式中,
[0069]若第一算法套为匿名类算法套,则认证交互单元具体用于,
[0070]接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥;基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0071]向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。[0072]结合第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式或第三方面的第四种可能的实施方式,在第五种可能的实施方式中,所述认证交互单元还用于,向所述服务器发送客户端密钥交互消息之后,向所述服务器发送客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值,以便于所述服务器验证所述客户端校验摘要值;接收所述服务器在对所述客户端校验摘要值验证通过后发送的服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,对所述服务器校验摘要值进行验证。
[0073]本发明第四方面提供一种服务器,可包括:
[0074]接收单元,用于接收客户端发送的客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;
[0075]发送单元,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带所述服务器从所述M个算法套标识选出的第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;
[0076]认证交互单元,用于基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证。
[0077]结合第四方面,在第一种可能的实施方式中,
[0078]所述第一算法套为认证类算法套或匿名类算法套,
[0079]其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0080]结合第四方面的第一种可能的实施方式,在第二种可能的实施方式中,
[0081]若第一算法套为认证类算法套,则认证交互单元具体用于,
[0082]向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0083]向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0084]向所述客户端发送第一证书请求消息;
[0085]接收所述客户端发送的用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;
[0086]接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;
[0087]接收所述客户端发送的客户端用户证书验证消息,基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
[0088]结合第四方面的第一种可能的实施方式,在第三种可能的实施方式中,若第一算法套为认证类算法套,则认证交互单元具体用于,
[0089]向所述客户端发送第一消息,其中,所述第一消息携带有服务器携带有服务器基于SM2签名算法的用户证书;
[0090]向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0091]接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0092]结合第四方面的第一种可能的实施方式,在第四种可能的实施方式中,若第一算法套为匿名类算法套,则认证交互单元具体用于,
[0093]向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥,以便于所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0094]接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0095]结合第四方面的第二种可能的实施方式或第四方面的第三种可能的实施方式或第四方面的第四种可能的实施方式,在第五种可能的实施方式中,所述认证交互单元还用于,接收所述客户端发送的客户端密钥交互消息之后,接收所述客户端发送的客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值;在对所述客户端校验摘要值验证通过后,向所述客户端发送服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,以便于所述客户端对所述服务器校验摘要值进行验证。
[0096]本发明第五方面提供一种通信系统,包括:
[0097]客户端和服务器,[0098]其中,所述客户端,用于向所述服务器发送客户端初始化握手消息,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,其中,所述N大于或等于所述M,所述N和M为正整数;
[0099]所述服务器,用于向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证。
[0100]结合第五方面,在第一种可能的实施方式中,
[0101]若第一算法套为认证类算法套,则所述服务器具体用于,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个,
[0102]向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0103]向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0104]向所述客户端发送第一证书请求消息;
[0105]接收所述客户端发送的用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;
[0106]接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;
[0107]接收所述客户端发送的客户端用户证书验证消息,基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
[0108]结合第五方面,在第二种可能的实施方式中,若第一算法套为认证类算法套,则所述服务器具体用于,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;
[0109]向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书;
[0110]向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;
[0111]接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0112]结合第五方面,在第三种可能的实施方式中,若第一算法套为匿名类算法套,则所述服务器具体用于,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥,以便于所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0113]可以看出,本发明实施例提出的基于TLS协议的安全认证机制中,客户端向服务器发送客户端初始化握手消息,其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,上述N大于或等于上述M,上述N和M为正整数;上述客户端接收上述服务器发送的服务器初始化握手消息,上述服务器初始化握手消息中携带第一算法套标识,其中,第一算法套标识为上述M个算法套标识之中的一个;上述客户端与上述服务器基于第一算法套标识所对应的第一算法套进行安全认证。其中,通过将SM2算法的引入和基于TLS协议的安全认证机制进行有机的结合,使得SM2算法用于安全认证变得可能且可行,进而使得利用SM2算法进行数据传输变得可能且可行,并且由于将SM2算法融入到基于TLS协议的安全认证机制之中,故无需对设备进行大范围改动即可实施,方案实施的成本较低。总的来说,本发明实施例提供了能够利用SM2算法进行数据传输的合理可行机制,有利于加速SM2算法的应用步伐,进而发挥SM2算法在安全性方面的优势,进而有利于提升基于TLS进行安全认证和数据传输的安全性和性能。
【专利附图】

【附图说明】
[0114]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0115]图1是本发明实施例提供的一种基于TLS协议的安全认证方法的流程示意图;
[0116]图2是本发明实施例提供的另一种基于TLS协议的安全认证方法的流程示意图;
[0117]图3是是本发明实施例提供的另一种基于TLS协议的安全认证方法的流程示意图;
[0118]图4是是本发明实施例提供的另一种基于TLS协议的安全认证方法的流程示意图;
[0119]图5是本发明实施例提供的另一种基于TLS协议的安全认证方法的流程示意图;
[0120]图6是本发明实施例提供的一种客户端的示意图;
[0121]图7是本发明实施例提供的另一种客户端的示意图;
[0122]图8是本发明实施例提供的另一种客户端的示意图;
[0123]图9是本发明实施例提供的一种服务器的示意图;
[0124]图10是本发明实施例提供的另一种服务器的示意图;
[0125]图11是本发明实施例提供的另一种服务器的示意图;
[0126]图12是本发明实施例提供的一种通信系统的示意图;
[0127]图13是本发明实施例提供的一种移动终端的示意图。
【具体实施方式】
[0128]本发明实施例提供基于安全传输层协议的安全认证方法和相关设备及通信系统,以期提供能够利用SM2算法进行数据传输的机制,以加速SM2算法的应用步伐。
[0129]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0130]以下分别进行详细说明。
[0131]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0132]本发明基于TLS协议的安全认证的方法的一个实施例,一种基于TLS协议的安全认证的方法可包括:客户端向服务器发送客户端初始化握手消息,其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,上述N大于或者等于上述M,上述N和M为正整数;上述客户端接收上述服务器发送的用于响应上述客户端初始化握手消息的服务器初始化握手消息,上述服务器初始化握手消息中携带第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个;上述客户端基于第一算法套标识所对应的第一算法套与上述服务器进行安全认证。
[0133]首先请参见图1,图1是本发明的一个实施例提供一种基于TLS协议的安全认证的方法的流程示意图,本发明的一个实施例提供一种基于TLS协议的安全认证的方法可包括以下内容:
[0134]101、客户端向服务器发送客户端初始化握手消息;
[0135]其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,上述N大于或等于上述M,上述N和M为正整数。
[0136]其中,不同的算法套可具有不同的算法套标识。每个算法套可包括若干种用于认证和数据传输的算法,例如,每个算法套可包括对称加密算法、密钥交互算法、签名算法和摘要算法等,有些算法套(例如匿名类算法套)也可能不包括签名算法。
[0137]102、客户端接收上述服务器发送的用于响应上述客户端初始化握手消息的服务器初始化握手消息,其中,上述服务器初始化握手消息中携带第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个。
[0138]在本发明的一些实施例中,服务器可根据自身能力、传输环境、安全性要求等因素,来从客户端初始化握手消息携带的N个算法套标识中选出一个算法套标识(当然,服务器首先能够支持其选择的算法套中的各种算法,并加载了相关的参数),以便后续使用选出的算法套标识所对应的算法套继续和客户端进行安全认证。其中,客户端初始化握手消息和服务器初始化握手消息中携带的算法套标识的格式可能相同或不同。
[0139]103、客户端基于第一算法套标识所对应的第一算法套与上述服务器进行安全认证。
[0140]在本发明的一些实施例中,第一算法套例如可为认证类算法套或者匿名类算法套;其中,若第一算法套为匿名类算法套,第一算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;其中,若第一算法套为认证类算法套,第一算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0141]在本发明的一些实施例中,若第一算法套为认证类算法套,则客户端基于第一算法套标识所对应的第一算法套与服务器进行安全认证,可以包括:上述客户端接收上述服务器发送的第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述客户端接收上述服务器发送的服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,其中,上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述客户端接收上述服务器发送的第一证书请求消息;上述客户端接收上述服务器发送的服务器响应结束声明消息;上述客户端向上述服务器发送用于响应第一证书请求消息的第二消息,其中,第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;上述客户端向上述服务器发送客户端密钥交互消息,其中,该客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;客户端向上述服务器发送客户端用户证书验证消息,以便于上述客户端基于上述客户端用户证书验证消息,验证第二消息携带的用户证书的合法性;客户端还可接收服务器发送的第一密钥更换声明消息;上述客户端向上述服务器发送第二密钥更换声明消息。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0142]在本发明的一些实施例中,若第一算法套为认证类算法套,则客户端基于第一算法套标识所对应的第一算法套与服务器进行安全认证,可以包括:上述客户端接收上述服务器发送的第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述客户端接收上述服务器发送的服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,其中,上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述客户端接收上述服务器发送的第一证书请求消息;上述客户端向上述服务器发送用于响应第一证书请求消息的第二消息,其中,第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;上述客户端向上述服务器发送客户端密钥交互消息,其中,该客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;客户端向上述服务器发送客户端用户证书验证消息,以便于上述客户端基于上述客户端用户证书验证消息,验证第二消息携带的用户证书的合法性。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0143]在本发明的一些实施例中,若第一算法套为认证类算法套,客户端与服务器基于第一算法套标识所对应的第一算法套进行安全认证,具体可包括:上述客户端接收上述服务器发送的第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述客户端接收上述服务器发送的服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,其中,上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述客户端接收上述服务器发送的服务器响应结束声明消息;上述客户端向上述服务器发送客户端密钥交互消息,其中,该客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;客户端向上述服务器发送客户端用户证书验证消息,以便于上述客户端基于上述客户端用户证书验证消息,验证第二消息携带的用户证书的合法性;客户端还可接收服务器发送的第一密钥更换声明消息;上述客户端向上述服务器发送第二密钥更换声明消息。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0144]在本发明的一些实施例中,若第一算法套为认证类算法套,客户端与服务器基于第一算法套标识所对应的第一算法套进行安全认证,具体可包括:上述客户端接收上述服务器发送的第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述客户端接收上述服务器发送的服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,其中,上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述客户端向上述服务器发送客户端密钥交互消息,其中,该客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;客户端向上述服务器发送客户端用户证书验证消息,以便于上述客户端基于上述客户端用户证书验证消息,验证第二消息携带的用户证书的合法性。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0145]在本发明的一些实施例中,若第一算法套为匿名类算法套,则客户端与服务器基于第一算法套标识所对应的第一算法套进行安全认证,可以包括:上述客户端接收上述服务器发送的第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述客户端接收上述服务器发送的服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥,其中,上述客户端基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述客户端接收上述服务器发送的服务器响应结束声明消息;上述客户端向上述服务器发送客户端密钥交互消息,其中,该客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;客户端还可接收服务器发送的第一密钥更换声明消息;上述客户端向上述服务器发送第二密钥更换声明消息。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0146]在本发明的一些实施例中,若第一算法套为匿名类算法套,则客户端与服务器基于第一算法套标识所对应的第一算法套进行安全认证,可以包括:上述客户端接收上述服务器发送的第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述客户端接收上述服务器发送的服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥,其中,上述客户端基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述客户端向上述服务器发送客户端密钥交互消息,其中,该客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0147]在本发明的一些实施例中,在上述客户端接收服务器发送的第一密钥更换声明消息之前,或者,在上述客户端向上述服务器发送第二密钥更换声明消息之前,或者,在上述客户端向上述服务器发送客户端密钥交互消息之后,还可包括:上述客户端向上述服务器发送客户端密钥交互验证消息,其中,上述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值,以便于上述服务器验证上述客户端校验摘要值;接收上述上述服务器在对上述客户端校验摘要值验证通过后发送的服务器密钥交互验证消息,其中,上述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,上述客户端可进一步对上述服务器校验摘要值进行验证。
[0148]在本发明的另一些实施例中,在上述客户端接收服务器发送的第一密钥更换声明消息之前,或者,在上述客户端向上述服务器发送第二密钥更换声明消息之前,或者,在上述客户端向上述服务器发送客户端密钥交互消息之后,还可以包括:上述客户端接收上述服务器发送的服务器密钥交互验证消息,上述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值;上述客户端对上述服务器校验摘要值进行验证,上述客户端在对上述服务器校验摘要值验证通过后,向上述服务器发送客户端密钥交互验证消息,其中,上述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值,以便于上述服务器验证上述客户端校验摘要值,上述服务器可进一步对上述客户端校验摘要值进行验证。
[0149]可以看出,本实施例提出的基于TLS协议的安全认证机制中,客户端向服务器发送客户端初始化握手消息,其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,上述N大于或等于上述M,上述N和M为正整数;上述客户端接收上述服务器发送的服务器初始化握手消息,上述服务器初始化握手消息中携带第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个;上述客户端与上述服务器基于第一算法套标识所对应的第一算法套进行安全认证。其中,通过将SM2算法的引入和基于TLS协议的安全认证机制进行有机的结合,使得SM2算法用于安全认证变得可能且可行,进而使得利用SM2算法进行数据传输变得可能且可行,并且由于将SM2算法融入到基于TLS协议的安全认证机制之中,故无需对设备进行大范围改动即可实施,方案实施的成本较低。总的来说,本发明实施例提供了能够利用SM2算法进行数据传输的合理可行机制,有利于加速SM2算法的应用步伐,进而发挥SM2算法在安全性方面的优势,有利于提升了 TLS的安全性和性能。
[0150]本发明基于TLS协议的安全认证的方法的另一实施例,另一种基于TLS协议的安全认证的方法包括:服务器接收客户端发送的客户端初始化握手消息,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;上述服务器向上述客户端发送用于响应上述客户端初始化握手消息的服务器初始化握手消息,其中,上述服务器初始化握手消息中携带上述服务器从上述M个算法套标识选出的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个;上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证。
[0151]首先请参见图2,图2是本发明的另一个实施例提供的另一种基于TLS协议的安全认证的方法的流程示意图,本发明的另一个实施例提供的另一种基于TLS协议的安全认证的方法可包括以下内容:
[0152]201、服务器接收客户端发送的客户端初始化握手消息;其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法。
[0153]其中,不同的算法套可具有不同的算法套标识。每个算法套可包括若干种用于认证和数据传输的算法,例如,每个算法套可包括对称加密算法、密钥交互算法、签名算法和摘要算法等,有些算法套(例如匿名类算法套)也可能不包括签名算法。
[0154]202、服务器向上述客户端发送用于响应上述客户端初始化握手消息的服务器初始化握手消息,其中,上述服务器初始化握手消息中携带上述服务器从上述M个算法套标识选出的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个。
[0155]在本发明的一些实施例中,服务器可根据自身能力、传输环境、安全性要求等因素,来从客户端初始化握手消息携带的N个算法套标识中选出一个算法套标识(当然,服务器首先能够支持其选择的算法套中的各种算法,并加载了相关的参数),以便后续使用选出的算法套标识所对应的算法套继续和客户端进行安全认证。其中,客户端初始化握手消息和服务器初始化握手消息中携带的算法套标识的格式可能相同或不同。
[0156]203、服务器基于第一算法套标识所对应的第一算法套与上述客户端进行安全认证。
[0157]在本发明的一些实施例中,第一算法套例如可为认证类算法套或者匿名类算法套;其中,若第一算法套为匿名类算法套,第一算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;其中,若第一算法套为认证类算法套,第一算法套中包括对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0158]在本发明的一些实施例中,若第一算法套为认证类算法套,则上述服务器基于第一算法套标识所对应的第一算法套与上述客户端进行安全认证,可以包括:上述服务器向上述客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述服务器向上述客户端发送服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,以便于上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述服务器向上述客户端发送第一证书请求消息;上述服务器向上述客户端发送服务器响应结束声明消息;上述服务器接收上述客户端发送的用于响应第一证书请求消息的第二消息,其中,第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;上述服务器接收上述客户端发送的客户端密钥交互消息,其中,上述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;上述服务器接收上述客户端发送的客户端用户证书验证消息,基于上述客户端用户证书验证消息,验证第二消息携带的用户证书的合法性;上述服务器向上述客户端发送第一密钥更换声明消息;上述服务器接收上述客户端发送的第二密钥更换声明消息。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0159]在本发明的一些实施例中,若第一算法套为认证类算法套,则上述服务器基于第一算法套标识所对应的第一算法套与上述客户端进行安全认证,可以包括:上述服务器向上述客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述服务器向上述客户端发送服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,以便于上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述服务器向上述客户端发送第一证书请求消息;上述服务器接收上述客户端发送的用于响应第一证书请求消息的第二消息,其中,第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书;上述服务器接收上述客户端发送的客户端密钥交互消息,其中,上述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;上述服务器接收上述客户端发送的客户端用户证书验证消息,基于上述客户端用户证书验证消息,验证第二消息携带的用户证书的合法性。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0160]在本发明的一些实施例中,若第一算法套为认证类算法套,则上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证,可以包括:上述服务器向上述客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述服务器向上述客户端发送服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,以便于上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述服务器向上述客户端发送服务器响应结束声明消息;上述服务器接收上述客户端发送的客户端密钥交互消息,其中,上述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;上述服务器向上述客户端发送第一密钥更换声明消息;上述服务器接收上述客户端发送的第二密钥更换声明消息。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0161]在本发明的一些实施例中,若第一算法套为认证类算法套,则上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证,可以包括:上述服务器向上述客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述服务器向上述客户端发送服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,以便于上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述服务器接收上述客户端发送的客户端密钥交互消息,其中,上述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0162]在本发明的一些实施例中,若第一算法套为匿名类算法套,则上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证,可以包括:上述服务器向上述客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述服务器向上述客户端发送服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥,以便于上述客户端基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述服务器向上述客户端发送服务器响应结束声明消息;上述服务器接收上述客户端发送的客户端密钥交互消息,其中,上述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥;上述服务器向上述客户端发送第一密钥更换声明消息;上述服务器接收上述客户端发送的第二密钥更换声明消息。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0163]在本发明的一些实施例中,若第一算法套为匿名类算法套,则上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证,可以包括:上述服务器向上述客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书;上述服务器向上述客户端发送服务器密钥交互消息,其中,上述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥,以便于上述客户端基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;上述服务器接收上述客户端发送的客户端密钥交互消息,其中,上述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,上述服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。进一步的,服务器和客户端还可互相发送的全流程消息的认证码,其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。其中,上述举例场景为客户端和服务器段基于双向认证机制进行安全认证的流程。
[0164]在本发明的一些实施例中,在上述服务器向上述客户端发送第一密钥更换声明消息之前,或,在上述服务器接收上述客户端发送的第二密钥更换声明消息之前,或,上述服务器接收上述客户端发送的客户端密钥交互消息之后还可包括:上述服务器接收上述客户端发送的客户端密钥交互验证消息,其中,上述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值;在对上述客户端校验摘要值验证通过后,向上述客户端发送服务器密钥交互验证消息,其中,上述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,以便于上述客户端对上述服务器校验摘要值进行验证。上述客户端可进一步对上述服务器校验摘要值进行验证。
[0165]在本发明的另一些实施例中,在上述服务器向上述客户端发送第一密钥更换声明消息之前,或者,在上述服务器接收上述客户端发送的第二密钥更换声明消息之前,或者,上述服务器接收上述客户端发送的客户端密钥交互消息之后,还可以包括:上述服务器向上述客户端发送服务器密钥交互验证消息,其中,上述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值;上述服务器接收上述客户端在对服务器校验摘要值验证通过后发送的客户端密钥交互验证消息,其中,上述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值,上述服务器可进一步对上述客户端校验摘要值验证。
[0166]可以看出,本实施例方案提出的基于TLS协议的安全认证机制中,服务器接收客户端发送的客户端初始化握手消息,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;服务器向上述客户端发送服务器初始化握手消息,其中上述服务器初始化握手消息中携带上述服务器从上述M个算法套标识选出的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个;上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证。其中通过将SM2算法的引入和基于TLS协议的安全认证机制进行有机的结合,使得SM2算法用于安全认证变得可能且可行,进而使得利用SM2算法进行数据传输变得可能且可行,并且,由于将SM2算法融入到基于TLS协议的安全认证机制之中,故无需对设备进行大范围改动即可实施,方案实施的成本较低。总的来说,本发明实施例提供了能够利用SM2算法进行数据传输的合理可行的机制,有利于加速SM2算法的应用步伐,进而发挥SM2算法在安全性方面的优势,有利于提升了 TLS的安全性和性能。
[0167]为便于更好的理解和实施本发明实施例的上述方案,下面举例几个应用场景来进行具体说明。
[0168]参见图3、图3是本发明的另一实施例提供的一种安全认证方法的流程示意图,图3所示方法涉及一种基于TLS协议的双向认证(ClientAuthentication)的机制,如图3所示,本发明的另一实施例提供的一种安全认证方法可包括以下内容:
[0169]301、客户端向服务器发送客户端初始化握手消息(ClientHell0);
[0170]其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,上述N大于或等于上述M,上述N和M为正整数。
[0171]302、服务器响应接收到的上述客户端初始化握手消息,向客户端发送服务器初始化握手消息(ServerHello);
[0172]其中,服务器初始化握手消息携带服务器选中的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个。
[0173]其中,第一算法套标识对应第一算法套,第一算法套包括:
[0174]对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0175]在本发明的一些实施例中,服务器选择包含SM2算法的算法套可遵照如下三个原则:
[0176]A、服务器加载了 SM2E⑶SA数字签名算法的用户证书和私钥;[0177]B、服务器加载了 SM2E⑶HE所要求的椭圆曲线参数;
[0178]C、服务器能支持所选择算法套中的其它的对称加密算法和摘要算法。
[0179]303、服务器向客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书(Server Certificate)。
[0180]在本发明一些实施例中,服务器可向客户端发送携带证书列表的第一消息,其中,证书列表中包括服务器基于SM2签名算法的用户证书,证书列表的生成规则可参考x509标准PKI处理。客户端可进一步对服务器发送的基于SM2签名算法的用户证书进行相应认证。
[0181]304、服务器向客户端发送服务器密钥交互消息(ServerKeyExchange )。
[0182]在本发明一些实施例中,服务器密钥交互消息可携带SM2椭圆曲线标准参数a、b、P和η (或服务器生成的椭圆曲线参数)、SM2密钥交换算法所需的服务器公钥(server-P)、密钥交换椭圆曲线点Ra、服务器身份信息Za和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,以便于上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥。服务器还保留自己生成的私钥,以便进行预主密钥的计算。
[0183]305、服务器向客户端发送证书请求消息(Cert ifi cateRequest)。
[0184]例如,服务器可向客户端发送RSA、DSA、ECDSA和/或SM2ECDSA的证书请求等。
[0185]306、服务器向客户端发送用于指示第二步握手完成的服务器响应结束声明消息(ServerHeI1Done);
[0186]在本发明的一些实施例中,上述服务器响应结束声明消息的用途和定义可与TLS标准定义相同。
[0187]307、客户端向服务器发送用于响应第一证书请求消息的第二消息,其中第二消息携带有客户端基于SM2签名算法或者非SM2签名算法的用户证书(Client Certificate);
[0188]其中,客户端发送的相关证书可以是RSA、DSA、ECDSA和/或SM2ECDSA等等证书。
[0189]服务器可进一步对客户端发送的证书进行认证。
[0190]308、客户端根据服务器发送的服务器密钥交互消息携带的SM2椭圆曲线参数计算客户端的公私钥和椭圆曲线点,
[0191]客户端通过客户端密钥交互消息(ClientKeyExchange)向服务器发送客户端公钥(client-P),椭圆曲线上的随机点Rb,以及客户端身份标识ZB。并且客户端保存自己的私钥,以便于后续计算预主密钥。其中,上述客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息等,其中,以便于服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0192]309、客户端向服务器发送客户端密钥交互验证消息。
[0193]其中,上述客户端密钥交互验证消息(ClientKeyExchangeVerify)携带SM2密钥交互算法的客户端校验摘要值。[0194]310、客户端向服务器发送客户端用户证书验证消息(CertificateVerify)。
[0195]其中,客户端用户证书验证消息可携带第二签名信息,其中,第二签名信息是基于服务器用户证书的私钥对步骤301?309中客户端向服务器发送的部分或全部消息,和/或步骤301?309中客户端接收到的服务器发送的部分或全部消息进行签名运算而得到的。
[0196]当然,服务器可进一步对第二签名信息进行验证。
[0197]服务器还可基于上述客户端用户证书验证消息,验证第二消息携带的用户证书的合法性。
[0198]311、服务器对客户端校验摘要值进行验证,验证通过之后向客户端发送服务器密钥交互验证消息(ServerKeyExchangeVerify),上述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值。其中,客户端可进一步对上述服务器校验摘要值进行验证。
[0199]其中,步骤309和步骤311为可选步骤。
[0200]312、服务器向客户端发送第一密钥更换声明消息(ChangeCipherSpec);
[0201]313、客户端向服务器发送第二密钥更换声明消息(ChangeCipherSpec);
[0202]其中,客户端和服务器互发密钥更换声明消息,以用于确认双方算法协商结束,并声明后续使用协商好的算法进行交互,密钥更换声明消息的格式可与标准TLS相同。其中,客户端和服务器在发送密钥更换声明消息之前,客户端和服务器都可根据本端生成的密钥交互信息以及对端发送过来的密钥交互信息进行预主密钥的计算,通过预主密钥衍生出后续的对称算法的密钥和消息验证码的密钥。其中,预主密钥的计算方法遵照SM2密钥交互算法的标准定义以及TLS协议标准进行。
[0203]314、服务器和客户端还可互相发送的握手结束消息(Finished)。
[0204]其中,服务器向客户端发送的握手结束消息携带服务器发送的和接收到的全流程消息的认证码;客户端向服务器发送的握手结束消息携带客户端发送的和接收到的全流程消息的认证码。其中,对全流程消息进行摘要计算可得到全流程消息的认证码。
[0205]其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。
[0206]服务器和客户端分别对收到的全流程消息的认证码验证通过之后,安全认证流程结束。后续,服务器和客户端可交互应用数据(ApplicationData):服务器和客户端的应用数据交互,具体的要求参考TLS协议要求。交互应用数据使用对称算法的密钥和消息验证码的密钥。
[0207]其中,上述流程中主要是针对各种验证均成功的场景为例的,当然在实际应用中亦可能存在验证失败的可能,举例来说,若客户端对接收到的来自服务器的信息验证失败(如验证全流程消息的认证码失败了,验证服务器证书失败了等),则客户端可向服务器发送握手失败消息,并可停止安全认证流程,类似的,若服务器对接收到的来自客户端的信息验证失败,则服务器可向客户端发送握手失败消息,并可停止安全认证流程。
[0208]可以看出,本实施例提出的基于TLS协议的双向认证机制中,服务器接收客户端发送的客户端初始化握手消息,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;服务器向上述客户端发送服务器初始化握手消息,其中上述服务器初始化握手消息中携带上述服务器从上述M个算法套标识选出的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个;上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证。其中通过将SM2算法的引入和基于TLS协议的安全认证机制进行有机的结合,使得SM2算法用于安全认证变得可能且可行,进而使得利用SM2算法进行数据传输变得可能且可行,并且,由于将SM2算法融入到基于TLS协议的安全认证机制之中,故无需对设备进行大范围改动即可实施,方案实施的成本较低。总的来说,本发明实施例提供了能够利用SM2算法进行数据传输的合理可行的机制,有利于加速SM2算法的应用步伐,进而发挥SM2算法在安全性方面的优势。
[0209]参见图4、图4是本发明的另一实施例提供的一种安全认证方法的流程示意图,图4所示方法涉及一种基于TLS协议的单向认证(ServerAuthentication)的机制,如图4所示,本发明的另一实施例提供的一种安全认证方法可包括以下内容:
[0210]401、客户端向服务器发送客户端初始化握手消息(ClientHell0);
[0211]其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,上述N大于或等于上述M,上述N和M为正整数。
[0212]402、服务器响应接收到的上述客户端初始化握手消息,向客户端发送服务器初始化握手消息(ServerHello);
[0213]其中,服务器初始化握手消息携带服务器选中的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个。
[0214]其中,第一算法套标识对应第一算法套,第一算法套包括:
[0215]对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
[0216]在本发明的一些实施例中,服务器选择包含SM2算法的算法套可遵照如下三个原则:
[0217]A、服务器加载了 SM2E⑶SA数字签名算法的用户证书和私钥;
[0218]B、服务器加载了 SM2ECDHE所要求的椭圆曲线参数;
[0219]C、服务器能支持所选择算法套中的其它的对称加密算法和摘要算法。
[0220]403、服务器向客户端发送第一消息,其中,第一消息携带有服务器基于SM2签名算法的用户证书(Server Certificate)。
[0221]在本发明一些实施例中,服务器可向客户端发送携带证书列表的消息,其中,证书列表中包括服务器基于SM2签名算法的用户证书,证书列表的生成规则可参考x509标准PKI处理。客户端可进一步对服务器发送的基于SM2签名算法的用户证书进行相应认证。
[0222]404、服务器向客户端发送服务器密钥交互消息(ServerKeyExchange )。
[0223]在本发明一些实施例中,服务器密钥交互消息可携带SM2椭圆曲线标准参数a、b、P和η (或服务器生成的椭圆曲线参数)、SM2密钥交换算法所需的服务器公钥(server-P)、密钥交换椭圆曲线点Ra、服务器身份信息Za和第一签名信息,其中,第一签名信息是基于服务器用户证书的私钥,对上述SM2椭圆曲线参数、上述服务器身份信息、上述密钥交换椭圆曲线点和上述服务器公钥进行签名运算而得到的,以便于上述客户端基于接收到的上述服务器密钥交互消息携带的第一签名信息,对接收到的上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥。服务器还保留自己生成的私钥,以便进行预主密钥的计算。
[0224]405、服务器向客户端发送用于指示第二步握手完成的服务器响应结束声明消息(ServerHeI1Done);
[0225]在本发明的一些实施例中,上述服务器响应结束声明消息的用途和定义可与TLS标准定义相同。
[0226]406、客户端根据服务器发送的服务器密钥交互消息携带的SM2椭圆曲线参数计算客户端的公私钥和椭圆曲线点,客户端通过客户端密钥交互消息向服务器发送客户端公钥(client-P),椭圆曲线上的随机点Rb,以及客户端身份标识ZB。并且,客户端保存自己的私钥,以便于后续计算预主密钥。其中,客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息等,其中,以便于服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0227]407、客户端向服务器发送客户端密钥交互验证消息。
[0228]其中,上述客户端密钥交互验证消息(ClientKeyExchangeVerify)携带SM2密钥交互算法的客户端校验摘要值。
[0229]408、服务器对客户端校验摘要值进行验证,验证通过之后向客户端发送服务器密钥交互验证消息(ServerKeyExchangeVerify),上述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值。其中,客户端可进一步对上述服务器校验摘要值进行验证。
[0230]409、服务器向客户端发送第一密钥更换声明消息(ChangeCipherSpec);
[0231]410、客户端向服务器发送第二密钥更换声明消息(ChangeCipherSpec);
[0232]其中,客户端和服务器互发密钥更换声明消息,以用于确认双方算法协商结束,并声明后续使用协商好的算法进行交互,密钥更换声明消息的格式可与标准TLS相同。其中,客户端和服务器在发送密钥更换声明消息之前,客户端和服务器都可根据本端生成的密钥交互信息以及对端发送过来的密钥交互信息进行预主密钥的计算,通过预主密钥衍生出后续的对称算法的密钥和消息验证码的密钥。其中,预主密钥的计算方法遵照SM2密钥交互算法的标准定义以及TLS协议标准进行。
[0233]411、服务器和客户端还可互相发送的握手结束消息(Finished)。
[0234]其中,服务器向客户端发送的握手结束消息携带服务器发送的和接收到的全流程消息的认证码;客户端向服务器发送的握手结束消息携带客户端发送的和接收到的全流程消息的认证码。其中,对全流程消息进行摘要计算可得到全流程消息的认证码。
[0235]其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。
[0236]服务器和客户端分别对收到的全流程消息的认证码验证通过之后,安全认证流程结束。后续,服务器和客户端可交互应用数据(ApplicationData):服务器和客户端的应用数据交互,具体的要求参考TLS协议要求。交互应用数据使用对称算法的密钥和消息验证码的密钥。[0237]其中,上述流程中主要是针对各种验证均成功的场景为例的,当然在实际应用中亦可能存在验证失败的可能,举例来说,若客户端对接收到的来自服务器的信息验证失败,则客户端可向服务器发送握手失败消息,并可停止安全认证流程,类似的,若服务器对接收到的来自客户端的信息验证失败,则服务器可向客户端发送握手失败消息,并可停止安全认证流程。
[0238]可以看出,本实施例提出的基于TLS协议的单向认证机制中,服务器接收客户端发送的客户端初始化握手消息,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;服务器向上述客户端发送服务器初始化握手消息,其中上述服务器初始化握手消息中携带上述服务器从上述M个算法套标识选出的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个;上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证。其中通过将SM2算法的引入和基于TLS协议的安全认证机制进行有机的结合,使得SM2算法用于安全认证变得可能且可行,进而使得利用SM2算法进行数据传输变得可能且可行,并且,由于将SM2算法融入到基于TLS协议的安全认证机制之中,故无需对设备进行大范围改动即可实施,方案实施的成本较低。总的来说,本发明实施例提供了能够利用SM2算法进行数据传输的合理可行的机制,有利于加速SM2算法的应用步伐,进而发挥SM2算法在安全性方面的优势。
[0239]参见图5、图5是本发明的另一实施例提供的一种安全认证方法的流程示意图,图5所示安全认证方法涉及一种基于TLS协议的匿名认证的机制,如图5所示,本发明的另一实施例提供的一种安全认证方法可包括以下内容:
[0240]501、客户端向服务器发送客户端初始化握手消息(ClientHell0);
[0241 ] 其中,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,上述N大于或等于上述M,上述N和M为正整数。
[0242]502、服务器响应接收到的上述客户端初始化握手消息,向客户端发送服务器初始化握手消息(ServerHello);
[0243]其中,服务器初始化握手消息携带服务器选中的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个。
[0244]其中,第一算法套标识对应第一算法套,第一算法套包括:
[0245]对称加密算法、SM2非对称密钥交互算法和摘要算法。
[0246]在本发明的一些实施例中,服务器选择包含SM2算法的算法套可遵照如下三个原则:
[0247]A、服务器加载了 SM2E⑶SA数字签名算法的用户证书和私钥;
[0248]B、服务器加载了 SM2ECDHE所要求的椭圆曲线参数;
[0249]C、服务器能支持所选择算法套中的其它的对称加密算法和摘要算法。
[0250]503、服务器向客户端发送服务器密钥交互消息(ServerKeyExchange )。
[0251]在本发明一些实施例中,服务器密钥交互消息可携带SM2椭圆曲线标准参数a、b、P和η (或服务器生成的椭圆曲线参数)、SM2密钥交换算法所需的服务器公钥(server-P)、密钥交换椭圆曲线点Ra和服务器身份信息,以便于客户端基于上述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥。服务器还保留自己生成的私钥,以便进行预主密钥的计算。
[0252]504、服务器向客户端发送用于指示第二步握手完成的服务器响应结束声明消息(ServerHeI1Done);
[0253]在本发明的一些实施例中,上述服务器响应结束声明消息的用途和定义可与TLS标准定义相同。
[0254]505、客户端根据服务器发送的服务器密钥交互消息携带的SM2椭圆曲线参数计算客户端的公私钥和椭圆曲线点,客户端通过客户端密钥交互消息向服务器发送客户端公钥(client-P),椭圆曲线上的随机点Rb,以及客户端身份标识ZB。并且,客户端保存自己的私钥,以便于后续计算预主密钥。其中,客户端密钥交互消息可携带客户端公钥、椭圆曲线上的随机点和客户端身份信息等,其中,以便于服务器基于上述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
[0255]506、客户端向服务器发送客户端密钥交互验证消息。
[0256]其中,上述客户端密钥交互验证消息(ClientKeyExchangeVerify)携带SM2密钥交互算法的客户端校验摘要值。
[0257]507、服务器对客户端校验摘要值进行验证,验证通过之后向客户端发送服务器密钥交互验证消息(ServerKeyExchangeVerify),上述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值。其中,客户端可进一步对上述服务器校验摘要值进行验证。
[0258]508、服务器向客户端发送第一密钥更换声明消息(ChangeCipherSpec);
[0259]509、客户端向服务器发送第二密钥更换声明消息(ChangeCipherSpec);
[0260]其中,客户端和服务器互发密钥更换声明消息,以用于确认双方算法协商结束,并声明后续使用协商好的算法进行交互,密钥更换声明消息的格式可与标准TLS相同。其中,客户端和服务器在发送密钥更换声明消息之前,客户端和服务器都可根据本端生成的密钥交互信息以及对端发送过来的密钥交互信息进行预主密钥的计算,通过预主密钥衍生出后续的对称算法的密钥和消息验证码的密钥。其中,预主密钥的计算方法遵照SM2密钥交互算法的标准定义以及TLS协议标准进行。
[0261]510、服务器和客户端还可互相发送的握手结束消息(Finished)。
[0262]其中,服务器向客户端发送的握手结束消息携带服务器发送的和接收到的全流程消息的认证码;客户端向服务器发送的握手结束消息携带客户端发送的和接收到的全流程消息的认证码。其中,对全流程消息进行摘要计算可得到全流程消息的认证码。
[0263]其中,全流程消息的认证码所包含内容和格式可与TLS标准定义完全或基本相同。
[0264]服务器和客户端分别对收到的全流程消息的认证码验证通过之后,安全认证流程结束。后续,服务器和客户端可交互应用数据(ApplicationData):服务器和客户端的应用数据交互,具体的要求参考TLS协议要求。交互应用数据使用对称算法的密钥和消息验证码的密钥。
[0265]其中,上述流程中主要是针对各种验证均成功的场景为例的,当然在实际应用中亦可能存在验证失败的可能,举例来说,若客户端对接收到的来自服务器的信息验证失败,则客户端可向服务器发送握手失败消息,并可停止安全认证流程,类似的,若服务器对接收到的来自客户端的信息验证失败,则服务器可向客户端发送握手失败消息,并可停止安全认证流程。
[0266]可以看出,本实施例提出的基于TLS协议的匿名认证机制中,服务器接收客户端发送的客户端初始化握手消息,上述客户端初始化握手消息中携带N个算法套标识,上述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;服务器向上述客户端发送服务器初始化握手消息,其中上述服务器初始化握手消息中携带上述服务器从上述M个算法套标识选出的第一算法套标识,第一算法套标识为上述M个算法套标识之中的一个;上述服务器与上述客户端基于第一算法套标识所对应的第一算法套进行安全认证。其中通过将SM2算法的引入和基于TLS协议的安全认证机制进行有机的结合,使得SM2算法用于安全认证变得可能且可行,进而使得利用SM2算法进行数据传输变得可能且可行,并且,由于将SM2算法融入到基于TLS协议的安全认证机制之中,故无需对设备进行大范围改动即可实施,方案实施的成本较低。总的来说,本发明实施例提供了能够利用SM2算法进行数据传输的合理可行的机制,有利于加速SM2算法的应用步伐,进而发挥SM2算法在安全性方面的优势。
[0267]为便于更好的理解实施上述方案,下面对本发明安全认证方法中涉及的一些消息或参数的格式定义进行举例说明。
[0268]举例的格式定义描述遵照TLS标准和RFC4492的格式标准描述,采用的是RFC1832XDR格式描述方法。未进行特殊说明的消息格式定义请参考RFC4492和TLS相关RFC标准定义。
[0269]在本发明的一些实施例中,客户端初始化握手消息(ClientHell0)和服务器初始化握手消息(ServerHell0)的定义可与TLS标准RFC相同,但能指出新定义的包含SM2算法的算法套。
[0270]服务器基于SM2签名算法的用户证书(Server Certificate)的格式可同RFC定义,采用国家质量监督检验检疫总局颁布的SM2相关证书标准(《基于SM2算法的证书认证系统证书格式标准》)。
[0271]服务器密钥交互消息(ServerKeyExchange)的格式可参考RFC4492的消息格式描
述,消息格式可如下:
[0272]
select (KeyExchangeAlgorithm) {
[0273]
【权利要求】
1.一种基于安全传输层TLS协议的安全认证的方法,其特征在于,包括: 客户端向服务器发送客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,其中,所述N大于或等于所述M,所述N和M为正整数; 所述客户端接收所述服务器发送的用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个; 所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证。
2.根据权利要求1所述的方法,其特征在于, 所述第一算法套为认证类算法套或者匿名类算法套; 其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
3.根据权利要求2所述的方法,其特征在于,若所述第一算法套为认证类算法套,则所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证,包括: 所述客户端接收所述服务 器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 所述客户端接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的; 所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 所述客户端接收所述服务器发送的第一证书请求消息; 所述客户端向所述服务器发送用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书; 所述客户端向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥; 所述客户端向所述服务器发送客户端用户证书验证消息,以便于所述服务器基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
4.根据权利要求2所述的方法,其特征在于,若所述第一算法套为认证类算法套,则所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证,包括: 所述客户端接收所述服务器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 所述客户端接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的; 所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 所述客户端向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
5.根据权利要求2所述的方法,其特征在于,若第一算法套为匿名类算法套,则所述客户端基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证,包括: 所述客户端接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥;其中,所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 所述客户端向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述客户端向所述服务器发送客户端密钥交互消息之后,还包括: 所述客户端向所述服务器发送客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值,以便于所述服务器验证所述客户端校验摘要值;接收所述服务器在对所述客户端校验摘要值验证通过后发送的服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,所述客户端对所述服务器校验摘要值进行验证。
7.一种基于安全传输层TLS协议的安全认证的方法,其特征在于,包括: 服务器接收客户端发送的客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法;所述服务器向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带所述服务器从所述M个算法套标识选出的第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个; 所述服务器基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证。
8.根据权利要求7所述的方法,其特征在于, 所述第一算法套为认证类算法套或匿名类算法套, 其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
9.根据权利要求8所述的方法,其特征在于,若第一算法套为认证类算法套,则所述服务器基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证,包括: 所述服务器向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 所述服务器向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交·互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 所述服务器向所述客户端发送第一证书请求消息; 所述服务器接收所述客户端发送的用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书; 所述服务器接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥; 所述服务器接收所述客户端发送的客户端用户证书验证消息,基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
10.根据权利要求8所述的方法,其特征在于,若第一算法套为认证类算法套,则所述服务器基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证,包括: 所述服务器向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 所述服务器向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 所述服务器接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
11.根据权利要求8所述的方法,其特征在于,若第一算法套为匿名类算法套,则所述服务器与所述客户端基于所述第一算法套标识所对应的第一算法套进行安全认证,包括: 所述服务器向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥,以便于所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 所述服务器接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
12.根据权利要求9至11任一项所述的方法,其特征在于,所述服务器接收所述客户端发送的客户端密钥交互消息之后,还包括: 所述服务器接收所述客户端发送的客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值;在对所述客户端校验摘要值验证通过后,向所述客户端发送服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,以便于所述客户端对所述服务器校验摘要值进行验证。
13.—种客户端,其特征在于,包括: 发送单元,用于向服务器发送客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,其中,所述N大于或等于所述M,所述N和M为正整数; 接收单元,用于接收所述服务器发送的用于响应所述客户端初始化握手消息的服务器初始化握手消息,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个; 认证交互单元,用于基于所述第一算法套标识所对应的第一算法套与所述服务器进行安全认证。
14.根据权利要求13所述的客户端,其特征在于, 所述第一算法套为认证类算法套或者匿名类算法套; 其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
15.根据权利要求14所述的客户端,其特征在于, 若第一算法套为认证类算法套,则认证交互单元具体用于,接收所述服务器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于 服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的;基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 接收所述服务器发送的第一证书请求消息; 向所述服务器发送用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书; 向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥; 向所述服务器发送客户端用户证书验证消息,以便于所述服务器基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
16.根据权利要求14所述的客户端,其特征在于, 若第一算法套为认证类算法套,则认证交互单元具体用于, 接收所述服务器发送的第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的;基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
17.根据权利要求14所述的客户端,其特征在于, 若第一算法套为匿名类算法套,则认证交互单元具体用于,接收所述服务器发送的服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥;基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 向所述服务器发送客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,以便于所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
18.根据权利要求15至17任一项所述的客户端,其特征在于,所述认证交互单元还用于,向所述服务器发送客户端密钥交互消息之后,向所述服务器发送客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值,以便于所述服务器验证所述客户端校验摘要值;接收所述服务器在对所述客户端校验摘要值验证通过后发送的服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,对所述服务器校验摘要值进行验证。
19.一种服务器,其特征在于,包括: 接收单元,用于接收客户端发送的客户端初始化握手消息,其中,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法; 发送单元,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带所述服务器从所述M个算法套标识选出的第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个; 认证交互单元,用于基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证。
20.根据权利要求19所述的服务器,其特征在于, 所述第一算法套为认证类算法套或匿名类算法套, 其中,所述匿名类算法套中包括SM2非对称密钥交互算法、对称加密算法和摘要算法;所述认证类算法套中包括:对称加密算法、SM2非对称密钥交互算法、SM2签名算法和摘要算法。
21.根据权利要求20所述的服务器,其特征在于, 若第一算法套为认证类算法套,则认证交互单元具体用于, 向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;向所述客户端发送第一证书请求消息; 接收所述客户端发送的用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书; 接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥; 接收所述客户端发送的客户端用户证书验证消息,基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
22.根据权利要求20所述的服务器,其特征在于,若第一算法套为认证类算法套,则认证交互单元具体用于, 向所述客户端发送第一消息,其中,所述第一消息携带有服务器携带有服务器基于SM2签名算法的用户证书; 向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
23.根据权利要求20所述的服务器,其特征在于,若第一算法套为匿名类算法套,则认证交互单元具体用于, 向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥,以便于所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
24.根据权利要求21至23任一项所述的服务器,其特征在于,所述认证交互单元还用于,接收所述客户端发送的客户端密钥交互消息之后,接收所述客户端发送的客户端密钥交互验证消息,其中,所述客户端密钥交互验证消息携带SM2密钥交互算法的客户端校验摘要值;在对所述客户端校验摘要值验证通过后,向所述客户端发送服务器密钥交互验证消息,其中,所述服务器密钥交互验证消息携带SM2密钥交互算法的服务器校验摘要值,以便于所述客户端对所述服务器校验摘要值进行验证。
25.—种通信系统,其特征在于,包括: 客户端和服务器, 其中,所述客户端,用于向所述服务器发送客户端初始化握手消息,所述客户端初始化握手消息中携带N个算法套标识,所述N个算法套标识之中的M个算法套标识中的每个算法套标识所对应的算法套中包括SM2算法,其中,所述N大于或等于所述M,所述N和M为正整数; 所述服务器,用于向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;基于所述第一算法套标识所对应的第一算法套与所述客户端进行安全认证。
26.根据权利要求25所述的通信系统,其特征在于, 若第一算法套为认证类算法套,则所述服务器具体用于,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个; 向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 向所述客户端发送第一证书请求消息; 接收所述客户端发送的用于响应所述第一证书请求消息的第二消息,其中,所述第二消息携带有客户端基于SM2签名算法或非SM2签名算法的用户证书; 接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥; 接收所述客户端发送的客户端用户证书验证消息,基于所述客户端用户证书验证消息,验证所述第二消息携带的用户证书的合法性。
27.根据权利要求25所述的通信系统,其特征在于,若第一算法套为认证类算法套,则所述服务器具体用于,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;向所述客户端发送第一消息,其中,所述第一消息携带有服务器基于SM2签名算法的用户证书; 向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点、服务器公钥和第一签名信息,其中,所述第一签名信息是基于服务器用户证书的私钥,对所述SM2椭圆曲线参数、所述服务器身份信息、所述密钥交换椭圆曲线点和所述服务器公钥进行签名运算而得到的,以便于所述客户端基于接收到的所述服务器密钥交互消息携带的第一签名信息,对接收到的所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥的正确性进行验证,若正确性进行验证通过,则基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥; 接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
28.根据权利要求25所述的通信系统,其特征在于,若第一算法套为匿名类算法套,则所述服务器具体用于,向所述客户端发送用于响应所述客户端初始化握手消息的服务器初始化握手消息,其中,所述服务器初始化握手消息中携带第一算法套标识,所述第一算法套标识为所述M个算法套标识之中的一个;向所述客户端发送服务器密钥交互消息,其中,所述服务器密钥交互消息携带有SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥,以便于所述客户端基于所述服务器密钥交互消息携带的SM2椭圆曲线参数、服务器身份信息、密钥交换椭圆曲线点和服务器公钥计算客户端预主密钥;接收所述客户端发送的客户端密钥交互消息,其中,所述客户端密钥交互消息携带客户端公钥、椭圆曲线上的随机点和客户端身份信息,其中,所述服务器基于所述客户端密钥交互消息携带的客户端公钥、椭圆曲线上的随机点和客户端身份信息计算服务器预主密钥。
【文档编号】H04L29/06GK103581167SQ201310323932
【公开日】2014年2月12日 申请日期:2013年7月29日 优先权日:2013年7月29日
【发明者】栾世鹏, 朱贤 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1