数字证书介绍

article/2025/9/18 22:05:19

1.数字证书的分类

1.1按持有者分类

       通常依照证书持有者的类型可将证书分为三类:个人证书、单位证书和系统证书。

个人证书:CA中心给个人颁发的证书,仅代表个人身份,证书包含个人信息和个人公钥。

单位证书:CA中心给组织机构颁发的证书,代表机构的身份,包含机构单位的信息和单位公钥。

系统证书:CA中心给应用系统或者设备颁发的证书,代表系统的身份,包含系统的信息和系统的公钥。

1.2按证书用途分类

       按照证书的用途分为签名证书和加密证书,数字证书认证系统既可支持双证书(签名证书和加密证书)的签发与管理,也可支持单证书(签名证书或加密证书)的签发与管理。其中,签名证书用于认证、完整性保护、抗抵赖等场合;加密证书用于密钥交换和数据保密等场合。

签名证书:签名证书只能用于签名和验证签名,为了密钥的安全,密钥对一般在客户端产生和保存。

加密证书:加密证书只能用于加密,其中密钥对由CA产生,通过保护算法和协议发送给用户保存,同时CA中心也保存该密钥对,以备管理和恢复。

2.数字证书格式

       公钥证书的基本结构包括三部分:待签证书域、签名算法域、签名值域,其中待签证书域分为基本域和扩展域,其中扩展域可以包含用户自定义扩展项:

                                                    

3.数字证书内容

        版本号version为证书的版本标识,目前最新版本为v3,若使用扩展项时,version=v3。序列号serialNumber为证书的唯一标识,每张证书的序列号不同。签名算法signatureAlgorithm和证书域中的签名算法相同。证书的签发者issuer是证书的颁发机构,是证书持有者的信任方。主体subject也是证书持有者,是证书的所属实体。有效期validity包含证书的生效日期和失效日期。主体公钥信息subjectPublicKeyInfo表示证书持有者的公钥信息。主体唯一标识符subjectUniqueID和签发者唯一标识符issuerUniqueID分别表示证书签发的唯一标识和证书持有者的唯一标识。扩展项extensions标识证书的扩展信息,可同时扩展多个信息。

4.证书链

          根CA是信任的源点,根CA的证书有自己签发RootCA,即颁发者和持有者都为RootCA。一级CA的证书FirstCert由根CA签发,二级CA的证书SecondCert由一级签发。从根CA到二级CA通过签发证书构成一条证书链,如图,可以看出下一级受信于上一级。在验证证书有效性时需要对证书链进行验证,其主要验证信任的来源,来证明该实体的身份是否可信。

                                                                                  

5.证书的相关编码规则

5.1 ASN.1编码

       ASN.1(Abstract Syntax Notation One)抽象文法描述语言是一种国际标准语言,其作用是为抽象的数据结构定义了一种记法。ASN.1的应用比较广泛,例如欧洲和北美等地的移动电话都是采用ASN.1对消息描述的TCAP协议,IBM、SUN、HP等使用ASN.1传输信息。ASN.1规则中将所有的数据分为两类:基本类型和结构类型,基本类型包括如整型、布尔类型、字符串等;结构类型包括如结构类型和链表等。

       ASN.1的编码规则有BER(Basic Encoding Rules)、DER(Distinguished Encoding Rules)、CER(Canonical Encoding Rules)等,DER是BER的一种特殊的编码形式,DER主要用于安全的特征的应用系统,比如涉及到加密解密技术。CER其特点是对大块数据进行编码,但CER目前还未得到广泛的应用,而DER被公认为是较好的编码规则。

       DER定长编码规则是将ASN.1的类型编码为唯一的码字,在BER的基础上又规定了一些编码规则:必须是定长编码;内容小于127的类型值,采用短型;内容大于128的类型值,采用长型;简单字符串类型。使用基本类型定长的模式编码;结构类型,使用结构类型定长模式编码。

