先讲车云通信安全的两个基本问题:
- 连接加密:数据在公网传输,不能被监听------用TLS解决
- 双向认证:车要确认"对方是真平台",平台要确认"对方是真车"------用证书体系解决
这两个问题必须同时解决。只加密不认证,你可以在加密通道里被骗;只认证不加密,你认证完说话还是被偷听。车控通讯安全方案的思路就是"用组合方案解决问题"。
1、车云通信的双向认证:为什么必须"双向"?
1.1 单向认证的漏洞
传统HTTPS是单向认证------客户端验证服务器(你访问银行网站,浏览器验证银行证书)。这够吗?
不够。 因为:
-
攻击者可能伪造TBOX(用别人的车联网账号冒充你的车)
-
攻击者可能重放指令(截获你上次的远程启动指令再发一次)
1.2 双向认证的价值
双向认证 = 车验证平台 + 平台验证车,两边都验明正身:
| 方向 | 验证内容 | 防什么 |
|---|---|---|
| TBOX → 平台 | 验证平台证书 | 防伪造平台(钓鱼) |
| 平台 → TBOX | 验证TBOX证书 | 防伪造设备(冒用) |
法规依据:GB 44495 第7.2.1条------"车辆与车辆制造商云平台通信时,应对其通信对象的身份真实性进行验证。"(第1篇讲过,这里直接落地)车控通讯安全方案里明确写了"根据《汽车整车信息安全技术要求》的要求,平台与TBOX之间的通信需要进行双向认证以及数据加密"。
2、PKI/CA 证书体系:双向认证的"地基"
双向认证靠的是PKI(公钥基础设施)------一套管理证书的完整体系。

核心设计(车控通讯安全方案):
-
建设 PKI/CA 系统,为 Server 颁发证书
-
为每一个 TBOX 单独颁发 Client 证书------一机一证
-
TBOX 出厂时内置 PKI 颁发的 Client 证书
-
TBOX 联网时用 Client 证书连接
关键点:"每个TBOX单独颁发证书" ------这和第5篇的"一机一密"是同一个逻辑:每台车的身份凭证独立,一台被攻破不影响其他车。
证书怎么用:
- Server 证书:证明"我是真平台"
- Client 证书(TBOX侧):证明"我是真车",私钥存在TEE/安全芯片(呼应第5篇)
3、TLS 双向认证握手:13步拆解
双向TLS的握手流程,比单向多了3步(第⑤⑦⑨步)。完整13步:

| 步骤 | 方向 | 内容 | 作用 |
|---|---|---|---|
| ① | C→S | Client Hello | 客户端发送TLS版本/随机数/密码套件 |
| ② | S→C | Server Hello | 服务端选择TLS版本/密码套件/随机数 |
| ③ | S→C | 服务器证书 | 发送server.crt,供客户端验证 |
| ④ | S→C | Server Key Exchange | ECDHE临时公钥+签名 |
| ⑤ | S→C | Certificate Request | 服务端请求客户端证书(双向认证关键) |
| ⑥ | S→C | Server Hello Done | 协商信息发送完毕 |
| ⑦ | C→S | 客户端证书 | 客户端发送证书链 |
| ⑧ | C→S | Client Key Exchange | 预主密钥(RSA加密或ECDHE) |
| ⑨ | C→S | Certificate Verify | 客户端用私钥签名证明持证 |
| ⑩ | C→S | ChangeCipherSpec + Finished | 客户端切换加密并验证 |
| ⑪⑫⑬ | S→C | ChangeCipherSpec + Finished | 服务端切换加密并完成验证 |
对比单向TLS:
- 单向:③④之后直接⑧(客户端只验服务器,不提供自己证书)
- 双向:多了⑤⑦⑨------服务端要求客户端证书,客户端出示并签名证明
这个流程在TBOX的落地(外部通信安全方案):
-
通过 HTTPS 实现双向认证获取认证信息
-
通过 MQTT(MQTTS)实现双向认证登入 EMQ Broker
-
通过 SSL 实现双向认证连接采集平台
-
第三方SDK(远程诊断/OTA/IDPS)通过统一上下文接入
4、车云通信的六大场景:全部双向认证
TBOX 与平台的通信不止一条链路,而是多条,每一条都要双向认证:
| 场景 | 协议 | 说明 |
|---|---|---|
| 车控平台 | HTTPS | 远程控制指令通道(最敏感) |
| 采集平台 | SSL | 车辆数据上报 |
| 车况推送 | MQTTS | 车况信息推送 |
| 远程诊断SDK | 双向认证 | 远程诊断 |
| OTA升级SDK | 双向认证 | 软件升级 |
| IDPS安全平台 | 双向认证 | 安全事件上报 |
为什么要统一? 每个场景一套认证会乱,所以方案里用统一的 SSL context 配置给第三方SDK------一次配置,处处生效。
5、蜂窝网络安全:TLS + APN隔离
车云通信走蜂窝网络,还有两道防线:
① TLS1.2 建立安全通道(TBOX与平台连接统一TLS1.2,应用层HTTPS或MQTTS)
② APN 业务隔离:
- 企业业务用 APN1(车控等核心业务)
- 娱乐通信用 APN2(非核心流量)
- 企业业务通过路由清单路由至APN1,其余地址路由至APN2
APN隔离的价值:把核心业务和非核心流量物理/逻辑分开------即使娱乐通道被攻破,核心车控通道还是隔离的。这是"网络分域"思想在车云侧的落地(呼应GB 44495 7.2.9区域隔离)。
6、指令级安全:车控指令的"最后一道锁"
双向TLS解决了"通道可信",但还不够------指令本身也要防篡改 。这就是外部指令安全:
车控指令验签流程(外部通信安全方案 + 数据安全方案):
- 车控平台基于主密钥计算消息认证码:CMAC值 = CMAC(K, P),P为指令消息体
- 平台将指令数据 + 消息认证码下发到TBOX
- TBOX收到后,用相同密钥计算CMAC,与下发的比对
- 一致 → 验签通过,执行指令;不一致 → 返回否定码(0x2F 0x20 0x00 0x00)
密钥派生:K = MD5(基础信息 + 密钥种子)(具体公式已脱敏)
三层防护体系 :TLS双向认证(通道可信)→ 指令CMAC验签(内容可信)→ 拒绝执行(结果可控)。即使黑客劫持了通道,没有密钥也伪造不了合法指令。
7、蓝牙通信安全(补充):挑战-应答 + 一次一密
TBOX 的蓝牙通道(与手机App通信)也要安全:
- 挑战-应答鉴权:采用4字节随机数进行鉴权------App要证明自己知道密钥
- AES-128 加密通信:加密密钥一次一密**------每次会话密钥不同,即使截获一次也破解不了其他会话**
蓝牙和蜂窝的差异:蜂窝走TLS+证书(公网,重认证),蓝牙走挑战应答+对称加密(近距离,重效率)------不同通道用不同的安全强度匹配。
8、车云通信安全方案总结
| 需求(法规/客户规范) | 对应解决方案 |
|---|---|
| GB 44495 7.2.1 云平台身份真实性验证 | 双向TLS + PKI/CA证书体系 |
| GB 44495 7.2.4 外部指令访问控制 | 指令CMAC验签 + 拒绝执行 |
| 客户需求 7.1.2 专用网络/VPN隔离 | APN1/APN2业务隔离 |
| 客户需求 7.6.1 安全通信协议(法规) | TLS1.2 + HTTPS/MQTTS |
| 客户需求 7.5.x 短距离无线安全 | 蓝牙挑战应答 + AES128一次一密 |
| 客户需求 7.1.5 关键操作强认证 | 车控指令CMAC验签 |
9、给TBOX工程师的5条实战建议
- 双向认证是底线不是加分项:GB 44495 7.2.1 明确要求,评审一票否决项
- 一机一证,别共用:每个TBOX单独颁发Client证书,一台被攻破不影响其他车
- 证书私钥必须进安全芯片:Client证书私钥放TEE/安全芯片(呼应第5篇),软件存储过不了评审
- 通道认证 + 指令验签要叠加:TLS解决通道可信,CMAC验签解决内容可信,缺一不可
- APN隔离别省:核心业务和娱乐流量分开,是网络分域的落地实践