目录
[一、了解 HTTPS 协议](#一、了解 HTTPS 协议)
[1、升级版的 HTTP 协议](#1、升级版的 HTTP 协议)
[3、CA 证书和数字签名](#3、CA 证书和数字签名)
一、了解 HTTPS 协议
1、升级版的 HTTP 协议
- HTTPS 也是⼀个应用层协议,是在 HTTP 协议的基础上引入了一个加密层 SSL/TSL。加密是 HTTPS 协议的一个重要的保护措施。
2、理解"加密"
- "加密"是指将传输的明文经过一些手段转化为密文。
- "解密"是指将密文再次通过一些手段转化为明文。
- 在加密和解密的过程中,通常需要一个或多个中间数据进行辅助,这样的数据称为"密钥"。
- 加密的方式有很多,但整体可以分为"对称加密"和"非对称加密"两大类。
二、对称加密
1、理解对称加密
- 对称加密是指通过一个密钥,既可以将明文变为密文,也可以将密文变为明文,即对称加密使用的算法是可逆的。
- 假设数据被截获,由于黑客不知道密钥是什么,因此无法进行解密,数据安全。
对称加密
2、对称加密存在的问题
- 对于服务器端,需要与许多客户端进行数据交互,如果所有交互都使用同一个密钥,则密钥会非常容易被破解(比如伪装成客户端的黑客)。
- 这种情况下,一旦密钥被破解,则使用该密钥加密的所有数据,都将暴露。
- 但如果给每个客户端都提供一个不同的密钥,则服务器需要维护的密钥数据量会变得非常庞大,维护成本也会变大。
- 为了避免以上情况,我们将采取非对称加密的方法。
三、非对称加密
1、理解非对称加密
- 非对称加密是指,密钥为一组,分成公钥和私钥。公钥公开,私钥由服务器端持有,不对外公开。
- 公钥加密的数据只有私钥能解密,私钥加密的数据只有公钥能解密。
- 在客户端每次与服务器建立连接时,服务器端将持有的公钥发送给客户端。
- 后续交互中,客户端就可以使用公钥加密数据,并将加密后的数据安全的传输到服务端,而不用担心数据暴露(因为只有私钥能解密)。
- 但是还有一个问题,非对称加密最大的缺点在于运算速度非常慢。
- 因此,非对称加密常用在客户端和服务器"协商密钥"的阶段,后续的数据传输,仍使用对称加密。
非对称加密
2、中间人攻击
- 以上的非对称加密混合对称加密的方法,看似天衣无缝,但实际上仍存在一个问题,即"中间人攻击"。
- 通过中间人攻击,黑客可以获取到对称密钥。
中间人攻击
3、CA 证书和数字签名
- CA 证书是指,服务端在使用HTTPS前,需要向 CA 机构申领一份独一无二的数字证书,数字证书里含有证书申请者的信息、公钥信息等。
- 在申请证书时,CA 机构会将数字证书中的各个字段,通过一系列算法,计算得到校验和。
- 再使用 CA 机构自己的私钥,加密这个校验和,最终得到的就是数字签名,数字签名包含在 CA 机构发布的证书中。
- CA 机构的公钥,会被内置到各个客户端中。
- 在客户端和服务器进行交互时,服务器会将证书发送给客户端。
- 客户端得到证书后,根据证书的各个字段,使用和CA机构一样的算法,计算得出校验和。
- 再使用内置的公钥,解密证书中的数字签名,得到又一个校验和。
- 将两个校验和进行比较,如果相同,则证书没有被篡改,反之则发现证书已经被篡改,发现发生了中间人攻击,并以此采取后续措施。
四、总结
- 以上过程中,使用了三组密钥,分别是:
用于加密普通数据的对称密钥;
由服务端提供的,一组用于加密对称密钥的非对称密钥;
由CA机构提供的,一组用于加密服务端信息(包括公钥)的非对称公钥。 - 通过以上步骤,HTTPS协议通过三组密钥,有效的保护了网络数据传输的安全。