5.2 Base64编码

        Base64编码是将任意的二进制编码成为64个ASCII码字符,64个字符包含了26个英文字母、10个数字、加号、斜杠,另外用等号进行末尾填充。

        编码过程是将二进制数据流按顺序,3个字节分组,先对3个字节编码,当最后不能凑够3个字节时,需要进行填充处理。其中,3个字节按顺序总共有24Bit,按照6Bit一组分成4组,进而每组的取值范围为0~63,最终编码成4个字符。如果最后只剩下一个字节,则后面补4位0,总共12Bit,编码后再补2个等号,如果最后剩下2个字节,则后面补2个0,编码后后面补一个等号。

       Base64的解码过程需要注意有可能编码中含有空格,所以先将空格删除,然后按照4个字符分组进行解码。若字符不是4的整数倍,则说明字符流有误。每4个字符解码成3个字节,若最后面有等号,则根据编码规则可解码出正确的二进制流。

5.3 XML文件格式

         可扩展标记语言XML(Extensible Markup Language)即描述性的标记语言,像HTML一样,从属于SGML(Standard Generalized Markup Language,标准通用标记语言)。XML主要对数据进行存储,以便在信息交互过程中传输,它的优势在于在计算机之间传输结构化的数据,程序员可以灵活的制定数据的规则,并且XML数据文件可以在多种编辑器打开查看。同时,XML是很好的跨平台性非常突出,不同的平台可以进行数据的传输。

       具体使用时通信双方应该规定好数据封装规范,首先通过标识封装不同的数据,像CA的上下级传输证书时,使用不同的标识封装整证书文件、公钥等,标识的数据经过编码得到,例如先进行Base64编码,再通过XML格式封装,解析过程正好和封装相反。


http://chatgpt.dhexx.cn/article/6crGiCg4.shtml

相关文章

数字证书相关

概念 数字证书 数字身份(digital identity)是身份标识方式的一种,是一对“钥匙”,其中一个只有她/他本人知道(即私钥),另一个是公开的(公钥)。把数字身份比喻成一个证件…

网站上数字证书原理你知道么?

前言:文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示…

CA证书(数字证书的原理)

转自:http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html(感谢) 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。…

数字签名和数字证书的区别与联系

前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应。签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖PDF合同在签章后不能被更改…

什么是数字证书

整理了几篇关于CA证书的经典文章: 文章目录 一、数字证书二、数字证书原理的形象理解 一、数字证书 什么是数字证书 一文看懂HTTPS、证书机构(CA)、证书、数字签名、私钥、公钥 二、数字证书原理的形象理解 数字证书原理与自建CA证书 第一…

数字证书

文章目录 前言一、什么是数字证书二、数字证书申请和验证1.证书申请流程2.浏览器如何验证证书 三、KeyTool自签名证书1.生成自签名证书2.导出证书3.查看证书4.构建CA签名证书 总结 前言 本文主要介绍什么是数字证书和如何使用keytool工具常用命令的使用。最后构建自签名证书。…

GCN的Benchmark数据集溯源

前言 GNN领域最经典的论文之一是Kipf同学2016年发布的GCN。 经典的GCN做了四个数据集的实验,后续工作基本会在这4个数据集上也做一次。 但是由于年代久远,和一些历史问题, 后来者想做对比实验难免遇到一些“从哪里获取"与"是这…

GNN学习笔记(四):图注意力神经网络(GAT)节点分类任务实现

目录 0 引言 1、Cora数据集 2、citeseer数据集 3、Pubmed数据集 4、DBLP数据集 5、Tox21 数据集 6、代码 嘚嘚嘚,唠叨小主,闪亮登场,哈哈,过时了过时了,闪亮登场换成大驾光临,哈哈,这样才…

图卷积神经网络GCN之节点分类

使用pytorch 的相关神经网络库, 手动编写图卷积神经网络模型(GCN), 并在相应的图结构数据集上完成节点分类任务。本次实验的内容如下: 实验准备:搭建基于GPU的pytorch实验环境。数据下载与预处理:使用torch_geometric…

win10下使用pycharm实现基于pyg的cora+citeseer+pubmed数据集的JKNET模型测试

