哪些 CA 机构对于客户端来说是权威或者说是认可的呢?我们打开 IE 浏览器能看到客户端内置的 CA 机构的信息,包含了 CA 的公钥、签名算法、有效期等等...
服务器在与客户端通信的时候,就会将数字证书和数字签名出示给客户端了。
客户端拿到数字证书和数字签名后,先通过操作系统或者浏览器内置信任的 CA 机构找到对应 CA 机构的公钥对数字签名进行解密,然后采用同样的摘要算法计算数字证书的摘要。
如果自己计算的摘要与服务器发来的摘要一致,则证书是没有被篡改过的!
这样就防止了篡改!第三方拿不到 CA 机构的私钥,也就无法对摘要进行加密,如果是第三方伪造的签名自然在客户端也就无法解密,这就防止了伪造!
所以数字签名就是通过这种机制来保证数字证书被篡改和被伪造。具体流程如下: