关于数字证书
数字证书真的是让我从学习密码学开始就一直没弄懂过,非常的痛苦,因为它是个套娃理论。我的脑子又是真的对于套娃非常地接受不了。所以说还是写一些东西进行弥补一下。这篇文章就按我自己的理论来写了。
当你在网络环境中时,面对着和别的电脑的交流,特别是和可信任的电脑交流的时候,你最需要的就是一个证明,证明什么?
证明你是你自己!
怎么证明呢?这里就是数字证书出场的时候。
但是在数字证书之前,我们要首先要学习几个名称
PKI
Public Key Infrastructure(PKI),中文叫做公开密钥基础设施。
这个PKI,说是一个公开密钥基础设施,但其实是泛指了这一种类型的机制。
我们之后所说的所有的与数字证书相关的各种概念和技术,都统称为PKI
CA机构
Certificate Authority (CA) 机构,是一个权威部门,具有可相信的特性的第三方,我们所有的电脑都信任这个第三方。
数字签名
数字签名是一个使用自己的签名的方法。
使用只有我们自己知道的私钥(我假定你已经知道了什么是公钥,什么是私钥)
我这里有一个文件,比如说是 security.txt,以下是ethanyi(我)进行数字签名的步骤
- 计算这个security. txt 文件的Hash值(Hash值是一个固定长度的字符串)
- 通过ethanyi的私钥对其进行加密,得到的就是我的数字签名
数字证书流程
回到刚才的问题,数字证书帮我们进行了证明,证明我们自己的身份。
那么数字证书里面有什么呢?假如我叫ethanyi,这个证书是我的,那么它就有以下几个部分:
- ethanyi的公钥数据
- ethanyi的身份信息
- CA机构的数字签名
CA机构的数字签名内容是什么呢?就是ethanyi的公钥数据和身份信息(也就是前两点)
所以数字证书就是文件和数字签名的组合体。
同时每个人的电脑上都是有一个叫做根证书的东西,这个东西是每一次预先装好电脑之后就有的。根证书里面是有着CA机构的公钥。可以解开CA机构的数字签名
那么别人怎么知道我真的是我自己呢?
假如我想要联系的对象叫做DUCK,我把我的文件发给DUCK,那么DUCK要这么知道这个文件是我给她的呢?
首先我们要知道以下几点:
- 网上会有很多很多的数字证书(或者当DUCK收到这个文件的时候也会同时收到ethanyi的数字证书)
- DUCK使用电脑中一直有的CA机构的公钥(根证书)对数字证书进行解密,解密出来的就是Ethanyi的公钥数据和身份信息的Hash值
- DUCK继续对数字证书中的另外两项进行Hash运算,算出来的结果上一步的Hash值是一样的,就证明了两次算出来的ethanyi的身份信息是一样的,证明ethanyi就是ethanyi
- 那么DUCK就可以相信这个文件就是ethanyi给她的了。
参考视频: