聊聊车辆信息安全策略定义

写过些关于车辆信息安全的文章,如车辆近场或远程攻击手段,安全电子架构设计及车载防火墙需求定义等。后台有朋友问目前是否有完备的汽车信息安全防护的解决方案。这里简单聊聊。

首先回顾车辆与外部实现远近场通信的两种主要连接方式:如包括蓝牙、毫米波传感器、RFID及未来DoIP(Diagnostic Over Internet Protocal)在内的远程连接;外部诊断设备通过DLC口与整车CAN总线直接建立通讯的物理连接等。需要意识到的是:

任何外部设备与车内子网连接的关系都会增加车辆受到安全攻击的隐患,或造成车辆远程受控,或是恶意代码的注入。

任何未经授权尝试对车辆E/E电子架构访问的行为都有可能会引起致命的后果。

「车辆远程诊断」

在之前文章「AUTOSAR架构诊断功能简介」中曾对车辆诊断下过定义,介绍了目前整车厂所使用的两种车辆诊断,第一种是由模块软件自诊断实现的在线诊断模式(On-board Diagnostic System),第二种就外部诊断设备与DLC口相连,来对整车ECU节点进行诊断的离线诊断模式(Offboard Diagnostic System)。下面细说:

诊断设备广泛应用于工程产品开发、工厂生产制造过程EOL阶段及售后模式的诊断,由于应用场景不同,所使用的工具不同,但通讯连接原理一致。

诊断设备Diagostic Tester(TST)通过车辆通信接口Vehicle Communication Interface(VCI)与诊断口Data Link Connector(DLC)连接。目前TST与VCI之间常见的连接方式有USB,蓝牙及WIFI,而VCI与DLC口之间则主要通过传统CAN方式及今后的Ethernet连接。

图片发自App

无论外部诊断设备是通过物理连接与车辆CAN总线建立通讯或是用DoIP远程诊断的方式,两者实现目的一致:通过既有的诊断服务Service,获取车辆ECU包括故障码在内的节点信息,或是对车辆ECU的Operation Software及标定文件进行FLASH Program。

优势是DoIP远程诊断的方式能同时实现一台服务器对多台车辆进行并行更新。

下图是针对车辆以太网诊断结构的协议栈,其中使用的诊断规范为UDS。

「安全诊断服务」

对于诊断工程师或诊断设备工程师而言,UDS诊断协议并不陌生,且目前在业内趋于标准化推广。需要认识的是,整车数据通讯报文可分为两类,in-vehicle communication以及diagnostic communication。

前者是在车辆总线上传输的数据帧报文,用于模块间、子网间的通讯。而后者则指的是外部诊断设备与车辆内部子网或模块的诊断通信,所使用的服务即定义在诊断协议中。

UDS的诊断服务如下:

图片发自App

当由外部设备对ECU节点发送物理寻址或者功能寻址的诊断服务时,对应节点会对其给出相应的反馈,正响应则会去实现对应的操作,或是由于不支持不满足条件等而会拒绝。

那么车辆需要在什么样的条件下对外部诊断服务给出正响应呢?

如在UDS协议中,0x28是对车内Communication进行控制的Service,在设备发送$10 03使节点进入Extension Mode后,紧接发送$28 03后,模块即会禁止发送及接收来自其他节点的应用报文或网络管理报文。试想,假如一辆车上并未对诊断服务进行安全策略的约束,那么在车辆高速行驶过程中,Hacker远程对TCM或者ECM发送了禁止通信的报文,车辆各模块之间在powertrain上的报文即会终止,后果可想而知。

又如0x11Service能对ECU进行Reset,以及0x31Service用于Start对模块运行状态起作用的Routine Control等等。

此类诊断服务若无严谨的安全诊断策略进行定义,将会使得外部发起攻击异常简单。

几条常见安全策略

目前国内,无论合资亦或是自主,各大主机厂目前针对Cyber Security都有对应的策略以进行应对,这里仅提几点通用性的供参考,由主机厂自行定制的不便介绍,各位详细可参考J3061斟酌。

安全诊断策略

针对上面提及的不同诊断服务,定义必须满足的前置条件,如0x28的服务,可以车辆车速或轮速作为判断依据,在大于某阈值情况下,即使收到了禁止通讯的报文,亦直接拒绝而不对其做出禁应用报文的操作。

通过对外部诊断服务的限制,可以有效提高各节点的防御能力。

Security Access安全访问

传统模块端本身是存在安全访问机制的,在UDS诊断服务中可见0x27 Service。

此服务机制是Seed-Key映射关系,原理为:外部设备给目标节点发送0x27 01服务,ECU反馈其Seed值,诊断设备拿到Seed后根据先前既定的算法进行加密后返回给ECU,两者认证后一致则模块安全访问认证通过。

0x27服务务必作为所有会对模块功能造成变更的诊断服务及数据的基本限制条件,至于关键算法如何进行控制,字节长度以及动静态处理则应由各主机厂各自策略决定。

如何保证安全策略不被泄漏

最后一点,综上提及的及未被提及的策略,如涉及到的其中加密算法文件,如何能够保证使用者身份合法,也就是如何保证拥有这些策略的人不会泄漏相关策略。

尤其在汽车行业流动率如此之高的现阶段,对企业自身的策略建立来说无疑是重大威胁。

你可能感兴趣的:(聊聊车辆信息安全策略定义)