问题描述

在抓取到网络包之后,如何来获取TLS信息呢?比如使用的是是么加密套件呢?

因为在应用层面,获取的错误信息非常简单:

An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed.

从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。

所以,我们如何从客户端抓取的网络包中分析出 TLS 所所以用的 Cipher Suites信息呢?

问题解答

通过咨询M365 Copilot,得到了想要的答案:

在Wireshark中分析SSL相关信息(例如使用的加密套件)可以通过以下步骤进行:

1. 启动Wireshark并抓包:首先,启动Wireshark并开始抓取网络流量。确保你正在捕获包含SSL/TLS流量的网络接口。
2. 过滤SSL/TLS流量:在Wireshark的过滤器栏中输入ssl或tls,以便只显示SSL/TLS流量。这将帮助你更容易找到相关的数据包。
3. 找到SSL握手包:在过滤后的流量中,找到SSL握手包。通常,这些包包括Client Hello和Server Hello消息。你可以通过查看协议列中的Client Hello和Server Hello来识别这些包。
4. 查看加密套件:

  • Client Hello:双击Client Hello包,在详细信息窗格中展开Secure Sockets Layer或Transport Layer Security部分。你会看到一个名为Cipher Suites的字段,其中列出了客户端支持的加密套件。
  • Server Hello:双击Server Hello包,在详细信息窗格中展开Secure Sockets Layer或Transport Layer Security部分。你会看到一个名为Cipher Suite的字段,其中列出了服务器选择的加密套件。

5. 解密SSL/TLS流量(可选):如果你有服务器的私钥,可以在Wireshark中配置解密SSL/TLS流量。步骤如下:

  • 选择Edit > Preferences。
  • 在Preferences窗口中展开Protocols,然后选择SSL。
  • 在RSA keys list字段中,输入服务器的IP地址、端口、协议和私钥文件路径。

通过这些步骤,你可以在Wireshark中分析SSL相关信息并查看使用的加密套件。

实际演示

根据以上的解答,实际实验去查看两个数据包:一个是正常建立TLS连接,一个是无法建立TLS连接。

第一步:根据目的IP地址过滤网络包

打开 .pcapng 后缀名的网络包,根据目的IP地址进行过滤 ( 如:ip.addr == 5.13.9.7 

第二步:查看TCP请求中的Client Hello 信息

Transport Layer Security --> TLSv1.2 Record Layer --> Handshake Protocol:Client Hello --> Cipher Suites

Cipher Suites (12 suites)

Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)
Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)
Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)
Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)
Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)

第三步:查看TCP请求中的Server Hello 信息

Transport Layer Security --> TLSv1.2 Record Layer --> Handshake Protocol:Server Hello --> Cipher Suites

[正常建立连接]

Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)

[不能正常建立连接]

在客户端发送Client Hell后,服务端返回的Server Hello包中,

Transport Layer Security

TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Protocol Version)
Content Type: Alert (21)
Version: TLS 1.2 (0x0303)
Length: 2
Alert Message
Level: Fatal (2)
Description: Protocol Version (70)

演示动画:

参考资料

Wireshark: https://www.wireshark.org/

