密码学 - SSL/TLS 协议



SSL(安全套接字层)协议及其更高级和安全的TLS(传输层安全)协议,用于保护在两点之间发送的数据安全,通常是用户的Web浏览器和Web/应用程序服务器,防止攻击者(或互联网服务提供商)访问和篡改这些数据。大多数网站所有者和运营商必须实现SSL/TLS,以安全地传输敏感数据,例如密码、支付信息和其他被认为是私人的个人信息。

什么是SSL/TLS协议?

SSL/TLS(安全套接字层/传输层安全)加密协议提供安全的在线通信。它通常用于保护客户端(例如Web浏览器)和服务器之间敏感数据的传输,例如登录凭据、信用卡号码或其他个人信息。

SSL/TLS依靠数字证书来验证服务器的真实性。这些证书由受信任的证书颁发机构(CA)颁发,并包含服务器的详细信息,例如其公钥和域名。客户端在与服务器建立连接时,会验证证书未被篡改且是真实的。这可以防止中间人攻击,攻击者充当两个端点之间的中间人,假装自己是可信的服务器,从而访问他们的通信。

此外,SSL/TLS保证数据完整性,以便数据在服务器发送后以未更改的形式到达客户端。为此,它使用消息认证码(MAC),这些码使用加密方法计算,然后附加到传输的信息中。然后,客户端计算MAC,并将其与接收到的MAC进行比较,从而确保数据的正确性。如果它们匹配,则数据未被修改。

SSL/TLS不仅提供数据完整性和机密性,还提供服务器身份验证。服务器通过在SSL/TLS握手过程中出示其数字证书来向客户端验证其身份。客户端可以验证证书的真实性以及它是否连接到预期的服务器。

SSL/TLS协议是为了解决安全漏洞并提高效率而创建的。最常用的版本是SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2和TLS 1.3。每个版本的发布都包含新的安全特性和改进,例如更强大的加密算法和更安全的握手过程。

SSL/TLS如何工作?

SSL/TLS同时使用非对称加密和对称加密来确保数据在传输过程中的完整性和机密性。非对称加密用于在客户端和服务器之间建立安全连接,而对称加密用于在安全会话内交换数据。

要使用SSL/TLS加密,网站需要为其Web服务器或域名拥有SSL/TLS证书。设置后,证书允许客户端和服务器在后续步骤中安全地检查加密级别:

  • 客户端使用安全URL(HTTPS)连接到服务器。
  • 客户端从服务器接收其公钥和证书。
  • 客户端与受信任的根证书颁发机构进行验证,以确保证书的真实性。
  • 协商服务器和客户端都支持的最高强度加密。
  • 客户端使用服务器的公钥加密会话(秘密)密钥,并将其返回给服务器。
  • 服务器使用其私钥解密客户端通信,并启动会话。
  • 客户端和服务器之间发送的数据现在使用会话密钥(对称加密)进行加密和解密。

现在,客户端和服务器使用HTTPS(SSL/TLS + HTTP)进行通信。大多数浏览器会在地址栏中显示一个锁图标来验证这一点。HTTPS使用443端口进行通信。

离开网站时,这些密钥会丢失。下次访问时会生成一组新的密钥并协商新的握手。

SSL/TLS的实现

为了确保计算机之间在线通信的安全,您需要实现SSL/TLS。这些过程如下:

  • 获取证书 - 首先,您需要从一个组织获取一个单独的证书。像身份证一样,此证书包含有关您的计算机的信息,并显示其安全性。
  • 安装证书 - 获取证书后,您需要将其安装到您的计算机上。这类似于将身份证放在钱包里。
  • 调整设置 - 接下来,您需要调整计算机上的某些设置,以确保启用SSL/TLS。这就像更改手机设置以启用Wi-Fi。
  • 选择安全协议 - 您还需要选择计算机与其他计算机在线通信时最有效和最安全的方法。这就像在旅行时选择最安全的路线。
  • 保护客户端连接 - 在开发应用程序或程序时,务必确保使用SSL/TLS与其他计算机进行安全通信。
  • 测试一切 - 一旦一切设置完毕,您需要进行测试以确保其正常运行。

SSL/TLS证书的版本

以下是各种SSL/TLS证书版本:

  • SSLv2 − 安全套接字层 (SSL) 的第一个版本,曾被广泛接受用于保护互联网连接。然而,由于其自身的弱点,目前已被认为是过时且不安全的。
  • SSLv3 − 除了解决了 SSLv2 的漏洞外,SSLv3 还增加了新的功能,例如 SHA-1 哈希函数支持和密码套件协商。但是,由于存在像 POODLE(已降级旧版加密的填充预言机)攻击之类的缺陷,SSLv3 也被认为是不安全的。
  • TLS 1.0 − TLS 1.0(传输层安全协议)取代了 SSLv3,提供了显著的安全改进。它兼容消息认证码 (MAC) 和更强大的加密方法。TLS 1.0 目前已被认为是过时的,并包含许多已知的漏洞。
  • TLS 1.1 − 除了提供新的功能,例如支持额外的密码套件以及能够为了向后兼容性而升级到更早的 SSL/TLS 版本的能力外,TLS 1.1 还修复了 TLS 1.0 中发现的一些漏洞。但 TLS 1.1 也被认为是过时的,并包含已知的弱点。
  • TLS 1.2 − 目前最常用和最安全的协议版本是 TLS 1.2。更好的密码套件、对认证加密的支持以及增强对像“针对 SSL/TLS 的浏览器漏洞利用”和“压缩比率信息泄露简易方法”等攻击的防护,只是它相较于早期版本所提供的安全增强功能中的一部分。
  • TLS 1.3 − 最新的协议版本 TLS 1.3,比 TLS 1.2 提供了显著的安全增强功能。除了更快的连接和增强的针对升级和密钥泄露尝试的保护外,它还提供了更好的隐私保护。

