基于国密算法建立tls通道的方法

文档序号:7551966阅读:1734来源:国知局
专利名称:基于国密算法建立tls通道的方法
技术领域
本发明涉及网络安全技术领域,特别涉及一种基于国密算法建立TLS通道的方法。
背景技术
密码算法是用于加密和解密的数学函数,是密码协议的基础,现行的密码算法主要包括序列密码、分组密码、公钥密码、散列函数等,其主要用于保证信息的安全,提供鉴另IJ、完整性、抗抵赖等服务。商用密码是指对非涉密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品,主要用于不涉及国家机密的普通工商业领域。由于现有技术中基于不同的加解密思想出现了多种不同的密码算法,每套密码算法有其独特的处理方式,相互之间往往并不兼容,这导致了基于不同算法的技术或产品无法通用,限制了安全产品的发展。此外,部分密码算法由于安全强度有限,未公开算法实现进行有效性论证,或未经过严格的安全性检验就在产业中进行应用,也很容易留下各种密码安全隐患,造成用户隐私泄露、商业机密被窃或财产安全受损等多种问题。在此情况下,有必要建立统一安全的商用密码算法来规范密码技术或密码产品的应用,国密算法就是在我国境内通用的商用密码算法。国密算法是指由国家密码管理局编制并公开的一系列商用密码算法,其包括标准对称算法SM1、基于椭圆曲线ECC的非对称加密算法SM2、数据摘要算法SM3和分组对称块加密算法SM4等。国密算法的公开为中国商用密码算法提供了安全应用的标准,同时也通过公开算法来使算法的安全性接受全世界的检验,使得相关的安全产品能得到国际市场的认可。但是,由于当前公开国密算法的主要目的是检验算法的数学理论基础是否严谨,因而相关算法仅对应用方式做了理论性指导,并非给出具体的应用模式。在此情况下,如何利用国密算法实现安全的网络数据通信成为国密算法应用必须面对的问题。

发明内容
有鉴于此,本发明提供了一种基于国密算法建立TLS通道的方法,以解决现有技术中无法将国密算法理论转化为实际的网络安全应用的问题。为解决上述技术问题,本发明的基于国密算法建立TLS通道的方法包括步骤:握手请求阶段:服务器端发起hello请求消息、客户端收到后发送客户端hello消息作为回应,或客户端直接发起客户端hello消息;服务器端收到所述客户端hello消息后,发送服务器端hello消息作为回应;服务器端认证阶段:服务器端向客户端发送服务器端SM2证书,随后发送hello完成消息;客户端认证阶段:客户端收到所述hello完成消息后,发送密钥交换消息;完成握手阶段:客户端发送更换密码套件消息和结束消息,服务器端收到客户端结束消息后,发送更换密码套件消息和结束消息;双方均收到对方的结束消息并通过验证后,以约定的安全参数进行数据安全传输。优选地,在握手请求阶段,所述客户端hello消息中包含双方建立安全通道的相关安全参数,服务器端收到所述客户端hello消息后,如果能从消息的安全参数中找到匹配的密码套件,则将所述匹配的密码套件包含在回应的服务器端hello消息中;如果找不到匹配的密码套件,则回应致命报警消息。优选地,在服务器端认证阶段,所述服务器端SM2证书为包含SM2公钥的SM2加密证书。优选地,在客户端认证阶段,所述密钥交换消息中包含预主密钥,该预主密钥由客户端产生,采用服务器端的SM2公钥进行加密。优选地,在服务器端认证阶段,客户端接收到所述hello完成消息之后,应验证服务器端SM2证书是否有效,并检验服务器端hel1消息中的安全参数是否可以接受;如果可以接受,客户端继续握手过程,否则回应致命报警消息。优选地,若需要进行客户端身份验证,所述方法还包括步骤:在服务器端认证阶段,紧随服务器端SM2证书之后还发送客户端证书请求;在客户端认证阶段,若客户端曾收到客户端证书请求,则首先向服务器端发送客户端SM2证书,在发送完密钥交换消息后,还发送客户端SM2证书签名;服务器端利用收到的客户端SM2证书签名对客户端进行验证。优选地,在完成握手阶段,所述结束消息内容是使用更换后的密码套件和密钥进行加密的12字节的伪随机数,所述伪随机数根据对已发握手信息的摘要值的计算而得到;如果握手请求阶段匹配的密码套件使用的摘要算法是SM3算法,则在已发握手信息的摘要原文前加入由服务器端SM2证书中公钥计算得出的杂凑值,并在此基础上再计算所述摘要值。优选地,在发送客户端SM2证书签名时,签名原文送入安全硬件中使用SM3算法做摘要并在所述安全硬件中对所述摘要进行签名;其中,所述摘要及所述签名的计算均是在所述安全硬件中进行。优选地,所述SM2公钥进行加密后的预主密钥包括:加密公钥、所加密数据的摘要和加密后的密文。优选地,在发送客户端SM2证书签名时,在签名原文中加入由所述服务器端SM2证书中公钥计算得出的杂凑值。通过上述技术方案,本发明将国密算法融入TLS协议中进行安全通信,实现了国密算法与TLS (Transport Layer Security,安全传输层)协议的结合,提供了一种切实可行的国密算法的安全应用,以较短的密钥长度(256位)实现了签名速度明显优于RSA算法且相当于RSA算法2048位安全级别的数据安全方法的数字证书认证方法。


