SM2国密算法证书解析

一、数字证书的组成

1)证书数据结构

数字证书使用ASN.1编码,证书文件以二进制或Base64格式存放,数据格式使用TLV(Tag Length Value)形式,T代表类型标识符,L是长度值标识符,V代表值编码。数字证书中的每一项都有个对应的类型T。一个数字证书就是一个大的TLV序列,然后V又由多个TLV组合而成。

SM2证书数据和RSA算法证书一样,包含证书版本、序列号、颁发者、使用者主体信息、使用者公钥、有效期、证书扩展项等,只不过SM2证书的公钥算法是使用ECC算法的Oid标识(1.2.840.10045.2.1),然后公钥参数使用SM2国密算法的Oid标识(1.2.156.10197.1.301)。

2)签名算法

SM2证书配套的签名算法是基于SM3的SM2签名算法,算法Oid标识为1.2.156.10197.1.501,另外SM2国密算法还定义基于SHA_1、SHA_256的签名,以及使用SM3算法的RSA的签名,只不过签名算法Oid标识不一样。

3)签名数据

SM2的签名数据由2个BigInteger大数组成,再使用Der编码存放签名数据。证书的签名数据由根证书私钥进行签名,使用根证书公钥验证,顶级根证书使用自己的证书公钥验证。

二、数字证书的对象标识符

数字证书的每项都有对象标识Oid,SM2数字证书的主要区别就是公钥算法、公钥参数、签名算法标识不一样,其余的都是X509里标准项。数字证书常见得对象标识有如下:

对象标识符 名称 OID
rsaEncryption RSA算法标识 1.2.840.113549.1.1.1
sha1withRSAEncryption SHA1的RSA签名 1.2.840.113549.1.1.5
ECC ECC算法标识 1.2.840.10045.2.1
SM2 SM2算法标识 1.2.156.10197.1.301
SM3WithSM2 SM3的SM2签名 1.2.156.10197.1.501
sha1withSM2 SHA1的SM2签名 1.2.156.10197.1.502
sha256withSM2 SHA256的SM2签名 1.2.156.10197.1.503
sm3withRSAEncryption SM3的RSA签名 1.2.156.10197.1.504
commonName 主体名 2.5.4.3
emailAddress 邮箱 1.2.840.113549.1.9.1
cRLDistributionPoints CRL分发点 2.5.29.31
extKeyUsage 扩展密钥用法 2.5.29.37
subjectAltName 使用者备用名称 2.5.29.17
CP 证书策略 2.5.29.32
clientAuth 客户端认证 1.3.6.1.5.5.7.3.2

三、数字证书的解析

数字证书的解析主要是根据ASN.1语法和对象标识符来获取值,然后再是证书的有效期、颁发机构根证书、CRL吊销状态和使用目的等验证。RSA证书是标准算法大部分平台都可以解析,而SM2国密算法证书的解析就不是那么通用的。在Windows的一些较高版本打开SM2证书会显示“验证信任关系时,系统层上出现了一个错误”,这是因为Windows还不支持SM2算法证书验证,不能识别SM2签名的算法标识,因此需要自行验证SM2证书的签名数据,可基于BouncyCastle开源加密库来实现SM2验证签名,详细参见我的国密算法SM2证书制作。

