SSL/TLS握手?ssl握手协议包含两个阶段

SSL/TLS握手 文章目录 SSL/TLSTLS历史发展层次结构SSL/TLS握手协议TLS1.2 Vs TLS1.3 安全通信协议是一类用于保护计算机网络上数据传输安全的协议。这些协议通过加密、身份验证和数据完整性机制来防止数据被窃听、

文章目录

SSL/TLSTLS 历史发展层次结构SSL/TLS 握手协议TLS1.2 和TLS1.3

安全通信协议是一种用于保护计算机网络上数据传输安全的协议。这些协议通过加密、身份验证和数据完整性机制来保护数据免遭窃听、篡改或伪造。一些主要的安全通信协议包括:SSL/TLS、IPsec、SSH、HTTPS、PGP/GPG、DTLS、S/MIME

下面我们将重点关注SSL/TLS 和HTTPS。

SSL/TLS

SSL:安全套接字层是一种用于在两个通信应用程序之间提供安全连接的协议。 SSL 证书当前已禁用。

TLS:Transport Layer Security(传输层安全协议)是SSL的升级版本,用于修复SSL安全漏洞。尽管TLS 被广泛使用,但它仍然被称为SSL。

TLS历史发展

SSL1.0(1995)存在严重漏洞且未公开

SSL2.0 (1995) 首次公开发布。存在漏洞,例如不完整的握手和易受攻击的漏洞。

SSL3.0 (1996) 容易受到POODLE 攻击,被认为是不安全的协议

TLS1.0(1999)受到BEAST攻击并逐渐被弃用。

TLS1.1(2006) 加强了CBC 模式保护并防止某些攻击,但正在逐渐被更新版本取代。

TLS1.2 (2008) 引入了对更多加密算法的支持,并改进了密钥的导出和签名的计算方式,使其更加灵活和安全。它仍然被广泛使用并被认为是安全的。

TLS1.3(2018)极大地简化了握手过程,减少了延迟,并引入了前向保密作为默认功能,得到了广泛推广和采用。

层次结构

SSL/TLS 协议由多个子协议组成,每个子协议负责不同的功能。

握手协议

负责建立和管理安全连接,包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)以及密钥交换。 记录协议(记录协议)

负责数据的分片、压缩、加密和传输,保证数据的机密性和完整性。 警报协议

握手协议中一些异常的错误提醒分为两个级别:致命和警告。致命类型错误会直接中止SSL 链接,而警告级别错误允许SSL 链接继续,但会出现错误警告。 密码规范协议变更

用于通知对方使用新的加密算法和密钥,并显示握手协议完成的消息。

SSL/TLS握手协议

SSL/TLS 协议可以实现的主要安全目标包括:

身份验证—— 使用数字证书来验证服务器和客户端身份,以防止身份伪造机密性—— 使用加密来防止第三方窃听完整性—— 消息验证码(MAC) ),以确保数据完整性并防止消息篡改重放保护—— 防止使用隐式重放攻击序列号

为了实现这些安全目标,SSL/TLS 协议被设计为两阶段协议,分为握手阶段和应用阶段。

TLS1.2的握手协议非常繁琐,TLS1.3的握手协议进行了改进。下面,我们就来解释一下两者的区别。

客户端Hello(ClientHello)【人类版本:客户端:我了解的密码套装包括RSA/3DES等。您使用什么密码套件进行通信]

客户端发送包含以下内容的ClientHello 消息:

支持的协议版本(TLS1.2等) 支持的密码套件列表支持的压缩方式随机数其他扩展(服务器名称显示SNI等) 服务器Hello(ServerHello) [人类版本:Server: 让我们使用RSA/3DES进行通信]

服务器使用包含以下内容的ServerHello 消息进行响应:

协议版本(例如TLS 1.2) 选择的密码套件选择的压缩方式随机数其他扩展服务器证书【人类版本:Server: 这是我的身份证明,看一下】

服务器发送包含公钥的数字证书,客户端使用该证书来验证服务器的身份。 Server Key Exchange(服务器密钥交换选项)[人类版本:Server: 如果证书信息不足,则使用此信息来交换密钥]

当使用临时密钥交换算法(例如ECDHE 或DHE)时,服务器会发送密钥交换消息。 请求服务器证书(可选)[人类版本:Server: 顺便还请提供您的ID]

如果需要客户端身份验证,服务器会请求客户端证书。 服务器握手结束(Server Hello Done)【人类版:Server:问候到此结束】

服务器发送ServerHelloDone消息来表示握手消息结束。 客户端证书(可选)【人类版本:client:提供我的证书】

如果服务器请求,客户端发送数字证书。 客户端密钥交换【人类版本:client: 这是准备好的用公钥加密的主密码】

客户端生成预主密钥,使用服务器的公钥对其进行加密,然后将其发送到服务器。预主密钥用于生成最终会话密钥。当服务器收到预主密钥时,它使用自己的私钥对其进行解密,客户端和服务器使用预主密钥和随机数生成主密钥并派生会话密钥。 验证证书(可选)【人类版:我是持有client:客户端证书的人】

