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



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)附在证书主体内容后面,同时将证书和签名一起返回给Device。

实例图1:申请证书流程:

一般在生产过程中对证书进行申请并存储在设备端,这个过程即使用508执行上述步骤,向Server申请证书:
在这里插入图片描述


实例图2:设备认证流程(使用证书):

申请完了证书, 会存储在设备中, 在设备认证时使用(如进行TLS双向认证),当然508也有认证(Verify)设备证书的功能,这部分可参见:ATECC508A芯片开发笔记(七):实现对数据数字签名(Sign)并验证(Verify)证书签名
在这里插入图片描述


二、CSR文件内容分析

利用Openssl工具查看产生的CSR文件,如下图:
查看命令为openssl req -in xxx.pem -text
这里写图片描述

  • 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证书)
查看命令为:openssl x509 -in xxx.pem -noout -text
这里写图片描述

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

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

这里写图片描述

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

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


在这里插入图片描述

博主热门文章推荐:

一篇读懂系列:

LoRa Mesh系列:

网络安全系列:

嵌入式开发系列:

AI / 机器学习系列:


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HowieXue

求打赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值