https

作者: 9吧和9说9话 | 来源:发表于2020-02-22 13:54 被阅读0次

为啥需要https

http传输中 数据都是明文传输的,很容易被”中间人“窃取、伪造、篡改。

为啥需要https 图片来源:极客时间

实现方案

加入安全层 TSL/SSL;安全层 主要负责两个功能:对数据进行加密和解密。

图片来源:极客时间

加密过程

第一版 使用对称加密

使用对称加密 图片来源:极客时间

总的来说比较简单:

  1. clientserver发送了支持的加密算法和client-random
  2. server 收到之后,给出了约定的加密算法和server-random
  3. client 使用 client-randomserver-random 计算得出密钥,
  4. 使用计算出来的密钥 加密数据 ,通过TCP传输
  5. server 使用 client-randomserver-random 计算得出密钥, 解密数据

存在的问题:

  1. 因为发送加密套件和client-random server-random 以及计算密钥的方法都是明文公开的,所以依然能够被劫持和攻击。

第二版 使用非对称加密

非对称加密: 非对称加密算法有 A、B 两把密钥,如果你用 A 密钥来加密,那么只能使用 B 密钥来解密;反过来,如果你要 B 密钥来加密,那么只能用 A 密钥来解密。

使用非对称加密 图片来源:极客时间

过程:

  1. clientserver发送了支持的加密算法
  2. server 给出约定的假面方法和公钥
  3. client 使用公钥进行加密数据,TCP 传输
  4. server收到数据,使用私钥进行解密

存在问题:

  1. 非对称加密的效率相比对称加密效率很低。
  2. 无法保证服务器发送给浏览器的数据安全

第三版 混合加密

混合加密 图片来源:极客时间

这个流程有点复杂:
第一步: 双方需要同步三个随机数client-random server-random pre-master,使用相同的方法来生成对称加密的密钥。
第二步: 使用对称加密传输数据

具体第一步:

  1. client 发送 对称加密套件列表+非对称加密套件列表+client-randomserver
  2. server给出约定的对称加密算法+非对称加密算法+server-random+公钥
  3. client 生成pre-master随机数,通过公钥和约定的非对称加密算法加密发送给server.
  4. server 拿到加密的pre-master随机数,使用私钥解密,得到pre-master
    这样双方都获取到了三个随机数。

第二步:

  1. 使用三个随机数 client-random server-random pre-master 生成master-secret(对称加密的密钥)
  2. 使用密钥 + 约定的对称加密算法进行加密数据,TCP 传输
  3. server 使用三个随机数 client-random server-random pre-master 生成master-secret(对称加密的密钥),解密数据。

存在的问题:

通过对称和非对称混合方式,我们完美地实现了数据的加密传输。不过这种方式依然存在着问题,比如我要打开极客时间的官网,但是黑客通过 DNS 劫持将极客时间官网的 IP 地址替换成了黑客的 IP 地址,这样我访问的其实是黑客的服务器了,黑客就可以在自己的服务器上实现公钥和私钥,而对浏览器来说,它完全不知道现在访问的是个黑客的站点。

所以我们还需要服务器向浏览器提供证明“我就是我”,那怎么证明呢?

添加数字证书(三方公正机构)

相关文章

  • https VS https

    HTTPS=SSL+HTTPHTTP协议传输的数据是未加密的 ,也就是明文,因此使用HTTP协议传输隐私信息非常不...

  • HTTPS

    什么是HTTPS HTTPS(全称:Hypertext Transfer Protocol over Secure...

  • HTTPS

    HTTP 有以下安全性问题: 使用明文进行通信,内容可能会被窃听;(请求时,需加密) 不验证通信方的身份,通信方的...

  • HTTPS

    站点证书的有效性 SSL 自身不要求用户检查Web服务器证书,但大部分现代浏览器都会对证书进行简单的完整性检查,并...

  • Https

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采...

  • HTTPS

    1.为什么要有HTTPS2.HTTPS的工作原理3.密码学4.HTTPS的优缺点5.在iOS中使用HTTPS 为什...

  • HTTPS

    精悍小文:https是如何工作的? - 简书 急速开发系列——打造完善的https使用方案 - 简书

  • https

    摘自[白话Https]https://www.cnblogs.com/xinzhao/p/4949344.html...

  • HTTPS

    一、背景 对于大规模的购物、银行事务或访问机密数据来说,这些重要的事务需要将 HTTP和数字加密技术结合起来使用,...

  • HTTPS

    在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效地防止这些问题。本篇...

网友评论

      本文标题:https

      本文链接:https://www.haomeiwen.com/subject/uzdwnctx.html