国密 SSL协议在GM/T中没有单独规范的文件,而是在SSL VPN技术规范中定义了国密SSL协议。GMT 0024-2014《SSL VPN技术规范》中,国密 SSL协议内容参照传输层安全协议(RFC 4346 TLS1.1),按照我国相关密码政策和法规,结合我国实际应用需求及实践经验,在TLS 1.1的握手协议中,增加了ECC、IBC的认证模式和密钥交换模式,取消了DH密钥交换方式,修改了密码套件的定义,另外就是增加了网关到网关协议。
国密SSL协议概述
国密SSL协议包括握手协议、密码规格变更协议、报警协议、网关到网关协议和记录层协议。握手协议用于身份鉴别和安全参数协商;密码规格变更协议用于通知安全参数的变更;报警协议用于关闭通知和对错误进行报警;网关到网关协议用于建立网关到网关的传输层隧道;记录层协议用于传输数据的分段、压缩及解压缩、加密及解密、完整性校验等。
国密SSL握手协议
国密SSL握手协议族包含密码规格变更协议、握手协议和报警协议3个子协议,用于通信双方协商出可供记录层使用的安全参数,进行身份验证以及向对方报告错误等。
国密SSL握手协议协商的会话包括:
会话标识:有服务端选取的随意的字节序列,用于识别活跃或可恢复的会话
证书:X.509 V3格式的数字证书,符合GM/T 0015
压缩方法:压缩数据的算法
密码规格:指定的密码算法
主密钥:客户端和服务端共享的48字节的密钥
重用标识:标明能否用该会话发起一个新连接的标识
利用以上数据可以产生安全参数,利用握手协议的重用特性,可以使用相同会话建立多个连接。
国密SSL协议密码套件
国密SSL协议定义了支持的密码套件列表,每个密码套件包括一个密钥交换算法、一个加密算法和一个校验算法。服务端将在密码套件列表中选择匹配的密码套件,如果没有可匹配的密码套件,则握手失败、关闭连接。
国密SSL协议标准中实现ECC和ECDHE的算法是SM2,实现IBC和IBSDH的算法是SM9;RSA算法的使用应符合国家密码管理主管部门的要求。
国密SSL协议号
TLS协议号为0x0301/ 0x0302/ 0x0303,分别表示TLS 1.0/TLS 1.1 /TLS 1.2,而国密SSL版本号为0x0101。
国密SSL证书报文
国密SSL协议规范定义发送证书时需要发送两个证书——签名证书和加密证书,与标准TLS报文格式一样,只是第一个证书是签名证书,第二个证书是加密证书。
SNCA免费提供国密SSL证书试用服务,申请试用国密SSL证书可同时获得配套RSA DV SSL证书,试用周期1个月,用于测试国密SM2 SSL证书的运行效果和SM2/RSA双证书部署效果。