汽车MCU 信息安全--数字证书

0. 目录

  1. PKI体系介绍

1.1 概念

1.2 PKI系统功能

  1. 数字证书
2.1 tbsCertificate (To Be Signed Certificate) :证书主体数据

2.2 signatureAlgorithm 签名算法标识

2.3 signatureValue 颁发者签名

  1. 证书编码格式

  2. 证书解析与编码转换

原文:https://mp.weixin.qq.com/s/Kr0nAW2Wi30C9yvS-bdINA

1. PKI体系介绍

1.1 概念

PKI,全称Public Key Infrastructure,中文是公钥基础设施

PKI 是使用公钥密码技术实施吉尔提供安全服务的具有普适性的安全基础设施。

PKI是一个系统,包括技术、软硬件、人员、政策法律、服务的逻辑组件。

PKI的组成实体主要有:

  • 端实体----PKI证书使用者、持有者
  • CA ---- 认证中心
  • RA ---- 注册中心
  • CRL发布者 ---- 生成并签发证书撤销列表(CRL:证书撤销列表)
  • 证书、CRL存储发布系统 ---- 以数据库等技术实现存储、发布、CRL的系统

1.2 PKI系统功能

完整的PKI系统功能包括2部分:数字证书管理、基于数字证书的应用(PKI服务)。

① 数字证书管理是PKI的核心工作,即CA负责完成证书生成、发布、撤销、更新以及密钥管理工作,贯穿证书和密钥的整个生命周期。

② PKI服务是确定证书持有者可信赖的数字身份,通过身份和密码机制结合,提供认证、授权、数字签名等服务。

2. 数字证书

PKI 解决了如何准确有效地传递公钥的问题,数字证书是PKI的核心,他是公钥的载体,将公钥和身份的绑定。

X.509 v3 数字证书结构如下 :

复制代码
Certificate ::=  SEQUENCE  {        tbsCertificate       TBSCertificate,        signatureAlgorithm   AlgorithmIdentifier,        signatureValue       BIT STRING  }

2.1 tbsCertificate (To Be Signed Certificate) :证书主体数据

证书主体数据,即证书中待签名的部分,包含了证书的核心内容, 该字段包含主题和颁发者的名称、与主题相关联的公钥、有效期和其他相关信息。原文第 4.1.2 节详细描述了这些字段;TBSC 证书通常包括扩展,如标准原文第 4.2 节所述。TBSC 证书内容格式如下:

