HTTPS握手过程详解:了解SSL/TLS协议中的“S”代表什么
随着互联网技术的飞速发展,网络安全问题愈发受到人们的关注。
为了保护用户数据的安全,许多网站都采用了HTTPS协议进行通信。
在HTTPS协议中,“S”代表安全(Secure),即对传输数据进行加密。
本文将详细解析HTTPS握手过程,带你了解SSL/TLS协议背后的原理。
一、HTTPS简介
HTTPS是Hypertext Transfer Protocol Secure的缩写,它是一种通过计算机网络进行安全通信的协议。
HTTPS采用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对传输数据进行加密,确保数据在传输过程中的安全。
二、HTTPS握手过程
HTTPS的握手过程涉及到客户端(如浏览器)和服务器端之间的交互。下面将详细阐述HTTPS握手过程的各个阶段:
1. 客户端发送请求
客户端(如浏览器)向服务器发送一个请求,请求中包含对访问的域名和端口号等信息。
此时的请求使用的是HTTP协议,而非HTTPS协议。
2. 服务器响应并发送证书
服务器接收到请求后,会回应客户端一个证书,这个证书包含了服务器的公钥、证书颁发机构等信息。
公钥用于加密数据,证书颁发机构用于验证证书的合法性。
3. 客户端验证服务器证书
客户端接收到服务器证书后,会验证证书的合法性。
客户端会检查证书是否过期,然后验证证书颁发机构的信任度。
如果证书合法,则继续握手过程;否则,客户端会中断连接。
4. 客户端生成随机值并加密传输
如果服务器证书验证通过,客户端会生成一个随机值(称为“预主密钥”),并使用服务器的公钥对这个随机值进行加密,然后将加密后的随机值发送给服务器。
此时,握手过程进入到了加密通信阶段。
5. 服务器解密并生成对称密钥
服务器接收到客户端加密的随机值后,使用自己的私钥进行解密,得到预主密钥。
服务器也会生成一个新的随机值,与预主密钥结合生成一个对称密钥(如AES密钥)。
对称密钥将用于后续的加密通信。
6. 服务器完成密钥交换并生成会话密钥对
服务器将生成的对称密钥通过安全的方式发送给客户端。
此时,客户端使用收到的对称密钥和预主密钥生成会话密钥对(包括一个公钥和一个私钥)。
至此,HTTPS握手过程完成。
之后的通信将使用会话密钥对进行加密和解密。
三、SSL/TLS协议中的“S”代表什么?
在HTTPS协议中,“S”代表安全(Secure)。“S”主要体现在以下几个方面:
1. 数据的加密传输:通过SSL/TLS协议对传输数据进行加密,确保数据在传输过程中的安全性。
2. 身份验证:通过对服务器证书的验证,确保通信双方的身份真实可靠。
3. 防止数据篡改:SSL/TLS协议采用加密和校验机制,确保数据的完整性和真实性,防止数据在传输过程中被篡改。
四、总结
HTTPS握手过程是网络安全的重要组成部分,通过对数据的加密传输、身份验证和防止数据篡改等措施,保护用户数据的安全。
了解HTTPS握手过程和SSL/TLS协议的原理,有助于我们更好地理解和应用互联网技术,保障网络安全。
TCP/IP的三次握手的过程原理
一、TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。 这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。 Backlog参数:表示未连接队列的最大容纳数目。 SYN-ACK 重传次数 服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。 注意,每次重传等待的时间不一定相同。 半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。 有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。
TCP/IP中TCP传输的三次握手的详细过程
FSK 数据检验 有容错的能力 就是说在传输过程中在意外的情况下导致数据传输错误或者文件包丢失原文件数据损坏 那FSK这个时候就能起到作用了 FSK会自动把有错误的文件丢弃或者隐藏 传送给上一层(网络层)吧 我也不记得太清楚了 或者它就不发送确认信息给源地址 那源地址的主机又会重新发送同样的这个编号的数据给给目的地址主机了 TCP是端对端的机制所以才叫它是可靠传输 另外检验和就是文件大小的意思就是数据传输完以后和原文件一样是多大 举例说吧 你给你朋友邮寄一本书 由于邮局的特殊要求你只能以页页的邮寄给你朋友 那你把书撕下来 有了页码 你随便怎么邮寄都可以 到了你朋友那边你朋友只需要按照页码从新装订起来就可以了 如果书在途中有几页丢了或者损坏了你朋友就不再邮局的本子上面签名 那你就会从新再发同样的一页给他 这样就是FSK的作用了 具体你先看下封装是什么意思
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)将任意长度的数据转换为固定长度的数据。
评论一下吧
取消回复