欢迎光临第五届中国汽车网络信息安全峰会2020!

保护OTA更新过程

发布日期:2020-05-07

GRCCIoVSecurity

2020-05-07 16:14:59

手机阅读

点击上方蓝色字体,关注我们

汽车的空中(OTA)更新


能够对汽车执行现场软件更新的优势已得到充分确立:它将为制造商节省资金,使关键错误得以立即修复并在其生命周期内随时向汽车添加引人注目的新功能。


但是,目前,几乎没有车辆能够接收更新。即使是支持空中更新(OTA)更新的汽车,也只能用于更新信息娱乐或远程信息处理系统。如果OEM发现固件中存在控制关键功能(如制动器或安全气囊)的故障,则必须将车辆退回经销商。电子控制单元(ECU)控制着诸如发动机,制动器,转向等功能,在车辆网络体系结构中更深入,并且通常是带有少量嵌入式闪存和RAM的微控制器(MCU)。这就带来了需要不同更新方法的约束。


与手机或PC不同,车主在更新期间不会容忍其车辆的停机时间。因此,理想情况下,对车辆操作至关重要的更新应在后台无缝且不可见地进行。



上图显示了将更新文件从OEM服务器获取到车辆内特定ECU的关键组件。通过蜂窝网络在单个车辆和服务器之间建立安全连接。这样就可以将新的,更新的固件安全地发送到车辆的Telematics Unit,然后发送到OTA Manager。OTA管理器管理车辆内所有ECU的更新过程。它控制固件更新到ECU的分配,并告知ECU何时执行更新。


这在需要同时更新多个ECU的情况下非常重要。为包含多个ECU的车辆添加新功能。更新过程完成后,OTA管理器将向OEM发送确认。


可以在运行OTA Manager的ECU上安装外部NAND闪存,以存储固件更新,直到需要它们为止。外部闪存还可以用于存储其他车辆ECU的固件备份副本,可以在安装程序中调用, 如果ECU更新出现重大故障,则ECU将无法运行任何固件。这些备份副本将通过加密和身份验证保护来保护,以防止在存储在外部存储模块中时对固件进行任何篡改。


OTA管理器包含车辆内每个ECU的表格,其中包括序列号和当前固件版本等信息。这使OTA Manager可以验证到达的固件更新,并确保已授权将其用于该车辆。如果要更新的ECU不具有安全功能,则OTA管理器还将负责解密和验证传入的更新。


单片机ECU的更新过程


当预定要更新ECU时,新的固件更新将到达ECU中。

两种格式之一:


完整二进制文件:新固件将完整发送。这具有不依赖先前固件的优点,因此即使先前版本已损坏也可以进行更新。此方法的两个缺点是传输二进制文件所花费的时间以及在接收方ECU中存储二进制文件所需的空间。许多传统的ECU在CAN总线上的典型速度为500kbit / s。


差异文件:OEM在服务器上将新固件与以前的版本进行比较,并创建一个“差异”文件,其中包含它们之间的差异列表。根据更改的数量,此文件通常小于原始固件大小的10%,从而使传输速度更快。这确实意味着差异依赖于先前的固件为特定版本。


无论文件的格式如何,都有两种执行更新的方法。


“ A / B”方法:这使每个ECU上的闪存数量增加了一倍,因此它可以在“主”闪存中包含当前固件,并在“第二”闪存中具有用于全新版本的空间。从最终用户的角度来看,这种方法是理想的,因为ECU可以使用主存储器保持正常运行,而新固件可以在后台写入辅助存储。 更新完成后,ECU可以更改为在方便的时间使用新更新的固件(在辅助闪存块中)(例如,在下次按键时,也可以等待将开关与其他正在更新的ECU进行同步) 。 由于始终有可用的固件,因此没有将ECU置于不可操作状态的危险,因为始终可以立即“回滚”到以前的可用固件。明显的缺点是在MCU上实现两倍于执行闪存的成本。


