国密SSL协议开发总结(附报文详细分析)

国密SSL规范主要是基于tlsv1.1版本而来,部分内容比如prf是基于tlsv1.2版本。如果国密SSL规范具体数据格式不明确的地方需要参考tlsv1.1和tlsv1.2协议。

国密SSL协议规范的编号:GM/T 0024-2014

1. 记录层协议

记录层协议是低层协议,所有的报文,包括握手协议、报警协议、密码规格变更协议等都要封装在记录层协议中进行传输。

国密SSL协议开发总结(附报文详细分析)_第1张图片

国密SSL协议开发总结(附报文详细分析)_第2张图片

国密SSL协议开发总结(附报文详细分析)_第3张图片

2. 密码规格变更协议

这个协议比较简单,就一个字节

国密SSL协议开发总结(附报文详细分析)_第4张图片

3. 报警协议

比tlsv1.1加了一些报警内容

国密SSL协议开发总结(附报文详细分析)_第5张图片

4. 握手协议

协议最主要的部分就是握手协议,也是内容最多的。

4.1 握手协议总览

国密SSL协议开发总结(附报文详细分析)_第6张图片

4.2 交互的大致流程

国密SSL协议开发总结(附报文详细分析)_第7张图片

4.3 clienthello消息

国密SSL协议开发总结(附报文详细分析)_第8张图片

4.4 serverhello消息

国密SSL协议开发总结(附报文详细分析)_第9张图片

4.5 certificate消息

国密SSL协议开发总结(附报文详细分析)_第10张图片

4.6 ServerKeyExchange握手协议 ECDHE

国密SSL协议开发总结(附报文详细分析)_第11张图片

4.7 ServerKeyExchange握手协议 ECC / RSA

国密SSL协议开发总结(附报文详细分析)_第12张图片

4.8 certificaterequest消息

国密SSL协议开发总结(附报文详细分析)_第13张图片

4.9 serverhellodone消息

国密SSL协议开发总结(附报文详细分析)_第14张图片

4.10 ClientKeyExchange握手协议 ECDHE


4.11 ClientKeyExchange握手协议 ECC / RSA

国密SSL协议开发总结(附报文详细分析)_第15张图片

4.12 CertificateVerify握手协议 RSA - SHA1


4.13 CertificateVerify握手协议 RSA / SM2 - SM3


4.14 finish消息


5. 最终效果

使用国密算法浏览器单向SSL通道,0xe013 ECC_SM4_SM3密码套件,访问tomcat服务器的效果。

这里特别感谢大宝CA(http://www.doubleca.com)的无偿帮助,SM2数字证书和JCE包,大大缩短了开发周期,非常感谢!

国密SSL协议开发总结(附报文详细分析)_第16张图片


国密SSL协议开发总结(附报文详细分析)_第17张图片


国密SSL协议开发总结(附报文详细分析)_第18张图片

6. 一次完整交互的报文协议分析

6.1 客户端--->服务器 ClientHello握手消息

国密SSL协议开发总结(附报文详细分析)_第19张图片

6.2 服务器--->客户端 ServerHello握手消息

国密SSL协议开发总结(附报文详细分析)_第20张图片

6.3 客户端--->服务器 ClientKeyExchange握手消息

国密SSL协议开发总结(附报文详细分析)_第21张图片

6.4 客户端--->服务器 密码规格变更协议消息

国密SSL协议开发总结(附报文详细分析)_第22张图片

6.5 客户端--->服务器 密文握手协议

国密SSL协议开发总结(附报文详细分析)_第23张图片

6.6 服务器--->客户端 密码规格变更协议消息

国密SSL协议开发总结(附报文详细分析)_第24张图片

6.7 服务器--->客户端 密文握手协议

国密SSL协议开发总结(附报文详细分析)_第25张图片

6.8 客户端--->服务器 密文应用数据协议消息

国密SSL协议开发总结(附报文详细分析)_第26张图片

以上步骤是国密ECC_SM4_SM3密码套件一次传输数据的完整交互过程,单向认证。数据较杂,有不对的地方请高手指正。

你可能感兴趣的:(国密SSL协议开发总结(附报文详细分析))