详解gmssl和tls1.2握手流程分析及接口实现

文章详细分析了GMSSL和TLS1.2的握手过程,包括它们的密钥交换算法和证书区别。国密协议使用双证书系统,以满足监控需求。此外,讨论了单向与双向认证,以及会话复用的机制,如sessionid和SessionTicket,强调SessionTicket在减轻服务器压力上的优势。最后,介绍了使用OpenSSL接口实现SSL客户端和服务端时的注意事项,特别是国密协议与国际协议在接口使用上的差异。


前言

通过阅读openssl源码具体分析ssl握手中的报文交互流程,包括发送和处理每个报文所做的主要事情。同时分析ssl协议中的一些主要问题,包括tls和gmssl的区别、单向认证和双向认证、两种会话复用方式对比,调用openssl接口实现ssl客户端和服务端之间的通信。


一、gmssl、tls1.2握手的详细流程

在这里插入图片描述注意:
TLS1.2中密钥交换算法为RSA、gmssl的密钥交换算法有ECC、ECDHE,RSA密钥交换算法没有server key exchange。
双向认证才有服务端给客户端发送的certificate request,和客户端给服务端发送的certificate和certificate verify。
TLS1.2为国际协议,使用单证书,certificate中只有一个证书,gmssl为国密协议使用的是双证书,certificate中有两个证书,一个签名证书、一个加密证书。

二、 TLS1.2和gmssl的区别

1.TLS1.2属于国际协议,所有算法套件都为国际算法。gmssl属于国密协议,所用算法都为国密算法。
国际算法套件:
在这里插入图片描述国密算法套件:
在这里插入图片描述
2.TLS1.2国际算法使用的是单证书,签名证书和加密证书是同一个证书;gmssl使用的是双证书,分为签名证书和加密证书,签名用签名证书,加密使用加密证书。

国密双证书的好处

**单证书体系:**本地生成公私钥对,将相关的证书信息和公钥提交给CA机构,CA审核通过后用私钥进行签名,将签名和公钥组合成数字证书,本地保存数字证书,CA不保管证书。
双证书体系: gmssl要求使用双证书,包括签名证书和加密证书。签名证书在签名使用,仅仅用来验证身份使用,其公私钥均由服务器自己产生,并且由自己保管,CA不负责保管;加密证书在加密时使用,其公私钥均由CA产生,并

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值