HTTPS原理
1.对称加密和非对称加密
对称加密
对称加密的原理就是客户端和服务端商量好使用同一种密钥,由客户端发起请求,请求中携带要使用的密钥给服务端,服务端根据密钥进行解密。
如下图:
对称加密的缺点:
- 因为客户端和服务端要使用同一种密钥,所以客户端要在传输过程中将密钥也传输出服务端,那么在这个过程中,密钥有可能被截获,那么数据就不再安全。所以就引入了非对称加密
非对称加密
非对称加密的原理是加密和解密使用的不是同一种密钥,分为 公钥(public key)
和私钥(private key)
,公钥和私钥是一对,并且这个公钥
和私钥
只有你有。在传输数据的时候将公钥发送给对方,对方用发过来的公钥对数据进行加密,然后这个数据只有自己的私钥可以解开。
公钥和私钥的关系大致如下:
- 自己公钥的数据只有自己的私钥可以解开
- 自己的公钥可以给别人,别人用公钥对数据加密,自己的私钥对数据解密
通俗来讲,把公钥
比作锁,把私钥
比作钥匙,你将锁给别人,别人用你的锁锁上了东西,那么这个锁只有你才可以解开。
如下图:
2.中间人攻击-Man-in-the-Mobile
在非对称加密中,依然可能存在风险,可能会遇见”中间人攻击“
什么是中间人攻击?
看下图:
此时我们发现客户端和服务端因为无法识别是否是真正的客户端
和服务端
再发请求,所以就引出了CA证书,第三方授权
中间人攻击简单来说就是在客户端和服务端之间拦截并篡改数据
下面讲一个例子来说明:
小明给小红发消息
CA-Certificate Authority
CA是证书颁发机构,主要解决身份验证
有了CA以后,结构图就如下