APP下载

智能网联汽车网络安全设计优选方案

2021-01-07陈江波郑玉圆涂将辉夏永强赵能卿

汽车电器 2020年12期
关键词:网关密钥总线

辜 云, 陈江波, 郑玉圆, 涂将辉, 夏永强, 赵能卿

(江铃汽车股份有限公司, 江西 南昌 330001)

智能网联汽车由于其自身的特性存在互联网攻击的风险[1],网关是TBOX连接整车网络的唯一路径[2],为了最大程度地保护整车网络的安全,降低因为TBOX而带来的安全风险,必须增加TBOX和网关之间的加密、握手、认证等[3],使TBOX参与整车网络通信之前执行加密、握手、认证等流程,确保TBOX处于安全状态[4]。

1 网络安全分析

1) 当前整车网络安全面临的隐患如下:①Internet非法用户恶意攻击;②OBD未授权设备接入。

2) 针对安全隐患,需要采取的策略:①TBox,作为第1层网络安全保护:验证Internet用户合法性;Internet数据加密解密。②网关,作为第2层网络安全保护:整车网络数据加密解密;TBox访问握手;TBox访问认证;验证OBD设备合法性;验证用户合法性。如图1所示。

2 网络安全软件设计方法

图2为网络安全软件框图,模块功能如下。

1) Security Lib:使用软件加密库 (Security Lib) 实现加密解密功能。

2) Security M:识别解密后的数据是否合法;识别用户的合法性和权限;识别数据是否需要加密/解密和使用的密钥。

3) Security Data:加密/解密密钥;加密/解密数据目录;整车数据;刷写包;用户数字签字。

4) T-Box传给Gateway的数据: (部分) 经过算法加密;访问握手;访问认证。

图1 网络结构

图2 网络安全软件框图

3 网络安全功能实施详解

3.1 TBox-网关报文加密

为了保证通信过程的网络安全,对于远程控制信号及其他安全相关的信号都必须加密发送。下线设备将整车VIN码写入网关中[5],网关发送整车VIN码在总线上(PCAN,HCAN和BCAN),TBox内部存储一个2byte的Udata数据,初始默认为0,每计算完一次+1 (二进制),下电后立即存储当前值,下次上电后调用存储值,该存储值在模块断电后不可擦除,参照图3,介绍加密流程。

图3 加密系统框图

TBox将接收到的总线VIN码的最后两位和内部Udata来运算出Rolling Code_ECU,同时执行器将Rolling Code_ECU通过算法计算出Store_Rolling Code,执行器模块需保存最近的8个Store_Rolling Code,将当前算法1算出的Rolling Code发到CAN总线上给TBox。TBox将接收到的Rolling Code_ECU通过算法运算得到自己的Rolling Code_TBox,并发送到总线上给到执行模块,执行模块会将接收到的Rolling Code_TBox和自己存储的最近的8个Store_Rolling Code做比较。执行模块存储的8个Store_Rolling Code中任意一个与Rolling Code_TBox相同,执行器才认为TBox发送到该控制报文有效,才会去执行TBox发送控制要求,否则认为无效,不响应当前TBox下发的控制指令。

3.2 TBox-网关访问握手

为了最大程度地保护整车网络的安全,降低因为TBOX而带来的安全风险,必须增加TBOX和网关之间的握手协议,使TBOX参与整车网络通信之前执行握手流程,确保TBOX处于安全状态[6]。

根据诊断规范定义,握手流程采用的0x33 服务需要在扩展会话模式下进行。参照图4,依次介绍握手流程。

图4 TBOX与网关握手流程

握手流程是指TBOX发起握手请求到网关发出握手结果的整个过程。握手分4 步进行,分别为:握手请求、握手响应、握手密钥和握手结果。

3.2.1 握手请求

握手请求是指TBOX发起握手请求的过程。控制命令自定义,默认值为0x000x00,表示TBOX发送握手请求命令到网关。

3.2.2 握手响应

握手响应是指接收到TBOX发出握手请求后网关发出握手响应Check_Seed的过程。控制命令自定义,默认值为0x000x01,指示网关发送Check_Seed到TBOX,Check_Seed为由网关生成的4个字节随机值。

3.2.3 握手密钥

握手密钥是指握手响应后,TBOX根据Check_Seed和Base-Key计算发出握手密钥Check_Key的过程。控制命令自定义,默认值为0x000x02,指示TBOX发送Key到网关[7],Key由4个字节组成。

3.2.4 握手结果

握手结果是网关根据Check_Key或者Tsk得到的结果Check_Resp。控制命令自定义,默认值为0x000x03。握手结果包括握手成功、握手失败和握手超时。握手结果是握手流程的输出结果。握手结果在网关初始化后默认状态为未握手成功;握手结果不受会话模式转换的影响。

1) 握手成功:握手成功是指网关计算结果和握手密钥Check_Key一致。控制命令自定义,默认值为0x00。

2) 握手失败:握手失败是指网关计算结果和握手密钥Check_Key不一致。控制命令自定义,默认值为0x01。

3) 握手超时:握手超时是指网关发送Check_Seed后,在Tsk时间内未收到TBOX响应。控制命令自定义,默认值为0x02。

3.3 TBox-网关访问认证

网关需包含正常模式和远程启动模式,并由网关通过CAN报文发送模式信息给总线上的其他节点。通常情况下,网关均处于正常模式;当网关收到Tbox发起的加密认证请求时,即切换进入远程启动模式。若加密认证失败、超时、启动条件不满足、发动机远程熄火完成等条件满足时,控制器完成对应动作后,切换回正常模式。在Tbox向网关发出发动机远程启动指令前,Tbox需与网关进行加密认证,只有加密认证通过,网关才向整车网络发出发动机远程启动指令。如图5所示。

图5 TBox-网关访问认证流程

4 结论

网络安全作为智能网联汽车发展的先决条件,受到各主机厂的高度重视,投入大量研发团队开发缜密完善的网络架构。通过TBox、网关和后台服务交互路径和信息安全实施一系列的安全防护有利于网联汽车的稳健发展。

猜你喜欢

网关密钥总线
智能燃气表物联网运行体系网关技术研究
基于FPGA的工业TSN融合网关设计
幻中邂逅之金色密钥
幻中邂逅之金色密钥
大规模低轨卫星网络移动性管理方案
一种主从冗余网关的故障模式分析与处理
关于CAN总线的地铁屏蔽门控制思路论述
Android密钥库简析
Q&A热线
PCI9030及其PCI总线接口电路设计