还记得《速度与激情8》中黑客Cipher通过网络侵入车辆,获取车辆的控制权,控制车辆从大楼窗户坠落的震撼场景吗?
图1 《速度与激情8》中黑客控制车辆坠落
当前行业还缺乏完整的网络安全概念,仅仅有少量的安全措施,例如在CAN报文中增加8bit的CRC校验、rollingcounter等机制;在关键的诊断功能上使用安全校验机制,但是这些机制通常太弱,甚至是代码实现上存在缺陷。近年来车辆被网络攻击的数据有所增加,如图2所示。
图2 近年车辆被网络攻击案例(来源知网)
01 车载网络架构安全简介
随着汽车智能化、网联化的逐步推进,汽车在给人们的交通出行带来舒适便捷的同时,系统复杂化和丰富的对外通信接口更暴露出车载网络的脆落,智能网联汽车的网络架构呈现异构、实时、成本敏感等特点,其主要特征如下:
1.丰富的对外接口。随着V2X (vehicle to everything)的发展,智能网联车不再是一个独立的电子系统,而是一个大型的移动终端,为实现车与X(例如车、路、人、云等)的信息交换,必须配备丰富的连接接口,例如4G/5G、Wi-Fi、蓝牙、 GPS、NFC等。与此同时,通信需求增加和对外接口丰富将导致网络攻击入口和形式的多样化。
2.大量的实时数据。随着智能座舱和自动驾驶功能的逐步加持,传感器配置也越来越丰富,例如用于DMS的监控摄像头,自动驾驶的前置多目以及车身的环视摄像头、激光雷达、毫米波雷达、超声波雷达等。这些传感器的数据都是通过网络总线架构传输到控制器。例如车载以太网、CANFD、FlexRay等总线。
3.异构的网络架构。长期以来,处于成本和性能的考虑,车载网络架构中存在多种不同的总线协议,来处理不同的场景,比如底盘线控系统中使用FlexRay总线,车门、车窗控制使用LIN总线,摄像头数据传输使用MOST总线,激光雷达数据传输使用车载以太网,毫米波雷达或者超声波雷达使用CANFD。
4.信息安全保护机制缺乏。传统汽车是一个相对独立和封闭的设备,因此车载网络设计之初并未考虑外部网络安全威胁场景,缺乏基本的认证、加密及接入控制等安全机制,随着汽车逐渐变成一个大型终端节点,亟需开展车载网络增强技术研究以提高网络安全性。
一个安全的汽车电子系统至少要满足系统的保密性、完整性及可用性要求,怎么理解这三个要求呢?
1.保密性是指数据所达到的未提供或未泄露给非授权的个人、过程或其他实体的程度。通常的安全措施是加密、访问控制。
2.完整性是指信息和系统不会被未授权更改或破坏的特性,其中包括数据的完整性和系统的完整性,常用的安全措施包括完整性校验,如消息摘要和md5。
3.可用性是指被授权实体按要求能访问和使用数据或资源。常用的安全措施包括备份和恢复技术,防火墙技术。
重要的是,汽车内的一个或几个安全装置(例如,安全网关或车身控制器)并不能保证整个汽车的安全。只有当完整的链/域,甚至所有的汽车部件以类似的级别受到保护时,一辆汽车才可以称为安全汽车
对于个主机厂正在开发的下一代基于中央控制器单元的电子电气架构,网络安全方面需要考虑包括ECU内部和周围的硬件保护,基于软件的车内保护,车内车外的网络监控,以及安全云服务。从而构建安全可靠的电子电气架构,如图3所示。
图3 安全的电子电气架构
02 安全机制
为了使汽车成为一辆安全的汽车,电子电气架构足以应对所考虑场景的安全威胁,有哪些具体的安全措施呢?
1.分域隔离
通过使用整车电子电气架构设计软件(例如PREEVISON)将整车功能进行定义、分解、归纳、映射后,将整车网络划分不同的域,例如底盘域、自动驾驶域、车身域等。对不同的域进行软件和物理层的隔离,例如对跨域流量进行监控和过滤,对跨域流量通过安全协议来完成数据交换。
2.公钥基础设施(Public Key Infrastructure,PKI)
PKI是基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。一个典型的PKI系统包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等。
PKI用于构建信任链,允许不同的利益相关者(如主机厂和供应商)密切监控和限制ECU之间、测试者或后端之间的交互。PKI 还是主机安全认证和通信初始完整性检查的基础。核心组件是一个可信存储,用于存储允许更新软件或安全通信的根证书。PKI适用于汽车中大部分组件。被认为是当前远程身份验证的最佳实践,PKI 的功能在访问权限的撤销、权限的粒度及其范围方面可以非常灵活。
使用PKI 的缺点是成本高昂,而且灵活性也会导致复杂性的增加。信任锚根证书可以在验证签名之前就到位,但是需要撤销证书和检查它们的有效性,如果根证书的私钥被泄露,则需要适当的机制来修改所有受影响的设备。
3.硬件安全模块(HSM)
HSM是一个独立的微处理器,通常有其受保护的专用内存(RAM),放置程序代码和数据的专用闪存区,以及外围设备(例如定时器、用于某些密码算法的硬件加速器或用于真随机数的发生器)。它能够访问主机的所有硬件。用于实现认证启动或主机监测等功能。专用数据闪存可以用来存储秘钥,主机系统无法随意访问。这意味着主机可以请求HSM执行加密操作,而密钥无需离开HMS。
如图4所示为英飞凌TC3XX系列的HSM模块,其是基于ARM Cortex-M3的微控制器,有随机数生成器TRNG,和AES、Hash、PKC(公钥加密整数)算法的硬件加速器,以及中断、Timer等外设,其支持的算法包括:
对称加密:AES-128:支持硬件实现,支持ECB、CBC两种模式;
摘要算法:128bit的MD5、160bit的SHA-1,224bit、256bit、384bit、512bit的SHA-2,其中128bit的MD5、160bit的SHA-1、224bit 的SHA-2、256bit 的SHA-2算法支持硬件实现,384bit、512bit的SHA-2需要用软件实现。
非对称加密:RSA、ECC等。
图4 英飞凌TC3XX系列的HSM模块
虽然各芯片的加密模块都叫HSM,但是功能和支持的算法却有差异,因为HTA和HSM并没有专门的规范来定义,也就是说只要芯片有加密操作的功能,芯片厂商就可以称其具备HSM。这意味着在供应商选择阶段,主机厂必须详细核实每一个可能供应商的技术声明。这种标准化的缺乏经常导致供应商的误解。
对于HSM的功能测试,主机厂不能仅听供应商吹牛,还需让其提供测试报告,另外主机厂还需设计测试用用例对其可用性、功能性进行测试。例如测试AES是否达到NIST标准。因此,主机厂在选择供应商时,不仅要让他们的采购部门参与,还要让他们的安全专家参与。
4.AUTOSAR
在AUTOSAR的4.2 版,AUTOSAR 定义了所有必要的安全模块,如图5所示,包括用于CANFD、ETH通信加密的的安全板载通信SecOC模块,以及加密服务管理器 (CSM) 和加密抽象库 (CAL)。AUTOSAR只定义了上层模块以及之间的接口,对于密码原语的实现,AUTOSAR并没有定义。
图5 AUTOSAR中的加密服务模块
5.安全的诊断服务
根据 ISO 14229标准,当诊断服务对软件安全有影响时,必须经过0x27服务校验确保其安全。然而其使用的安全机制并不安全,使用的机制基于对称算法,没有加密算法,seed和key的长度通常为1-4字节。后续有必要将其升级到8字节以上,毕竟诊断可以修改控制器的关键参数。
6.安全引导
安全引导用于在启动过程中使用数字签名验证所有软件的完整性,包括保证引导加载程序、操作系统甚至可能是应用程序不会被未经授权的人更改,如图6所示。
图6 安全引导
虽然引导加载程序和操作系统通常是由Tie1提供的,但应用程序可能来自官方应用商店或者是第三方供应商,这使软件发布过程更加复杂。与大多数术语一样,安全引导并没有标准化,但是市场上对这个术语有一个常见的解释:软件的完整性是衡量多个阶段的,启动过程中的每个阶段只有在前一个阶段能够成功验证其完整性的情况下才会启动——否则启动就会停止或ECU重新启动。
这种安全引导的整体机制被广泛使用,例如在Windows 10中作为一个可用的特性,在Apple的iOS操作系统是默认打开的,以防止越狱和软件恶意修改。
7.后端安全通信(TLS)
现在大部分汽车都具有联网通信模块(常说的TCU),该模块允许用于远程控制车辆,或者获取车辆信息。这些通常都是基于蜂窝网络的,目前在网络层的加密和验证通常使用TLS协议套件来实现,它是目前全世界最常用的安全协议,但正确配置每个选项来实现强大的安全级别可能会很棘手也是比较麻烦的。
8.防火墙
防火墙用于过滤和阻止异常的数据流。过滤器有很多种类,从按起点或目的地进行简单过滤开始,逐渐扩大到对有效负载的深入检查。单个ECU的防火墙通常通过CANID 过滤接收消息。对于网关等大容量通道,这些防火墙以及路由逻辑通常会对性能产生影响。与后端服务器的无线连接使用相同的过滤机制,因此只接收某些确定的服务。传统车内ECU中的防火墙功能通常没有日志记录机制。但是也有部分可能会在后续增加,例如VCU转变为动力域的域控制器,运行linux或qnx系统,具有面向服务的通信能力。
9.入侵检测/防御系统(IDS /IPS)
IDS /IPS是类似防火墙的系统,但与防火墙不同的是,它不位于网络边界,而是在网络内部,通过监控/控制网络流量来确保安全。入侵检测系统监视系统/网络,并将日志发送到后端系统进行进一步分析。IDS/IPS的检测规则是依赖后端进行动态更新的,但是在网速慢的时候,更新时间需要数天或更长时间。
IDS/IPS可以在基于主机和网络域中进行区分,也就是说可以针对单个ECU,也可以针对某个网络域。它们可以作为单独的硬件组件实现,也可以在现有主机上的软件中实现。
另外 IPS可能会对安全相关功能产生负面影响,其有可能出现误检,例如,在碰撞之前检测到大量的制动信号,这可能被 IPS 解释为攻击。就未来的机器学习IPS算法而言,这方面将变得更加关键。这意味着无论何时使用 IPS,都需要一条备份路径来监督所有IPS解释,这将对性能和责任方面产生影响。IDS 则不会有这种担忧,因为检测规则将由人类预先定义,当然,在定义此类 IDS 规则时仍然存在人为错误的可能性,但可以使用定义明确的更新过程和严格的测试将这些错误降至最低。
10.WIFI安全
对于车内WIFI,应采用强密码的WAP2,而且密码的长度也很重要,因为存在基于字典的暴力破解攻击。
额外的安全措施可以放在网络层之上,如应用程序在应用层进行通信内容加密以及使用一个固定的TLS连接,或只有汽车和设备知道的共享密码进行安全地配对。这将产生三层加密,这将使模拟或重放攻击非常困难。
对于后端连接,每个连接都应该显式地列入白名单、加密和身份验证,特别是在诊断代码或私有数据等敏感信息被传输时。此外,应该记录和分析每次连接尝试,以便及时检测暴力强迫攻击。
03 总结
对于车载网络内那么多节点,怎么权衡性能和安全呢,各节点应该都采用哪些安全机制呢?
对于电子电气架构的安全分析,首先需要列出其资产清单,可以按车载设备、车内网络、数据通信类别进行进行梳理,如图7所示,然后再梳理资产价值表和资产价值等,结合汽车网络安全资产重要性等级的结果和资产影响度等级的结果, 基于关键资产划分表识别出汽车网络安全中的关键资产,并采取相应的安全机制。
图7 资产价值划分