HTTPS握手过程深度剖析:探究握手层所交换的信息及其排除内容

一、引言

随着互联网技术的快速发展,网络安全问题日益突出。
HTTPS作为一种安全的通信协议,在数据传输过程中提供了端到端的加密服务,保障了用户数据的机密性和完整性。
本文将深度剖析HTTPS握手过程,探讨握手层所交换的信息及其不包括的内容,帮助读者更好地理解HTTPS协议的工作原理。

二、HTTPS握手过程概述

HTTPS的握手过程是在客户端和服务器之间建立安全通信的重要环节。
在HTTPS握手过程中,客户端和服务器通过交换一系列信息,协商并生成加密套件、密钥等参数,以建立安全通道。
具体过程包括客户端发起连接请求、服务器响应、证书验证、密钥协商等步骤。

三、HTTPS握手层交换的信息

在HTTPS握手过程中,客户端和服务器交换以下主要信息:

1. 客户端版本号:客户端向服务器发送支持的TLS协议版本信息。
2. 加密套件列表:客户端发送支持的加密套件列表,供服务器选择。
3. 服务器证书:服务器向客户端发送证书,证明自己的身份。
4. 密钥协商信息:客户端和服务器通过握手过程协商生成对称加密的密钥,用于后续的数据传输。

四、HTTPS握手层不包括的信息

在HTTPS握手过程中,有一些信息是不包括在握手层交换的信息中的,主要包括以下几点:

1. 客户端的非对称加密公钥:虽然HTTPS使用公钥加密技术,但在握手过程中,客户端并不会向服务器发送自己的非对称加密公钥。这是因为公钥加密的主要作用是为了保证数据的机密性,而在握手过程中,主要目的是协商生成对称加密的密钥,确保后续数据传输的安全性。因此,客户端的公钥并不需要在握手过程中发送。
2. 应用层数据:HTTPS握手过程仅涉及传输层的安全协商,不包括应用层数据的传输。应用层数据将在握手过程完成后开始传输。
3. 客户端的其他个人信息:在HTTPS握手过程中,不会涉及客户端的其他个人信息,如用户的姓名、地址等。这些信息通常在应用层的数据传输中进行交互。

五、详细剖析HTTPS握手过程

1. 客户端发起连接请求:客户端向服务器发送包含支持的TLS协议版本信息的连接请求。
2. 服务器响应:服务器根据收到的请求信息,选择支持的TLS协议版本进行响应,并发送自己的证书信息。
3. 证书验证:客户端接收到服务器证书后,验证证书的合法性,确认服务器的身份。如果证书验证失败,则终止连接;否则继续下一步。
4. 密钥协商:客户端和服务器通过一系列算法和随机数的交换,生成对称加密的密钥。这个过程包括随机数生成、预主密钥协商等步骤。完成密钥协商后,握手过程结束。此时,客户端和服务器已经建立了一个安全的通信通道。

六、结论

本文深度剖析了HTTPS握手过程,探讨了握手层所交换的信息及其不包括的内容。
通过了解HTTPS握手过程的工作原理,我们可以更好地理解网络安全的重要性以及HTTPS协议如何保障数据传输的安全性。
在实际应用中,我们应该注意保护个人信息和网络安全,合理设置和使用HTTPS协议,以确保网络通信的安全性。


HTTPS请求证书时候的握手是SSL/ TLS 还是TCP的握手?

1. HTTPS是基于SSL安全连接的HTTP协议。 HTTPS通过SSL提供的数据加密、身份验证和消息完整性验证等安全机制,为Web访问提供了安全性保证,广泛应用于网上银行、电子商务等领域。 此图为HTTPS在网上银行中的应用。 某银行为了方便客户,提供了网上银行业务,客户可以通过访问银行的Web服务器进行帐户查询、转帐等。 通过在客户和银行的Web服务器之间建立SSL连接,可以保证客户的信息不被非法窃取。 2.只需要验证SSL服务器身份,不需要验证SSL客户端身份时,SSL的握手过程为:(1) SSL客户端通过Client Hello消息将它支持的SSL版本、加密算法、密钥交换算法、MAC算法等信息发送给SSL服务器。 (2) SSL服务器确定本次通信采用的SSL版本和加密套件,并通过Server Hello消息通知给SSL客户端。 如果SSL服务器允许SSL客户端在以后的通信中重用本次会话,则SSL服务器会为本次会话分配会话ID,并通过Server Hello消息发送给SSL客户端。 (3) SSL服务器将携带自己公钥信息的数字证书通过Certificate消息发送给SSL客户端。 (4) SSL服务器发送Server Hello Done消息,通知SSL客户端版本和加密套件协商结束,开始进行密钥交换。 (5) SSL客户端验证SSL服务器的证书合法后,利用证书中的公钥加密SSL客户端随机生成的premaster secret,并通过Client Key Exchange消息发送给SSL服务器。 (6) SSL客户端发送Change Cipher Spec消息,通知SSL服务器后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。 (7) SSL客户端计算已交互的握手消息(除Change Cipher Spec消息外所有已交互的消息)的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给SSL服务器。 SSL服务器利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。 (8) 同样地,SSL服务器发送Change Cipher Spec消息,通知SSL客户端后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。 (9) SSL服务器计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给SSL客户端。 SSL客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。 SSL客户端接收到SSL服务器发送的Finished消息后,如果解密成功,则可以判断SSL服务器是数字证书的拥有者,即SSL服务器身份验证成功,因为只有拥有私钥的SSL服务器才能从Client Key Exchange消息中解密得到premaster secret,从而间接地实现了SSL客户端对SSL服务器的身份验证。 & 说明:l Change Cipher Spec消息属于SSL密码变化协议,其他握手过程交互的消息均属于SSL握手协议,统称为SSL握手消息。 l 计算Hash值,指的是利用Hash算法(MD5或SHA)将任意长度的数据转换为固定长度的数据。

http和https的三次握手的区别

还有https会增加服务器的计算和带宽成本。 ssl层在tcp协议的握手流程上增加了几次握手,另外每一次请求都需要进行rsa校验计算,这都会给服务器造成更多计算压力。 缓存效率

怎样才算对HTTP Socket通信,TCP/IP和HTTP/HTTPS有较深刻的理解

理论知识和实践经验:基本理论知识熟悉+做过相关项目。