SSL握手过程图解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sarafina527/article/details/89333536

目录

0.SSL握手

1.SSL握手流程

2.WireShark抓包分析

2.1握手数据包总览

2.2数据包解析

2.2.1.392:客户端发送Client Hello,

2.2.2.403:服务端发送Server Hello ,

2.2.3.406:Certificate 发送服务端的证书及其根证书,

2.2.4.411:Server Key Exchange ,

2.2.5.412: Server Hello Done hello结束通知​

2.2.6.417:Client Key Exchange 交换客户端的加密密钥

2.2.7.418:Application Data 应用数据

总结


0.SSL握手

类似与TCP的3次握手建立TCP连接,SSL握手是用于建立SSL(Security Socket Layer)层的连接。SSL握手的场景很多,比如最常见的HTTPS,访问https://www.baidu.com 时,在进行HTTPS的应用数据传递之前,需要建立SSL的连接!!

1.SSL握手流程

  1. Client Hello   协商ssl/tls协议版本、加密算法套件
  2. Server Hello 
  3. Certificate
  4. Server Key Exchange
  5. Server Hello Done
  6. Client Key Exchange
  7. Application Data Protocol: http-over-tls 业务数据安全传输

2.WireShark抓包分析

2.1握手数据包总览

3次握手TCP建立连接完成后,开始会话层的建立会话,

图中ip尾号为242的是客户端,121的是服务端

2.2数据包解析

每一个数据包的解析如下

2.2.1 客户端发送Client Hello,图中392号报文

主要是协商协议版本、加密算法套件(此处发送了17个套件)

通过一下的包,可以发现 主要时发送客户端SSL/TLS版本、随机数Random、计算算法套件Cipher Suites

2.2.2 服务端发送Server Hello ,403号

选择算法套件TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

2.2.3 Certificate 发送服务端的证书及其根证书,406

由于访问的是https://www.baidu.com/,所以需要传输Subject是baidu.com的公钥证书,以供客户端认证服务端的身份。

2.2.4 Server Key Exchange ,411

服务端交换通信密钥,如图发送了服务端加密公钥和签名算法

2.2.5 Server Hello Done hello结束通知 412:

2.2.6.417:Client Key Exchange 交换客户端的加密密钥

2.2.7 Application Data 应用数据 418号

业务数据加密后安全传输

总结

此处是访问百度主要的抓包分析,是单向认证的握手过程。

主要的握手过程 就是协商加密算法、客户端认证服务端,传输双方密钥等过程

猜你喜欢

转载自blog.csdn.net/sarafina527/article/details/89333536