鉴源论坛 · 观辙丨TLS协议基本原理与Wireshark分析

news2024/11/13 15:32:02

作者 | 苏少博 上海控安可信软件创新研究院汽车网络安全组

来源 | 鉴源实验室

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

01

背 景

随着车联网的迅猛发展,汽车已经不再是传统的机械交通工具,而是智能化、互联化的移动终端。然而,随之而来的是对车辆通信安全的日益严峻的威胁。在车联网生态系统中,车辆通过无线网络与其他车辆、基础设施以及云端服务进行广泛通信,这种高度互联的状态也使得车辆系统更容易受到各种潜在的威胁和攻击。

通信安全问题在车联网中尤为突出,可能面临诸如数据窃取、信息篡改、恶意注入以及拒绝服务等多种威胁。黑客可能试图获取车辆传感器和控制单元的敏感信息,篡改车辆间的通信数据,甚至远程控制车辆执行危险操作。这些潜在的威胁对驾驶安全、车辆保障以及交通管理都构成了巨大的挑战。

为了有效应对这些安全威胁,通信安全加密成为车联网中的关键环节。在这一背景下,传输层安全协议(TLS)作为一种通用的安全通信协议,为车辆通信提供了可靠的安全保护。通过强化数据的保密性、完整性和身份验证,TLS在车联网中发挥着至关重要的作用,有效应对通信安全所面临的复杂挑战。

02

TLS 基本原理

2.1  基本介绍

传输层安全协议(TLS)是一种加密通信协议,用于确保在网络上的数据传输过程中的安全性和隐私保护。TLS的前身是安全套接层协议(SSL),后来在标准化过程中发展成为TLS。TLS协议的主要目标是通过加密和认证机制,保护网络通信的机密性、完整性和身份验证,以抵御可能的网络攻击和窃听。

TLS协议主要通过以下方式实现安全通信:

加密(Encryption):使用加密算法对传输的数据进行加密,确保在传输过程中数据不被未授权的第三方读取或修改。

认证(Authentication):通过数字证书等机制验证通信双方的身份,确保通信的对端是合法的,并防止中间人攻击。

完整性保护(Integrity Protection): 使用消息摘要算法(如哈希函数)来验证数据在传输过程中是否被篡改,以保障数据的完整性。

TLS协议广泛应用于互联网通信中,尤其在Web浏览器与服务器之间的安全通信中扮演关键角色。当用户访问使用“https://”协议的网站时,TLS协议就会启动,确保用户与网站之间的数据传输是安全可信的。TLS协议的不断升级和改进也反映了对网络安全不断演进的需求。

2.2  TLS握手过程

2.2.1 TLS 1.2 握手过程

TLS(Transport Layer Security)握手过程是确保安全通信的关键步骤,它涉及到协商加密算法、验证通信双方的身份,并生成用于加密通信的会话密钥,通常包含以下几个流程:

客户端发出请求(ClientHello)。在此流程中,客户端会提供如下信息:

  • 客户端生成一个随机数,称为ClientRandom,这个随机数的目的是在握手过程中引入熵(entropy),增加通信的随机性,提高安全性;

  • 客户端会列举支持的加密算法、摘要算法以及密钥交换算法等。这是为了告知服务器它可以使用哪些算法来保护通信;

  • 客户端会提供其他通信参数,例如支持的压缩算法等。这些参数提供了有关客户端支持的通信设置的信息。

使用Wireshark打开包含TLS ClientHello数据的流量包时,通常可以看到如下内容:

ClientHello:

    Random: [随机数]

    CipherSuites: [支持的加密算法列表]

    CompressionMethods: [支持的压缩算法列表]

    Extensions: [其他扩展,例如SNI(Server Name Indication)]                                            

图一.png

图1 ClientHello示意图

ClientHello的目标是为服务器提供足够的信息,以便服务器能够做出响应,并在握手过程中建立一个安全的通信通道。服务器将使用这些信息来选择合适的加密算法、生成自己的随机数、以及执行其他必要的步骤来协商出一个安全的连接。

服务器回应(SeverHello)。在此流程中,服务器会回复以下信息:

  • 服务器会生成一个随机数,称为ServerRandom。类似于ClientRandom,它增加了握手过程的熵,提高了通信的随机性和安全性;

  • 服务器从客户端提供的加密算法列表中选择一个算法,用于后续的通信加密;

  • 服务器确认客户端提供的其他通信参数,例如TLS版本、压缩算法等;

  • 如果服务器支持会话缓存和复用,还会生成一个Session ID发送给客户端。客户端可以在未来的握手中使用该Session ID来恢复先前的会话状态,以加速握手过程。

使用Wireshark打开包含TLS ServerHello数据的流量包时,通常可以看到如下内容:

ServerHello:

    Random: [随机数]

    CipherSuite: [选择的加密算法]

    CompressionMethod: [选择的压缩算法]

    Session ID: [会话标识,如果支持会话复用]

    Extensions: [其他扩展,例如支持的应用层协议(ALPN)]

图二.png

图2 ServerHello示意图

