https的安全性如何保证的?|SSL/TSL如何保证安全通信?|如何确保数据在网络通信中的完整性、未被篡改?|加密的必要性|身份认证的必要性|证书认证的必要性|安全通信

👈️上一篇

计算机网络-专栏👈️


https的安全性如何保证的?|SSL/TSL如何保证安全?|如何确保数据在网络通信中的完整性、未被篡改?|加密的必要性|身份认证的必要性|证书认证的必要性

SSL与TLS

SSL(Secure Sockets Layer,安全套接字层)是为 HTTP 开发的原始安全协议。不久前,SSL 被 TLS (Transport Layer Security,传输层安全性)所取代。SSL 握手现在称为 TLS 握手,尽管“SSL”这个名称仍在广泛使用。

TLS 是一种旨在保护互联网通信安全的加密身份验证协议。TLS 握手是启动 TLS 通信会话的过程。在 TLS 握手过程中,通信双方交换消息以相互确认,彼此验证,确立它们将使用的加密算法,并生成一致的会话密钥。TLS 握手是 HTTPS 工作原理的基础部分。

TLS 握手有哪些步骤?

TLS 使用一种称为公钥加密的技术:密钥有两个,即公钥和私钥,其中公钥通过服务器的 SSL 证书与客户端设备共享。当客户端打开与服务器的连接时,这两个设备使用公钥和私钥商定新的密钥(称为会话密钥),以加密它们之间的后续通信

然后,所有 HTTP 请求和响应都使用这些会话密钥进行加密,使任何截获通信的人都只能看到随机字符串,而不是明文

在这里插入图片描述

TLS 握手是由客户端和服务器交换的一系列数据报或消息。TLS 握手涉及多个步骤,因为客户端和服务器要交换完成握手和进行进一步对话所需的信息。

TLS 握手中的确切步骤将根据所使用的密钥交换算法的种类和双方支持的密码套件而有所不同。RSA 密钥交换算法虽然现在被认为不安全,但曾在 1.3 之前的 TLS 版本中使用。大致如下:

  1. “客户端问候(client hello)” 消息: 客户端通过向服务器发送“问候”消息来开始握手。该消息将包含客户端支持的 TLS 版本,支持的密码套件,以及称为一串称为“客户端随机数(client random)”的随机字节。
  2. “服务器问候(server hello)”消息: 作为对 client hello 消息的回复,服务器发送一条消息,内含服务器的 SSL 证书、服务器选择的密码套件,以及“服务器随机数(server random)”,即由服务器生成的另一串随机字节。
  3. 身份验证: 客户端使用颁发该证书的证书颁发机构验证服务器的 SSL 证书。此举确认服务器是其声称的身份,且客户端正在与该域的实际所有者进行交互。
  4. 预主密钥: 客户端再发送一串随机字节,即“预主密钥(premaster secret)”。预主密钥是使用公钥加密的,只能使用服务器的私钥解密。(客户端从服务器的 SSL 证书中获得公钥。)
  5. 私钥被使用:服务器对预主密钥进行解密。
  6. 生成会话密钥:客户端和服务器均使用客户端随机数、服务器随机数和预主密钥生成会话密钥。双方应得到相同的结果。
  7. 客户端就绪:客户端发送一条“已完成”消息,该消息用会话密钥加密。
  8. 服务器就绪:服务器发送一条“已完成”消息,该消息用会话密钥加密。
  9. 实现安全对称加密:已完成握手,并使用会话密钥继续进行通信。

分析https安全性

Https安全性体现在基于SSL/TLS。SSL/TLS进行证书验证与数据加密传输,缺一不可。缺少任何一个都不能保证数据完整性,不能保证数据未被篡改

<<<加密的必要性>>>

首先我们分析加密,这是必须的,否则明文传输,内容很容易泄露与篡改(可以参考先前的加密的那篇文章安全通信|数据加密的由来|加密算法简介|中间人攻击与证书认证|身份验证);

<<<身份验证(证书认证)的必要性>>>

于是,我们的关注点主要分析下证书验证的必要性(同样也可以参考先前的加密的那篇文章,已经分析过非对称加密无法避免中间人伪装成服务器问题:安全通信|数据加密的由来|加密算法简介|中间人攻击与证书认证|身份验证)。

从上面的SSL/TLS握手的图中,我们已经得知完整的安全过程需要进行证书认证来避免中间人攻击。

我们反向思考下,来证明为什么不能缺少身份验证(如证书认证)环节。

缺少证书认证,无法避免中间人攻击

<<<中间人攻击过程>>>

中间人攻击(MITM,Man-in-the-Middle Attack)在HTTPS中通常发生在TLS握手阶段,而不是在数据传输阶段。中间人可以在客户端和服务器之间插入自己,冒充服务器与客户端进行TLS握手,并向客户端提供自己的公钥(以及伪造的证书,如果客户端不验证证书的话)。客户端随后会使用这个伪造的公钥加密后续的数据,而中间人则可以使用自己的私钥解密这些数据,篡改它们,然后再使用服务端的公钥重新加密并发送给服务器。同样地,中间人也可以拦截来自服务器的加密响应,解密、篡改、重新加密后再发送给客户端。

在这里插入图片描述

从图中可以得知,在TLS握手阶段,缺少证书认证,也就是缺少身份验证,导致中间人有机介入,劫持了整个通信过程,使得通信链路成了:客户端<=>中间人<=>服务端,于是数据不仅泄露给了中间攻击者,而且中间攻击者还可以对数据进行篡改。

<<<证书验证的必要性>>>

因此我们得出结论,不能缺少证书认证环节。验证服务器证书是HTTPS协议中身份认证的关键步骤。如果不进行这一步,客户端就无法确认服务器的真实身份,也无法确保自己发送的数据将到达正确的目的地。这种身份认证的缺失为攻击者提供了可乘之机,他们可以轻易地伪装成服务器并接收客户端发送的加密数据。

<<<总结>>>

SSL/TLS进行证书验证与数据加密传输,缺一不可。缺少任何一个都不能保证数据完整性,不能保证数据未被篡改

参考


👈️上一篇

计算机网络-专栏👈️

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值