HTTPS 相比 HTTP 安全性在哪?

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

HTTPS 安全性

(1)HTTP和HTTPS区别

  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)图解

HTTPS 相比 HTTP 安全性在哪?

(6)结语

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