• 利用WireShark分析握手协议


    一、三次握手

    7sbqdh6qq5.jpeg
    image.png
    第一次握手: 客户端向服务器发送连接请求包,标志位SYN(同步序号)置为1,序号为X=0
    image.png
    第二次握手: 服务器收到客户端发过来报文,由SYN=1知道客户端要求建立联机。向客户端发送一个SYN和ACK都置为1的TCP报文,设置初始序号Y=0,将确认序号(Acknowledgement Number)设置为客户的序列号加1,即X+1 = 0+1=1, 如下图:
    image.png

    第三次握手 客户端收到服务器发来的包后检查确认序号(Acknowledgement Number)是否正确,即第一次发送的序号加1(X+1=1)。以及标志位ACK是否为1。若正确,客户端再次发送确认包,ACK标志位为1,SYN标志位为0。确认序号(Acknowledgement Number)=Y+1=0+1=1,发送序号为X+1=1。服务器收到后确认序号值与ACK=1则连接建立成功,可以传送数据了。
    image.png

    二、四次挥手

    zdfilsi30n.jpeg
    image.png
    第一次挥手:客户端向服务器端发送一段TCP报文,其中将标志位FIN和ACK置为1,序号为Seq=X=1665,确认序号为ack=Z=673。
    image.png
    第二次挥手:服务器收到FIN后,发回一个ACK(标志位ACK=1),确认序号为收到的序号加1,即ack=X=1665+1=1666。序号为收到的确认序号Seq=Z=673。
    image.png
    第三次挥手:服务器关闭与客户端的连接,发送一个FIN。标志位FIN和ACK置为1,序号为Seq=Y=673,确认序号为ack=X=1666。
    image.png
    第四次挥手:客户端收到服务器发送的FIN之后,发回ACK确认(标志位ACK=1),确认序号为收到的序号加1,即ack=Y+1=674。序号为收到的确认序号Seq=X=1666。
    image.png

    三、应用层HTTP流程协议分析

    HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
    image.png
    HTTP请求报文分析:
    image.png
    HTTP响应报文分析:
    image.png

    四、SSL握手

    TLS是一种密码学协议,用于保证两者之间的会话安全。

    image.png
    ClientHello为握手的第一条消息,发送的内容有如下图:
    image.png
    ServerHello消息的意义是将服务器选择的连接参数传送回客户端,结构与ClientHello类似:
    image.png
    Certificate 该部分是服务器返回给客户端的证书链:
    image.png
    ServerKeyExchange 该消息的目的是携带密钥交换的额外数据
    ServerHelloDone 消息表明服务器已经将所有预计的握手消息发送完毕。
    image.png
    Client Key Exchange 消息携带客户端为密钥交换提供的所有信息,内容随着不同的协商密码套件而不同。
    ChangeCipherSpec 消息表明发送端已取得用以生成连接参数的足够信息,已生成加密密钥,并且将切换到加密模式,此后客户端的数据均为协商密钥加密的密文。
    Encypted Handshake Message(finish) 为结合所有当前的通信参数信息生成一段数据,并使用协商密钥加密后的内容
    image.png
    New Session Ticket 会话标识符,解决会话缓存问题。
    image.png

  • 相关阅读:
    jmeter中response data出现乱码的解决方法
    jmeter功能摘要
    jmeter的安装目录文件
    C语言中if(a);if(!a);if(a!=0);if(a==0)有什么区别?
    python怎么连接redis(附源码)
    组管理和权限管理
    实用指令
    用户管理
    开机/重启/用户切换/注销
    vim快捷键
  • 原文地址:https://www.cnblogs.com/WTa0/p/14573230.html
Copyright © 2020-2023  润新知