【Azure 环境】从网络包中分析出TLS加密套件信息的更多相关文章

  1. wireshark抓包,分析出PNG后解析

    1. 抓包 2. 转成hex二进制流 3. 将二进制流转成base64位,通过在线工具: http://tomeko.net/online_tools/hex_to_base64.php?lang=e ...

  2. 为什么在UDP包中不能获取发包方的地址

    首先,我们要先了解一下UDP包的结构. 图1 UDP报文格式 从图1,我们可以看出,从UDP包中,我们可以获取的信息只有源端口和目的地端口.我们不能获取到源IP因为报文中没有源IP.真正包含IP地址的 ...

  3. JAR包中的MANIFEST.MF文件详解以及编写规范

    参考百度百科的解释如下: http://baike.baidu.com/item/MANIFEST.MF MANIFEST.MF:这个 manifest 文件定义了与扩展和包相关的数据.单词“mani ...

  4. [转]SSIS ProtectionLevel 对包中敏感数据的访问控制

    本文转自:http://technet.microsoft.com/zh-cn/library/ms141747.aspx 为了保护 Integration Services 包中的数据,可以设置保护 ...

  5. 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析

    问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...

  6. ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session

    Session 嘛,占一点儿服务器资源,但是总归比 ViewState 和 Cookie 安全点儿,所以还是要用的. Windows Azure 环境中的 Web 服务器经由负载均衡调度,根本无法保证 ...

  7. Azure环境中Nginx高可用性和部署架构设计

    前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...

  8. application.properties多环境配置文件、jar包外部配置文件、配置项加密、程序中配置使用

    一.简介 spring boot项目application.properties文件存放及使用介绍 二.方法一多环境配置文件 我们一般都会有多个应用环境,开发环境.测试环境.生产环境,各个环境的配置会 ...

  9. Java网络编程和NIO详解4:浅析NIO包中的Buffer、Channel 和 Selector

    Java网络编程与NIO详解4:浅析NIO包中的Buffer.Channel 和 Selector 转自https://www.javadoop.com/post/nio-and-aio 本系列文章首 ...

  10. Java网络编程与NIO详解4:浅析NIO包中的Buffer、Channel 和 Selector

    微信公众号[黄小斜]作者是蚂蚁金服 JAVA 工程师,目前在蚂蚁财富负责后端开发工作,专注于 JAVA 后端技术栈,同时也懂点投资理财,坚持学习和写作,用大厂程序员的视角解读技术与互联网,我的世界里不 ...

随机推荐

  1. CASIO fx-991CN X 使用

    复数转换 \(a+b \, {\mathrm i} \leftrightarrow r \angle \theta\) 进入复数运算模式 菜单 2 输入待转换数 OPTN ▼,选择目标格式. = 可通 ...

  2. MarkDown语法教程(转)

    https://blog.csdn.net/2301_77569009/article/details/137957203

  3. 关于安装李沐深度学习d2l包报错的解决办法(保姆教程)

    目录 目录:d2l包安装失败的解决过程 前言 一.李沐提供的安装方式 1. 创建一个新的环境 2. 激活 d2l 环境 3. 安装深度学习框架和d2l软件包 3.1 安装PyTorch的CPU或GPU ...

  4. Angular 18+ 高级教程 – Component 组件 の Angular Component vs Web Component

    前言 在 初识 Angular 中我有提到, Angular 团队是一群不爱创新.爱 follow 标准.爱小题大做的一群人. 所以,要理解 Angular Component,我们就非得要先搞懂远古 ...

  5. C#|.net core 基础 - 深拷贝的五大类N种实现方式

    在实际应用中经常会有这样的需求:获取一个与原对象数据相同但是独立于原对象的精准副本,简单来说就是克隆一份,拷贝一份,复制一份和原对象一样的对象,但是两者各种修改不能互相影响.这一行为也叫深克隆,深拷贝 ...

  6. scala安装及配置

    window 上安装 Scala 1.Scala下载网址:https://www.scala-lang.org/download/ 2.下载后,双击 msi 文件,一步步安装即可,安装过程你可以使用默 ...

  7. std::vector 和 std::map 都支持以下比较运算符

    在 C++ 标准库中,std::vector 和 std::map 都支持以下比较运算符: ==(相等运算符) !=(不等运算符) <(小于运算符) <=(小于等于运算符) >(大于 ...

  8. MySQL9的3个新特性

    本文讲解MySQL9的3个新特性:支持将JSON输出保存到用户变量.支持准备语句以及支持面向AI的向量存储. 17.12  MySQL9新特性1--支持将JSON输出保存到用户变量 从MySQL 9版 ...

  9. 三维医学图像深度学习,数据增强方法(monai):RandHistogramShiftD, Flipd, Rotate90d

    #coding:utf-8 import torch from monai.transforms import Compose, RandHistogramShiftD, Flipd, Rotate9 ...

  10. 墨天轮访谈 | 百度云邱学达:GaiaDB如何解决云上场景的业务需求?

    分享嘉宾:邱学达 百度云原生数据库资深技术专家 整理:墨天轮社区 导读 业务上云的大背景对弹性与可靠性的要求越来越高,传统架构的单机数据库或是分片数据库已经很难支撑快速增长的业务,导致单机瓶颈.扩容缩 ...