谈一下HTTPS的加密传输过程

1 前情提要

(1)对称加密
通信双方采用同样的密钥进行加密和解密。

(2)非对称加密
通信双方加密和解密使用不同密钥,即每一方都有一对各自的公钥和密钥。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。

2 HTTPS的加密过程

HTTPS实际上就是HTTP协议先和SSL进行通信,再由SSL(443端口)和TCP进行通信,相当于在HTTP的身上披上了一层盔甲。
在这里插入图片描述
具体过程:

① 证书验证阶段:
1)浏览器发起 HTTPS 请求;
2)服务端返回 HTTPS 证书(包含服务端的公钥);
3)客户端验证证书是否合法,如果不合法则提示警告。

② 数据传输阶段:
1)当证书验证合法后,在本地生成随机数;
2)通过公钥加密随机数,并把加密后的随机数传输到服务端;
3)服务端通过私钥对随机数进行解密;
4)服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。

在这里插入图片描述
非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互(每次传输都需要传递通信双方的公钥),非对称加密的效率是无法接受的。

为了提高通信效率,保证一定的安全性,HTTPS在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式。具体做法是:发送密文的一方使用对方的公钥进行加密处理“对称的密钥”(随机数),然后对方用自己的私钥解密拿到“对称的密钥”(随机数),这样可以在确保交换的密钥安全的前提下,使用对称加密方式进行通信。所以,HTTPS 采用对称加密和非对称加密两者并用的混合加密机制。

猜你喜欢

转载自blog.csdn.net/glpghz/article/details/108316215