“就地 The in-place ”方法:在这种情况下,设备上仅存在一个固件版本,并且作为更新的一部分擦除并编程了各个模块。当ECU处于正常运行状态时,更新无法运行-这意味着车辆将在一段时间内无法运行。该时间段将确定主要是重新编程ECU闪存所需的时间。车辆中的主要ECU(如引擎控制器)将具有数MB的闪存,如果需要对完整的固件进行重新编程,则可能需要数十秒的时间才能完成。对于OEM厂商而言,这是一个挑战-客户会接受他们的事实吗?长达一分钟无法启动引擎?A / B方法的增加成本必须与“就地”方法给客户带来的不便之间进行权衡。由于“就地”方法中仅存在固件的一个版本,因此更新过程中的错误或重置可能很难从中恢复,并且如果未仔细处理,则可能导致模块(以及汽车)不再功能正常运行,直到在车库对其进行更新之前,车辆无法使用。


在下一章中,我将介绍OTA更新过程如何保持安全性,对中央网关的需求以及将其整合在一起所需的微控制器功能。


确保OTA更新过程的安全


远程更新车辆固件的能力为黑客打开了一个新的攻击载体。这个黑客的两个主要动机是使用OTA机制来重新编程ecu最终控制车辆或窃取OEM固件。为了防止重新编程,固件的真实性和完整性需要受保护的。这可以确保固件源于受信任的源,而不是已被修改。有几种方法可以实现这种保护(例如,HMAC,或数字签名)。通过固件的真实性检查,OEM可以保证只有受信任的固件用于更新过程;但是,黑客仍然可以读取纯文本(即源二进制文件)固件以对源代码进行反向工程或窃取数据,这可能会例如导致IP盗窃和/或隐私问题。可以对固件进行加密(例如使用AES)防止这种情况。通过完整性检查,固件映像通过其进行通信的通道收到的信息将受到保护,以防止常用的“中间人”攻击。最后但尤其重要的是,协调更新的车载OTA管理器应受到保护反对操纵。


总之,应采取以下对策:


-保护固件的真实性和完整性,以防止黑客运行修改后的代码

-加密固件以防止黑客访问代码(IP)和数据

-在车辆和OEM服务器之间建立安全的端到端通信,以防止中间人攻击。

-确保OTA Manager应用程序的安全可靠位置


安全实施


通常,与OEM服务器的连接将由Telematics Unit建立。该单元可以使用传输层安全性(TLS)(一种广泛用于在线银行的成熟标准)来保护移动网络上的通信安全。


然后,OTA Manager将接收(安全的)更新文件,该文件将具有一个表格,列出车辆上存在的每个ECU,以及序列号和当前固件版本号。这样,它便可以验证该更新是否对该车辆有效。


此外,如上所述,更新文件应在OEM服务器和目标ECU之间进行端到端保护。如果要更新的ECU支持固件解密和身份验证,则可以按原样将文件从OTA管理器发送到目标ECU。


但是,并非车辆中的所有ECU都具有安全的密钥存储和硬件加速的安全功能。在这种情况下,OTA Manager本身必须代表目标ECU进行身份验证和解密更新,并通过内部网络发送纯文本更新。到目标ECU(可选的混淆方法(故意使人难以理解的代码)可以提供某种程度的保护)。ECU上缺少硬件安全模块,因此导致更新无法通过车载网络进行无保护地发送,这是不理想的。 但是,为了窃听此信息,将需要对车辆进行物理访问并需要知道要访问哪些电线,才能监听总线。 如果仍然认为风险太大,则在更新硬件之前,不应通过OTA更新模块。


如上所述,OTA管理器应检查更新是否对车辆有效:不仅要保证车辆中不同ECU的所有固件映像的一致性(兼容性),而且还要防止黑客能够安装较旧的固件版本,以便重新启用修补漏洞。这需要一种用于存储当前固件版本号的安全方法,然后可以将其与任何收到的更新的版本号进行检查。


OTA安全性的最终缓解策略是OTA Manager功能的位置。OTA Manager是用于协调OEM服务器和车辆ECU之间的固件更新的软件。如果这很容易被远程黑客入侵,则黑客可能会完全控制车辆。必须将其放置在OEM完全信任的位置,与第三方软件隔离(可能是恶意的)。由于存在许多第三方应用程序(例如,音乐,天气,导航),并且带有OEM固件的潜在后门,因此某些ECU(例如信息娱乐单元)被认为不太值得信赖,这对于OTA管理员来说不是一个理想的选择。另一方面,中央网关位于车辆网络的中央(充当外部和内部网络的防火墙),通常仅运行OEM信任的软件,并且对于OTA管理器来说是一个重要的位置。


