浅析HTTPS加密传输协议的基本原理

在这里插入图片描述

百度百科摘要:
  HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

PS:HTTP 三次握手相对简单,只确认网络联通,即可通过常规流程进行数据传输,具体详情不过赘述。

1. HTTPS & HTTP

  1. HTTPS 是具有安全性的 SSL 加密传输协议 ,HTTP是超文本传输协议,信息是明文传输
  2. HTTPS 浏览器显示绿色安全锁,HTTP 无显示或显示不安全
  3. HTTPS 标准端口443 ,HTTP 标准端口80
  4. HTTPS 基于传输层,HTTP 基于应用层
  5. HTTPS 比 HTTP更加安全搜索引擎更友好

2. HTTPS的握手过程相对比较复杂

原因:他需要有加密传输的一个过程,并且要确定最后我们数据传输的时候要用到的真正的密钥

3. 公钥 & 私钥

  1. 私钥:存放在服务器上的解密工具
  2. 公钥:都能拿到的一串加密的字符串
  3. 原理:公钥与私钥主要用于握手时的传输,即待传输的数据先通过公钥加密,传输到服务器后再由私钥解密 。因此即使有抓包截取,也无私钥解密。

4. HTTPS的握手详解:

流程:

  1. 在这个传输的过程当中客户端会先生成一个随机数,然后传输到服务端,同时中间还会带上客户端这边支持的一个加密套件(有很多不同的加密套件)。
  2. 然后服务端拿到这个随机数之后会先存着,同时服务端也生成一个随机数,这个随机数会伴随服务端的证书,也就是公钥,一起传输给客户端。
  3. 客户端拿到了服务端的随机数之后也先存着,接下来通过服务端传给他的这个公钥,会生成一个预主秘钥。
  4. 生成预主秘钥过程中也会有生成一个随机数(所以总共是有三个随机数产生)。然后生成这个随机数之后,再用公钥加密了,传输给服务器这边。
  5. 这个数据传输到服务器之后,服务器通过私钥解密拿到了预主秘钥,就是随机字符串,然后客户端和服务端同时对这三个随机数进行一个算法的操作,就生成一个主秘钥。
  6. 有了主秘钥之后,那么,后期数据的传输,则全部是通过主秘钥进行过加密的。

要点:

  1. 这个过程就是一个没有办法被中间人解释的一个过程。因为他使用的是公钥进行加密的数据,只有服务端这边有私钥进行解密。
  2. 由于会涉及到一个加密套件,因为最终服务端会选择一个加密套件,要客户端这边支持的,然后两边确定同时使用这同一个加密套件,对这三个随机数进行一个算法的操作,生成一个主秘钥。
  3. 因为最后一个随机数是只有客户端和服务端他们自己知道的。中间人是根本拿不到的,所以,他们生产的这个主秘钥也是中间人没有办法破解的。
  4. 因为两边主秘钥是一样的,所以两边都能够对数据加密之后进行一个解密,那么中间人因为没有办法知道这个主秘钥,即没有办法对数据进行解密。

至此,这中间的一个数据传输即变成了一个安全的传输!

5. 图解

在这里插入图片描述

6. HTTPS的应用面

目前互联网极度开放的时代下,为确保数据传输,防止劫持,HTTPS极为重要。

  1. 电商系统、邮箱等用户主导型网站
  2. 支付系统、金融等高私密性网站
  3. 以搜索引擎为主要流量来源网站
  4. 注重用户体验的网站

HTTPS 安全性相对 HTTP是有巨大提升的,但是互联网的安全永远是相对的,绝对安全是不存在的。

发布了40 篇原创文章 · 获赞 31 · 访问量 2769

猜你喜欢

转载自blog.csdn.net/CodingmanNAN/article/details/104367061