文章总结: 本文详细解析车云通信中TLS协议的握手过程,重点以TLS1.2为例,通过Wireshark抓包分析ClientHello、ServerHello、证书交换及密钥协商等阶段细节。文章阐述了ECDHE算法原理及会话密钥生成过程,对比TLS与车内SecOC区别,为理解车联网安全通信机制提供参考。
综合评分: 82
文章分类: 车联网安全,网络安全,应用安全,实战经验
车联网安全–TLS握手过程详解
谈思实验室
2026年3月5日 17:34
上海
以下文章来源于汽车MCU软件设计
,作者快乐的肌肉
汽车MCU软件设计
.
不想拿CFA的码农不是好咖啡师,分享汽车标定、汽车网络安全和AutoSAR,偶尔杂文、长期技术
点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
01
TLS协议概述
车内各ECU间基于CAN的安全通讯–SecOC,想必现目前多数通信工程师们都已经搞的差不多了(不要再问FvM了);但在车云通信时则常用TLS来保证数据的信息,所以,来看看TLS吧。
TLS(Transport Layer Security)前身叫做SSL(Secure Sockets Layer),位于TCP之上,但仍旧属于传输层,作用很明确,就是为了保证车云通信时数据的CIA,因为该协议里所有通信数据均会加密,握手期间具备校验机制,更为重要的是配备了身份证书,可以有效证明其身份。
目前,TLS协议版本已经来到了1.3,具体可以搜版本号RFC 8446,在标准中详细描述了握手协议,如下图:
RFC 5246 : TLS v1.2;RFC 4346 : TLS v1.1 ;RFC 2246 TLS v1.0
那么就从最基础的通信双方如何建立连接开始,入门TLS。
02
为什么要握手
握手这个词很形象,就像相亲双方之前互不认识,但因为家里要求见面,那首先肯定是先握手,握手成功,双方来电,接下来对话才有戏;握手失败,闲聊两句,就各回各家。
握手期间的对话就很讲究了,对话如能找到共同话题,那相亲双方就可以围绕这个话题继续进行加密通信,这也就是TLS要先握手的本质:协商出一个密钥(共同话题),让双方基于这个密钥进行加密通信。
这个协议中定义握手消息名字也很有意思,“Hello”,包括了Client Hello和Server Hello等。
我们以TLS1.2流程为例(因为抓包只抓到TLSV1.2),总结流程如下:
我用Wireshark抓了一个和https网页沟通的包,过程和上图很像有么有?
以这个为例来具体分析分析:
2.1 Hello
第一条消息,Client(我)向Server(知乎某专栏)发送Hello请求,得到数据包如下:
该消息体现了当前TLS版本协议、会话ID、随机数1(很重要记住它)、能够使用的密码套件、压缩算法还有很多扩展内容,特别是有个server_name,就像相亲两人见面第一句一定是,你就是xxx吧?
Client打了招呼,那Server应该要进行回复,不然就没得聊了,它话很多,打一声招呼Server Hello,紧接着陆陆续续发送了自己的证书、密钥交换参数,最终以Hello Done结尾,
Server Hello
格式如下:
Server首先会进行响应,并且从Client能够使用的密码套件中选择一种,在这里,它选择了0xc02f,满足第一条消息中提供的密码套件,这条消息确认了TLS版本1.2,选择了套件,并且承诺不会压缩后续对话,注意,这里Server还传递了一个随机数2。
密码套件名字很长:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,但其实得拆开来看:
ECDHE指的是密钥交换算法 Elliptic Curve Diffie-Hellman Ephemeral,签名就使用RSA算法;
AES_128_GCM是指后续加密通信使用AES128-GCM,既定义了密钥长度,也定义了密码工作模式;SHA256就很简单了,做Hash都用它。
Server Certificate
还是以相亲为例,两人见面后的第二句话一定是:我是某某阿姨(中间人)介绍的xxx。
这句话很关键,因为相亲双方都是基于中间人的介绍,ta的介绍就像是一个证书,是相亲双方能够继续往下聊的一个前提。
但这个中间人只是双方认可的,如果需要再进一步确认信息,身份证就是最好的证明,这是最权威的机构颁发的证书。
因此,Server Certificate提供证书的目的也很明确,就是证明自己的合法身份,这条消息格式如下:
证书主要包含了如下信息:
证书里包含了一个非常关键的内容:Server的公钥,其他关于证书的问题我们后面单独再谈。
Server Key Exchange
前面我们已经知道了,双方要写上一个密钥,使用算法为ECDHE,这个算法要求双方首先交换公钥,因此需要这条消息 Key Exchange,格式如下:
这里面包括了握手类型、算法所选曲线采用x25519、用于协商密钥的公钥,以及用上述证书中公钥对应的私钥进行的签名,算法为RSA-PSS-SHA256(这些算法填充格式之前已经聊过了)。
Server Hello Done
Hello Done的信息量很少,如下:
就是Server告诉Client,自我介绍完毕,看你怎么回应。
事实上,通过Wireshark抓包,我们可以看到,Server回应的消息实际是在一个包内,如下图所示:
2.2 协商
在第一步里,Client收到了Server发来的证书、密钥交换的参数等等,就需要对一步一步来验证Server的身份和数据完整性,并向Server发送密钥协商的参数,同样一包中可以封装了不同的消息,如下图:
Client Key Exchange
首先Client使用CA的公钥对证书进行验签(过程暂不讲),通过后取出Server的公钥备用。
这时候Client就拥有了四个参数:自己的协商公钥、Server的协商公钥、随机数1、随机数2。
那么神奇的就来了,预协商密钥 = c_priv * s_pub = c_priv * (s_priv * G);
G是椭圆曲线的基点G,是公开的,唯有私钥是各自保护,所以Client也要把协商公钥发给Server,
Server拿到后,计算预协商密钥 = s_priv * c_pub = s_priv * (c_priv * G)。
这不就妥了吗?两边预协商密钥都一样了,这个密钥一般叫预主密钥。
还记得之前两个随机数吗,Client和Server会使用相同算法对这三个参数进行操作,得到最终会话密钥 = Algo(随机数1 + 随机数2 + 预主密钥)
Change Cipher Spec
这个消息就是告诉Server,咱们密钥都已经协商好了,那就用它开始进行对话吧,截图如下:
Encrypted Handshake Message
这个时候就使用了协商好的对称密钥对握手消息进行加密传输,如下:
之后就是加密后的应用数据了。
2.3 同意
当Client发送经过对称加密的消息后,Server当然也需要进行确认,因此会回复三个消息:
New Session Ticket
该消息主要是为了快速恢复会话,防止重复握手
Change Cipher Spec
表示Server接收到了使用协商好的共享密钥,并且确认后续都使用该密钥进行加密通话。
Encrypted Handshake Message
03
总共握了几次手?
最后总结一下, TLS建立连接时总共进行了几次握手?
第一次:Client向Server发送 Client Hello,包括协议的版本信息、密码套件、随机数(Client Random)等;”
第二次:Server向Client发送 Server Hello,包括所选密码套件、协议版本、数字证书、随机数(Server Random);
第三次:Client向Server发送协商密钥的参数、更新加密协议、发送密文等;
第四次:Server向Client发送新建会话Tickets、发送密文以验证对称加解密通道;
这就是TLS的四次握手成功。
谈思-汽车出海安全合规(欧洲)
交流群
谈思 AutoSec Europe 峰会旨在搭建一个能融汇全球视野与中国实践、连接技术前沿与落地应用的国际性专业平台,以助力中国汽车应对在出海过程中面临的网络与数据安全合规痛点。从前沿技术研讨、合规要点解析到经验交流,都将通过本平台为您提供持续支持。社群已超过200人,需邀请加入,如需入群,欢迎添加社群小助手微信taaslabs01。
谈思-SDV&AIDV技术出海
交流群
诚邀行业同仁加入谈思SDV&AIDV出海技术交流群,聚焦软件定义汽车、AI定义汽车、下一代EEA、智能座舱、智能驾驶、软件架构、域控制器开发、芯片技术、软件工具等核心议题,欢迎大家加群交流探讨~~社群已超过200人,需邀请加入,如需入群,欢迎添加社群小助手微信taaslabs01。
end
谈思汽车媒体门户
精品活动推荐
AutoSec系列沙龙
专业社群
部分入群专家来自:
新势力车企:
特斯拉、理想、极氪、小米、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯……
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚……
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用……
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、潍柴集团、地平线、紫光同芯、字节跳动、……
二级供应商(500+以上):
中科数测、ETAS、BlackDuck、NXP、上海软件中心、Deloitte、奇安信、为辰信安、云驰未来、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、加特兰微电子、浙江大学……
人员占比
公司类型占比
文章
不要错过哦,这可能是汽车网络安全产业最大的专属社区!
首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:谈思实验室 《车联网安全–TLS握手过程详解》