HTTPS加密流程

本文尽量用最小的篇幅来介绍HTTPS的加密过程,如果还看不懂可以参考文末尾的文章。

加密算法

先简单介绍一下HTTPS中使用的是混合加密算法,即对称加密和非对称加密的混合使用:

1.对称加密:顾名思义就是加密和解密都是使用同一个密钥。
优点:算法公开、计算量小、加密速度快、加密效率高,适合加密比较大的数据。
缺点:双方信息传输时需要携带秘钥,秘钥一旦被获取会导致安全问题。
在这里插入图片描述

2.非对称加密:非对称加密就是加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。一般来说,服务端会同时拥有公钥和私钥,将公钥公开发送给客户端。传输的信息由公钥进行加密,再由服务器持有的私钥进行解密。
优点:算法公开,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高。
缺点:计算量比较大,加密和解密速度相比对称加密慢很多。
在这里插入图片描述

HTTPS加密流程

HTTPS就是在HTTP的基础上增加了TLS/SSL协议保证安全性。安全性主要是由CA证书(权威认证)和混合加密算法(对称加密+非对称加密)组成的。详细过程可以看下面的图。
在这里插入图片描述
只要你看懂了上面的对称加密、非对称加密流程,HTTPS的流程其实也很简单。

  1. 第123步:客户端获取服务端的CA证书(包含非对称加密的公钥),并进行验证。CA证书是需要花钱申请的,相当于认证机构为你的网站进行背书,确保网站的安全性。申请成功后,会产生一对公钥私钥。
  2. 第456步:客户端生成随机Key(作为对称加密的秘钥),由前面获取的公钥进行加密,并发送给服务端。服务端用私钥对解密,得到随机Key。
  3. 第78步:之后的传输过程中,都使用对称加密进行传输。服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

简单的说,HTTPS的传输过程使用的是对称加密(随机Key),因为对称加密不够安全,所以使用非对称加密的公钥对随机Key进行加密,由服务端持有的私钥进行解密,这样就不会在传输过程中暴露对称加密的公钥(随机Key)了。

想要有更详细的了解可以看这篇文章:
https://segmentfault.com/a/1190000021494676

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值