当前位置:首页 » 资讯中心 » 周边资讯 » 正文

揭秘HTTPS握手过程:究竟需要几次握手才能完成加密连接?

揭秘HTTPS握手过程:加密连接的完成需要几次握手?

随着互联网的发展,网络安全问题越来越受到人们的关注。

为了保证数据在传输过程中的安全性,HTTPS应运而生。

HTTPS是一种通过SSL/TLS协议进行加密传输的HTTP协议,它在数据传输前进行握手过程,以确保通信双方的身份验证和数据的加密传输。

那么,究竟HTTPS握手过程需要几次握手才能完成加密连接呢?下面我们将详细解析HTTPS握手过程。

一、HTTPS概述

HTTPS是一种安全的HTTP协议,它在HTTP的基础上,通过SSL/TLS协议对数据进行加密传输。

HTTPS采用公钥和私钥的方式进行身份验证和加密,确保了数据在传输过程中的安全性。

二、HTTPS握手过程

HTTPS握手过程是在客户端和服务器之间建立安全连接的关键步骤,主要包括以下几个步骤:

1. 客户端发起连接请求

客户端向服务器发送连接请求,请求中包含客户端支持的SSL/TLS协议版本、加密套件等信息。

2. 服务器回应

服务器收到连接请求后,根据请求中的信息选择双方共同支持的SSL/TLS协议版本和加密套件,并生成一个随机数作为预主密钥,同时返回服务器的证书。

3. 客户端验证服务器证书

客户端收到服务器返回的证书后,会验证证书的合法性,如验证证书是否由受信任的证书颁发机构颁发、证书是否过期等。

4. 客户端生成密钥信息

如果服务器证书验证通过,客户端会生成一个新的随机数,并与之前收到的预主密钥一起生成一个新的主密钥。

同时,客户端还会根据服务器的公钥信息生成一个密钥对,用于后续的数据加密传输。

5. 客户端发送握手完成信息

客户端将生成的密钥信息发送给服务器,并通知服务器握手完成。

6. 服务器完成握手

服务器收到客户端发送的密钥信息后,利用自己的私钥进行解密,验证无误后完成握手过程。

此时,双方已经建立了一个安全的加密通道。

三、握手次数

根据上述过程,我们可以得知HTTPS握手过程需要两次握手才能完成加密连接。

第一次握手是客户端向服务器发送连接请求,第二次握手是服务器验证客户端信息并发送证书,然后客户端验证证书并发送密钥信息完成握手过程。

需要注意的是,这两次握手是在网络层面上完成的,与应用程序层面的数据传输是分开的。

四、总结

HTTPS握手过程是建立安全连接的关键步骤,它通过公钥和私钥的方式进行身份验证和加密,确保了数据在传输过程中的安全性。

HTTPS握手过程需要两次握手才能完成加密连接,分别是客户端发起连接请求和服务器回应、验证及完成握手。

在这个过程中,双方通过交换证书和密钥信息,建立了一个安全的加密通道,保证了数据传输的安全性。

随着互联网的发展,HTTPS将越来越普及,人们在使用网络时,应该注意保护个人信息和密码安全,避免在网络传输过程中被窃取或篡改。


https和http的区别是什么

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。

它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。

它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。

HTTPS实际上应用了Netscape的安 全全套接字层(SSL)作为HTTP应用层的子层。

(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。

)SSL使 用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。

HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

HTTPS和HTTP的区别:https协议需要到ca申请证书,一般免费证书很少,需要交费。

http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全HTTPS解决的问题:

1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server 的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信任了该主机. 其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server ,采用的证书不管自己issue 还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.

2 . 通讯过程中的数据的泄密和被窜改

1. 一般意义上的https, 就是 server 有一个证书.

a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.

b) 服务端和客户端之间的所有通讯,都是加密的.i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.

2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.

a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.

b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.

HTTPS 一定是繁琐的.

a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.i. 任何应用中,过多的round trip 肯定影响性能.

b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密.i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU 信能比较低的话,肯定会降低性能,从而不能serve 更多的请求. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示

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)将任意长度的数据转换为固定长度的数据。

https加密过程是怎样的,是在七层协议的哪层工作的

网络七层协议(OSI)是一个开放性的通信系统互连参考模型,从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层。

每层的作用分别如下: 7应用层 与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。

例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。

但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。

示例:TELNET,HTTP,FTP,NFS,SMTP等。

6表示层 这一层的主要功能是定义数据格式及加密。

例如,FTP允许你选择以二进制或ASCII格式传输。

如果选择二进制,那么发送方和接收方不改变文件的内容。

如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。

在接收方将标准的ASCII转换成接收方计算机的字符集。

示例:加密,ASCII等。

5会话层 它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。

示例:RPC,SQL等。

4传输层 这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。

示例:TCP,UDP,SPX。

3网络层 这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。

为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。

示例:IP,IPX等。

2数据链路层 它定义了在单个链路上如何传输数据。

这些协议与被讨论的各种介质有关。

示例:ATM,FDDI等。

1物理层 OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。

连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。

物理层常用多个规范完成对所有细节的定义。

示例:Rj45,802.3等。

【巨程网】

未经允许不得转载:虎跃云 » 揭秘HTTPS握手过程:究竟需要几次握手才能完成加密连接?
分享到
0
上一篇
下一篇

相关推荐

联系我们

huhuidc

复制已复制
262730666复制已复制
13943842618复制已复制
262730666@qq.com复制已复制
0438-7280666复制已复制
微信公众号
huyueidc_com复制已复制
关注官方微信,了解最新资讯
客服微信
huhuidc复制已复制
商务号,添加请说明来意
contact-img
客服QQ
262730666复制已复制
商务号,添加请说明来意
在线咨询
13943842618复制已复制
工作时间:8:30-12:00;13:30-18:00
客服邮箱
服务热线
0438-7280666复制已复制
24小时服务热线