目录 前期准备工作 1、数据集基本情况 2、标准数据集划分方式 3、数据集处理和分析 整体数据分析 cora citeseer pubmed 4、代码参考 GraphSAGE实验结果(代码详细注释) 1、代码结构 2、超参数 3、实验结果(pubmed+mean_pool+sum) 2层SageGCN层 实验补充 3层S…

GraphSAGE模型实验记录(简洁版)【Cora、Citeseer、Pubmed】

1、准备工作 数据集 数据集图节点边特征标签(y)Cora12708542914337Citeseer13327473237036Pubmed119717443385003 数据集划分方式:https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised L…

GCN使用的数据集Cora、Citeseer、Pubmed、Tox21格式

文章目录 Cora、Citeseer、Pubmed以Cora为例数据格式示例 Tox21 数据集 本文分享一下图卷积网络GCN里用到的一些数据集的格式 Cora、Citeseer、Pubmed 数据集来源#图#节点#边#特征#标签(y)Cora“Collective classification in network data,” AI magazine,200812708542914337…

小白的靶机VulnHub-Stapler

从这一台靶机开始 就要上VirtualBox了 开机界面就是个这 就凑合一下 开桥接 确定靶机ip地址 :192.168.56.102 要上 了哦!!!!! 扫出 好多 好多 端口 像极了一个蜜罐 我淦 从ftp 入手吧 进行匿名登录 进…

Vulnhub-靶机-Stapler 1

Vulnhub—靶机—Stapler 1 本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关 文章目录 Vulnhub—靶机—Stapler 1一、信息收集二、漏洞利用三、Flag 一、信息收集 【步骤一】使…

调用Jenkins api报错 403 forbidden

** 调用Jenkins api报错 403 forbidden ** String url url "/computer/doCreateItem?nametest&typehudson.slaves.DumbSlave";HttpHeaders headers new HttpHeaders();MultiVpalueMap<String, String> parameters new LinkedMultiValueMap<>()…

Vulnhub 靶机 Stapler write up samba+wp advanced-video ->mysql 密码 连接 john解密 登录后台 wp插件getshell sudo提权

Stapler write up 0x00 靶机搭建0x01 信息收集0x02 漏洞挖掘web思路mysql 思路ftp 思路139 samba思路步骤一&#xff1a;ftp匿名访问步骤二&#xff1a;samba139测试步骤三&#xff1a;web渗透 80步骤四&#xff1a;web渗透12380端口步骤五&#xff1a;利用wordpress漏洞步骤六…

macOS分发app打包+签名+公证+添加票据+生成dmg文件

1.打包 网上有很多使用命令行的打包的方式大家可自行查找,以下是使用Xcode进行打包. 首先配置证书要配置Developer ID Application证书然后使用的是Xcode进行打包:Product->Archive 这种打包方式的好处是省去了签名的过程,但是用网上其他人的命令查看签名时候还是未成功&a…

CTF实战之Stapler

CTF实战之Stapler Penetrating Methodology: 0x01 网络扫描&#xff08;Nmap, netdiscover&#xff09; nmap -sP 192.168.153.0/24 通过筛选找到靶机地址 扫描靶机端口 nmap -sT -T4 -sV -p 1-65535 192.168.153.154通过端口扫描发现靶机开了很多端口 我们一个一个来 …

Jenkins 远程命令执行漏洞 (CVE-2018-1000861)复现

文章目录 漏洞描述&#xff08;介绍、成因&#xff09;漏洞危害适用场景实验环境漏洞复现过程1、 开启docker环境2、通过dnslog检测漏洞是否存在3、监听端口4、利用exp获取反弹shell 修复建议扩展知识&#xff08;链接、文章&#xff09; 漏洞描述&#xff08;介绍、成因&#…

VulnHub-STAPLER: 1-靶机渗透学习

靶机地址&#xff1a;https://www.vulnhub.com/entry/stapler-1,150/ 靶机难度&#xff1a;中级&#xff08;CTF&#xff09; 靶机描述&#xff1a;Stapler is reported to be one of several vulnerable systems that are supposed to assist penetration testers with challe…