在之前的文章中,我们聊了数字证书,以及它和数字签名的关系,知道了数字证书的作用和特点,那么今天我们来了解一下数字证书是如何工作的。

加密算法的意义

首先我们先来了解一下对称加密算法、非对称加密算法和消息摘要算法三者分别是什么含义。

  • 对称算法

一个密钥可以同时用作信息的加密和解密,也被称之为单密钥加密 。当消息发送方需要加密大量数据时使用对称加密,此时对称加密也被称为密钥加密。

对称加密

  • 非对称加密算法

对称加密使用的是同一个密钥,而非对称加密使用的是一对密钥,有公钥和私钥之分。如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。

非对称加密

  • 消息摘要算法

消息摘要算法用于产生散列值,主要用于确保信息传输的完整与无误,使用公钥对摘要信息进行加密,弥补摘要算法易破解的不足的同时还能用来验证消息是否完整无误,适用于数字签名。

消息摘要算法

接下来我们来了解数字证书的工作流程

  1. 客户端发送请求到服务端获取包含公钥A的CA数字证书,私钥B则保存在服务器端,随后开始验证证书的合法性
  2. 合法则取出其中的公钥A对生成随机码加密,向服务器发送加密后的随机码,作为后面传输数据时使用的对称加密算法的密钥。
  3. 服务端拿到加密后的随机码后用之前保存的私钥B进行解密,从而拿到原始随机码,用它来加密向客户端传输的内容数据,随即发送。
  4. 由于客户端保存了一份原始随机码,只要拿它作为对称加密的密钥即可解密传输过来的内容数据。
  5. 至此,客户端和服务端就建立了一种能安全高效地传输所有数据的通信连接了。

数字证书的工作流程

概况总结

  1. 双方通过数字证书确认身份,数字签名和原始信息组成了数字证书,通过公钥加解密拿到摘要算法处理后的摘要消息,并比对原始消息确认信息是否完整无误。
  2. 由于性能损耗是非对称加密的最大弊端,所以基于HTTPS进行大量数据传输时,为了平衡效率和安全性,需要将非对称加密和对称加密算法结合起来。
  3. 对称公钥通过公钥加密,只有另一方的私钥才能解密,解开后方能使用它解密传输的内容,从此利用对称公钥保持连接通信。