客户端回应。在此流程中,客户端会回复以下信息:

客户端和服务器使用已经在之前握手步骤中交换的随机数生成一个预主密钥,称为Pre-Master Secret,并使用服务器的公钥进行加密,发送给服务器。

服务器再次回应。在此流程中,服务器会回复以下信息:

服务器收到客户端传输的加密信息后,使用其私钥解密并获得 Pre-Master Secret。

服务器和客户端使用已经交换的随机数和 Pre-Master Secret 生成一个 Master Secret(主密钥)。

随后,客户端发送ChangeCipherSpec消息给服务器,通知服务器从此时开始使用新生成的密钥加密通信内容,服务器同样给出回应,至此,整个握手阶段全部结束。

图三.png

图3 ChangeCipherSpec示意图

2.2.2 TLS双向认证

单向认证和双向认证是TLS常用的两种身份验证机制,它们的主要区别在于验证的参与方和方式。

单向认证是指单向认证仅验证一方的身份,通常是客户端验证服务器的身份,确保客户端连接到合法的服务器。流程与上述握手过程相同。单向认证适用于大多数互联网服务,服务提供商或服务的拥有者验证其身份,而客户端无需提供身份验证。

双向认证是指通信过程中需要验证两方的身份。客户端请求连接服务器,服务器提供数字证书,客户端验证服务器的身份;同时,客户端也会发出CertificateRequest请求,要求客户端也提供数字证书,服务器发送Certificate验证至客户端的身份,至此,双向认证完成。双向认证通常用于对通信安全性要求较高的场景,例如在线支付、云服务、金融应用等,确保通信的双方都是合法的。

图四.png

图4 Certificate示意图

2.3 TLS 1.3

2.3.1 握手过程

TLS 1.3在握手过程上进行了一些改进,提高安全性和性能。在上述的TLS 1.2握手过程中,通常需要进行ClintHello、ServerHello、两次密钥交换,共两个来回的完整握手过程,而在TLS 1.3中将Hello和密钥交换过程进行了合并,有效减少了握手次数。

图五.png

图5 TLS 1.3中ServerHello直接进行了密钥交换

2.3.2 其他改进

1)删除不安全算法支持:

TLS 1.3弃用了一些不安全或弱密码算法,进一步提高了安全性。例如,去除了对MD5、SHA-1、RC4等算法的支持。

2)使用HKDF进行密钥派生:

TLS 1.3使用基于HMAC的密钥派生函数(HKDF)来派生密钥材料,增强了密钥派生的安全性。

3)提供前向保密:

TLS 1.3使用Diffie-Hellman密钥交换算法的TLS 1.3握手过程中,提供了前向保密性,保证即使服务器的长期私钥泄漏,以前的通信也不会受到影响。

4)支持0-RTT恢复:

TLS 1.3引入了支持0-RTT(零轮往返时间)的特性,允许客户端在第一次连接时发送数据,从而进一步提高性能。

03

结 语

通过以上对TLS的介绍,希望大家能够对TLS原理有更清晰的认识,能够使用wireshark对TLS流量包进行简单的分析。如今TLS在车联网中扮演着关键的角色,通过加密、身份验证和完整性保护等机制,为车辆之间和车辆与基础设施之间的通信提供了可靠的安全保障。这对确保车辆网络的稳定性、用户隐私和远程控制的安全性都至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1480302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv9有效改进专栏汇总|未来更新卷积、主干、检测头注意力机制、特征融合方式等创新!

YOLOv9有效改进专栏! 专栏介绍 YOLOv9作为最新的YOLO系列模型,对于做目标检测的同学是必不可少的。本专栏将针对2024年最新推出的YOLOv9检测模型,使用当前流行和较新的模块进行该进。本专栏于2024年2月29日晚创建,预计四月底前加入…

Python中reduce函数和lambda表达式的学习

reduce函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数…

HTTPS证书怎么申请?多少钱?

HTTPS证书的申请费用会因多种因素而异,主要包括以下几点: 1. 证书类型: - 域名验证型证书(DV SSL):这种证书仅验证域名的所有权,申请速度较快,通常用于个人网站或小型项目,价格相对较低&…

SpringCloud微服务-统一网关Gateway

统一网关Gateway 文章目录 统一网关Gateway1、为什么需要网关?2、gateway快速入门3、路由断言工厂Route Predicate Factory4、过滤器工厂-路由过滤器GatewayFilter5、全局过滤器**GlobalFilter**6、各种过滤器的执行顺序7、跨域问题的解决 1、为什么需要网关? 网关与各个服务…

JAVA 反序列化之 Apache Commons Collections 反序列化漏洞分析

Apache Commons Collections 反序列化漏洞是 2015 年影响重大的漏洞之一,同时也开启了各类 java 反序列漏洞的大门,这几年大量各类 java 反序列化漏洞不断出现。java 反序列化漏洞基本一出必高危,风险程度极大,最近研究了一些反序…

找工作的小伙伴有福利了

