用于自动驾驶的安全车载以太网——多级安全架构
文章来源: Elektrobit
发布时间:2021-07-14
Elektrobit (EB) 开发的安全架构包括4个等级,可以分层保护系统。
如今,汽车搭载的各种单项驾驶辅助功能正逐步发展成为高度复杂且相互关联的系统,以促进实现全自动化驾驶。从最早的基于警报的支持功能发展到辅助驾驶功能(例如车道偏离预警系统),再到能够部分控制车辆的功能(例如高速公路自主巡航功能或代客泊车功能),人们一直在为实现全自动化驾驶的目标而努力。随着这些技术的发展,人们对能够处理大量数据的传输速率的需求也与日俱增,促使车载以太网成了未来汽车的一项关键技术。
为实现自动化驾驶的目标,车载以太网不仅应具备高带宽,最重要的是还必须能够提供可靠、安全的通信。本技术文献描述了可信性与安防性之间的紧密联系(见图1)。可信性包括安全关键系统必须考虑到所有相关属性,以防止在系统发生故障时出现严重的、不可承受的后果。这些属性指可用性、可靠性和完整性,以及安全性和可维护性。在安防性方面,最重要的是防范人为的恶意攻击,因此,保密性与可用性和完整性一样,也在安防性的范畴之内。
可信性与安防性并没有明确区分界限,因为与安防性相关的攻击同样会影响可信性:此类攻击会通过破坏正确的传感器数据和/或控制数据的接收,从而影响服务的可用性。恶意操作网络上的传感器或控制数据,会破坏系统的完整性。未经授权的第三方拦截或记录控制数据,会破坏保密性。必须在整个寿命期内,为整车网络防范以上所有行为。
就自动驾驶方面的功能而言,防范外部攻击非常重要。对通信网络的攻击形式包括,故意插入故障消息(如制动命令),或者有意干扰正确消息传输(如篡改、延迟或删除现有消息、中继消息等)。对汽车的攻击点包括外部节点,如车载诊断接口 (OBD) 或无线连接(参见图2),被黑客破解的现有节点,如安全防护等级低的信息娱乐控制设备,或者被交换和被操纵的控制设备。
汽车的寿命期相对较长,因此攻击模式可能随着时间发展而改变。根据摩尔定律,计算机处理能力约每2年翻倍一次。这一定律也适用于不断扩大和日趋复杂化的攻击。例如,8年前被视为安全的数据加密方法现在可能会受到攻击,因为当时的密钥长度对于现在来说太短了。
多级安全架构可以有效对抗这些外部威胁,这个概念可避免黑客仅攻破一道安全屏障就能破解整个系统,从而造成巨大的破坏。
Elektrobit (EB) 开发的安全架构包括4个等级,可以分层保护系统。第1级“加密网络权限”,严格限制网络访问权,尽可能让恶意攻击者难以进入通信网络。这一级已经能够提供非常有效的防护。如果第一级被攻破了,第2级“安全车载通信”可确保被交换的所有安全相关消息得到保护,防止被攻击者篡改。如果这一级也被攻破,第3级“数据使用政策”会要求执行特定的用户验证以进行保护。在进一步处理敏感消息内容前,系统会在特定的用户环境中执行检查。最后第4级是“检测与防御”。这一级会检查整个通信模式的异常情况。如果发现攻击行为,防御机制会确保恢复被攻破的1-3级安防层。这种多级架构可为针对系统可用性、完整性和保密性的攻击提供全面的防护。
安全架构的第一级通过四项措施限制对车载网络的访问:(1) 集中的非车内连接,(2) 安防区域,(3) 设备身份验证,(4) 冻结网络配置
第一个措施旨在减少具有非车内连接的控制设备数量,将潜在攻击点限制为少数实现充分防护的控制设备。例如,在“智能天线模块”中,应用程序层网关将外部网络与内部网络完全分开,从而保护此类控制设备。这意味着攻击者无法从外部直接访问内部网络节点。
第二个措施将网络划分为多个安防区域。这种系统通常无法采用实际的物理划分形式,所以按照IEEE 802.1Q通过虚拟局域网(VLAN)进行划分。在以太网头和数据之间插入VLAN标签。此标签会提供VLAN所有以太网消息的唯一标识。VLAN标签可在交换机或直接在控制设备中添加或移除。这样可以清晰而高效地分离涉及外部设备(如诊断测试设备)的数据通信和纯内部通信。其他安防区域根据汽车域,如信息娱乐系统或传动系统,或者消息类型(如音频/视频、时间敏感的控制数据、非时间敏感的控制数据),通过不同的VLAN建立,一个控制设备可以从属于多个安防区域。
第三个措施仅允许通过身份验证的网络节点进入该网络。未使用的交换机端口永久停用,或者仅在连接节点成功验证身份后才能激活以便用于正常通信。网络节点的身份验证通过交换机固件或者直接连接到交换机的微控制器进行。
冻结网络配置是第四个措施。在学习阶段后,传输以太网帧的交换机中的ARL表,以及用于L2/L3地址转换的控制设备中的ARP表会进入静态配置或冻结状态。这样可以防止新节点发送或接收消息。为交换机和接收控制设备交替(或额外)提供访问控制列表,用于比较接收消息的头地址字段(如IP源地址),并拒绝不符合列表的消息。
多级安全架构的第二级通过两个措施保护车载通信安全:(1) 数据认证和 (2) 数据加密。
数据认证采用对称加密方法,发送方利用消息数据,为连接分配专门的密钥,以及新鲜度值(时间戳或计数器),计算消息认证码 (MAC) 并添加到消息中。接收方执行相同计算,比较计算值与接收消息中的MAC值。这样接收方能够有效判断数据是否来自未经授权的发送方,之前是否记录过该数据然后重新传输(中继攻击),或者传输过程中是否被恶意中间设备更改(中间人攻击)。目前,使用非对称加密方法的数据签名计算还不能用于车载通信,因为这样会显著增加计算量。
第二个措施是用密钥加密数据(对称加密),防止被未经授权的第三方窃听。
在不同通信等级采用IEEE、IETF或AUTOSAR的不同标准化协议实现这两个措施,如表1所示。
协议所在的通信等级是选择协议时的一个主要考虑因素。
图3:
用于安全通信的协议
如图3所示,MACsec (IEEE 802.1AE) 在OSI第2层工作,因此始终仅直接用于两个相邻以太网节点之间。Ipsec (IETF 4302, 4303) 在OSI第3层工作,已经通过发送方与接收方之间的连续线路,实现安全的端到端连接,如图3所示。TLS (IETF 5246) 在OSI第4层工作,采用TCP传输协议。SecOC (AUTOSAR) 在传输层工作,所以几乎独立于基本网络协议。除了TCP,还可与汽车中最经常使用的UDP传输协议共同使用。SecOC的特点在于可以仅部分传输为数据认证而计算的消息认证码(MAC截断),因此还可用于较慢的车载网络(CAN、CAN-FD、FlexRay)。
在我们的安全架构中,我们使用SecOC作为车载系统,加入用于加密传输的扩展,以及与车载外部设备通信的TLS。
加密的基本原则是不得对不同功能和设备使用相同的密钥,不得长时间使用同一密钥。数据认证、密钥交换和数据加密都需要不同密钥。如果用于数据加密的密钥外泄,其他密钥不受影响,可以通过现有加密密钥交换以分配新密钥。为了限制某一密钥对应的数据量,可根据用途,为每个密钥指定具体的有效寿命。此外,可以根据相应汽车域或其他功能方面将通信划分为不同组,为其分配不同的连接密钥。
为了高效执行加密功能和安全密钥存储,应使用硬件安全模块 (HSM)。为汽车ECU分配密钥是一个非常复杂的任务。IT领域的常用方法,如Internet Key Exchange Protocol IKEv2 (IETF 4306) 和X.509证书 (IETF 5280),不适合用于车内密钥管理。此类方法消耗的资源过多,需要在线连接证书颁发机构服务器(CA服务器),但无法始终保证安全性或者用时过长。应由车内的一个ECU担任密钥主设备角色,在中央向其他ECU分发密钥。密钥交换通过对称加密实现,在收到诊断请求,经过一段时间后,或者通过车外服务后端服务器触发。密钥主设备是与服务后端服务器进行密钥管理方面通信的唯一ECU,它使用的是非对称加密方法。
EB多级安全架构的第3级基于“数据使用政策”原则。利用特定的应用程序知识,检验并根据需要限制接收的数据(传感器值或关键执行机构命令),考虑值的顺序、汽车状态或其他传感器数据。
这样,可以发现尝试篡改显示数据的举动,或者在正常汽车运行过程中阻止执行特定的诊断功能。此外,可以定义执行特定功能前必须满足的具体要求,例如,打开驾驶员车门后,才能执行诊断特定功能。这样可以限制处理具有不合理内容的接收消息,从而避免恶意攻击造成的不利影响。这类保护可作为额外的安防措施,但设计此类数据使用政策时必须考虑其潜在的副作用。航空行业的反向推力示例可以说明这一点。在着陆时,飞机涡轮的反向推力为轮子提供额外或替代的制动方法。
在飞行过程中恶意触发反向推力导致飞机坠毁的事故之后,人们采用数据使用政策形式实施不同的措施,确保在着陆过程中,只有当飞机落在地面后才能启动反向推力。例如,轮子必须正在转动就是其中一个条件。但是,在结冰的跑道上,轮子可能无法转动,这样就无法触发作为唯一制动方式的反向推力。在此情况下,数据使用政策过于强大,妨碍作为重要制动方式的反向推力的正确运行。
设计第3级数据使用政策时,应考虑特定应用程序的完整环境。其目的是发现因篡改而产生的不合理数据。应接受所有其他数据,以确保系统功能的可用性。
在第4级“检测与防御”,检查通信模式异常,根据需要确定防御措施。假定恶意攻击改变了已知通信模式。突然收到异常的定期消息,或者消息的MAC认证反复失败。有一种极端情况是拒绝服务攻击,反复发送消息,其目标是导致信息过载。这会极大影响系统的正常通信。
交换机已经提供许多检测异常的机制。如果超过以前设置的带宽限制,或者IP消息具有相同目标和源地址,某些交换机可以在硬件中检测此情况。此外,可以在选定的控制设备上的软件中实施检测算法。
如果检测到此类异常情况,可以提供多个防御模式。直接使用交换机阻止已识别的干扰发射器,恢复1级防护。完成后,可以交换数据加密密钥,恢复2级防护,应用程序可以关闭特定功能,重新实现3级防护。
因此,这些防御机制可以恢复被攻击者攻破的安全架构防护层。根据应用情况 ,决定是否要继续无阻碍运行,或者由自动化汽车的驾驶员再次接管方向盘。在任何情况下均建议使用故障内存项(诊断故障代码)。
这里显示的架构用于防范针对可用性、完整性和保密性的恶意攻击,每级的防护类型略有不同(参见表2)。1级在所有的三个方面提供防护。2级保护完整性和保密性,但无法抵挡针对可用性的攻击(如拒绝服务攻击)。3级仅提供完整性防护。4级能够抵挡针对可用性的攻击,提供针对完整性的部分防护。这样,安全机制在不同等级互补,第1级保护性最强并且最为重要。如果第1级被实际攻破,其他级可以逐步帮助限制攻击影响,明确检测攻击和采取必要措施。
表2:多级安全架构提供的防护效果
Elektrobit已经在AUTOSAR通信堆栈环境中实施所述安全架构(参见图5)。可以合理配置现有AUTOSAR软件模块来实现以上防御等级,但在一些情况下,需要部分专有扩展以实现完整功能。通过在以太网EthSwt模块和EthIf模块配置交换机,实现1级防护。可以在Tcplp模块中配置接收方列表。
图4:在AUTOSAR中实施多级安全架构
在2级,可以通过SecOC模块和CSM /HSM加密模块实现数据完整性。此外,需要加密(SecOC)和密钥管理 (SecKeyM)扩展。3级采用应用程序软件组件的形式实现。4级的实现方式是配置交换机,添加与其他等级相关模块交互的软件扩展(SecMon)。
多级安全架构对于保护通过车载以太网进行的通信来说具有重要的作用。安防性和可信性彼此相关,这对于自动驾驶功能来说非常重要,尤其是在高度复杂情况下,汽车系统的功能关系到乘客的生命安全。这里用到IT领域的大量知识,交换机配置、VLAN标签和许多方法已经在IT领域广泛应用了很长时间。汽车领域具有特殊要求,但在充分定义的环境之下可以实现优化。
Elektrobit开发的安全架构考虑了所有这些内容,采用兼容AUTOSAR标准的方式集成这些解决方案。
获取更多评论