图1为本发明的一个实施例中客户端和服务器端的消息交互过程的时序图。
具体实施例方式下面将结合各附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。网络安全从本质上说就是网络上的信息安全,即使网络中数据受到保护,不受偶然的或者恶意的破坏、更改、泄露,保证系统连续可靠地运行,确保网络服务不中断。影响网络安全的因素很多,但由于国密算法属于应用级技术,因而在本发明中也主要关注网络应用的数据安全,尤其是可信客户端与服务器端的安全通信。在本发明的实施例中,对TLS(Transport Layer Security,安全传输层)协议进行了扩展,提供了一种在TLS vl.2中支持国密算法的数字认证技术。具体地,在本发明的一个实施例中,利用TLS协议和国密算法在客户端和服务器端之间建立安全通道,以保证网络通信的数据安全。如图1所示,所述认证方法包括步骤:握手请求阶段:客户端发送客户端hello消息(Client_hello),服务器端收到所述客户端hello消息后发送服务器端hello消息(Server_hello)作为回应。服务器端认证阶段:服务器端向客户端发送服务器端SM2证书(SM2certif icate),随后发送 hello 完成消息(Server_hello_done)。客户端认证阶段:客户端收到所述hello完成消息后,发送密钥交换消息(cIi ent_key_exchange)。完成握手阶段:客户端发送更换密码套件消息(Change_cipher_spec)和结束消息(finished),服务器端收到客户端结束消息后,发送更换密码套件消息(Change_cipher_spec)和结束消息(finished)。下面对各消息的具 体操 作过程做进一步的说明。其中,在握手请求阶段,所述Client_hello消息中包含双方 建立安全通道的相关安全参数(包括协议版本、会话ID、密码套件、压缩方法和初始随机数等)。服务器端收到所述Client_hello消息后,如果能从该消息的安全参数中找到匹配的密码套件,则将所述匹配的密码套件包含在ServerJieIlo消息中作为对Client_hello消息的回复。如果找不到匹配的密码套件,服务器端将回应致命报警消息(handshake failure)。其中Client_hello消息的安全参数包含客户端支持的所有密码套件(包括国密算法SM2密码套件),服务器端回复的消息中会选择出一种双方都支持的密码套件,在本发明中,默认为双方使用SM2密码套件。在本发明的一个示例的代码中,Client_hello消息的结构如下:
权利要求
1.一种基于国密算法建立TLS通道的方法,其特征在于,所述方法包括步骤: 握手请求阶段:服务器端发起hello请求消息、客户端收到后发送客户端hello消息作为回应,或客户端直接发起客户端hello消息;服务器端收到所述客户端hello消息后,发送服务器端hello消息作为回应; 服务器端认证阶段:服务器端向客户端发送服务器端SM2证书,随后发送hello完成消息; 客户端认证阶段:客户端收到所述hello完成消息后,发送密钥交换消息; 完成握手阶段:客户端发送更换密码套件消息和结束消息,服务器端收到客户端结束消息后,发送更换密码套件消息和结束消息;双方均收到对方的结束消息并通过验证后,以约定的安全参数进行数据安全传输。
2.根据权利要求1所述的方法,其特征在于,在握手请求阶段,所述客户端hello消息中包含双方建立安全通道的相关安全参数,服务器端收到所述客户端hello消息后,如果能从该消息的安全参数中找到匹配的密码套件,则将所述匹配的密码套件包含在回应的服务器端hello消息中;如果找不到匹配的密码套件,则回应致命报警消息。
3.根据权利要求1所述的方法,其特征在于,在服务器端认证阶段,所述服务器端SM2证书中包含SM2公钥。
4.根据权利要求3所述的方法,其特征在于,在客户端认证阶段,所述密钥交换消息中包含预主密钥,该预主密钥由客户端产生,采用服务器端的SM2公钥进行加密。
5.根据权利要求1所述的方法,其特征在于,在服务器端认证阶段,客户端接收到所述hello完成消息之后,应验证服务器端SM2证书是否有效,并检验服务器端hello消息中的安全参数是否可以接受;如果可以接受,客户端继续握手过程,否则回应致命报警消息。
6.根据权利要求1所述的方法,其特征在于,若需要进行客户端身份验证,所述方法还包括步骤: 在服务器端认证阶段,紧随服务器端SM2证书之后还发送客户端证书请求; 在客户端认证阶段,若客户端曾收到客户端证书请求,则首先向服务器端发送客户端SM2证书,在发送完密钥交换消息后,还发送客户端SM2证书签名;服务器端利用收到的客户端SM2证书签名对客户端进行验证。
7.根据权利要求2所述的方法,其特征在于,在完成握手阶段,所述结束消息内容是使用更换后的密码套件和密钥进行加密的12字节的伪随机数,其中所述加密采用SM4对称加密算法,所述伪随机数根据对已发握手信息的摘要值的计算而得到;如果握手请求阶段匹配的密码套件使用的摘要算法是SM3算法,则在已发握手信息的摘要原文前加入由服务器端SM2证书中公钥计算得出的杂凑值,并在此基础上再计算所述摘要值。
8.根据权利要求6所述的方法,其特征在于,在发送客户端SM2证书签名时,签名原文送入安全硬件中使用SM3算法做摘要并在所述安全硬件中对所述摘要进行签名;其中,所述摘要及所述签名的计算均是在所述安全硬件中进行。
9.根据权利要求4中所述的方法,其特征在于,所述SM2公钥进行加密后的预主密钥包括:加密公钥、所加密数据的摘要和加密后的密文。
10.根据权利要求6中所述的方法,其特征在于,在发送客户端SM2证书签名时,在签名原文中加入由所述服务器端SM2证书中公钥计算得出的杂凑值。
全文摘要
本发明涉及网络安全技术领域,提供了一种基于国密算法建立TLS安全通道的方法。该方法包括步骤服务器端发起请求、客户端回应hello消息,或客户端发起hello消息;服务器端回应服务器端hello消息;服务器端向客户端发送服务器端SM2证书,随后发送hello完成消息;客户端收到hello完成消息后,发送密钥交换消息;客户端发送更换密码套件消息和结束消息,服务器端收到客户端结束消息后,发送更换密码套件消息和结束消息;双方均收到对方的结束消息并通过验证后,以约定的安全参数进行数据安全传输。本发明将国密算法融入TLS协议中进行安全通信,以较短的密钥长度实现了签名速度明显优于RSA算法且相当于RSA算法2048位安全级别的数据安全方法。
文档编号H04L29/06GK103118027SQ20131004548
公开日2013年5月22日 申请日期2013年2月5日 优先权日2013年2月5日
发明者林峰, 张行, 任新海, 杨晓宁, 李哲 申请人:中金金融认证中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1