简历模块 资料说明 ✅内容:300多套简历模块,包含单页简历150套、双页简历15套、三页简历25套、四页简历50套、表格简历15套、自荐信20 套,封面简历、英文简历150 ✅文件格式:word ✅ 文件大小:449MB 资料文件展示 资…

MySQL(基础篇)——多表查询

一.多表关系 一对多(多对一) 多对多一对一 1.一对多(多对一) a.案例:部门与员工的关系 b.关系:一个部门对应多个员工,一个员工对应一个部门 c.实现:在多的一方建立外键,指向一的一方的主键 2.多对多 a.案…

notch 滤波器设计

notch 滤波器是一种用于去除特定频率成分的滤波器,通常用于消除信号中的特定频率的干扰或噪声。也可以与一个系统级联,用于抑制系统谐振峰的影响。 假设 notch 滤波器的下陷频率为 ω c \omega_c ωc​,下陷程度为 d B d o w n dB_{down} …

k8s二进制部署的搭建

1.1 常见k8s安装部署方式 ●Minikube Minikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特性使用。 部署地址:Install Tools | Kubernetes ●Kubeadm Kubeadm也是一个工具,提供kubeadm init…

高侧开关芯片四通道 40V 50mΩ车规级带反向电流保护功能负载检测高边开关

概述 PC8845/G是四通道、高侧功率具有集成NMOS功率FET的开关,以及电荷泵。该设备集成了高级 保护功能,例如负载电流限制,通过功率限制进行过载主动管理可配置闩锁关闭的超温停机。全面诊断和高精度电流感应这些功能实现了对负载的智能控制。…

html基础操练和进阶修炼宝典

文章目录 1.超链接标签2.跳锚点3.图片标签4.表格5.表格的方向属性6.子窗口7.音视频标签8.表单9.文件上传10.input属性 html修炼必经之路—各种类型标签详解加展示&#xff0c;关注点赞加收藏&#xff0c;防止迷路哦 1.超链接标签 <!DOCTYPE html> <html lang"en…

「媒体宣传」如何写好新闻稿?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 写好新闻稿是媒体宣传的关键环节之一&#xff0c;下面是一些关于如何写好新闻稿的建议&#xff1a; 明确新闻稿的目的和受众&#xff1a;在写新闻稿之前&#xff0c;首先要明确新闻稿的目…

在 Rust 中实现 TCP : 1. 联通内核与用户空间的桥梁

内核-用户空间鸿沟 构建自己的 TCP栈是一项极具挑战的任务。通常&#xff0c;当用户空间应用程序需要互联网连接时&#xff0c;它们会调用操作系统内核提供的高级 API。这些 API 帮助应用程序 连接网络创建、发送和接收数据&#xff0c;从而消除了直接处理原始数据包的复杂性。…

一念生花,Coze 结合VisActor 文生图实战总结

前言 词云魔方 逢年过节发送祝福语是中国人特有的礼节&#xff0c;然而准备拜年祝福语也是让人伤透脑筋&#xff0c;大多数人都是拷贝网络上流行的“段子”&#xff0c;改一下名字就发出来了。更有甚者连名字都不改&#xff0c;略显尴尬。 但是如果可以让 AI 总结你想对特定…

18个惊艳的可视化大屏(第十辑):物流运输快递方向

可视化大屏在物流运输行业中具有很大的应用价值&#xff0c;可以帮助企业实现实时监控、路线规划、数据分析、风险预警、服务质量监控和决策支持等目标&#xff0c;提高物流运输效率和安全性&#xff0c;降低成本&#xff0c;提升企业竞争力&#xff0c;贝格前端工场带来的和这…

跨国企业如何选择合格的国际数据业务传输方案

在全球化的商业环境中&#xff0c;跨国企业面临着数据跨境传输的挑战。随着业务的扩展&#xff0c;企业需要在不同国家和地区之间高效、安全地传输大量数据。选择合适的国际数据业务传输方案对于保障数据安全、提高业务效率、遵守法律法规至关重要。 为什么跨国企业需要一个合适…

CentOS 定时调度

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

蓝桥杯练习系统(算法训练)ALGO-994 最大分解

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给出一个正整数n&#xff0c;求一个和最大的序列a0&#xff0c;a1&#xff0c;a2&#xff0c;……&#xff0c;ap&#xff…

案例研究|DataEase助力众陶联应对产业链数据可视化挑战

佛山众陶联供应链服务有限公司&#xff08;以下简称为“众陶联”&#xff09;成立于2016年&#xff0c;是由34家陶瓷企业共同创办的建陶行业工业互联网平台&#xff0c;股东产值占整个行业的22.5%。众陶联以数据赋能为核心&#xff0c;积极探索新的交易和服务模式&#xff0c;构…

安达发|APS自动排程软件的三种模式

APS自动排程软件是一种用于生产计划和调度的工具&#xff0c;它可以帮助制造企业实现生产过程的优化和效率提升。根据不同的需求和应用场景&#xff0c;APS自动排程软件通常有三种模式&#xff1a;基于模拟仿真模式、基于TOC的模式和扩展以及基于数学建模。下面我将详细介绍这三…