面试突击:为什么要用HTTPS?它有什么优点?

      最后更新:2022-07-16 09:22:13 手机定位技术交流文章

      说到HTTPS,我相信大多数人不是陌生人,因为大多数我们今天使用的网站都是基于HTTPS的,例如以下:

      所以问题是,他们为什么使用HTTPS?HTTPS的优点是什么?

      1.HTTP

      在我说HTTPS之前,让我们首先了解HTTP,因为HTTP是HTTPS通信的基础。HTTP(HyperText Transport Protocol)超文本传输协议,它用于向客户和服务器发送数据。使用HTTP是简单而方便的,但有三个致命的问题:

      1. 这些内容可以通过短信盗窃。
      2. 未能验证通信器的真实性可能导致伪造.
      3. 无法证明报告的完整性, 很容易伪造.

      鉴于上述问题,当前系统将使用HTTPS来取代HTTP。

      2.HTTPS

      首先来说,HTTPS不是新的协议,相反,基于HTTP协议,增加了加密机制SSL(Secure Socket Layer)或TLS(Transport Layer Security)。HTTPS = HTTP + 加密 + 认证 + 完整性保护.

      SSL 和 TLS

      SSL(Secure Socket Layer)最初由Webscape公司开发,是一个浏览器开发者。公司开发了SSL 3.0和3.0以前的版本,之后便将 SSL 交给了 IETF(Internet Engineering Task Force)Internet 工程任务组的手中,IETF使用SSL 3.TLS 1是基于0.0的,因此,TLS可以被认为是SSL的“新版本”。

      2.解决信任问题

      至于HTTS,首先解决的问题是信任问题,这就是身份验证的问题。除非解决了信任问题,否则将存在服务器伪造,这就是“中间攻击”的问题。所谓的中间人攻击意味着,通常情况下,客户会直接与服务端进行交互,但这里出现了一个“坏人”(中间人),它包含在客户端和服务器端之间,窃取和修改双方之间的通信内容,如下图所示:

      HTTPS是一个数字证书解决信任问题。那是服务器第一次创建的时候,向广泛接受的第三方平台申请可靠的数字证书,然后当客户端访问服务器时,服务器首先将给客户端一个数字证书,为了证明你是一个可靠的服务器,而非“中间人”。浏览器负责验证和验证数字证书的有效性,如果存在数字证书的问题,然后,客户会立即停止通讯,如果没有问题,则将执行后续程序,如图所示:取得数字证书后,您可以验证服务器的真实性。这解决了“中间攻击”的问题,它也解决了伪装的问题。

      2.2解决传输和完整性问题

      虽然上面我们已经解决了信任问题,然而因为通讯双方是明文通讯的,所以在通讯时依然存在通讯内容被窃听的风险,此时应该怎么办呢? 于是我们想到,使用加密来解决信息暴露的问题。

      加密的分类

      加密有两种主要类型:对称加密和非对称加密。

      • 在对称加密中,有一个共享秘钥,通过这把共享秘钥可以实现信息的加密和信息的解密,它的特点是加密和解密的速度很快,但因为共享秘钥的问题,一旦共享秘钥被截获,那么所谓的加密和解码也就是一纸空谈了。
      • 在非对称加密中,有两个秘密密钥:公钥和私钥,使用公钥加密信息,但不能解密信息,使用私钥解密信息。它的特点是服务器侧存储私钥,不对外暴露,只向客户端发送公共钥匙,还有其他人,即使他们得到公共钥匙,也无法解密加密的信息,所以此方式更安全,但非对称加密的执行速度较慢。

      HTTPS中的对称加密还是非对称加密? 使用对称加密,速度快,但不安全;使用不对称加密安全,但速度慢。 只有小孩做选择,成年人都要,HTTPS使用非对称加密和对称加密,其整个交互过程如下:

      HTTPS实现过程如下:

      1. 客户端使用HTTPS访问服务器。
      2. 服务器返回数字证书,并使用不对称加密生成客户端的公共密钥(由服务器本身保留的私人密钥)。
      3. 客户端验证数字证书的有效性,如无效,终止访问,如有效:
        1. 使用对称加密生成共享秘密密钥;
        2. 使用对称加密共享密钥加密数据;
        3. 共享密钥使用非对称加密的公共密钥加密(生成的对称加密)。
        4. 向服务器发送加密密钥和数据。
      4. 服务器使用私人密钥解密客户端共享密钥(通过对称加密生成),然后使用共享密钥解密数据的具体内容。
      5. 然后客户端和服务器最终与共享密钥加密内容交互。

      因此,HTTPS保证了安全性和效率,并符合鱼类和熊类的需要。

      使用加密的方式也间接的保证了数据的完整性问题,如果是不完整的数据或有多余的数据,那么在解密时会报错,这样就能间接的保证数据的完整性了。

      总结

      HTTP协议的使用存在一些问题,例如书面通信和中间人攻击,但这些问题已经在HTTPS中得到有效的解决,HTTPPS通过数字证书解决了中间人攻击的问题,并使用加密来解决书面通信和数据完整性的问题。


      如果您有兴趣了解更多内容和相关学习信息,请给我一个赞赏收集+反馈+跟随我,后面将有很多干货。
      我有一些面试问题、架构、设计和程序员面试所需的信息! 所有信息都安排在网络盘上,如果你需要的话,请下载! 我将免费回答[07]


      链接: https://juejin.cn/post/7119652684696649758

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/29803.html

          热门文章

          文章分类