前从服务器发送的公钥对共享密钥进行加密。 服务器接受密钥并用其私钥验证它。然后创建一个主密钥,
Posted: Thu Dec 05, 2024 11:33 am
SSL/TLS 握手 - 服务器和客户端之间的“握手”。简单来说,就是互相认识。发生在SSL/TLS加密隧道内的HTTPS连接期间,确保服务器和客户端的安全。成功识别后,会生成一个秘密会话密钥,以确保安全通信 - 它用于传输数据的加密和解密。
数据加密
握手过程不可避免地伴随着有关支持的加密技术的信息交换 - 这是必要的,以便服务器和客户端能够就双方的最佳密码套件达成一致。一旦达成一致,服务器就会将其SSL 证书传输给客户端。
对称加密可防止第三方读取数据。即使数据包被拦截,它们也无法被更改,因为每条消息都包含一个 MAC 代码,用于验证数据的完整性。
SSL/TLS 握手的工作原理
如果您将 SSL 握手视为服务器和客户端之间的对话,那么该过程将如下所示
客户端请求服务器建立安全连接并提供它“理解”的密码套件以及 SSL/TLS 的兼容版本。
服务器检查发送的密码套件,将其与自己的密码套件进行比较,并向客户端发送带有证书文件和公钥的响应。
客户端检查证书,如果没问题,则提出检查私钥。为此,它创建它并使用之前从服务器发送的公钥对共享密钥进行加密。
服务器接受密钥并用其私钥验证它。然后创建一个主密钥,用于加密交换的信息。
然后,客户端向服务器发送一条测试消息,并使用先前设计的方法进行加密,然后服务器对其进行解密和分析。这样就完成了 SSL/TLS 握手,客户端和服务器可以继续交换信息。
如果会话结束并且客户端在一段时间后再次联系服务器,则不需要重复“握手”过程 - 所有先前生成的数据和主要秘密仍然有效。整个过程只需要几秒钟,并且用户完全察觉不到。
ssl/tls 握手如何工作
TLS 握手 1.2 中的 Diffie-Hellman 算法
TLS 协议 1.2 版于 2008 年出现,作为协议 1.1 的全面更新,具有改 印度手机号码
进的机制,允许各方就支持的加密方法列表达成一致。它看起来像这样:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
复制
这里:
TLS——数据传输协议;
ECDHE – 临时(短暂)密钥;
ECDSA——认证算法;
AES 128 GCM – 对称加密算法;
SHA256 – 数据的哈希算法。
这就是 Diffie-Hellman 算法,现在被认为已经过时,几乎不再使用。
TLS 密码套件 1.3
该版本的协议于 2018 年发布,在多个方面进行了显着改进:
密钥协商过程、认证过程和密码套件分离;
添加了一条规则,表明数字签名是强制性的;
实现HKDF密钥查询功能;
连接过程已加速;
数据压缩、未经身份验证的消息密码和重新协商等给先前版本的协议带来了一些漏洞,因此被禁止;
添加具有 Poly1305 MAC 代码的 ChaCha20 流密码、高效的 Ed25519 和 Ed448 数字签名算法以及相应的密钥交换协议 Curve25519 和 Curve448。
TLS 1.3 握手密码包如下所示
TLS_AES_256_GCM_SHA384
复制
因此这里:
传输层安全协议;
GCM 模式下的 AES-256 – 附加数据加密和认证算法 (AEAD);
SHA384 – 哈希密钥函数生成算法(HKFD)。
TLS 1.3 协议经历了各种更改和改进,对握手过程的安全性和性能产生了积极影响。身份验证本身所需的时间显着减少。握手速度几乎翻倍,协议不再存在以前困扰系统管理员的漏洞。
结论
最安全的选项是 TLS 1.3 加密协议,但该协议仅部分向后兼容。建立连接后,客户端和服务器会交换协议版本,并选择双方都可以使用的协议版本。然而,实际上,当通过 TLS 1.3 协议进行“握手”过程时,许多运行旧 TLS 1.2 协议的服务器立即断开连接。这种现象被称为僵化,并导致早年新协议的实施出现问题。如今,这个问题几乎不存在,并且服务器本身已大部分转移到 TLS 1.3,因此我们建议使用它。
意见
3m、56s
意见
2
2022 年 2 月 12 日下午 5:0
数据加密
握手过程不可避免地伴随着有关支持的加密技术的信息交换 - 这是必要的,以便服务器和客户端能够就双方的最佳密码套件达成一致。一旦达成一致,服务器就会将其SSL 证书传输给客户端。
对称加密可防止第三方读取数据。即使数据包被拦截,它们也无法被更改,因为每条消息都包含一个 MAC 代码,用于验证数据的完整性。
SSL/TLS 握手的工作原理
如果您将 SSL 握手视为服务器和客户端之间的对话,那么该过程将如下所示
客户端请求服务器建立安全连接并提供它“理解”的密码套件以及 SSL/TLS 的兼容版本。
服务器检查发送的密码套件,将其与自己的密码套件进行比较,并向客户端发送带有证书文件和公钥的响应。
客户端检查证书,如果没问题,则提出检查私钥。为此,它创建它并使用之前从服务器发送的公钥对共享密钥进行加密。
服务器接受密钥并用其私钥验证它。然后创建一个主密钥,用于加密交换的信息。
然后,客户端向服务器发送一条测试消息,并使用先前设计的方法进行加密,然后服务器对其进行解密和分析。这样就完成了 SSL/TLS 握手,客户端和服务器可以继续交换信息。
如果会话结束并且客户端在一段时间后再次联系服务器,则不需要重复“握手”过程 - 所有先前生成的数据和主要秘密仍然有效。整个过程只需要几秒钟,并且用户完全察觉不到。
ssl/tls 握手如何工作
TLS 握手 1.2 中的 Diffie-Hellman 算法
TLS 协议 1.2 版于 2008 年出现,作为协议 1.1 的全面更新,具有改 印度手机号码
进的机制,允许各方就支持的加密方法列表达成一致。它看起来像这样:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
复制
这里:
TLS——数据传输协议;
ECDHE – 临时(短暂)密钥;
ECDSA——认证算法;
AES 128 GCM – 对称加密算法;
SHA256 – 数据的哈希算法。
这就是 Diffie-Hellman 算法,现在被认为已经过时,几乎不再使用。
TLS 密码套件 1.3
该版本的协议于 2018 年发布,在多个方面进行了显着改进:
密钥协商过程、认证过程和密码套件分离;
添加了一条规则,表明数字签名是强制性的;
实现HKDF密钥查询功能;
连接过程已加速;
数据压缩、未经身份验证的消息密码和重新协商等给先前版本的协议带来了一些漏洞,因此被禁止;
添加具有 Poly1305 MAC 代码的 ChaCha20 流密码、高效的 Ed25519 和 Ed448 数字签名算法以及相应的密钥交换协议 Curve25519 和 Curve448。
TLS 1.3 握手密码包如下所示
TLS_AES_256_GCM_SHA384
复制
因此这里:
传输层安全协议;
GCM 模式下的 AES-256 – 附加数据加密和认证算法 (AEAD);
SHA384 – 哈希密钥函数生成算法(HKFD)。
TLS 1.3 协议经历了各种更改和改进,对握手过程的安全性和性能产生了积极影响。身份验证本身所需的时间显着减少。握手速度几乎翻倍,协议不再存在以前困扰系统管理员的漏洞。
结论
最安全的选项是 TLS 1.3 加密协议,但该协议仅部分向后兼容。建立连接后,客户端和服务器会交换协议版本,并选择双方都可以使用的协议版本。然而,实际上,当通过 TLS 1.3 协议进行“握手”过程时,许多运行旧 TLS 1.2 协议的服务器立即断开连接。这种现象被称为僵化,并导致早年新协议的实施出现问题。如今,这个问题几乎不存在,并且服务器本身已大部分转移到 TLS 1.3,因此我们建议使用它。
意见
3m、56s
意见
2
2022 年 2 月 12 日下午 5:0