SM2国密算法证书解析相关推荐

  1. SM2 国密算法被 Linux 内核社区接受

    喜欢就关注我们吧! 10 月 25 日,有开发者发文称,SM2 国密算法终于被 Linux 内核社区接受了.该作者表示,SM2 的补丁已经更新到了 v7 版本,这个版本的补丁最终被社区接受,目前已经合 ...

  2. SM2国密算法加解密

    接口安全设计原则的一个点就是数据不能明文传输,除了https这个必须的请求外,接口数据加密也是一个重要的方式,下面介绍一下SM2国密算法加解密的使用方式. 这里我就针对目前前后端分离架构的方式来简单介 ...

  3. 密信国密浏览器:推动SM2国密算法和国密SSL证书应用

    为什么80%的码农都做不了架构师?>>>    国密浏览器的普及是推广我国国产密码算法的关键生态要素.日前,沃通CA子公司密信技术发布密信浏览器公测版,支持SM系列国密算法和安全协议 ...

  4. 记自己发现的—SM2国密算法应用的高危漏洞—CVE-2021-3711

    openssl在8月24日发布了openssl 1.1.1l的稳定版,其中修复了一个高危漏洞:CVE-2021-3711.该漏洞会影响openssl 1.1.1l 之前的所有包含SM2商密算法版本,其 ...

  5. SM2国密算法公钥解压缩

    SM2一般用到的或者第三方提供的公钥都是压缩过的,长度为66个长度,既33字节. 格式如下,保密期间秘钥内容用*代替了,从02到....3F3B共33字节.66个长度 06:028736002931F ...

  6. ec java sm2证书_国密算法SM2证书制作

    前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要修改,这个更改底层调用的加密动态库来,原来RSA用的对称加密 ...

  7. 国密算法SM2证书制作

    原文链接:http://www.jonllen.com/jonllen/work/162.aspx 国密算法SM2证书制作 分类:工作 大中小 前段时间将系统的RSA算法全部升级为SM2国密算法,密码 ...

  8. 国密算法java源码_国密算法SM2证书制作

    前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要修改,这个更改底层调用的加密动态库来,原来RSA用的对称加密 ...

  9. SM2 (含SM3、SM4)国密算法工具QT版,彻底搞懂sm2算法的使用

    网上有很多网友问算法SM2怎么使用?什么是压缩公钥和非压缩公钥?xB和yB这参数是什么?怎么使用SM2做加解密?如何签名和验签?有没有工具来验证下? 这里分享个自己用QT造的一个小工具,简单好用,同时 ...

  10. sm2 java 开源_SM2 国密算法被 Linux 内核社区接受

    原标题:SM2 国密算法被 Linux 内核社区接受 来自公众号: OSC开源社区 10 月 25 日,有开发者发文称,SM2 国密算法终于被 Linux 内核社区接受了.该作者表示,SM2 的补丁已 ...

最新文章

  1. keepalive 原理讲解
  2. ubuntu 12.04 LTS u盘安装
  3. Django—路由层,视图层
  4. 运用递归将两个链表进行连接
  5. CompletableFuture详解~join与get的区别
  6. python去掉空白行_python去掉空白行的多种实现代码
  7. [复变函数]第17堂课 5 解析函数的 Laurent 展式与孤立奇点 5. 1 解析函数的 Laurent 展式...
  8. sqlserver2008R2下载安装教程
  9. Twitter数据抓取
  10. 为什么 30 岁的工程师容易跳槽?
  11. “电”亮数字生活,阿里云助力南方电网智能调度
  12. 致敬科比,JS手写贪吃蛇
  13. cdr三角形转化为圆角_cdr怎么把直角变成圆角
  14. 傅里叶变换中采样频率(fs)的解读
  15. 嵌入式软件工程师待遇如何?嵌入式开发越老越吃香吗?
  16. Python实现excel重复值计数/记录小白第一次学习
  17. 数字化模型是工业PaaS平台的核心
  18. python生产实战 python 闭包之庖丁解牛篇
  19. 最棒的游戏制作软件VAM Virt A mate汉化 优秀豪华 整合
  20. 如何把一个手机的通知短信转发到另外一个手机上?恶搞大王手机通知转发器

热门文章

  1. 手把手教你:人脸识别考勤系统
  2. novatel计算odom--GPS坐标与UTM坐标转换
  3. 调用企业微信接口注意事项
  4. IINA+ :在IINA播放器上观看直播
  5. 中兴b860a拆机_【中兴ZXV10B860A魔盒外观展示】接口|线材|插线_摘要频道_什么值得买...
  6. jieba库和wordcloud库
  7. 基于中医药知识图谱智能问答(一)
  8. 【ClearCase使用】之图解merge
  9. 计算机省vb二级试题,湖南省计算机二级考试VB试题
  10. vue-amap使用教程