HTTPS相比于HTTP要更安全,因为它是在HTTP的基础上,使用了SSL协议对传输的数据进行加密,防止数据被泄露,篡改,保证了安全性。
HTTPS同时使用了非对称加密和对称加密。
HTTPS的具体实现过程:
- 客户端发起一个HTTPS请求
- 服务端接收到请求,给客户端返回一个包含了公钥的CA证书
- 客户端接收,验证证书的合法性:不合法-发出警告;合法-进入下一步数据传输
- 客户端生成一个随机数(用作对称密钥),并且,使用服务端发来的公钥对随机数加密,传给服务端
- 服务端接收到被加密的随机数,使用自己的私钥对它解密 (这个传输随机数的过程就是非对称加密)。这样就得到了对称密钥,现在,客户端和服务端双方都持有了相同的对称密钥。
- 服务端就使用这个对称密钥对要传输的数据进行加密,发给客户端
- 客户端用相同的对称密钥对拿到的数据解密,得到了响应内容。
对称加密就是加密和解密用的是同一个密钥k。(6,7过程)
非对称加密是发送端使用公开的公钥a加密,然后接收端使用私密的私钥b解密。(4,5过程)
也就是说:客户端和服务端之间传输对称密钥的过程,使用的是非对称加密。之后的数据传输过程,使用的是对称加密。