数字证书真的是让我从学习密码学开始就一直没弄懂过,非常的痛苦,因为它是个套娃理论。我的脑子又是真的对于套娃非常地接受不了。所以说还是写一些东西进行弥补一下。这篇文章就按我自己的理论来写了。

当你在网络环境中时,面对着和别的电脑的交流,特别是和可信任的电脑交流的时候,你最需要的就是一个证明,证明什么?

证明你是你自己!

怎么证明呢?这里就是数字证书出场的时候。

但是在数字证书之前,我们要首先要学习几个名称

PKI

Public Key Infrastructure(PKI),中文叫做公开密钥基础设施

这个PKI,说是一个公开密钥基础设施,但其实是泛指了这一种类型的机制。

我们之后所说的所有的与数字证书相关的各种概念和技术,都统称为PKI

CA机构

Certificate Authority (CA) 机构,是一个权威部门,具有可相信的特性的第三方,我们所有的电脑都信任这个第三方。

数字签名

数字签名是一个使用自己的签名的方法。

使用只有我们自己知道的私钥(我假定你已经知道了什么是公钥,什么是私钥)

我这里有一个文件,比如说是 security.txt,以下是ethanyi(我)进行数字签名的步骤

  1. 计算这个security. txt 文件的Hash值(Hash值是一个固定长度的字符串)
  2. 通过ethanyi的私钥对其进行加密,得到的就是我的数字签名

数字证书流程

回到刚才的问题,数字证书帮我们进行了证明,证明我们自己的身份。

那么数字证书里面有什么呢?假如我叫ethanyi,这个证书是我的,那么它就有以下几个部分:

  • ethanyi的公钥数据
  • ethanyi的身份信息
  • CA机构的数字签名

CA机构的数字签名内容是什么呢?就是ethanyi的公钥数据和身份信息(也就是前两点)

所以数字证书就是文件和数字签名的组合体。

同时每个人的电脑上都是有一个叫做根证书的东西,这个东西是每一次预先装好电脑之后就有的。根证书里面是有着CA机构的公钥。可以解开CA机构的数字签名

那么别人怎么知道我真的是我自己呢?

假如我想要联系的对象叫做DUCK,我把我的文件发给DUCK,那么DUCK要这么知道这个文件是我给她的呢?

首先我们要知道以下几点:

  1. 网上会有很多很多的数字证书(或者当DUCK收到这个文件的时候也会同时收到ethanyi的数字证书)
  2. DUCK使用电脑中一直有的CA机构的公钥(根证书)对数字证书进行解密,解密出来的就是Ethanyi的公钥数据和身份信息的Hash值
  1. DUCK继续对数字证书中的另外两项进行Hash运算,算出来的结果上一步的Hash值是一样的,就证明了两次算出来的ethanyi的身份信息是一样的,证明ethanyi就是ethanyi
  1. 那么DUCK就可以相信这个文件就是ethanyi给她的了。

参考视频:

https://www.bilibili.com/video/BV18N411X7ty?spm_id_from=333.1007.top_right_bar_window_history.content.click