【技术实现步骤摘要】
基于国密算法的TLS密钥交换方法及系统
[0001]本披露一般涉及网络安全领域。更具体地,本披露涉及一种基于国密算法的 TLS密钥交换方法及系统。
技术介绍
[0002]国密算法是在我国境内通用的商用密码算法,其包含SM2、SM3和SM4 算法等。SM2算法是基于椭圆曲线的非对称加密算法,SM3算法是数据摘要算法,SM4是以16字节为分组的对称块加密算法。国密算法的公开为中国商用密码算法提供了安全应用的标准。
[0003]而安全传输层协议TLS是互联网上一种应用广泛的安全协议,用于在两个通信应用程序之间提供保密性和数据完整性,是传输层安全的标准。由于国密算法与TLS协议中所利用现有的算法不同,例如:密钥长度不同、迭代结构不同等,不能按照现有的方法将国密算法应用于TLS协议中。现有技术中提供了一种基于国密算法建立TLS通道的方法,在该算法中TLS通道建立所使用的密码套件不具备前向安全性(前向安全性指的是长期使用的主密钥泄漏不会导致过去的会话密钥泄漏),其长期使用的密钥一旦泄露,过去进行的通讯则会产生在未来暴露的风险。
[0004]有鉴于此,亟需提供一种基于国密算法的TLS密钥交换方法及系统,以支撑基于国密算法建立的TLS通道的前向安全性,提高TLS国密化改造的安全属性。
技术实现思路
[0005]为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了基于国密算法的TLS密钥交换方法及系统,以解决现有的基于国密算法的TLS 通道建立所使用的密码套件不具备前向安全性的问题。r/>[0006]在第一方面中,本披露提供一种基于国密算法的TLS密钥交换方法,包括:
[0007]响应于客户端hello消息,发出服务端hello消息作为回应,并发出服务端密钥交换消息、服务端证书和服务端hello完成消息;其中,所述服务端密钥交换消息中包含有一对临时密钥对中的临时公钥,用以提供给客户端进行预主密钥加密,以形成客户端密钥交换消息;
[0008]接收所述客户端密钥交换消息并通过所述临时密钥对中的临时私钥对加密后的预主密钥进行解密。
[0009]在一种实施方式中,所述预主密钥通过SM2椭圆曲线公钥加密算法,使用所述临时公钥进行加密计算得到。
[0010]在一种实施方式中,所述服务端密钥交换消息中还包含有曲线类型、曲线参数以及对SM3哈希值使用所述服务端证书密钥对中的证书私钥和SM2签名算法所得到的认证签名。
[0011]在第二方面中,本披露提供一种基于国密算法的TLS密钥交换方法,包括:
[0012]发出客户端hello消息以发起会话;
[0013]响应于服务端hello完成消息,根据获取到的服务端密钥交换消息中的临时公钥对预主密钥进行加密,并发出客户端密钥交换消息以将加密后的预主密钥发送至服务端;
[0014]其中,所述客户端密钥交换消息中包含有所述加密后的预主密钥。
[0015]在一种实施方式中,所述根据获取到的服务端密钥交换消息中的临时公钥对预主密钥进行加密,包括:
[0016]基于所述临时公钥,利用SM2椭圆曲线公钥加密算法对所述预主密钥进行加密。
[0017]在一种实施方式中,所述预主密钥包括:客户端所支持的版本号以及随机数;其中,所述客户端所支持的版本号用以提供给服务端进行会话匹配。
[0018]在一种实施方式中,所述客户端hello消息中包含有客户端协议版本号;
[0019]所述会话匹配的步骤包括:服务端判断所述客户端协议版本与所述客户端协议版本号是否匹配,若是,则服务端接收所述加密后的预主密钥并通过临时私钥进行解密,以得到所述预主密钥。
[0020]在一种实施方式中,所述发出客户端hello消息以发起会话之后,还包括:
[0021]若服务端发出请求客户端证书消息,则响应于所述请求客户端证书消息,依次发出客户端证书、所述客户端密钥交换消息和客户端证书验证消息;
[0022]否则响应于所述服务端hello完成消息,发出所述客户端密钥交换消息作为首条回应所述服务端的消息。
[0023]在一种实施方式中,所述根据获取到的服务端密钥交换消息中的临时公钥对预主密钥进行加密之前,还包括:
[0024]响应于服务端hello完成消息,若根据所述服务端密钥交换消息中的认证签名确定服务端认证通过,则执行根据获取到的服务端密钥交换消息中的临时公钥对预主密钥进行加密的步骤,否则发起报警并结束会话。
[0025]在第三方面中,本披露提供一种基于国密算法的TLS密钥交换系统,包括:服务端和客户端;
[0026]所述服务端执行如第一方面任一实施方式所述的方法以生成加密后的预主密钥并将加密后的预主密钥发出;所述客户端执行如第二方面任一实施方式所述的方法以获取解密后的预主密钥。
[0027]通过如上所提供的基于国密算法的TLS密钥交换方法,本披露的方案应用于密钥交换协议中,不依赖服务端提供服务端证书,也不依赖客户端提供客户端证书以进行国密TLS协商过程中的预主密钥的协商,每次在进行完整的握手协商(即,完整会话)时,服务端生成一对临时密钥对,并通过发出服务端密钥交换消息将临时密钥对中的临时公钥发送给客户端进行预主密钥的加密,后续服务端使用临时密钥对中的临时私钥进行预主密钥的解密,由于该临时密钥对仅在当前会话中的临时使用,而非长期使用的,因此,即使在服务端证书密钥对泄露的情况下也不能计算出协商的预主密钥,且即使当前会话使用的临时密钥对泄露也不会导致过去发生的会话泄露,从而保证了基于国密算法的TLS通道的前向安全性。
[0028]进一步,在本披露的一些实施例中,基于如上所提供的TLS密钥交换方法不依赖客户端证书的获取,因此,无论是单向的TLS通道建立和双向的TLS通道建立均可以适配如上所提供的TLS密钥交换方法。
[0029]更进一步地,在本披露的一些实施例中,如上所提供的TLS密钥交换方法仅在服务端中生成一对临时密钥对,客户端基于该临时密钥对对预主密钥进行加密,方案实现简单,且会话消息简洁、效率高。
附图说明
[0030]通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0031]图1示例性地示出了TLS完整握手协议流程的流程示意图;
[0032]图2示例性地示出了本披露实施例的TLS密钥交换方法的流程示意图;
[0033]图3示例性地示出了本披露的一些实施例的TLS密钥交换方法的另一流程示意图;
[0034]图4示例性地示出了本披露实施例的基于国密算法的TLS密钥交换系统的结构框图。
具体实施方式
[0035]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于国密算法的TLS密钥交换方法,其特征在于,包括:响应于客户端hello消息,发出服务端hello消息作为回应,并发出服务端密钥交换消息、服务端证书和服务端hello完成消息;其中,所述服务端密钥交换消息中包含有一对临时密钥对中的临时公钥,用以提供给客户端进行预主密钥加密,以形成客户端密钥交换消息;接收所述客户端密钥交换消息并通过所述临时密钥对中的临时私钥对加密后的预主密钥进行解密。2.根据权利要求1所述的基于国密算法的TLS密钥交换方法,其特征在于,所述预主密钥通过SM2椭圆曲线公钥加密算法,使用所述临时公钥进行加密计算得到。3.根据权利要求1所述的基于国密算法的TLS密钥交换方法,其特征在于,所述服务端密钥交换消息中还包含有曲线类型、曲线参数以及对SM3哈希值使用所述服务端证书密钥对中的证书私钥和SM2签名算法所得到的认证签名。4.一种基于国密算法的TLS密钥交换方法,其特征在于,包括:发出客户端hello消息以发起会话;响应于服务端hello完成消息,根据获取到的服务端密钥交换消息中的临时公钥对预主密钥进行加密,并发出客户端密钥交换消息以将加密后的预主密钥发送至服务端;其中,所述客户端密钥交换消息中包含有所述加密后的预主密钥。5.根据权利要求4所述的基于国密算法的TLS密钥交换方法,其特征在于,所述根据获取到的服务端密钥交换消息中的临时公钥对预主密钥进行加密,包括:基于所述临时公钥,利用SM2椭圆曲线公钥加密算法对所述预主密钥进行加密。6.根据权利要求4或5所述的基于国密算法的TLS密钥交换方法,其特征在于,所述预主密钥包括:客户端所支持...
【专利技术属性】
技术研发人员:杨晓宇,颜海龙,任新海,
申请(专利权)人:中金金融认证中心有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。