10-尚硅谷-微信支付-支付安全-数字证书_哔哩哔哩_bilibili
我Doug谎称自己手中公钥是Bob的公钥
然后Doug就可以用自己私钥做成数字签名给pat
而Pat用假的公钥进行验签
Pat误以为是在跟Bob进行通信,实际上是在跟Doug进行通信
谁都可以发送公钥,怎样判断公钥是真实的呢?
解决这个问题的答案就是数字证书
为了防止公钥被盗,Bob的公钥就放到数字证书当中,不采用公开的形式了
所有者:一般是包含某个人,某个公司,域名
颁发者,CA ,有效期证书的使用期限,一旦超过期限就会被作废
签名哈希算法,证书本身也是一种信息,为了防止证书本身被篡改,CA在颁发证书的时候,指定证书的摘要,来计算证书的摘要
指纹算法生成的东西,保证证书的完整性
签名算法,用于生成签名,确保证书是由CA生成的,序列号是证书的唯一标识
看一下数字证书的流程
序列号是证书的唯一标
第一步利用数字证书信息记录的算法,根据证书信息,计算摘要,也就是指纹
第二步,然后证书根据他的签名算法,利用CA的私钥,将指纹进行加密,生成证书的签名
最后把证书和签名一起发布,得到签名
最后Bob得到数字证书
之后为了区分是不是Bob,签名再加上数字证书就行了
利用他的算法解析证书
之后将摘要进行比较,比较通过说明验签成功
验签通过,再取出公钥,因为在证书中定义证书所有者了,所以Dog就无法伪造证书了
此时此刻就保证了发送人和信件的信息一致性了