目录
本章要点
- 主要掌握
HTTP
引入SSL
后的加密流程! - 掌握对称加密和非对称加密的异同!
HTTPS
我们刚刚学完HTTP
,咋有来了一个HTTPS
呀,这和HTTP
有啥关系么?
对称加密
如何对数据进行加密呢?
我们可以联系实际生活,这里的密钥就相当于钥匙,通过钥匙我们的客户端和服务器都可以对锁进行解锁操作!
我们的HTTP
也是通过这里的密钥进行加密!
对称加密就是通过一个密钥将数据报进行加密操作,然后客户端话服务器通过这个共有的秘钥可以对数据报进行加密和解密!
这里通过将密钥,双方共享,服务器和客户端就可以都数据报进行加密解密操作!
密钥传输
现在又有一个问题就是我们的秘钥也是需要进行网络传输的,也就会被中间有些设备拿到!中间设备拿到后,也可以对数据进行解密操作,所以白加密了!
还有就是这里密钥肯定要每一台客户端拥有不一样的密钥,然后将密钥给服务器!如果大家共用一个密钥的话,你想知道密钥开一台客户端就好了!
非对称加密
对称加密存在的问题就是密钥会被其他设备拿到!
我们可不可以对密钥进行加密就解决了这个问题!
这时就引入了非对称加密方式!!
非对称加密就是套娃!我们再给密钥加上一把锁!
这里就引入了私钥和公钥:
- 公钥:服务器和客户端大家共享的密钥,通过这个密钥可以对对称密钥进行加密!
- 私钥:只有自己知道的密钥,通过这个密钥可以对对称密钥进行解密操作!
这里我们的公钥,服务器和客户端都会生成一个公钥,然后将公钥发出去,然后大家都拿到了这个公钥,然后私钥留着!然后当服务器和客户端生成一个对称密钥后,会将该对称密钥用这个公钥进行加密后发送,然后我们拿到数据报和加密后的对称密钥后,通过私钥对已经加密后的对称密钥进行解密,拿到对称密钥,然后通过对称密钥对数据报进行解密操作!
我们一开始将公钥发出去,如果要进行对称密钥传输,就应该事先通过公钥对对称密钥进行加密后再进行传输!而这时中间设备拿到加密后的对称密钥和公钥也无济于事!公钥只能用来加密操作,不能解密!
然后我们的另一方拿到加密后的对称密钥后通过自己私有的私钥对对称密钥进行解密!然后就可以对数据报文进行解密操作了!
难道这样就安全了嘛?如果有中间设备自己搞个公钥和私钥冒充会怎么样?
中间人攻击如何解决呢?
这个非对称密钥这么好使,为啥不直接用来加密数据报呢?