您现在的位置是:首页 > 汽车

汽车安全性能亟待升级 嵌入式系统把关护航

2020-05-27 06:01:06

  1 摘要

  汽车安全离不开安防,例如,只有通过安防措施保护制动ECU(电子控制单元)固件的完整性和真实性,才能保证汽车的制动安全,防止恶意修改固件等威胁。

  安全需要安防的另一个示例是板载网络,板载网络将关键数据从传感器传输到制动ECU。只有通过安防措施防止板载网络抵御修改数据、注入消息和拒绝服务等威胁,才能保证制动ECU及时收到正确的传感器值。

  人们希望在汽车中推出Android™或MeeGo™等开放的软件平台,从而出现了一个全新的安全和安防挑战:为了允许通过按钮与用户进行交互并为导航应用从汽车提取当前车速、剩余油量、行驶里程、位置等信息,软件平台及其应用程序需要参与板载汽车通信。然而,需要保护汽车不出应用故障。虚拟化以及运行软件平台(包括沙箱内的应用程序)是在ECU内实现保护的安防措施之一。

  在上述情况下,安防措施完善了安全性。然而,在一些情况下,安防需求与安全需求相互矛盾。例如,要保护固件的保密性,在组装了ECU后便以不可逆地方式禁用微控制器的调试端口。如果由于ECU发生故障而导致返修,那么被禁用的调试端口会导致无法在微控制器内进行根本原因分析。特别是无法分析是否有软件、配置或硬件缺陷。新兴的功能安全标准ISO26262要求调查现场返修,以便检测系统故障,然后启动召回。只有借助智能安防生命周期和安全调试等方法,才能满足安全需求并在现场返修时分析根本原因。

  本文介绍了先进的微控制器的主要安全特性,以及如何应用这些特性确保汽车安全:具体而言,本文涵盖了安全启动、组件保护和虚拟化。此外,本文也概述了对保证安全和处理现场返修的解决方案。

  2 简介

  在过去的几年里,汽车微控制器(MCU)的安全特性变得越来越重要。这种趋势受到传统的安全使用案例的推动,例如防盗装置或组件保护,可防止汽车被盗。然而,车对车通信等新的使用案例及更高的安全性要求也增加了安全需求。对于这些用例,汽车行业开始制定安全硬件扩展(SHE)功能规范等规范,或EVITA项目提出的安全架构。

  半导体公司开始在新一代微控制器中实施这些规范。这项工作的第一批成果之一便是Qorriva MPC564xB/C系列,该系列实现了一个易于使用的安全模块,以满足SHE规范要求。

  i.MX系列等汽车处理器植根于消费电子市场,现在已经打入汽车市场,以实现最先进的驾驶员信息娱乐系统。这些处理器提供硬件安全,支持复杂的数字版权管理系统。

  3 Qorivva MPC564xC/B系列

  QorivvaMPC564xC/B系列32位微控制器面向安全的、新一代高端汽车车身控制模块(BCM)和网关应用。它提供高度集成,可以满足OEM和一级客户对增强功能集和增加内存空间的日益增长的需求。

  从安全性角度来看,MPC564xC/B包含一个加密服务引擎(CSE)。CSE是一组加密硬件特性,允许在ECU之间安全、可信任地传输信息。

  MPC564xC/B系列还具有双Power Architecture®内核选项,提供近300DMIP的处理功能和低功耗待机/等待模式,帮助降低功耗,还具有广泛的通信外设集,面向与BCM/网关模块对接的广泛的子系统。此外,这些可扩展器件都由使能生态系统支持,该生态系统包括软件驱动程序、操作系统和配置代码,以帮助您快速部署您的设计。图1展示了Qorivva MPC564xC/B框图。

  图1:Qorriva MPC564xC/B框图

  图1:Qorriva MPC564xC/B框图

  3.1 加密服务引擎(CSE)的安全特性

  加密服务引擎(CSE)是集成在Qorriva MPC5464中的加密硬件模块。CSE模块实现安全硬件扩展(SHE)功能规范中描述的安全功能。图2展示了CSE模块的框图。

 图2:CSE框图 

  图2:CSE框图

  CSE的设计包括一个带有一组内存映射寄存器的主机接口,这些寄存器被CPU用于发起加密命令。此外,还有一个系统总线接口允许CSE直接访问系统内存。在这里,CSE模块的行为与任意其他主机相似。通过主机接口,应用程序可以配置和控制CSE,例如使CSE进入低功耗模式,中断完成的命令处理或暂停命令处理。状态和错误寄存器将提供深入的系统信息。如需完整的CSE命令列表,请参考MPC564xC/B参考手册[3]。两个专用系统闪存块被CSE用于加密密钥存储。其他主机无法从系统访问这些模块,因此这些模块被称为安全闪存。

  CSE模块的AES块作为从机连接到CSE模块的内部总线。它处理加密/解密,并提供基于密文的消息认证码(CMAC)。CMAC功能用于实现安全启动机制。

  随机数生成器包括一个伪随机数生成器(PRNG)。PRNG的种子由真随机数发生器(TRNG)生成。

  CSE控制通过测试接口从外部访问安全闪存,在生产过程中使用该功能,也用于现场返修验证。当Qorriva MPC564xC/B半导体从飞思卡尔工厂出厂时,测试接口是打开的,当加密密钥被编程到器件中后该接口将关闭。

  质量工程师可以使用SHE规范中描述的CMD_DEBUG函数重新打开测试接口。CMD_DEBUG函数将删除安全存储器中的所有数据,然后才会授权访问测试接口。CMD_DEBUG函数的一个输入参数为MASTER_KEY,这是一个单独的预编程128位值,对于各个器件都不同。只有MASTER_KEY的知识载体才能成功地启动CMD_DEBUG函数。

  在附着了调试器后,可以单独禁用加密密钥。禁用密钥意味着CSE可用该密钥拒绝任何加密功能。

  3.2 CSE支持的一些用例

  CSE有助于实现下列用例或系统:

  •防盗装置

  •组件保护

  •安全闪存编程

  •数据集保护(例如行驶里程)

  •防止芯片调节

  目前还有许多用例,将来会出现更多。以下段落详细描述了两个重要的使用案例。

  3.2.1 安全启动和信任链

  当MPC564xC/B重置后,CSE将在公共闪存中自动验证阵列。该阵列的基地址和长度由开发人员指定。同一个地址条目被用作主内核的第一个指令地址。

  CSE在该阵列外计算CMAC值,并将其与存储在安全内存中的预先计算的值进行比较。根据比较结果,CSE将提供加密服务或不提供。由于系统闪存较大-MPC564xC/B提供高达3MB的闪存-因此安全启动过程可能需要一些时间。由于这个原因,开发人员可以设置一个信任链。在这种情况下,闪存验证步骤被分为几个子步骤。第一个闪存块由CSE验证,如前所述;对以下闪存块的验证必须由主内核通过已经过验证的程序代码触发。

  3.2.2 组件保护

  组件保护功能防止从汽车拆除单个ECU,并在其他汽车中重复使用。通常盗取汽车的目的是为了将单个ECU重新销售到零件市场。

  OEM现在可以用一个安全组件保护系统解决几个问题。首先,汽车制造商可以减少被盗汽车的数量;其次,他们可以防止对信誉和配置产生负面影响;第三,他们可以保护自己的售后业务。

  基于CSE的组件保护系统似乎能够达到上述目的。最有价值的ECU将包含一个带有CSE模块的微控制器。可以通过设计分配一个或多个主ECU,也可以使用特定算法进行动态分配。主ECU将轮询组件保护系统的所有其他ECU,并要求一个特定答案(例如加密的唯一ID)。在这种情况下,只有带有正确的保密密钥的ECU才能发回一个有效的响应。此外,主ECU可以使用特定汽车内组装的所有ECU数据库交叉校验收到的ID。

  在使用汽车时可定期进行组件检查。如果主节点在汽车网络中检测到未经授权的ECU,它能够作出反应。