SSL 和 TLS 的共同特点

SSL 和 TLS 是加密服务器、应用程序、用户和系统之间数据的通信协议。它们通过对网络连接的双方进行身份验证来提供安全的信息交换。

1995 年,Taher Elgamal 与 SSL 开发团队一起,推出了面向公众的 SSL 2.0。SSL 的主要目标是在互联网上实现安全通信。在 SSL 经过多次修改之后,Tim Dierks 和 Christopher Allen 于 1999 年创建了 TLS 1.0 来替代 SSL 3.0。

  • 目标 − 在 SSL 停止使用之前,TLS 是一种安全的通信技术,允许身份验证和加密。TLS 和 SSL 都使用数字证书来加快握手过程,并在 Web 服务器和浏览器之间提供加密通信。
  • 术语 − 由于 TLS 是 SSL 的直接替代品,所有 SSL 版本均不再受支持。但是,有时会使用术语 SSL 来描述 TLS 连接。TLS 协议和 TLS 证书通常被称为缩写词 SSL 和 SSL/TLS。
  • HTTPS 的应用 − HTTP 是一种协议或一组通信标准,用于在任何网络上进行客户端-服务器通信。在不安全的 HTTP 连接上实现安全的 SSL/TLS 协议被称为 HTTPS。您的浏览器在建立连接之前,会使用 TLS 验证网站的 TLS 或 SSL 证书。服务器对现代安全标准的接受可以通过其 TLS 和 SSL 证书来验证。证书的验证可以在您浏览器的地址栏中找到。加密的真实连接的地址栏显示为 https:// 而不是 http://。“s”代表“安全”。

SSL 和 TLS 之间的区别!

安全套接字层 (SSL) 是一种通信协议,或规则集合,它使用网络在两个设备或应用程序之间提供安全连接。在通过互联网交换登录凭据或机密信息之前,建立信任并验证对方的身份非常重要。您的浏览器或应用程序可能已经使用 SSL 技术在任何网络上创建了一个安全、加密的通信通道。但 SSL 是一种过时的技术,存在一些安全问题。

传输层安全协议 (TLS) 是 SSL 的更新版本,它解决了已知的 SSL 错误。TLS 保持对加密通信通道的支持,并更有效地执行身份验证。

特性 SSL 协议 TLS 协议
定义 首个广泛使用的安全协议 SSL 的继任者,解决了其缺陷
安全性 容易受到已知攻击 提供改进的安全特性
版本 SSL 2.0、SSL 3.0、TLS 1.0(基于 SSL 3.0) TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3(最新)
用途 已弃用,不推荐使用 当前互联网安全的标准
遗留 遗留协议 用于安全连接的现代协议

SSL/TLS 证书的类型

以下是 SSL/TLS 证书的类型:

  • 域验证 (DV) 证书 − 这些是简单的证书,仅验证域。它们易于获取,通常用于个人网站或博客。
  • 组织验证 (OV) 证书 − 与 DV 证书不同,这些证书不仅确认域所有权,还验证有关组织的其他次要详细信息,例如名称和位置。它们提供更高的信任级别,这就是大多数企业和组织使用它们的原因。
  • 扩展验证 (EV) 证书 − 此类型在所有其他类型中提供最高级别的验证。它必须经过非常严格的验证,甚至在颁发之前必须确认网站背后的法律实体。实际上,浏览器会为具有 EV SSL 的网站显示绿色地址栏,从而表明其高度的可靠性。电子商务网站和金融机构通常会选择此证书,因为它具有强大的身份验证功能。

SSL/TLS 使用哪种类型的加密?

SSL/TLS 使用非对称加密(通常称为公钥密码学)和对称加密。

非对称加密使用两个独立但数学上相关的密钥,通常称为密钥对:公钥和私钥。公钥用于加密,而私钥保密并用于解密。这使得两个人可以在不交换秘密密钥的情况下安全地进行通信。SSL/TLS 在初始握手期间使用非对称加密来建立安全连接并交换对称加密密钥。

对称加密使用相同的密钥进行加密和解密。一旦建立了安全的非对称加密连接,SSL/TLS 就会切换到对称加密来传输数据。这是因为对称加密通常更快更有效地加密大量数据。

广告