Https是通过对称加密,非对称加密以及数字证书的方式来保证数据安全传输的。
-
对称加密:比如说客户端和服务端需要发送一个数据,用了保证数据的安全性,需要对数据进行加密,客户端和服务端用的同一把密钥,客户端使用这把密钥对数据进行加密,服务端用这把密钥对数据进行解密,这个就是对称加密。
对称加密存在安全问题,比如在客户端和服务端之间有一个中间人,它劫持了服务端发送给客户端的密钥和客户端利用这个密钥加密后的数据,然后使用这个密钥伪造另一份数据发送给服务 端,服务端也不认识就解密后当作正常数据处理了。
-
非对称加密:指的是服务端用私钥进行加密,客户端用公钥进行加密。
但是这种方式也会存在问题,中间人会把服务端发送给客户端的公钥劫持,然后伪造一份自己的公钥和私钥发送给客户端,然后客户端用这个公钥加密数据后被中间人劫持,中间人用自己的私钥解密数据,然后利用从服务端劫持过来的公钥加密一份数据,服务端就接收到了错误的数据,但是服务端不知道。
-
数字证书:为了解决安全问题,就需要到公信度强的网站上去申请证书,比如到ca上去申请证书。当要发送数据的时候,服务端将公钥,私钥以及证书发送给客户端,即使中间人劫持到了,那么伪造的数字证书也会被客户端识别,这样就能保证数据能够安全传输了。