
车云通信是智能网联汽车远程数据服务与软件升级的基础能力。在EE架构中灵活数据采集下称 “数采”与 OTA 升级两类业务均依赖车端与云端平台之间的安全连接。本文主要分析 TLS 协议在两类业务车云连接建立中的应用。1、背景车云通信是车载智能业务的传输基础。数采业务需要将整车 CAN、SOME/IP 信号及日志持续、可靠地上传至云端平台以支撑数据挖掘与问题定位OTA 升级业务需要将升级包安全地下发至车端并同步升级状态与远程诊断信息远程诊断业务需要由云端下发诊断活动与诊断脚本车端执行 UDS 诊断后回传诊断数据。上述业务均以车云连接为前提且传输内容涉及车辆运行数据、诊断数据与软件包等敏感信息必须满足传输保密性、报文完整性以及通信双方身份可验证等安全要求。TLS通过以下机制保障通信安全安全目标实现方式解决的问题机密性对称加密AES算法防止数据被窃听完整性MAC校验防止数据被篡改身份认证数字证书PKI体系确认通信身份合法2车云通信总体架构标准2.1 物理链路与逻辑连接车云连接在物理上由车端、移动网络与云端三段组成车端CCU内运行的业务软件数采消息总线、OTA Master通过车内以太网与T-Box相连T-Box内置4G/5G蜂窝模块与 SIM卡经运营商网络接入公网最终到达云端TSP 平台或对象存储服务。T-Box在链路中承担物理承载与透传角色不参与业务协议处理。在逻辑层面TLS连接由车端业务软件与云端平台端点对端建立TLS会话起点为 CCU内业务进程终点为云端服务T-Box仅转发加密数据流。远程诊断业务不单独建立车云连接而是复用OTA-Master的车云通道完成诊断活动下发、诊断脚本下载与诊断数据回传。2.2 安全边界TLS仅覆盖车云边界。车端内部组件间基于以太网进行数据交换消息总线与协议转换模块之间、OTA-Master与域控制器之间CAN/SOME-IP诊断通道均不在TLS保护范围之内。TLS保护的对象是车云之间传输的全部 MQTT/HTTP数据流包括远程诊断活动下发与诊断数据回传。3 TLS建立安全通信数采与 OTA含复用通道的远程诊断的双向认证握手在逻辑上统一按 “身份验证 → 密钥协商 → 密钥派生 → 加密通道”建立四个阶段推进。步骤1客户端向服务端发送ClientHello 设备证书并声明TLS套件参数步骤2服务端接收到消息后立即校验客户端身份若校验通过则向客户端发送ServerHello 服务端证书步骤3客户端收到消息后同样立即校验服务端身份若校验通过则双向认证通过步骤4客户端与服务端进行密钥协商建立安全通信。4 TLS标准中的算法4.1身份验证证书签名验证算法验证过程验证方用签发者的公钥按证书里的签名算法signature Algorithm验证 CA 对证书内容做的数字签名同时校验证书有效期、吊销状态与用途。一般验签使用非对称加密算法常见算法有ECDSA与RSA。4.2密钥协商算法—— 握手双方协商出会话密钥1密钥协商TLS 1.2 支持三类密钥交换RSA 密钥传输客户端生成预主密钥并以服务端公钥加密无前向保密、DHE 与 ECDHE双方各生成临时DH密钥对交换公钥后计算共享秘密具备前向保密TLS 1.3 仅保留ECDHE与 PSK模式强制前向保密。以 ECDHE 为例客户端与服务器分别生成临时密钥对经ServerKeyExchange / ClientKeyExchangeTLS 1.2或key_share 扩展TLS 1.3交换临时公钥其中TLS 1.2的ServerKeyExchange由证书私钥签名将身份验证与密钥协商绑定防止中间人替换公钥。双方据临时私钥与对方临时公钥计算得到共享秘密ECDH计算。2密钥派生共享秘密本身不直接用于数据加密需经密钥派生函数扩展为会话密钥两代TLS版本机制不同TLS 1.2RFC 5246密钥派生流程步骤1生成 pre-master secret客户端与服务端通过 ECDHE 密钥协商或 RSA 密钥传输得到 48 字节的 pre-master secret作为整条派生链的共享秘密输入。步骤2PRF 派生 master secret调用基于HMAC-SHA-256的P_hash以 pre-master secret 为密钥材料输入标签串“master secret”拼接 ClientHello.random 与 ServerHello.randomP_hash 循环输出并截断取 48 字节得到master secret。步骤3PRF 扩展 key_block再次调用 P_hash以 master secret 为密钥材料输入标签串 “key expansion”拼接 ServerHello.random 与 ClientHello.random按当前密码套件所需密钥长度连续输出得到 key_block 字节串。步骤4切分 key_block为会话密钥对按密码套件规定的各字段长度顺序截取 key_block依次展开为六组会话参数client write key、server write key、client MAC key、server MAC key、client IV、server IV。客户端与服务端各持一套写密钥后续记录层加密、MAC 计算与初始化向量均使用这套派生密钥。TLS 1.3RFC 8446密钥派生流程步骤1获得 ECDHE 共享秘密客户端与服务端完成 ECDHE 密钥协商双方各自计算得到相同的共享秘密shared secret作为整个密钥调度的输入。步骤2第一次 HKDF-Extract得到 handshake secret以全零串作为salt对 ECDHE 共享秘密执行 HKDF-Extract输出 handshake secret。该秘密是握手阶段所有密钥派生的根。步骤3HKDF-Expand-Label 派生握手流量密钥以 handshake secret 为输入通过 HKDF-Expand-Label派生客户端与服务端的握手流量密钥client/server hs traffic key用于加密握手记录阶段的所有报文。步骤4第二次 HKDF-Extract得到 master secret以 derived (handshake secret) 作为 salt、对固定值执行 HKDF-Extract输出 master secret。master secret 不再参与实时通信仅作为应用阶段密钥的派生根。步骤5HKDF-Expand-Label 派生应用流量密钥以 master secret 为输入通过 HKDF-Expand-Label按 c ap traffic / s ap traffic 标签拼接应用数据哈希派生客户端与服务端的应用流量密钥用于加密握手结束后的业务数据。3Finished 确认双方在握手期间交换的所有消息包括ClientHello、ServerHello、Certificate、ServerKeyExchange、ClientKeyExchange等会被逐条送入哈希函数形成一条覆盖整个握手过程的哈希值。握手最后一步双方各自以主密钥Master Secret和该哈希值为输入通过 PRFTLS 1.2或 HMACTLS 1.3计算出 verify_data并将其封装在 Finished消息中发送给对方。接收方使用相同的算法和密钥重新计算 verify_data与收到的值进行比对。若一致则确认握手过程完整、未被篡改若不一致则握手终止连接断开。该机制有效防御了中间人攻击和降级攻击是TLS握手安全性的最终保障。4.3数据传输检验算法AEADAuthenticated Encryption with Associated Data带关联数据的认证加密是一类同时提供机密性和完整性保护的加密模式。它在加密数据的同时生成认证标签接收方解密时自动验证标签任何篡改都会被检测并拒绝。以下是AEAD的特点机密性对明文进行加密保证机密性认证性生成认证标签Tag保证完整性关联数据AAD不加密但参与认证的数据一体化加密与认证不可分割避免组合漏洞。