【计算机网络基础】HTTP和HTTPS有什么区别?HTTPS功能实现详述!

HTTP和HTTPS有什么区别?

一.首先说一下HTTP的缺点:

  1. 通信使用明文(不加密),内容可能会被窃听
  2. 不验证通信方的身份,因此又可能遭遇伪装
  3. 违法证明报文的完整性,所以 又可能已经遭篡改。

那么https肯定会弥补前面这几大主要问题。

二.简概HTTPS

HTTP+加密+认证+完整性保护 = HTTPS

三.HTTPS功能实现详述

3.1HTTPS就是身披SSL协议这层外壳的http

HTTPS并非 是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已

通常,HTTP直接和TCP通信,当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了,简单的说,HTTPS就是身披SSL协议这层外壳的http;
在采用 SSL 后,HTTP 就拥有了 HTTPS 的加密证书完整性保护这些功能。

3.1.1加密实现

共享**:
加密和解密同用一个**的方式称为共享**加密(Common key crypto system),也被叫做对称**加密。
缺点:在**传输过程中,**可能被攻击者窃取,这样一来也就失去了加密的意义,所以基本使用公开**加密

公开**加密:

发送密文的一方使用对方的公开**进 行加密处理,对方收到被加密的信息后,再使用自己的私有** 进行解密

HTTPS采用混合加密机制:
HTTPS 采用共享**加密和公开**加密两者并用的混合加密 机制。若**能够实现安全交换,那么有可能会考虑仅使用公开 **加密来通信。但是公开**加密与共享**加密相比,其处 理速度要慢。

3.1.2证明公开**正确性的证书

公开**缺点:
无法证明公开**本身就是货真价实的公开**。
例如:

正准备和某台服务器 建立公开**加密方式下的通信时,如何证明收到的公开**就是原
本预想的那台服务器发行的公开**。或许在公开**传输途中,真 正的公开**已经被攻击者替换掉了。

如何解决上面问题?
可以使用由数字证书认证机构(CA,Certificate Authority)和其相关机关颁发的公开**证书。

证书 作用步骤:

  1. 服务器 的运营人员向数字证书认证机构提出公开**的申请。数字证书认证 机构在判明提出申请者的身份之后,会对已申请的公开**做数字签 名,然后分配这个已签名的公开**,并将该公开**放入公钥证书 后绑定在一起。
  2. 接到证书的客户端可使用数字证书认证机构的公开**,对那张证书 上的数字签名进行验证,一旦验证通过,客户端便可明确两件事: 一,认证服务器的公开**的是真实有效的数字证书认证机构。 二, 服务器的公开**是值得信赖的。

3.1.3完整性保护

HTTPS通信步骤:
【计算机网络基础】HTTP和HTTPS有什么区别?HTTPS功能实现详述!
步骤 1: 客户端通过发送 Client Hello 报文开始 SSL 通信。报文中包 含客户端支持的 SSL 的指定版本、加密组件(Cipher Suite)列表(所 使用的加密算法及**长度等)。

步骤 2: 服务器可进行 SSL 通信时,会以 Server Hello 报文作为应答。和客户端一样,在报文中包含 SSL 版本以及加密组件。服务器的 加密组件内容是从接收到的客户端加密组件内筛选出来的。

步骤 3: 之后服务器发送 Certificate 报文。报文中包含公开**证 书。

步骤 4: 最后服务器发送 Server Hello Done 报文通知客户端,最初阶 段的 SSL 握手协商部分结束。

步骤 5: SSL 第一次握手结束之后,客户端以 Client Key Exchange 报 文作为回应。报文中包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串。该报文已用步骤 3 中的公开**进行加密。

步骤 6: 接着客户端继续发送 Change Cipher Spec 报文。该报文会提 示服务器,在此报文之后的通信会采用 Pre-master secret **加密。

步骤 7: 客户端发送 Finished 报文。该报文包含连接至今全部报文的 整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确 解密该报文作为判定标准。

步骤 8: 服务器同样发送 Change Cipher Spec 报文。

步骤 9: 服务器同样发送 Finished 报文。

步骤 10: 服务器和客户端的 Finished 报文交换完毕之后,SSL 连接 就算建立完成。当然,通信会受到 SSL 的保护。从此处开始进行应用 层协议的通信,即发送 HTTP 请求。

步骤 11: 应用层协议通信,即发送 HTTP 响应。

步骤 12: 最后由客户端断开连接。断开连接时,发送 close_notify 报 文。上图做了一些省略,这步之后再发送 TCP FIN 报文来关闭与 TCP 的通信。

在以上流程中,应用层发送数据时会附加一种叫做 MAC(Message Authentication Code)的报文摘要。MAC 能够查知报文是否遭到篡 改,从而保护报文的完整性。

3.1.3完整性保护中内容复制自《图解HTTP》,实在不知道怎么总结可用更简单明了了

四,为什么不一直使用HTTPS?

4.1HTTPS 比 HTTP 要慢 2 到 100 倍 (原因):
SSL 的慢分两种:

  1. 一种是指通信慢。
  2. 另一种是指由于大量消耗 CPU 及内存等资源,导致处理速度变慢。

和使用 HTTP 相比,网络负载可能会变慢 2 到 100 倍。除去和 TCP 连接、发送 HTTP 请求 • 响应以外,还必须进行 SSL 通信, 因此整体上处理通信量不可避免会增加。

另一点是 SSL 必须进行加密处理。在服务器和客户端都需要进行 加密和解密的运算处理。因此从结果上讲,比起 HTTP 会更多地 消耗服务器和客户端的硬件资源,导致负载增强。

针对速度变慢这一问题,并没有根本性的解决方案,我们会使用 SSL 加速器这种(专用服务器)硬件来改善该问题。该硬件为 SSL 通信专用硬件,相对软件来讲,能够提高数倍 SSL 的计算速 度。仅在 SSL 处理时发挥 SSL 加速器的功效,以分担负载。

4.2 证书费用
要进行 HTTPS 通信,证书是必不可少的。而使用的证书必须向认 证机构(CA)购买。证书价格可能会根据不同的认证机构略有不 同。
【计算机网络基础】HTTP和HTTPS有什么区别?HTTPS功能实现详述!

//以上就是本期 主要关于HTTPS的文章,希望大家 喜欢,多多点赞????