HTTPS原理解析

目录

1. 明文传输

我们知道HTTP传输的都是明文数据,黑客很容易截获到传输的数据,安全性很差,相当于在互联网上裸奔。对于敏感数据需要用HTTPS传输,那么HTTPS怎么保证数据安全的呢?这要从对称加密和非对称加密讲起。

2. 对称加密

所谓的对称加密,就是对数据的加密和解密都是用的同一个密钥

这里传输的数据不是明文了,而是用密码加密后的密文,黑客截获到了密文也不知道原始数据是什么,但是有以下问题:

  1. 客户端和服务端都需要存储密钥,服务端可能有大量的客户端连接,如果每个客户端与服务端用的密钥都一样的话,所有客户端都用一样的密钥,等于没有加密。如果服务端和客户端之间的密钥是各不相同的,那么服务端需要维护大量的密钥,存储成本很大
  2. 服务端和客户端最初开始协商密钥的过程没办法保证不被黑客截获,后续数据传输仍然不安全

针对以上问题,需要引入非对称加密

3. 非对称加密

与对称加密客户端和服务端只有一个密钥不同的是,非对称加密存在公钥和私钥两种密钥,特点是公钥加密过的数据私钥可以解密,私钥加密过的数据公钥可以解密。

客户端与服务端数据交互过程如下:

  1. 首先公钥和私钥是存储在服务端的,客户端第一步是要请求服务端拿到公钥
  2. 客户端用拿到的公钥加密数据并发送给服务端

我们来看一下这个过程有什么问题,首先客户端向服务端发送数据的过程肯定是安全的,因为只有服务端有私钥可以解密数据,但是服务端怎么向客户端安全地发送数据呢?

  1. 服务端不能用公钥加密数据,因为客户端没有私钥解不开
  2. 服务端用私钥加密数据,客户端可以解密,但是同样的黑客也能用从服务端那里获取的公钥解密数据,所以还是不安全的

所以需要对称加密和非对称加密结合起来解决这个问题

4. 对称加密+非对称加密

相关文章