使用wireshark分析HTTPS流程的建立摘要:https流程一、概要为了网站以及用户的安全性,现在很多的网站都是https,大家都知道tcp通过三次握手建立连接,并且还有很多的同学对https连接建立的流程不太明白,包括我自己,通过借助于wireshark这种抓包工具,我们可以尝试着了解一下大概的流程
(图1)本图是客户端(10
103)访问服务端(114
85)通过wireshark抓包显示出来的双方交互数据,访问是通过https访问服务器上的一台nginx服务器服务
请关注第一列的No
下文中很多时候会用no表示一次交互
图中可以很明显的看出tcp的三次握手以及之后的TLS加密流程的建立
二、tcp的三次握手通过流程图可以看出(也可以看图1的19368到19370这三个编号),首先客户端向服务端发起一个SYN的请求,序号(Seq)为0,确认号(ACK)也为0,这代表是本次是由客户端发起的首次请求
本次请求的数据长度为0然后服务端给客户端响应,此时服务端的Seq也是0,值得是服务端的第一回应,并且给客户端说,你的请求我已经收到了(ACK=1),最后返还给客户端以后,客户端的序号+1,并且对服务端的响应做出确认,最后回给服务端,此时ACK=1,Seq=1tcp的握手过程建立成功
三、ssl连接的建立通过以上可以看出,SSL也是建立在TCP的基础上的,经过tcp的三次握手,接下来才是加密信道的建立
客户端和服务端建立安全连接大致经过以下几个步骤1
客户端:ClientHello2
服务端:ServerHello,Servercertificate,ServerExchange,ServerHelloDone3
客户端:clientExchange4
客户端:ApplicationData5
服务端:NewSession6
服务端:Applicat