复制代码
TBSCertificate  ::=  SEQUENCE  {    version        [0]  EXPLICIT Version DEFAULT v1,// (1)版本号    serialNumber        CertificateSerialNumber,    // (2)序列号    signature           AlgorithmIdentifier,        // (3)用于签署证书的算法信息    issuer              Name,                       // (4)颁发者名称    validity            Validity,                   // (5)有效期    subject             Name,                       // (6)被签名者名称    subjectPublicKeyInfo SubjectPublicKeyInfo,      // (7)被签名者公钥信息    issuerUniqueID [1]  IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version MUST be v2 or v3 // (8)颁发者唯一ID-可选    subjectUniqueID[2]  IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version MUST be v2 or v3 // (9)被签者唯一ID-可选    extensions     [3]  EXPLICIT Extensions OPTIONAL        -- If present, version MUST be v3       // (10)扩展信息-可选}

(1) version 版本号

复制代码
 Version  ::=  INTEGER  {              v1(0), v2(1), v3(2)  }

(2) serialNumber 序列号

由CA编排的一串正整数,每个证书都拥有唯一的序列号,一般不超过20 bytes。

复制代码
CertificateSerialNumber  ::=  INTEGER   

(3) signature 用于签名证书的算法信息

定义了用于签署证书的签名算法,包括算法的标识符及其相关的可选参数,。 ​​​​​​​

复制代码
AlgorithmIdentifier  ::=  SEQUENCE{     algorithm      OBJECT IDENTIFIER,  -- 公钥签名算法类型          parameters     ANY DEFINED BY algorithm OPTIONAL  -- 可选字段,根据签名算法类型,填充算法的信息    }

(4) issuer name 颁发者

颁发者字段标识颁发证书的实体。颁发者字段必须包含非空的可分辨名称 Distinguished Name(DN)。它通常由一系列属性组成,用以唯一地标识证书的发行者。DN中的属性由以下ASN.1结构定义:

复制代码
Name ::= CHOICE {  rdnSequence  RDNSequence} -- only one possibility for now

通常包括以下这些信息,即 Name值:

Common Name (CN)**: 发行者的常见名称,比如CA的名称。

Organization (O)**: 发行者的组织名称。

Organizational Unit (OU)**: 发行者所在组织的部门或单元名称。

Country (C)**: 发行者所在的国家代码(两位字母ISO 3166国家代码)。

Locality (L)**: 发行者所在的城市或区域名称。

State or Province (ST or P)**: 发行者所在的州、省或行政区名称。

Email**: 在某些情况下,可能会包含发行者的电子邮件地址。

(5) validity 有效期

定义证书的有效起始时间、失效时间

复制代码
Validity ::= SEQUENCE {        notBefore      Time,  -- 到期时间        notAfter       Time } -- 起始时间​​​​

Time ::= CHOICE {                    -- 定义了可用的时间格式        utcTime        UTCTime,        generalTime    GeneralizedTime }(6) subject name 证书所有者信息

一般和issuer name属性定义一致。当证书主体为CA自己,issuer name和subject name相同,称为自签名证书。

(7) subjectPublicKeyInfo 主体公钥信息

包括公钥算法标识(使用OID标识)、公钥值​​​​​​​

复制代码
SubjectPublicKeyInfo  ::=  SEQUENCE  {        algorithm            AlgorithmIdentifier, -- 算法类型,可包含算法额外参数        subjectPublicKey     BIT STRING  }        -- 使用者的公钥内容

(8) issuerUniqueID 颁发者唯一ID -- 可选的 (V1不使用)

不同实体或者不同实体的不同证书将使用不同的标识

UniqueIdentifier ::= BIT STRING

(9) subjectUniqueID 使用者唯一ID -- 可选的 (V1不使用)

同(8)

(10) extensions 扩展选项 -- 可选的 (V1、V2不使用)

复制代码
Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension    Extension  ::=  SEQUENCE  {        extnID      OBJECT IDENTIFIER,        critical    BOOLEAN DEFAULT FALSE,        extnValue   OCTET STRING                    -- contains the DER encoding of an ASN.1 value                    -- corresponding to the extension type identified                    -- by extnID  }

2.2 signatureAlgorithm 签名算法标识

复制代码
AlgorithmIdentifier  ::=  SEQUENCE  {algorithm      OBJECT IDENTIFIER,                   -- 签名算法类型parameters     ANY DEFINED BY algorithm OPTIONAL  } -- 算法额外信息,可选
2.3 signatureValue 颁发者签名
基于 ASN. 1 DER编码的整个主体数据部分( tbsCertificate)计算的数据签名。通过生成此签名,CA 将证明 tbsCertificate 字段中信息的有效性。特别是,CA 认证公钥材料与证书主题之间的绑定。

3. 证书编码格式

https://mp.weixin.qq.com/s/Kr0nAW2Wi30C9yvS-bdINA

4. 证书解析与码转换

https://mp.weixin.qq.com/s/Kr0nAW2Wi30C9yvS-bdINA

.

相关推荐
以为不会掉头发的詹同学2 小时前
【TCP通讯加密】TLS/SSL 证书生成、自签名证书、请求 CA 签发证书以及使用 Python TCP 服务器与客户端进行加密通讯
服务器·python·tcp/ip·ssl
阿沁QWQ2 小时前
windows连接服务器免密
运维·服务器
开开心心_Every2 小时前
定时管理进程:防止沉迷电脑的软件推荐
xml·java·运维·服务器·网络·数据库·excel
云霄IT2 小时前
ssh使用代理连接服务器:基本用法使用ncat
运维·服务器·ssh
FIT2CLOUD飞致云2 小时前
支持IP证书签发、数据库TCP代理,1Panel v2.0.16版本正式发布
linux·运维·服务器·开源·1panel·ip证书
Q741_1472 小时前
Linux UDP 服务端 实战思路 C++ 套接字 源码包含客户端与服务端 游戏服务端开发基础
linux·服务器·c++·游戏·udp
神秘面具男032 小时前
Ansible Playbook 编写与运行
服务器·网络·ansible
TG:@yunlaoda360 云老大2 小时前
华为云国际站代理商OCR的多语种识别能力可以应用于哪些场景?
服务器·华为云·ocr
TG:@yunlaoda360 云老大2 小时前
华为云国际站代理商HiLens的技术优势体现在哪些方面?
服务器·数据库·华为云