需要网关来管理OTA流程


如上一节所述,OTA Manager的位置极大地影响了它的安全性。网关ECU是车辆中提供高度安全性但仍具有到所有车载网络所需的连接性的理想节点。

通过设计,网关是车辆许多内部网络与外部外部网络之间的安全桥梁。OTA管理器是一种软件,可以安全地管理同一内部到外部网桥上的更新,因此,通过在网关上运行它,无需更改现有网络体系结构即可执行其工作。


网关提供了与外部接口的隔离,黑客可以使用这些外部接口来尝试获取访问权限。将此与远程信息处理或信息娱乐单元进行比较,该单元可以包含下面列出的接口,从而为黑客提供了易于访问的攻击点。


蜂窝连接

Wi-Fi

USB

CD / DVD


网关上运行的软件相当紧凑,将使用受信任的自动级别OEM代码,并将使用安全的引导过程,以便仅OEM签名的固件可以在设备上执行。将此与运行在信息娱乐系统上的庞大代码库进行比较,或者远程信息处理模块,其中将包含多个第三方库,从而增加了潜在的后门攻击机会。


所需的微控制器功能


车辆中几乎所有ECU都可以单独使用软件机制进行更新。但是,更新时间的长度和缺乏安全性通常会使这种方法无法接受。通过使用提供特定硬件功能的微控制器,可以更快,更安全地处理更新,并减少车辆停机时间。


MCU功能:


读写时闪存:允许在擦除或编程另一个块时从闪存块进行读取访问。允许应用程序在更新过程中继续执行。


闪存重新映射/ MMU:允许在存储在闪存中不同物理位置的新旧固件映像之间即时切换。请注意,**闪存重新映射,因为MMU仅会重新映射核心访问,而不是来自其他总线主控(例如DMA)的访问。


加密安全性:启用存储私钥以解密和验证传入的更新。


生命周期管理:可用于安全地记录当前固件版本,并防止非法尝试回滚到先前版本或安装未经授权的软件。


较小的代码闪存块大小:具有较小的闪存块可以提高更新速度和效率。就地差异更新通常只会修改少量位置。例如,如果这些位置位于256K闪存块中,则由于必须备份整个块然后擦除并重新编程,因此与该位置位于16K闪存块中相比,将需要更多的备份内存和更多的时间来完成。


可锁定的闪存区域:在更新过程中,对关键代码(例如引导程序)提供额外的保护,以防止意外删除。


掉电检测:能够在更新过程中检测到意外重置。更新过程中的重置可能会使闪存保持未定义状态。引导加载程序可以在退出复位后启动恢复尝试。


多核:可以配置多核设置,以允许一个核执行更新,而另一核专用于运行现有应用程序,从而****地降低性能影响。


系统完整性检查:授予在更新期间检测和防止系统异常的能力。


ECU示例


下图显示了车辆的通用网络架构。


请注意,存在多种不同的网络协议,它们都链接到网关。网络中的每个ECU都是唯一的,其属性会影响其更新的容易程度,其中包括可用的CPU带宽,板载安全性以及RAM和闪存大小。应当明确的是,“一刀切”是不可行的-应在ECU的基础上决定使用哪种更新和安全方法。下面显示了一些潜在的用例。


ECU A示例

闪存:2个内置闪存

安全性:支持CMAC身份验证和AES-128解密

连接到网关:FlexRay

车辆停机时间:无

安全性:高

由于此ECU具有所需的内部执行闪存的两倍,因此可以使用A / B方法进行更新。


1.将更新的固件滴入后台下载到辅助闪存块,而当前固件版本从主闪存块执行。FlexRay非常适合提供滴流更新,因为可以使用**优先级的动态插槽发送更新,以确保不阻止任何其他所需数据。


