文档章节

ATECC508A芯片开发笔记(六):产生CSR以及申请证书(X.509)流程及其内容分析

H
 HowieXue
发布于 2017/07/19 21:48
字数 817
阅读 55
收藏 0

ATECC508A芯片开发笔记(六):产生CSR以及申请证书(X.509)流程及其内容分析

  • 508A产生CSR文件流程
  • CSR文件内容分析
  • 由CSR签发下来的证书内容分析

一、508A产生CSR文件流程

上节提到,在Provisoin时508A会产生至少一对公私钥,然后使用其公钥产生一个CSR(Certificate Signing Request)文件,

  • CSR文件中其实完整包含了该公钥,还包含一些X.509证书格式的必备参数数据,并且利用设备PrivateKey对CSR文件进行签名,附在CSR最后面组成CSR文件。
    -
  • Server在收到CSR文件后,首先会利用其中的设备PublicKey验证CSR签名是否正确,然后根据请求内容补充(颁发)完整的证书,既一个完整的X509格式证书。

完成上述步骤后,Server会将证书发送给Signer进行签名,该过程分为三步:

  • (1)Signer对证书TBS(To be signed)部分用摘要算法(例如SHA256,CSR请求中会指明)算一个HASH值(32Byte)
  • (2)Server根据CSR指明的非对称加密算法(例如ECCP256)对该Hash值进行加密(这个过程既签名
  • (3)Server将签名后的数据(ECC为64byte)附在证书主体内容后面,同时将证书和签名一起返回给Server。

二、CSR文件内容分析

利用Openssl工具查看产生的CSR文件,如下图:
这里写图片描述

  • CSR中可以看出,结合X.509证书格式,一个CSR必须具备VersionSubject以及Attributes。其中Subject中,包含所申请证书的C(Country),O(Organization)以及CN(CommonName)等描述部分。

  • 之后就是Subject - PublicKey部分,会明确PublicKey使用的非对称算法,例如图中为id-ecPubKey,紧接着为Device的公钥,最后附上了ECC曲线的OID,既使用P-256Curve

  • 再往下,就是证书扩展部分,包括KeyUsage(本例为数字签名)、扩展KeyUsage等等。最后部分就是前面部分,可以看到明确了签名算法为ecdsa,并且用sha256算digest(Server首先会验证该签名,保证其完整性)。


三、由CSR签发下来的证书内容分析

下图为CSR签发下来的证书:(仅仅是测试508A用的Demo证书)

这里写图片描述

  • 证书内容和CSR请求是一一对应的,也都是X.509证书格式规范,只不过Signer签名部分是全新的数据,这也是PKI的主要思想之一。

证书内容解析是根据ASN1格式,并且结合X.509定义的证书内容(例如证书开头都为30 82,后面跟2个字节长度):

这里写图片描述

多提几句:X.509证书都是ASN1格式的,包括CSR,但用508A生成的CSR不一定是ASN1格式,所以要先转换下格式,发送给Server才能识别。

反过来,如果使用证书数据,例如使用Publickey等数据,用于自己验证签名,也要对其格式进行变换。 (可以用些小工具,如base64转Hex助手,或者代码实现)


欢迎转载,Howie原创作品,本文地址:

http://blog.csdn.net/howiexue/article/details/75268237

谢谢

© 著作权归作者所有

共有 人打赏支持
H
粉丝 0
博文 13
码字总数 12540
作品 0
私信 提问
nginx证书基础知识及申请

TSL 是传输层安全协议,英文是transport layer security SSL 是安全套接字层,英文是security socket layer 这两个的区别对于不是搞安全的开发人员来讲的人来说不大 KEY 通常指私钥 CSR 是英...

周子琪
2017/10/23
0
0
Android安全开发之安全使用HTTPS

1、HTTPS简介 阿里聚安全的应用漏洞扫描器中有证书弱校验、主机名弱校验、webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易出现风险的地方而设。接下来介绍一下安全使用H...

阿里聚安全
2016/10/08
922
1
openssl生成https证书

1、先生成CA相关公钥和私钥 生成CA私钥 生成X.509证书签名请求文件 在生成ca.csr的过程中,会让输入一些组织信息等,可以随便填 生成X.509格式的CA根证书ca_public.crt(公钥证书) 2、生成自...

mahengyang
2016/12/08
143
0
全站HTTPS简单实践

第一个里程碑:创建https证书 1 [root@web01 backup]# openssl req -new -x509 -nodes -out server.crt -keyout server.key 2 3 Generating a 2048 bit RSA private key 4 ......................

侯召顺
2017/11/06
0
0
Centos 64位 Install certificate on apache 即走https协议

一:   先要apache 请求ssl证书的csr 一下是步骤: 重要注意事项 An Important Note Before You Start 在生成CSR文件时同时生成您的私钥,如果您丢了私钥或忘了私钥密码,则颁发 证书给您后...

风吹白杨树
2013/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cnetos7+docker+rancher构建基于DevOps的全自动CI【01】

来自DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量、私有代码库与私有镜像库的应用等。 1、环境选择 安装Rancher环境,一定要在干净的...

Elson
20分钟前
1
0
21分钟教会你分析MaxCompute账单

背景 阿里云大计算服务MaxCompute是一款商业化的大数据分析平台,其计算资源有预付费和后付费两种计费方式。并且产品每天按照project为维度进行计量计费(账单基本情况下会第二天6点前产出)...

zhaowei121
23分钟前
0
0
CTO职场解惑指南系列(一)

基于科技能够改变世界的事实,几乎每个公司的程序员都自带闪光灯。程序员的手和普通人的手自然是有区别的,“我们可是用双手改变了世界” 。(码农真的是靠双手吃饭,呵呵) 这个世界上但凡靠...

阿里云云栖社区
28分钟前
2
0
css实现图片自适应容器宽高

css实现图片自适应容器宽高的做法一般如下所示 <style>div{width: 200px; height: 200px}div img{width: 100%; height: 100%}</style><div><img src="xxxx.png" /></div> 当外层容......

小草先森
28分钟前
3
0
PlatON在CentOS上编译部署

本文作者为万向区块链CTO罗荣阁。 目录 PlatON在CentOS上编译部署 1. CentOS 环境准备 1.1. 使用rpm 安装devtoolset-7 1.2. 使用rpm 安装dos2unix 1.3. 准备PlatON代码 1.4. 确保build脚本正...

万向区块链
36分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部