什么是 TLS/SSL 握手

TLS/SSL 握手是一个加密过程,每当客户端(如浏览器)与服务器建立连接时,都会在后台进行,此握手协议有助于客户端和服务器之间的安全连接,从而促进隐私、数据完整性和机密性。

TLS/SSL 握手何时发生

每当客户端尝试与服务器建立安全连接时,都会触发 TLS/SSL 握手过程。这包括以下情况:

  • 用户尝试访问使用 HTTPS 的网站。
  • 用户连接到支持 SMTP 的邮件服务器。
  • 用户需要通过 TLS/SSL 建立安全的通信通道。

TLS 握手与 SSL 握手有区别吗

尽管术语SSL仍在广泛使用,但TLS是最新的协议,但是,术语 TLS 和 SSL 可以互换使用,同样,术语 TLS 握手和 SSL 握手可以互换使用。

注意:TLS 1.2 及更高版本目前被认为是安全的,并被广泛使用,以防范 POODLE 攻击和 Heartbleed 漏洞等网络威胁。

TLS 握手过程

在 TLS 握手期间,客户端和服务器之间将发生以下交换:

  • 客户端和服务器通过确定支持的最高 TLS 版本以及握手过程中要使用的加密算法来建立其兼容性。
  • 客户端和服务器验证彼此的完整性和真实性。
  • 它们派生一个会话密钥,用于加密传输中的数据并保护整个会话。

TLS 握手中涉及的步骤

整个 TLS 握手过程涉及客户端和服务器之间来回通信的几个步骤,以下是对 TLS/SSL 握手中涉及的所有步骤的详细分析。

术语 描述
TLS 协议 客户端支持的 TLS 版本
密码套件 客户端首选加密算法的列表。然后,服务器可以选择一个适合客户端和服务器的选项。
客户端随机 一堆随机生成的字符,将有助于保护握手过程。
服务器随机 服务器生成的一堆随机字节,类似于客户端随机数。
TLS 协议版本 服务器为此会话选择的 TLS 版本。
  • 客户问候
    客户端通过发送名为"客户端 Hello"的 hello 消息来启动与服务器的 TLS 握手。默认情况下,此消息将包含有关 TLS 协议、密码套件和客户端随机数的信息。
    还可以包含其他字段,例如会话 ID、压缩方法和支持的扩展,以促进会话恢复、传达客户端对压缩的支持以及增强协议功能。
  • 服务器你好
    作为对客户端 Hello 的响应,服务器将发送一个 Server Hello,其中包括有关 TLS 协议版本、服务器选择的密码套件和 Server Random 的信息
    如果客户端与客户端随机数一起发送,则将包含其他字段,例如会话 ID 和压缩方法。
  • 服务器身份验证
    除了 Server Hello,服务器还向客户端提供其数字证书。客户端将通过使用相应的证书颁发机构验证此证书来验证服务器的身份。
  • 预主密钥生成
    然后,客户端使用安全的随机生成器生成预主密钥。此密钥用于在客户端和服务器之间建立共享密钥,然后使用该密钥派生会话密钥。此会话密钥将用于加密和解密客户端和服务器之间的通信。
    注意:预主密钥对于每个 TLS 会话都是唯一的且完全随机的。因此,即使服务器的私钥将来被泄露,在握手期间交换的加密预主密钥也将保持安全,从而保护过去的会话免受私钥泄露的影响。
  • 密钥交换
    预主密钥使用服务器的公钥(从 TLS 证书获取)进行加密,并发送到服务器。这样做是为了确保只有服务器才能解密此密钥。然后,服务器将使用其私钥解密预主密钥。
  • 会话密钥生成
    客户端和服务器都使用服务器随机数、客户端随机数和预主密钥生成会话密钥。
  • 客户端完成和服务器完成
    客户端和服务器发送一条消息,指示握手过程现已完成。

TLS/SSL 握手的安全性

虽然握手过程本身是安全的,但 TLS 连接的安全性基于以下优势:

  • 密码套件的优势
  • 证书验证
  • 服务器配置
  • TLS/SSL握手协议的重要性

密码套件的优势

密码套件是一组加密算法,密码套件的强度在保护 TLS 连接方面起着重要作用。因此,使用最新的密码套件(如 TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256 和 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA38)非常重要,这些套件可以防止漏洞。

证书验证

证书验证过程可确保服务器的真实性和完整性。但是,如果由于配置错误或不遵守最佳实践而导致该过程不严格,则可能导致接受过期、吊销或无效的证书,从而危及 TLS 连接的整体安全性。

服务器配置

服务器的配置方式应包含 TLS 最佳实践,例如禁用过时和易受攻击的协议(SSL 等协议)、使用强密码套件以及强制执行加密算法。使用这些最佳实践来保护 TLS 握手过程将有助于建立安全的 TLS 连接。

TLS/SSL握手协议的重要性

TLS 握手协议负责在客户端和服务器之间建立安全的通信通道。它不仅通过强大的加密来保护敏感数据,而且还通过确保传输中数据的真实性和机密性来建立信任。因此,TLS握手协议在确保安全的在线通信方面起着至关重要的作用。

简化TLS/SSL证书管理

证书在 TLS/SSL 握手过程中起着至关重要的作用,请务必使所有证书保持最新状态,Key Manager Plus等证书生命周期管理解决方案可帮助企业发现、监控和管理其环境中的所有TLS/SSL证书,企业还可以轻松地实现证书管理的整个生命周期的自动化。

相关推荐
瓦格哈儿12 小时前
删掉旧 SSL 证书会影响线上业务吗?风险点梳理
网络协议·https·ssl
姚不倒16 小时前
HAProxy 系列(二):健康检查与 SSL 卸载 — 保障可用性与性能
运维·网络·网络协议·ssl·haproxy
MyFreeIT2 天前
Let‘s Encrypt SSL 製作免費證書
网络协议·https·ssl
00后程序员张2 天前
Android证书绑定抓包失败?Android SSL Pinning绕过实战指南
android·网络协议·计算机网络·网络安全·adb·https·ssl
武帝为此3 天前
【TLS SSL 介绍】
网络·网络协议·ssl
吠品6 天前
SQL Server 版本查询的几种实用方法
数据库·网络协议·ssl
瓦格哈儿6 天前
内网环境也需要证书?聊聊内网 IP 证书的适用边界
网络协议·ssl
CZIDC7 天前
华为服务器TS200-2280 V2 iBMC导入SSL证书后问题案例分析
服务器·https·ssl
m0_617493949 天前
SSLError [ASN1: NOT_ENOUGH_DATA] 问题排查与解决指南
python·ssl
左钦杨11 天前
如何剩下一笔SSL(https)证书的钱?
网络协议·https·ssl