测试工具视角下,车载对外重要接口如何保障网络安全
在过去汽车是一个独立的系统,相对来说是比较安全,外部也是很难受到相应的攻击。可是随着网联化的引入,车载OBD、智能充电以及跟OTA系统和蓝牙无线的引入,整个系统就不再安全,就需要采用相应的技术确保车辆的安全。但是在确保整个技术落地的过程中,需要有相应的工具做相应的开发和测试。过去在整个系统做开发的过程中,相关数据“明码”,并没有进行加密,所以任何工具都可以拿到相关的数据,可以进行相应的数据读写,也可以做仿真以及回放。但是在系统通信数据加密之后,很多功能没有办法做使用常规工具满足,如数据加密时,简单的数据分析都会遇到很大困扰,然而并不是所有的工具都支持加密系统的开发和测试。现在所有用的开发和测试工具都必须考虑,产品面临相关问题时,如何支持Security相关的应用,尤其是供应商,因为供应商会面对不同OEM的不同项目在不同通信应用层面,各项目各通信层依赖于不同加密体系进行加密,供应商不可能在每个OEM的每个项目都需要采购和学习全新工具链。维克多作为车辆网络安全的知名供应商,在网络安全开发和测试工具上也有许多自身独到的经验。 带有TLS的DoIP随着Ethernet相关技术的引入,诊断系统里面采用了DoIP做相应的诊断应用,但是也会随着安全诊断的考虑,在2019年发布了新一版的ISO13400-2,这版规范定义的DoIP通过TLS实现安全诊断。具体流程来看,会在整个通讯过程中,在车辆连接后首先通过13400端口进行Routing激活,在接收到07拒绝响应则表示需要采用TLS进行安全诊断。紧接着测试设备发送关闭传统的DoIP的13400端口服务,然后进行打开支持TLS的3496端口。然后建立TLS“握手”,实现诊断设备和ECU或者相应车辆安全密钥或证书安全通信连接。最后使用再次激活通过TLS协议,紧接着整个诊断的服务处理都会在TLS协议下面进行相应的传输。在诊断处理完之后,需要把3496端口进行相应的关闭处理。在整个流程可以看到,数据是有通过TLS实现相应的加密,进行相应的开发调试和测试以后,是需要工具能够支持把DoIP里面的TLS协议。对于CANoe来说适用内嵌的功能能够完全支持2019版真的DoIP协议。同时相关的DoIP配置可以在CANoe里面,通过CANoe自带的模块进行相应的配置和处理,当然也可开发实现TLS本身的协议测试。与之对应的其它Vector工具,比如维克多的刷写工具vFlash和诊断仪Indigo都是按照同样的思路和原理实现TLS的DoIP,目前最新的版本都是能够支持DoIP的TLS协议处理。 出口新能源车辆面临ISO15118的加密充电车辆互联的时候,还有一个重要的接口,就是充电接口。在充电这部分,国内目前是使用基于GB/T 27930协议进行相应的充电处理。但相信国内的新能源车企都是有在做车辆出口的业务,就不得不面临需要在欧美充电基建体系下进行相应的充电。在欧洲充电体系下中,就需要面对一个重要的规范:ISO15118。这个协议本身也一直在做相应的迭代更新,会明显看到在整个系统里面,随着新版的15118-20这个协议的发布,其中TLS是强制性的要求。也就是在充电方面,在协议上面也有相应的加密,在开发过程中和调试过程中,无论OEM还是供应商,也不得不依赖相应的工具去解决: ISO15118这个协议是否支持?在工具和设备里面,另一个重要的考虑将是刚才提到里面的ISO15118-2和-20中要求的TLS部分,是否能够完全做相应的支持。对于充电系统的整个开发过程,充电部分和实际的传统开发流程都是一样,会有相应的从虚拟SiL原型,到A/B样以及C样和量产车,在早期开发产品的时候,需要模拟充电桩(EVSE)或车辆(EV),因为EV和EVSE之间通信是带有TLS加密通信,本身充电桩的模拟也要能够支持TLS的协议在里面。到后期实际充电的时候,接了真实的桩进行相应的数据传输,数据也有TLS的协议在里面,一方面数据能够采集下来,另外一方面在分析的时候,解密的工作也是需要工具可以处理的。无论是以太网还是PLC,数据在通讯的时候,在CANoe里面都是能够把相应的数据进行加密和解密的处理。随着测试完成之后,系统ECU和车辆做集成,集成之后会把车辆跟相应的装进行数据的处理,在里面也是要处理证书,就是TLS方面的一些应用处理。在CANoe中可通过SecurityManager模块实现PKI及其对应证书的处理。 在实测的时候也会提供经济性的方案,方便大家在真实的车和装之间提取相应的数据,做相关的分析。比如这是真实的车和真实的桩,上边的通讯数据通过PLC进行通讯,数据是有加密的,充电过程中的异常数据的获取和分析将是问题。在这边维克多会提供PLC通讯时的“监听”设备,进行PLC数据的监听,数据会传输到CANoe里面。如图中实物系统,Vector采用在不破坏相应真实充电枪线缆的情况下,通过耦合的方式直接从充电枪抓取相应的数据。在解密方面,维克多在工具里面提供多种方式,实现相应的数据解密。当然具体的解密需要依赖于实际的环境和拿到的信息,到底在工具层面,在CANoe里面如何实现相关的解密处理。当然对于这边提供的这四种方式进行TLS的通讯解密,当然也适用于刚才提到的DoIP和SOME/IP等,在CANoe里面都可以实现。车联网-V2X的安全车辆外互联接口方面,尤其是在V2X这块,在中国地区,我们看到很多的实验区,包括三跨、四跨也在做相应的开发应用。在整个系统里面层面:在整个链路上,无论是车与车、车与其他设备进行通讯的时候,可以通过PC5实现V2X的数据传输,传输的数据上面会使用相应的证书进行的数据加密。以及相应数据进到车的内部以后,车辆端的通信随着OEM车内安全技术的应用,对数据也进行相应的加密。所以在车联网V2X方面,在选择工具的时候也有很多条件需要进行相应的考虑,当然很多供应商和OEM也不仅仅只会面临中国的项目需要做,当然面对全球的项目都要做相应的支撑。在Security方面,中国的V2X安全规范目前还是Draft版本,但是对于欧美的安全规范ETSI TS 103 097和IEEE 1602.2都是发布状态。在工具选择方面,肯定是要能够支持相应国家的Security。也需要支持各OEM车内通信的安全加解密。另外工具需要支持常规车载通信开发和测试的要求,比如需要支持通信需要的arxml、诊断的cdd等,以及车载通信1000/100BASE-T1和CANFD等连接通道。需要以长远的视角规划相应工具和设备,以实现V2X方面Security的处理。在安全测试工具CANoe中提供Car2X的插件CANoeOptionCar2X模块。其中提供2D场景设计功能实现功能测试需要的测试场景,配置和产生V2X数据库满足在开发测试阶段所需要的密钥,包括密钥的导入、生成,以及相应证书的管理和有效期配置等功能,面向安全通信在做证书和安全方面的测试,也得到了有效的支撑。在针对中国安全标准方面,虽然当前国家规范还没发布,但是CANoeOptionCar2X在工具里面已经有封装中国Draft版本规范。可以通过工具看到在加密异常通信时,可以在分析窗口看到通信的实时数据采用紫色高亮显示。CANoeOptionCar2X里面也提供了一系列的API函数,方便做安全方面的测试验证工作。 安全互联Connectivity越来越多的OEM会使得车辆跟云端和后台有相应的交互,以及随着SOA的引进,整个系统不仅仅是车,也可能是车+后台、车+运后、手机等等在内的通讯应用。在车辆互联方面主要的通讯技术:MQTT和HTTP。跟外部互联通讯的时候都需要对相当的数据进行相应的加密和处理。在这种应用的情况下,也需要诸如CANoe等工具能够支持MQTT或HTTP等协议。这可能会有两种情况需要考虑,一种情况是会接真实的ECU,ECU的一端是车内常规通信,本身CANoe是擅长和支持的;ECU另一端的通信需要通过MQTT或HTTP实现和云端后台的交互,当然在CANoe也可以通过相应的开发,直接使用MQTT和HTTP跟车外实现相应的通讯应用。还有一种应用场景在开发早期的时候,必须跟云端应用交互的情况下,完全可以把整个软件系统的的功能部署在虚拟环境里面,在虚拟环境里面的时候,直接访问的是软件接口,对软件接口的访问,相对于真实控制器的接口可以直接以更方便的方式实现,能够在自己的PC和对应的环境下搭建虚拟环境实现MQTT和HTTP相应协议的互联。车端或云端的软件系统,均可使用CANoe或CANoe4SW实现互联测试。拿一个真实的例子来看,这边有一个SUT,可以通过CANoe或CANoe4SW实现在虚拟环境的的测试,数据在传输中基于MQTT实现,把相应的数据传到MQTT的Broker端,然后再通过Broker端把相应的数据传到测试工具里面进行相应的处理。在整个系统里面,就会遇到跟安全相关的,是会有证书部分,因为整个数据在通讯的时候要实现相应的安全通讯应用,这里面就会有不同的证书需要做相应的配置。比如在证书方面有PM格式或者PFX格式的证书,这个证书会产生CANoe所需要的证书,以及匹配SUT的证书,使得整个通讯链路本身也能够实现相应的加密通讯应用在里面。另外在针对MQTT进行互联通信服务时,不同开发阶段需要的测试环境是有所差异的。在MQTT进行相应数据处理时,需要链接相应的MQTT Booker,在CANoe工具层面,可以支持云端后台的Broker桥接,也可在局域网搭建,也支持在CANoe内建立Booker。在CANoe内部直接建立MQTT Booker这种应用,可以非常方便实现,故障注入和时间方面的测试应用。当然MQTT整个通讯的层面,整个数据有可能通过GoogleProtocol Buffer协议或JSON实现MQTT数据的虚拟化和反序列传输应用。无论是那种方式,在CANoe里面目前都是可以支持的。 但是也看到在实际应用中,有一些应用去访问云端、访问后台是比较受限的,这个时候的开发和测试对应的在CANoe层面提供一种比较实惠的方案给用户参考。CANoe搭配IoT赋能硬件:VH4110,在这个硬件上面利用它本身的一些功能扩展诸多互联协议,比如低功BLE、BT、LoRaWAN和ZigBee等相应协议,使得在测控制器本身功能的时候,所需要的外部互联信号,可直接使用CANoe控制VH4110发给ECU,它们之间的交互在网络和后台无法访问的时候,也是经济和实惠,比较方便的处理手段。