汽车安全系统设计
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框图
3.1 加密服务引擎(CSE)的安全特性
加密服务引擎(CSE)是集成在Qorriva MPC5464中的加密硬件模块。CSE模块实现安全硬件扩展(SHE)功能规范中描述的安全功能。图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,它能够作出反应。
4 i.MX51/53系列
飞思卡尔基于汽车ARM®的i.MX51/53处理器提供先进的性能,可以驱动最新的汽车系统。这些处理器适用于需要高级用户界面、先进的视频处理功能、2D和3D图像、多个连接选项以及高级系统集成的应用。基于在消费电子市场获得成功的i.MX515和i.MX535,i.MX51/53系列汽车处理器将带来消费电子用户体验,并将器件连接到未来的汽车。图3展示了i.MX515框图示例。
图3:i.MX515框图
4.1 i.MX汽车器件的主要安全特性
安全是对使用i.MX51/53创建的平台的通用要求,尽管对平台和市场的具体需求差别很大。便携式消费电子设备上需要保护的资产的类型和成本与汽车或工业平台上需要保护的资产类型和成本差别很大,这同样适用于威胁这些资产的攻击的种类和资源水平。平台设计人员必须选择合适的应对措施,以满足相关的平台安全需求。
对于需要满足各个市场要求的平台设计人员来说,i.MX51/53融合了广泛的安全特性,这些安全特性可以单独使用,也可以协同使用来支撑平台安全架构。i.MX51/53的大多数安全特性提供针对特定类型攻击的防御功能,可根据所需的保护程度配置不同的防御级别。这些特性的目的是协同工作,也可以与适当的软件集成来创建防御层。除了保护功能外,i.MX51/53还包含一个通用加速器,以提高选定行业标准加密算法的性能。
i.MX51/53的安全组件包括:
•Cortex™-A8平台的TrustZone®架构,带有TrustZone®中断控制器和看门狗
•系统启动的高保证启动(HAB)特性
•安全控制器(SCC),有16KB的片上安全RAM
•对称/不对称散列和随机加速器(SAHARA)
•运行时完整性校验(RTIC)
•安全实时时钟(SRTC)
•IC识别模块(IIM),带有片上电熔丝
•中央安全单元(CSU)
•系统JTAG控制器(SJC)
•多主机多内存接口(M4IF)的水印机制
•智能内存直接访问(SDMA)控制器的锁定模式
4.2 虚拟化
现代化信息娱乐系统需要满足反方向要求。一方面,它们需要支持消费电子领域的复杂的多媒体算法、输入设备(例如触摸控制型输入设备)和用户设备(如不同的存储介质、文件系统)。另一方面,它们必须能够实时处理来自汽车网络的消息,并防止在消费电子产品中好用的应用(如应用商店)在汽车中运用时不会出现故障。
i.MX中的硬件虚拟化特性能够解决该问题。设计人员可以建立一个在Linux或Android™等强大的操作系统虚拟实例中运行的信息娱乐系统。另一个实例可以执行AUTOSAR™,它能够满足汽车领域的硬实时要求。
为了保护这两个实例并为其中一个实例(如CAN控制器)分配特定的外设模块,TrustZone架构能够有所帮助。
TrustZone在非安全模式和安全模式中复制内核。根据内核模式,外设模块能够提供不同的视图、行为或功能集。
5 安防和安全
在一些情况下,安防要求和安全要求相互矛盾。安防通常需要限制访问微控制器的功能和数据,而在现场返修情况下的功能安全(即发生故障的ECU被从现场退回给制造商)则要求完全访问微控制器或ECU的处理器,以便分析现场返修的根本原因。即将发布的功能安全标准ISO26262要求分析现场返修,以便检测ECU的系统故障,然后启动召回。
在安全生命周期中,安防和安全要求都能够满足。在该生命周期中,ECU通过车间、生产、现场和返修几个状态。通过对微控制器/处理器进行授权(如提供一个保密密钥)改变状态。每个状态可用的功能和数据都是有限的,例如微控制器/处理器的调试端口在生产状态被启用,在现场状态则被禁用。
如第3.1节所述,如果调试器被附着到微控制器,那么Qorriva MPC564xC/B系列的CSE模块会禁用加密密钥。禁用哪个加密密钥取决于每个密钥的DU(调试器用途)标识。如果设置了一个密钥的DU标识,那么在附着了调试器后该密钥会被禁用,因此,只要附着了该调试器,则无法使用该密钥加密或解密数据或验证闪存(参见第3.2.1节“安全启动和信任链”)。更改DU标识需要用一个保密密钥对微控制器进行授权。在安全生命周期中,当微控制器进入现场状态后OEM便会设置DU标识。如果发生了现场返修,OEM可以重新设置DU标识,启用微控制器调试,以便分析现场返修的根本原因。
对于调试,i.MX处理器提供以下安全级别:
•最高级别的安全性:完全禁用调试端口。
•较高级别的安全性:在调试器和i.MX处理器之间成功地进行了基于密码的挑战-响应认证后,调试端口被启用。
•无安全性:完全启用调试端口。
使用i.MX处理器中的一次性可编程熔丝配置安全级别:熔丝燃烧是一个不可逆的过程,也就是说,一旦熔丝燃烧了便不可能使熔丝返回到其原始状态。安全级别熔丝的燃烧只能提高安全级别,也就是说,只能从“无安全性”、“较高级别的安全性”转换为“最高级别的安全性”,而无法按相反的顺序进行。
在安全生命周期中,当i.MX处理器进入现场状态后OEM便会燃烧安全级别熔丝,达到“较高级别的安全性”。如果发生现场返修,在成功地进行了挑战-响应认证后,OEM可以启用调试端口。
6 总结与展望
安防与安全是汽车电子系统的两个推动力。本文介绍了现代汽车微控制器和处理器的各种安全特性,这些特性保障汽车及车内人员的安全。
飞思卡尔Qorivva MPC564xC/B系列是第一批融合了加密模块的面向汽车市场的微控制器。然而,通过车对车通信主动安全或通过应用商店实现汽车个性化等趋势将进一步增加汽车领域的安全需求。
作者:飞思卡尔半导体 Juergen Frank
本文转摘自电子发烧友网《汽车电子特刊》5月刊
全部0条评论
快来发表一下你的评论吧 !