2.固件被解密,并在下载时检查完整性。该模块包含用于AES-128解密,CMAC身份验证检查和安全私钥存储的硬件加速。这样就可以在OEM的云服务器和ECU之间进行端到端加密,从而确保整个数据的安全性。

网络。


3.一旦对新固件进行了充分的编程和验证,就可以在需要时将其激活,而不会导致车辆停机。


示例ECU B

闪存:具有用于外部存储新二进制文件的外部NAND闪存

安全性:支持CMAC身份验证和AES-128解密

连接到网关:CAN

车辆停机时间:长

安全性:高

对于此ECU,将使用全新的二进制文件进行更新。

1.加密的二进制文件将首先下载到网关上,并将存储在网关本地NAND存储器中。网关可以选择验证并检查更新的完整性。


2.然后,网关将在车辆行驶时将二进制文件作为后台任务发送到ECU。ECU将加密的更新存储在外部NAND闪存中。


3.一旦完整的二进制文件存储在NAND闪存中,就可以进行更新,这需要在车辆停机期间进行。ECU的内部闪存将被擦除,而NAND闪存的解密内容将用于替换它。


4.该过程完成后,将执行新固件。

低成本外部NAND闪存的添加有助于****地减少车辆的停机时间。没有它,通过慢速CAN网络发送到完整二进制文件所花费的时间将增加停机时间。


ECU C示例

Flash:至少有1个内部Flash块

安全性:无加密安全性

连接到网关:CAN

车辆停机时间:长

安全性:无

在这种情况下,可以使用差异文件。更新将需要车辆停机时间。

1.加密的差异文件将首先下载到网关上,并将存储在网关本地NAND存储器中。


2.由于此ECU上没有加密安全性,因此必须在网关中对diff文件进行解密,并以纯文本形式在CAN网络上发送。


3.将差异文件下载到设备RAM,然后执行更新过程,该程序将对差异文件中定义的必要块进行编程和擦除。额外的闪存块将用于备份要更新的闪存块的内容。理想情况下,ECU固件的副本也应存储在网关的外部闪存上,以便在更新过程中发生不可恢复的错误时,可以将其用于回滚。


LIN ECU示例


LIN是一个低速网络,通常以20kbit / s的速度运行,用于将车身电子设备ECU(例如车窗,后视镜和座椅控制器)联网。这些ECU上使用的微控制器通常是带有小型内部存储器(例如256K闪存和16K RAM)的低端设备。由于缺少备用闪存和RAM以及性能低下的CPU,Diff样式更新通常不切实际。可以通过分解完整的二进制文件和对设备进行分块编程,但是对于256K设备,通过LIN网络的传输时间可能会花费20秒以上。尽管可以在LIN网络上对ECU执行OTA更新,但所需的车辆停机时间长且软件开销大,再加上这些模块的固件较小,这使得它们不太可能需要紧急更新,这意味着许多OEM宁愿降低成本,也不在这些ECU上启用OTA更新。因此,任何更新都需要通过经销商处的有线连接进行。


综上所述


对车辆内的ECU执行OTA更新的能力是一项基本功能。鉴于车辆在许多不同类型的网络上具有广泛的不同ECU,因此没有一种更新过程适用于所有ECU。从驾驶员的角度来看,A / B方法具有巨大的优势,因为可以在零停机时间的情况下执行更新,但是这可能是一种成本相对较高的方法,不太可能与现有的传统ECU一起使用。


“ 就地 The in-place ” 更新方法可能更具成本效益,但代价是需要停工时间。应该对每个单独的ECU进行评估,以确定哪种策略可以在成本和车辆停机时间之间取得理想的平衡。整个更新过程必须由中央网关ECU(例如NXP MPC5748G)进行管理。这用于跟踪固件版本,分发更新,同步固件切换并保持整个过程的安全。


作者: Daniel Mckenna,高级系统工程师,汽车业务单元, NXP Semiconductors



相关文章

哈曼向长城汽车交付新一代信息娱乐系统、汽车网络安全和OTA解决方案
OTA更新的车载网络要求
汽车网络安全|OTA






SELECTED EVENTS




 

长按二维码识别关注



  • 电话咨询
  • 15021948198
  • 021-22306692
None