国密双向认证抓包及分析

基于TASSL双向认证握手协议

说明

C->S表示报文从client端发送到server端
S->C表示报文从server端发送到client端。
采用国密版本wirshark进行抓包操作。

1 client hello (C->S)

在这里插入图片描述
客户端发起握手协商操作,它将发送一个 Client Hello 消息给服务器,消息中明确了其所支持的SSL/TLS版本、Cipher suite加密算法组合等,可以让服务器选择,并提供了一个客户端随机数,用于以后生成会话密钥使用。

2 server hello (S->C)

在这里插入图片描述
服务器将返回一个 Server Hello 消息,该消息包含了服务器选择的协议版本、加密算法,以及服务器随机数、会话ID等内容。其中,服务器选择的协议版本应小于等于客户端Client Hello中的协议版本。

3 Certificate (S->C)

服务器发送Server Hello消息,选择好协议版本和加密算法组合后,将发送 Certificate 消息,该消息包含了服务器的证书等信息,可通过证书链认证该证书的真实性。根据选择的加密算法组合的不同,服务器证书中的公钥也可被用于加密后面握手过程中生成的Premaster secret。
在这里插入图片描述

4 Server Key Exchange(S->C)

对于标准协议来说是用来进行椭圆曲线协调的,但是国密并不会真正采用椭圆曲线的秘钥协商算法。仍旧是采用传统的DH秘钥协商算法。
在这里插入图片描述

5 Certificate request (S->C)

双向认证要求客户端发来证书
在这里插入图片描述

6 Server Hello Done(S->C)

在这里插入图片描述

7 Certificate(C->S)

因为server要求验证证书,发送了Certificate request ,client在收到该报文后,将自己的证书发送到了服务端。
在这里插入图片描述

8 Client Key Exchange(C->S)

客户端发送 Client Key Exchange消息,将自己的Diffie-Hellman协议中的Pub Key发送到服务端。
在这里插入图片描述

9 Certificate verify C->S

发送这个类型的握手需要2个前提条件

服务器端请求了客户端证书
客户端发送了非0长的证书

此时,客户端想要证明自己拥有该证书,必然需要私钥签名一段数据发给服务器验证。
签名的数据是客户端发送certificate verify前,所有收到和发送的握手信息(不包括5字节的record)。其实这个流程和签名server key exchange基本一样。计算摘要,然后签名运算。
在这里插入图片描述

10 Change Cipher Spec(C->S)

加密传输中每隔一段时间必须改变其加解密参数的协议,因为后续的报文都会采用刚刚协商好的加密秘钥进行加密传输,因此会发送该报文。
在这里插入图片描述

11 Encrypted handshake Message(C->S)

该报文的目的就是,客户端告诉服务端,自己在整个握手过程中收到了什么数据,发送了什么数据。来保证中间没人篡改报文。
该数据采用刚才协商好的秘钥进行加密,顺带验证秘钥。
在这里插入图片描述

12 New Session ticket(S->C)

一种控制后续交互数据量和数据有效值的session设置,这里可能不会生效。
在这里插入图片描述
参考阅读

13 Change Cipher Spec (S->C)

加密传输中每隔一段时间必须改变其加解密参数的协议,因为后续的报文都会采用刚刚协商好的加密秘钥进行加密传输,因此会发送该报文。
在后续的连续发送过程中,服务端都可以采用该报文通知客户端,后续将采用新秘钥进行数据加密通信。
在这里插入图片描述

14 Encrypted handshake Message (S->C)

该报文的目的就是,服务端告诉客户端,自己在整个握手过程中收到了什么数据,发送了什么数据。来保证中间没人篡改报文。
该数据采用刚才协商好的秘钥进行加密,顺带验证秘钥。
在这里插入图片描述

15 Application Data

后续采用加密方式进行数据通信。
在这里插入图片描述

分手包:
https://blog.csdn.net/qq78442761/article/details/120716143

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTPS (Hypertext Transfer Protocol Secure) 是HTTP协议的一个安全版本,通过SSL/TLS协议加密数据,提供数据传输的安全性和隐私保护。当你使用Wireshark抓包分析HTTPS流量时,你会看到实际的网络通信被包装在一个加密套接字中,这使得直接查看数据内容变得困难。 抓包分析HTTPS的主要步骤如下: 1. **启动Wireshark**:首先,打开Wireshark,并确保已经安装了SSL/TLS解密插件(如SSL dissector),以便正确解析加密流量。 2. **选择接口和过滤器**:选择你的网络接口,通常选择“Any”来捕获所有流量,然后添加过滤器`tcp.port == 443`,这样只会显示HTTPS流量。 3. **截取流量**:开始抓包,等待一段连接时间,确保捕获到完整的HTTPS会话,包括三次握手(TCP连接建立)和后续的数据交换。 4. **解密流量**:Wireshark会自动对SSL/TLS包进行解密,但解密过程可能会因为证书问题、私钥缺失等原因失败,这时可能需要手动导入相应的证书或信任链。 5. **查看会话信息**:在捕获的包中,你可以看到TLS/SSL连接的详细信息,如版本、加密算法、认证方法等。HTTP请求和响应会被转换为明文显示。 6. **分析数据**:通过查看HTTP请求头和响应头,可以了解请求的URL、方法、HTTP状态码以及任何附加的身份验证信息。 相关问题: 1. 如何在Wireshark中导入自定义的SSL证书来解密HTTPS会话? 2. HTTPS握手过程中,三次握手具体指什么? 3. Wireshark如何处理SSL/TLS连接失败的情况?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值