问题描述

在抓取到网络包之后,如何来获取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. Python 字符串格式化输出

    数字 n: int = 1000000000 print(f'{n:_}') # 1_000_000_000 print(f'{n:,}') # 1,000,000,000 对齐 var: str = ...

  2. Docker 发布镜像

    发布镜像 在 Docker Hub 发布镜像 登陆到 Docker Hub docker login 标记镜像并推送到 Docker Hub docker tag <image>:< ...

  3. 关于arcmap使用json文件转要素类

    手工编辑了一个json文件,或者在arcgis server下拉取到的json格式文件,通过arcmap进行转换时,出现异常,错误代码001558,此时就是json文件格式不是ansi导致的,用文本编 ...

  4. 设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后;在k1值相同的情况下,再看k2,k2值小的在前,大的在后。满足这种要求的

    题目: 设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后:在k1值相同的情况下,再看k2,k2值小的在前,大的在后.满足这种要求的排 ...

  5. php自定义函数访问其他地方定义的变量

    新捣鼓php,很多地方有.net的思维好难改过来. 在Connection/config.php 自定义了数据库连接字符串 然后在外部页面,自定义了一个function,对数据库进行操作 然后死活都给 ...

  6. 用python编写web 界面可以用哪些库

    背景: 很多人熟悉python, 但不熟悉前端语言js, 为了项目快速落地,也不太想去专门学习 React/Angular/Vue这些框架,那么就会问一个问题,能不能用Python直接写出一个简单we ...

  7. 在stable diffussion中控制生成图片的光线

    在摄影中,光线起着至关重要的作用,它对图像的整体质量和氛围有着显著的影响.您可以使用光线来增强主题,创造深度和维度,传达情感,以及突出重要细节. 在这篇文章中,我会告诉你如何在stable diffu ...

  8. mybatis springboot多数据源,根据使用的数据库不同,执行不同的sql语句

    springboot 多数据源配置就不说了,百度太多的用例, 这里只说下在多数据源下切换执行sql逻辑 1.xml sql嵌套,通过<if>标签来判断,用的是mybatis自己sql动态拼 ...

  9. 从零开始掌握 Kubernetes:Pod 和 Deployment 的幕后故事

    1. 引言 在如今的技术世界中,随着微服务架构的广泛应用和云原生理念的兴起,应用程序的开发.部署和管理发生了翻天覆地的变化.容器技术的出现使得开发者可以轻松地将应用及其所有依赖打包在一个轻量级.可移植 ...

  10. 利用AutoGpt将任何模型支持o1模型的推理实现

    利用AutoGpt将任何模型支持o1模型的推理实现 相信大家都对于OpenAI最新出的o1模型都非常关注,它已经能通过推理让回复的效果更加理想, 但是目前o1的限制太大,而且使用o1至少也是需要购买O ...