Https 加密过程详解

一、Https介绍

HTTPS 是 HyperText Transfer Protocol Secure 缩写,相较于 HTTP,突出了安全!因为在网络信息传输过程中服务端和客户端的信息都会被 SSL,TSL 加密,在传输的过程中,即便被截取了,别人也不知道你们的会话内容是什么,只有收发方才有对应的密钥去解开,再对内容进行回应。其中的原理就是:服务端和客户端都有两把钥匙:公钥和私钥,公钥用来加密数据,同时只能用自己的私钥去解开,这样及时公钥被截获,密文内容也破解不了。

HTTP: 直接通过明文在浏览器和服务器之间传递信息。
HTTPS: 采用 对称加密 和 非对称加密 结合的方式来保护浏览器和服务端之间的通信安全。

对称加密
对称加密: 加密和解密都是同一个密钥。

非对称加密
非对称加密: 密钥成对出现,分为公钥和私钥,公钥和私钥之间不能互相推导,公钥加密需要私钥解密,私钥加密需要公钥解密

两种加密区别
对称加密速度快,非对称加密速度慢 (相对慢 100 倍)。
对称加密相对非对称加密不安全,只要密钥暴露和,明文传递没有区别;非对称加密可以将公钥暴露,供客户端加密,服务端使用私钥解密。


二、Https加密流程

SSL: 在 TCP 协议之上,应用层之下运作,是用来传输敏感信息的。使用 SSL 连接的 URL 地址以 https 开头,而不是 http。

  1. 浏览器使用 Https 的 URL 访问服务器,建立 SSL 链接。
  2. 服务器接收到 SSL 链接后,发送非对称加密的公钥 A 给浏览器。
  3. 浏览器生成随机数,作为对称加密的密钥 B
  4. 浏览器使用服务器返回的公钥 A,对自己生成的对称加密密钥 B 进行加密,得到密钥 C
  5. 浏览器将密钥 C 发送给服务器
  6. 服务器使用自己的私钥 D 对接受的密钥 C 进行解密,得到对称加密密钥 B。
  7. 浏览器和服务器之间使用密钥 B 作为对称加密密钥进行通信。

通过上面的流程浏览器和服务器之间共享一个对称加密密钥 B,而且不会被人监听和拦截到,之后的消息传递,使用密钥 B 进行对称加密。

优点: 非对称加密只使用了一次,后续所有的通信消息都是用对称加密,效率比非对称加密高。


三、数字证书

1.非对称加密的缺点

当服务器发送公钥给客户端, 中间人截获公钥 ,将 中间人自己的公钥 冒充服务器的公钥发送给客户端。之后客户端会用 中间人的的公钥 来加密自己生成的 对称密钥 。然后把加密的密钥发送给服务器,这时中间人又把密钥截取,中间人用自己的私钥把加密的密钥进行解密,解密后中间人就能获取 对称加密的密钥 。

注意: 非对称加密之所以不安全,因为客户端不知道这把公钥是不是属于服务器的。

2.认证中心 (CA)
一个拥有公信力、大家都认可的认证中心,数字证书认证机构。

  • 服务器在给客户端传输公钥的过程中,会把 公钥和服务器的个人信 息通过 hash 算法 生成 信息摘要 。
    在这里插入图片描述

  • 为了 防止信息摘要被调换 ,服务器会采用 CA 提供的私钥 对信息摘要进行加密来形成 数组签名 。在这里插入图片描述

  • 最后会把原来没 Hash 算法 之前的 个人信息、公钥及、数字签名 合并在一起,形成 数字证书。在这里插入图片描述

  • 客户端拿到 数字证书 之后,使用 CA 提供的公钥 对数字证书里的数字签名进行解密来得到信息摘要,然后对数字证书里服务器的公钥及个人信息进行 Hash 得到 另一份信息摘要 。

  • 最后将 两份信息摘要对比, 如果一样则证明是服务器,否则就是中间人。在这里插入图片描述

发布了196 篇原创文章 · 获赞 878 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/qq_33945246/article/details/104414338