关于 TLS Client_Hello 版本的问题分析

这篇具有很好参考价值的文章主要介绍了关于 TLS Client_Hello 版本的问题分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于 TLS Client_Hello 版本的问题分析
一、 报文结构
client hello报文,网络,网络协议,安全

如上图,TLS 数据结构由Content Type 、Version、 Length、fragment四部分构成,Version在 Record Layer 和Handshake Protocol中均有出现。
client hello报文,网络,网络协议,安全
RFC 5246 6.2.1 定义的数据结构

Record Layer中的version定义如下:
client hello报文,网络,网络协议,安全
RFC 5246 6.2.1 record layer Version的描述
Record Layer 中的Version为此报文所采用的TLS 协议版本:
client hello报文,网络,网络协议,安全

Client Hello中的client_version定义如下:
client hello报文,网络,网络协议,安全
RFC 5246 7.4.1.2 record layer Version的描述
Client_version为客户端所希望采用的通信协议。

二、 报文解析
client hello报文,网络,网络协议,安全原始报文
client hello报文,网络,网络协议,安全

                         **科来改变两处version的值**

client hello报文,网络,网络协议,安全
加工报文

Client报文的封装和解析与Version协议版本无关,即使上下version均修改后,报文仍然可以得到正确的解析。
与之对应的,DTLS报文的封装与解析,与Version相关,修改为无法识别的Version后将无法正确解析,如下图:
client hello报文,网络,网络协议,安全
原始报文
client hello报文,网络,网络协议,安全
科来改变record layer version的值
client hello报文,网络,网络协议,安全
加工报文

对此,RFC 5246 E.1中解释如下:
client hello报文,网络,网络协议,安全
RFC 5246 E.1
SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2保持兼容的clienthello数据格式,只要保持兼容的数据格式,即使未来出现更高的tls 协议版本,服务器也能够进行处理。

三、 Version 版本问题
以上可知,因为client_hello的兼容性,无论Record Layer使用哪种TLS协议版本,client_hello数据报文均能够得到有效的解析,最终完成数据通信过程中的TLS协议版本协商。
对于Record Layer常使用TLS 1.0版本的协议,RFC 5246 E.1解释如下:
client hello报文,网络,网络协议,安全
RFC 5246 E.1
一些服务器没有正确的实现version协商,有一些有问题的TLS 1.0服务器,当客户提供比TLS 1.0更高的版本时,它们会简单地关闭连接。
结论:ClientHello报文的解析与tls版本无关,客户端与服务器进行TLS握手时,因需考虑服务器兼容问题,会先以TLS 1.0发送client hello完成version协商。文章来源地址https://www.toymoban.com/news/detail-776407.html

到了这里,关于关于 TLS Client_Hello 版本的问题分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于ESP8266的透传模式测试(一)——TCP Client透传模式

    一、前言 本次测试所使用的是正点原子的ATK-ESP8266 WIFI模块。直接使用官方提供的固件使用AT指令来配置模块并使用。 模块默认为AT指令状态,模拟波特率为115200(8bit数据位,1bit停止位)。 硬件连接 使用USB转TTL方式(电脑需要安装CH340驱动)连接ESP8266,接线图如下。 二、透

    2024年02月22日
    浏览(59)
  • Spring Security OAuth Client配置加载源码分析

    相关文章: OAuth2的定义和运行流程 Spring Security OAuth实现Gitee快捷登录 Spring Security OAuth实现GitHub快捷登录 Spring Security的过滤器链机制 这一节我们以前面默认的OAuth2 客户端集成为例,来了解下配置文件的加载,示例见第二、第三节。 假如你没有看过相关视频,或者书,但想要

    2024年02月08日
    浏览(36)
  • 关于错误信息 java.lang.ClassNotFoundException: com.android.tools.lint.client.api.Vendor

    隔了挺长时间,又要进行 Android 和 Unity 的对接,需要从 Android Studio 导出一个 AAR 包,出包时报错:“ java.lang.ClassNotFoundException: com.android.tools.lint.client.api.Vendor” 这个问题好像之前也遇到过,不过隔了太长时间也没啥印象了,于是又重新查了下网络。 有很多人推荐的解决方法

    2024年02月17日
    浏览(40)
  • 记一次Apache HTTP Client问题排查

    通过日志查看,存在两种异常情况。 第一种:开始的时候HTTP请求会报超时异常。 762663363 [2023-07-21 06:04:25] [executor-64] ERROR - com.xxl.CucmTool - CucmTool|sendRisPortSoap error,url:https://xxxxxx/realtimeservice/services/RisPort org.apache.http.conn.HttpHostConnectException: Connect to xxx [/xxx] failed: 连接超时 第二种

    2024年02月12日
    浏览(61)
  • Eureka Client注册不到注册中心的问题

      记录一次EurekaClient注册不上的问题,先描述一下问题:   我的EurekaClient成功启动,但是注册中心却找不到          配置文件什么的应该都是没问题的,但是就是无法在注册中心找到   最后经过我反复查询资料,才发现是依赖问题。之前不论是网上的大多数教程还是书上

    2024年02月03日
    浏览(39)
  • Elasticsearch8.x版本Java客户端Elasticsearch Java API Client中常用API练习

    在Es7.15版本之后,es官方将它的高级客户端RestHighLevelClient标记为弃用状态。同时推出了全新的java API客户端Elasticsearch Java API Client,该客户端也将在Elasticsearch8.0及以后版本中成为官方推荐使用的客户端。 Elasticsearch Java API Client支持除Vector title search API和Find structure API之外的所有

    2024年04月11日
    浏览(46)
  • 【SA8295P 源码分析】51 - QNX NFS Server + Android NFS Client 完整配置

    【源码分析】 因为一些原因,本文需要移除, 对于已经购买的兄弟,不用担心,不是跑路, 我会继续持续提供技术支持, 有什么模块想学习的,或者有什么问题有疑问的, 请私聊我,我们 +VX 沟通技术问题,一起学习,一起进步 接下来,我一一私聊已经购买的兄弟添加V

    2024年02月12日
    浏览(41)
  • VSphere VCenter Web Client 加载缓慢卡顿问题 & 设置登陆状态超时时间

    都快2024年了,VSphere(VMware服务器版)还是有大量公司在用,用久了公有云会对这个产生鄙视感,但这个东西其实还算成熟,甚至还支持Terraform,不过毕竟是自己维护,如果不注意很容易踩坑 vSphere(VMware vSphere)在早期版本中主要使用C#客户端(也称为vSphere客户端或vSphere W

    2024年02月03日
    浏览(39)
  • 简配Eureka Server、Eureka Discovery Client、feign及遇到的问题

    一、Eureka Server 1.1、项目new-module-Spring Initializr,现在jdk仅支持17及以上版本 1.2、注意Spring Boot版本,勾选Eureka Server,点击Create 1.3、配置该模块下的application文件 4、Application类使用 @EnableEurekaServer,否则会报错  Cannot invoke \\\"org.springframework.cloud.netflix.eureka.CloudEurekaClient.getApplica

    2024年04月29日
    浏览(35)
  • Load balancer does not have available server for client问题

    Load balancer does not have available server for client问题,是因为消费端没有调用成功服务端。下面四步是必备的,可以检查一番。 1.写nacos发现的启动类注解。 2.在两端yml文件中配置nacos地址。 3.写openfeign的接口。 4.开启服务端的endpoint。

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包