如果客户端发送了证书,则客户端发送此消息来证明其身份。 Client ChangeCipherSpec 【人类版本:Client: OK,切换到协商密码进行进一步通信】

客户端发送ChangeCipherSpec消息,表明后续通信将使用协商好的加密算法和会话密钥。 客户端退出【人版:client:握手协议到此结束】

客户端发送一条Finished 消息,其中包含握手过程的摘要,并使用会话密钥加密。 Server ChangeCipherSpec [人类版本:server: 好的,我也想更改密码]

服务器发送ChangeCipherSpec消息,表示后续通信将使用协商好的加密算法和会话密钥。 服务器退出【人类版本:server: OK,握手协议到此结束】

服务器发送一条Finished 消息,其中包含握手过程的摘要,并使用会话密钥加密。

TLS1.3简化了握手过程并减少了消息数量。整个握手过程如下:

客户您好

客户端发送包含以下内容的ClientHello 消息:

支持的协议版本(如TLS 1.3) 支持的密码套件列表支持的密钥协商方法(如ECDHE) 支持的签名算法支持的哈希算法Nonce 其他扩展(服务器名称指示SNI 等) 服务器Hello(ServerHello)

服务器使用包含以下内容的ServerHello 消息进行响应:

协议版本(例如TLS 1.3) 选择的密码套件选择的密钥共享方法随机数其他扩展服务器证书

服务器发送包含公钥的数字证书,客户端使用该证书来验证服务器的身份。 证书验证

服务器发送证书验证消息并使用服务器的私钥对握手消息进行签名并证明其身份。 服务器完成

服务器发送一条Finished 消息,其中包含握手过程的摘要,并使用会话密钥加密。 客户端证书(可选)

如果服务器请求,客户端发送数字证书。 证书验证

客户端发送证书验证消息并使用客户端的私钥对握手消息进行签名并证明其身份。 客户完成

客户端发送一条Finished 消息,其中包含握手过程的摘要,并使用会话密钥加密。

TLS1.2 Vs TLS1.3

从上面的握手过程可以看出,TLS1.3的握手过程比TLS1.2的握手过程简单很多。握手过程是两种握手过程的主要区别。

差异1:往返时间(RTT)

往返时间(RTT) 是信号从发送器传输到接收器并再次返回所需的时间。对于像TLS 这样的协议,RTT 非常重要,因为它直接影响用户浏览器和网站服务器建立安全连接的速度。

使用TLS 1.2,当浏览器连接到安全网站时,握手过程需要在客户端(浏览器)和服务器之间进行两次往返,然后才能开始安全数据交换。

TLS 1.2 的两步握手会带来延迟,尤其是当客户端和服务器相距较远时。

TLS 1.3(称为0-RTT)通过合并客户端和服务器“Hello”消息,将客户端和服务器之间的往返次数从2 次减少到1 次。

区别2:加密套装

TLS 1.2 支持多种密码套件,并提供加密、身份验证和哈希算法的各种组合。 然而,丰富的选择增加了选择安全性较低的密码套件的风险,从而可能使您的通信面临漏洞。

TLS 1.3 将支持的密码套件数量减少到五个,所有密码套件均基于关联数据的验证加密(AEAD) 原则。 这种简化旨在提高安全性和效率。

LS 1.3 有限但安全的密码套件选项降低了协商复杂性,并减少了意外使用弱加密算法的机会。

区别3:完美前向保密(PFS)

完美前向保密(PFS) 是一种加密功能,旨在防止在长期密钥泄露的情况下泄露过去的通信。

TLS 1.3 默认启用完美前向保密(PFS)。 这意味着即使有人成功窃取了用于安全通信的密钥,他们也无法解密过去的消息。 这就像定期更换前门的锁一样。

目前,对于TLS 1.2,此附加安全功能的使用是可选的。 因此,如果您没有专门选择这样做,那么如果有人获得您的私钥,他们可能会解密并读取您之前的消息。

从本质上讲,TLS 1.3 可确保过去的数据传输被解锁,从而提供比TLS 1.2 更高级别的安全性。

区别四:密钥交换机制

TLS 1.2 使用多种密钥交换方法,包括Rivest-Shamir-Adleman (RSA) 方法和Diffie-Hellman 方法。 RSA 要求服务器向客户端发送加密的预主密文,而Diffie-Hellman 允许客户端和服务器通过开放通道建立共享密文。 但是,TLS 1.2 通常默认使用RSA 进行密钥交换。

TLS 1.3 对默认密钥交换机制进行了重大更改。 该协议需要使用Diffie-Hellman 密钥交换,特别是椭圆曲线变体(ECDHE)。 这种方法可确保更高效、更安全的加密密钥协商。

以上关于#SSL/TLS握手的相关内容摘自互联网,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91661.html

Like (0)
CSDN的头像CSDN
Previous 2024年6月23日
Next 2024年6月23日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注