HTTPS协议比HTTP协议高明在哪?

139 阅读4分钟

「这是我参与2022首次更文挑战的第26天,活动详情查看:2022首次更文挑战」。

HTTP、HTTPS都是最为常用的应用层网络通信协议,我们都知道HTTPS是HTTP协议的升级版,或者说是安全的HTTP。本篇文章我们来一起看一下HTTPS协议都高明在哪些地方。

HTTP 与 HTTPS的介绍

HTTP 协议全称Hyper Text Transfer Protocol,翻译过来就是超文本传输协议,位于TCP/IP四层模型当中的应用层。

HTTPS 协议全称Hyper Text Transfer Protocol over SecureSocket Layer,翻译过来就是基于安全通信层面的超文本传输协议,同样位于TCP/IP四层模型当中的应用层。

为什么 HTTP 是不安全的?

首先,HTTP协议的信息传输完全是以明文方式,没有使用任何加密手段。

这样黑客就可以从中截获,甚至篡改我们的信息,再发给我们的服务端。

我们上篇文章讲到数字加密技术,也是为了解决这中问题,那我们使用安全系数高的非对称加密技术好了。

这样即使黑客截获我们的数据和公钥也无法进行篡改和破解,这样是不是就行了呢?

答案是不行,黑客虽然无法破解我们此条消息,但是黑客可以伪装成服务端,将一个新的公钥和加密方式告诉客户端,这样黑客就可以获取到客户端接下来发送的信息,并且破解,篡改再用之前截获的公钥,将篡改的信息加密,再告诉客户端。这样神不知鬼不觉的,偷天换日最终让使我们的利益收到侵害。

HTTPS 的高明之处

HTTPS协议的高明之处就是引入了第三方机构CA来做身份担保,这也是SSL/TLS的核心。

HTTPS 在HTTP 的基础下加入SSL/TLS(TLS是SSL 3.0协议的升级版,和SSL协议的大体原理是相同的),构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法等技术完成互联网数据传输加密,实现互联网传输安全保护。

HTTPS = HTTP + SSL/TLS

image.png

HTTPS协议的特点:

  • 内容加密:采用混合加密技术,中间者无法直接查看传输内容

    客户端使用对称加密生成密钥对传输数据进行加密,然后使用非对称加密的公钥再对秘钥进行加密,所以网络上传输的数据是被秘钥加密的密文和用公钥加密后的秘密秘钥,因此即使被黑客截取,由于没有私钥,无法获取到加密明文的秘钥,便无法获取到明文数据。

  • 验证身份:通过证书认证客户端访问的是自己的服务器

    通过证书及CA担保机构可以确认是自己服务端发送的信息

    image.png

  • 数据完整性保障:防止传输的内容被中间人冒充或者篡

理解SSL/TLS加密解密的流程:

  1. 首先服务端需要将自己的公钥发给CA机构;
  2. CA机构将服务端公钥使用CA机构私钥加密,并将证书签名加密;
  3. 客户端向服务端发起请求;
  4. 服务端将CA证书发给客户端;
  5. 客户端检查服务端证书,通过CA机构提供的公钥对加密密文进行解密获得散列值(证书签名),同时将证书内容使用相同的散列算法进行Hash得到另一个散列值,比对两个散列值,如果两者相等则说明证书没问题,没问题就可以放心地使用机构公钥,解密出服务端的公钥Key1;
  6. 客户端生成一个用于对称加密的随机Key2,并用服务端的公钥Key1加密Key2,发送给服务端;
  7. 服务端用自己的私钥解密,得到对称加密密钥Key2;
  8. 最后,客户端与服务端用Key2对通信内容进行对称加密,解密。

image.png