00:00
这一节呢,我们来讲数字证书,那这个例子的情况呢,有点复杂。首先,Dog想要欺骗pet,他呢将自己的公钥发送给pet,并且谎称呢这就是Bob的公钥,此时呢,Pet实际拥有的是do的公钥,因此呢,Do就可以冒充Bob用自己的私钥做成数字签名写信给pet。那pet呢?用假的Bob的公钥进行验签,验签呢是可以成功的。Pet呢,误以为是在和Bob通信,但其实呢,对方是dog,那这个场景呢,就相当于你误以为是在和微信支付的服务器进行通信,但实际上呢,是在和黑客通信。所以这里有一个公钥信任的问题,其实谁都可以发布公钥,所以我们还缺少一个防止黑客伪造公钥的手段,也就是说,怎么来判断这个公钥就是Bob的呢?解决这个问题的答案呢?就是数字证书。
01:06
我们先来看一下什么是数字证书。一个证书呢,包含有很多的信息,我们挑几个重要的来解释一下,第一呢就是公钥,为了防止鲍B的公钥被伪造,公钥呢不会采用直接公开发布的形式了,那它会被放在数字证书中,如果是Bob的数字证书,那么Bob的公钥就会被包含在这个数字证书中。所有者,这里的所有者呢,指的是这个证书的申请者,一般呢是某个人,或者是某个公司,或者是某个公司的网址域名,那在刚才我们描述的场景当中呢,证书的所有者就是Bob。颁发者数字证书呢,要由一个第三方的机构来颁发,这个第三方机构就是我们常常听说的CA,也就是证书认证机构,CA呢具有极高的可信度,由他来给各个公钥进行签名,用自身的信誉来保证公钥没有办法被伪造,是非成可信的。
02:11
有效期,也就是证书的使用期限,过了有效期呢,证书就会被作废,不能使用了,需要重新申请。签名哈希算法其实就是我们前面所说的摘要算法,证书的存在呢,是为了数据传输的安全,那证书本身也是一组信息,为了防止证书本身被篡改,那CA在颁发证书的时候呢,根据指定的摘要算法计算证书的摘要,那有的时候呢,我们也管它叫证书的指纹。然后呢,将证书的指纹也放在证书的基本信息里。指纹,那么它的目的呢?就是为了保证证书数据的完整性和不可被篡改性。接下来呢,就是签名算法生成签名,确保证书呢是由CA签发的。
03:03
最后呢,序列号,序列号呢,是证书的唯一的标识。接下来呢,我们来看一下CA为Bob颁发数字证书的具体的流程,那么首先呢,CA用证书信息中指定的哈希算法。根据证书信息计算整个证书的摘要,也就是证书的指纹,然后呢,CA根据证书当中的签名算法,用CA自己的私钥将摘要进行加密,生成呢证书的签名。最后呢,把签名和证书的基本信息一起发布,那么Bob呢,就得到了一个数字证书。Bob拿到数字证书以后呢,就可以放心了,他再给pad写信,只要在签名的同时再附上这个数字证书就可以了。派收到信之后呢,第一件事,先把数字证书从信件当中取出来。
04:03
接着呢,对数字证书当中的证书签名进行验证,那流程和前面我们做的验签流程呢,其实是类似的。Pett呢用证书信息中指定的哈希算法根据证书信息计算整个证书的摘要,并且呢使用CA的公钥从数字证书的签名中解析出数字证书的摘要,然后将两个摘要呢进行比较,如果两个摘要一致,则说明我们的验签是通过的。那么如果验签通过了,Pet呢就可以从数字证书中获取Bob的公钥了。因为在数字证书中定义了证书的所有者,这样呢,Do就没有办法去伪造数字证书了,因为他向CA申请数字证书的时候,必须提供真实的身份,那么CA呢,也会对这个身份进行核实。那么经过前面的步骤呢?我们已经可以确认pet拿到的Bob的样呢是真实的。
05:03
接下来需要使用鲍勃的公钥对信件的签名进行验证。那么和前面一样,需要先用哈希算法计算信件的摘要,然后呢,用刚刚从数字证书中得到的Bob的公钥对信件的签名呢进行解密,得到信件的摘要。接下来呢,还是需要将两个摘要进行比较,如果一致呢,则验签通过。那么经过一系列的步骤呢,我们就可以确认和通信的一定是Bob,并且呢,消息也没有被篡改过,那么此时此刻呢,Pet就可以放心的读取信件的内容了。
我来说两句