51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4006|回复: 0
打印 上一主题 下一主题

[原创] 国密证书签发及国密SSL协议通信测试

[复制链接]
  • TA的每日心情
    无聊
    8 小时前
  • 签到天数: 1052 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-4-20 11:00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    随着国产商用密码算法领域的发展,国密协议在各行业的应用也愈发广泛。国密算法在TLS协议中的应用是目前国密算法普及度最高的场景,目前市面已有多种国密浏览器,支持国密算法的TLS协议。国密SSL协议以SM3算法作为哈希算法,SM2算法作为密钥协商以及加解密算法,具备极高的安全性。本文主要利用开源的gmssl,构建国密CA,签发国密证书,以及使用签发的证书进行简单的国密SSL通信测试
      在进行证书签发之前,首先准备配置好gmssl的配置文件,由于gmssl是openssl的一个国产化的分支,因此配置文件与openssl的配置规则基本相同。图1为本文使用的配置文件示例,主要是指定了证书及密钥生成路径、默认的hash算法以及签发的证书的密钥用途等相关信息。其中国密SSL协议与标准TLS协议最大的不同是,国密SSL协议需要配置双证书,其中一张证书用于签名操作,一张证书用于加密操作。




      按照配置文件建好对应的目录结构后,即可进行证书的颁发,具体的颁发过程主要包含以下几步:

      1、生成CA根证书所需私钥,指定生成私钥算法为sm2以及长度256位


      生成的私钥信息如下图所示:


      2、生成签发CA证书的证书请求,指定证书主题等信息


      生成的证书请求信息如下图所示:


      3、自签发CA根证书


      生成的根证书如下图所示:



      通过以上三步,我们就建立好了一个可以签发证书的CA。接下来即可使用该CA为通信测试的双方:服务器以及客户端,签发证书。
      国密SSL协议是双证书机制,因此需要签发签名证书与加密证书,具体的签发流程如下:

      1、创建服务器签名和加密密钥


      生成的私钥文件与ca私钥文件类似。

      2、创建服务器证书请求


      3、签发服务器双证书
      签名证书:密钥用途为数字签名。


      加密证书:密钥用途为加解密。


      通过以上三个步骤,即准备完成服务器所需密钥及证书,接下来签发客户端双证书的流程与上类似,在此不做赘述。
      通过上面的过程,目前已具备测试国密SSL协议的根证书,服务器客户端证书及私钥,接下来可以借助gmssl的s_server与s_client组件进行通信测试。
      通信测试需要开启两个终端,一个作为服务器,另一个作为客户端。
      首先开启服务器端,进入监听状态,其中 -gmtls参数指定通信协议类型,-key参数指定通信所需签名私钥,-cert参数指定签名证书,-dkey参数指定通信所需加密私钥,-dcert参数指定加密证书 -CAfile指定根证书 -verify参数证明开启双向认证,双向认证即为在通信过程中不仅客户端需要验证服务器身份,服务器也要验证客户端身份,保证双方可信。


      下一步打开客户端进行连接。
      连接后服务器日志如下所示证明已有客户端成功连接,并通过SM2-WITH-SMS4-SM3算法套件协商成功。


      客户端日志如下所示:证明握手成功,验证通过,同时协商出主密钥。


      接下来,服务器与客户端即可加密通信传输报文,通过下图表示通信测试成功。



      以上即为国密CA的创建,国密证书签发以及国密SSL协议通信测试的完整流程,通信过程中使用的SM2-WITH-SMS4-SM3算法套件,GMTLS协议版本为1.1。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 17:36 , Processed in 0.064371 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表