历史上的今天
返回首页

历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2021年10月12日 | 谈谈汽车芯片信息安全(下篇)

2021-10-12 来源:软件定义汽车

继《谈谈汽车芯片安全-上篇》之后,本文针对芯片安全存储、FOTA、安全诊断、安全运行环境做了进一步阐述。


1. 安全存储


1.1 OTP存储器  


一次性可编程存储器(On Chip One Time Programmable ROM, On-Chip OTP ROM)OTP存储器,也称为eFuse,是芯片中特殊存储模块;字段中的任何eFuse位都只能从0编程为1(融合),但是读取操作没有限制。OTP在安全中的应用一般可以存放一些固定不变的值,比如:


· 每个设备唯一的根密钥(Master Key)


· 设备唯一ID(Device Unique ID)或者MAC 地址      


· 一些安全配置或者秘密值(软件的Hash值,启动模式等)

     

下面简单介绍一下OTP和Secure Boot的配合案例,在一些低端设备,限于成本和性能等原因,会采用对称加密的方式来验证启动过程bootloader image合法性,那又是如何做到的呢?


芯片第一次 boot 时,软件 bootloader 根据以下步骤使能 Secure boot:   

 

(1)硬件产生一个 secure boot key,将这个 key 保存在 efuse 中,利用这个 key、一个随机数 IV 和 bootloader image 计算出 secure digest。 


(2)securedigest 与随机数 IV 保存在 flash 的 0x0 地址,用于在后续 boot 时验证 bootloader image 是否被篡改。    


(3)bootloader通过烧写 efuse 中的 ABS_DONE_0 永久使能 secure boot。    


(4)芯片在后面的 boot 中,ROM bootloader 发现 efuse 中的 ABS_DONE_0 被烧写,于是从 flash 的地址 0x0 读取第一次boot 时保存的 secure digest 和随机数 IV,硬件使用 efuse 中的 secure boot key 、随机数 IV 与当前的 bootloader image 计算当前的 secure digest,若与 flash 中的 secure digest 不同,则 boot 不会继续,否则就执行软件bootloader。    


(5)软件 bootloader 使用 bootloader image 中保存的公钥对 flash 中的 partition table 和 app images 签字进行验证,验证成功之后才会 boot 到 app 代码中。 第一次boot时secure boot与flashencryption的生效过程如下图所示,图中蓝色框是 secure boot 的步骤,绿色框是 flash encryption 的步骤:



谈谈汽车芯片信息安全(下篇)


后续 boot 时流程图如下,图中绿色框中的步骤会执行解密,解密是由硬件自动完成:



谈谈汽车芯片信息安全(下篇)

Source:https://www.cnblogs.com/aaronLinux/p/9198725.html   


1.2 Flash空间保护机制  


Flash空间保护主要是Flash某些区域设置只读或者只写,防止非法访问和篡改。Flash保护区域的数量和大小会根据Flash的类型和该Flash块的大小而有所不同.主要的应用场景有:


· 保护包含代码的闪存的所有区域,以保护应用程序本身不被覆盖。用于存储数据的闪存区域将不受保护。


· 保护向量表和驻留在闪存中的引导加载程序应用程序,并使其余闪存不受保护。这将防止意外删除引导加载程序,但闪存的其他部分仍未受保护,以允许引导加载程序执行固件更新。

   

下面以NXP Flash的空间保护机制为例做个简要说明:



谈谈汽车芯片信息安全(下篇)

 

有个flash存储空间保护寄存器,FPROT0–FPROT3,默认值由应用程序image根据在flash配置字段中编程的值来确定。FPOROTn- 四个寄存器保护Flash的32区域。 Source: https://www.nxp.com/docs/en/application-note/AN4507.pdf1.3. 内存的保护机制:  目前操作系统也可以设置一些区域的不可读或者写的机制,也有芯片级内存保护机制,下面仍然以NXP芯片为例。



谈谈汽车芯片信息安全(下篇)


安全存储区具备严格的访问控制机制,安全存储区域具备Domain ID,权限级别(TZ or NS)和权限列表(Permissions),只有硬件访问时具备这些能力的访问才能访问成功,否则会失败,这个是完全硬件级的访问控制,可以和Trust Zone和业务的访问控制权限等配合使用。   Source:i.MX 8Security Overview

 

2. FOTA(Firmware over the air)  


能够对汽车执行现场软件更新的优势已得到充分确立:它将为制造商节省资金,使关键错误得以立即修复并在其生命周期内随时向汽车添加引人注目的新功能。理想情况下,对车辆操作至关重要的更新应在后台无缝且不可见地进行。



谈谈汽车芯片信息安全(下篇)


上图显示了关键组件,这些组件将更新文件从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管理器还将负责解密和验证传入的更新。


2.1 ECU的更新过程  


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

      

差异文件:在服务器上,OEM将新固件与以前的版本进行比较,并创建一个“差异”文件,其中包含它们之间的差异列表。


根据更改的数量,此文件通常是: 


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


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


3. 安全诊断(Secure Debug)

 

现代处理器配备了基于硬件的调试功能,以促进片上调试过程。    -例如,硬件断点和基于硬件的跟踪。    -通常需要电缆连接(例如JTAG [1])才能使用这些功能。  如果诊断过程没有合适的安全机制,很容易被黑客利用,如下图所



谈谈汽车芯片信息安全(下篇)


安全JTAG模式通过使用基于挑战/响应的身份验证机制来限制JTAG访问。检查对JTAG端口的任何访问。只有授权的调试设备(具有正确响应的设备)才能访问JTAG端口。未经授权的JTAG访问尝试将被拒绝。此功能需要支持基于质询/响应的身份验证机制的外部调试器工具(例如Lauterbach Trace32,Arm®RVDS / DS5调试器等)。通常在设备制造期间而不是在开发板上启用安全JTAG模式。目前很多芯片厂商都提供自己的安全诊断方案,下面仅以NXP为例:



谈谈汽车芯片信息安全(下篇)


1.用户通过JTAG接口请求调试    


2.SOC以芯片唯一ID响应    


3.服务器找到相应的秘密(TZ或normal world)    


4.用户通过JTAG界面提交秘密    


5.安全的JTAG模块将密钥与预先配置的密钥进行比较    


6.如果匹配,则启用调试(对于TZ或normal world)    


注:    


1. 这里的安全诊断是针对芯片的调测,不要跟测试设备通过OBD口和车内ECU进行通讯争端协议(UDS)进行混淆了。    


2. 从安全角度通常建议设备真正投入使用时,应关闭芯片的JTAG口或者其他类型的调测端口。

 

4. 安全运行环境  


安全运行环境主要是指芯片向OS和APP提供安全的隔离的计算环境,以及配套的虚拟机管理程序或者SDK,通常包括芯片计算多分区(Multi Partitions)机制和可信计算环境(Trust zone)


1.ARM Trustzone + 虚拟化


(1)Arm V8.4架构开始引入了Secure EL2扩展,在Secure 世界中增加了对虚拟化的支持。这使得可以在非安全状态下进行虚拟化的功能进入安全状态。虚拟化的一个关键特性是增加了虚拟机管理程序控制两阶段的地址翻译过程。


(2)Secure EL1中安全分区具有隔离的地址空间,其他安全分区无法访问此空间,是一个沙箱环境。


(3)使用Secure EL2安全分区来实现安全世界的虚拟机,安全分区管理器:EL3和Secure EL2中通用的固件负责管理这些安全分区,这里的关键组件是安全分区管理器(SPM)



谈谈汽车芯片信息安全(下篇)


2. 系统资源隔离(以NXP的XRDC特性为例)


1)  什么是分区:


· 资源集合(主/从外围设备,内存区域) 


· 具有域ID和安全属性        


· 内核,外围设备和内存可以属于多个分区

       

2) 分区的工作原理:


· 系统控制器将外围设备和内存区域提交到特定域中(这是客户定义的)


· 域之间的任何通信都必须使用消息传递协议


· 如果某个域外设试图非法访问其他域,则会发生总线错误

  

3)  分区的好处:


· 非法访问时报告立即的,有助于在投入实际应用之前发现难以追查资源竞争问题(又名沙盒方法)


· 提供成品的安全性:保护系统关键的SoC外设免受不太信任的应用程序的攻击

   


谈谈汽车芯片信息安全(下篇)


注:限于篇幅,本文没有讲述Trustzone 技术本身,这方面的技术在网上有大量的论述,本文不再重复。


3. 多核虚拟化  


目前很多车载ECU具有多核,每个核可以根据实际需要运行不同ASIL等级的应用程序,也可以把Security和Safety应用严格隔离开,或者通过虚拟化技术运行不同的操作系统等。因此多核虚拟化技术应用也会越来越多。第一节讲的ARM Trustzone最近的架构已经支持虚拟化技术,下面是NXP虚拟化技术的一个例子.

 

谈谈汽车芯片信息安全(下篇)


4. 总结  


最后我们做个总结,给出一个芯片安全的参考的逻辑架构图,不同芯片根据应用场景、成本等,支持的能力是不一样的。



谈谈汽车芯片信息安全(下篇)



 


推荐阅读

史海拾趣

Fenghua (HK) Electronics Ltd公司的发展小趣事

在技术创新的基础上,Fenghua (HK) Electronics Ltd积极拓展国内外市场。公司参加了多个国际电子展,与全球各地的客户建立了良好的合作关系。同时,公司注重品牌建设,通过广告宣传、赞助活动等方式,提高了品牌知名度和美誉度。这些努力使得公司的产品在国内外市场上占据了越来越大的份额。

Euroquartz公司的发展小趣事

面对不断变化的市场环境和客户需求,Euroquartz始终保持敏锐的洞察力和快速的反应能力。公司不断投入研发力量,推动产品创新和技术升级。同时,Euroquartz也注重与客户的沟通和合作,深入了解市场需求,为客户提供更加专业和贴心的服务。这种持续发展的动力,使Euroquartz在电子行业始终保持领先地位,并为公司的未来发展奠定了坚实的基础。

请注意,由于篇幅限制,以上每个故事都是基于Euroquartz公司的重要事件和事实进行概括和简化的。如果需要更详细的信息或更深入的分析,建议查阅相关报道或公司官方资料。

Elpida Memory公司的发展小趣事

尽管Elpida Memory已经不复存在,但其在DRAM领域的技术和经验仍然对全球半导体产业产生了深远的影响。Elpida Memory在技术研发、生产管理和市场营销等方面的经验,为后来的半导体企业提供了宝贵的借鉴和参考。同时,Elpida Memory的失败也提醒了半导体企业需要时刻保持警惕和创新精神,以应对日益激烈的市场竞争和技术变革。

BJB公司的发展小趣事

在国内市场取得一定成绩后,BJB公司开始积极拓展国际市场。公司积极参加国际展览和交流活动,与国际同行建立合作关系,将产品打入国际市场。同时,BJB还与国际知名品牌进行战略合作,共同研发和推广照明产品,进一步提升了公司的国际影响力。

Evans Capacitor Company公司的发展小趣事

随着环保意识的日益提高,ECC积极响应国家号召,致力于绿色环保产品的研发和生产。公司投入大量资金研发环保型电容器,采用环保材料和工艺,减少生产过程中的污染排放。此外,ECC还积极参与公益事业,捐款支持环保组织和慈善机构。

Analytic Instruments Corp公司的发展小趣事

为了确保产品质量的稳定性和可靠性,Analytic Instruments Corp不断完善质量管理体系。公司引进了先进的生产设备和检测仪器,建立了严格的质量控制流程。同时,公司还加强了员工的培训和管理,提高了员工的质量意识和操作技能。这些举措使得公司的产品质量得到了客户的高度认可,进一步巩固了市场地位。

问答坊 | AI 解惑

各种交换机的数据接口类型一览

作为局域网的主要连接设备,以太网交换机成为应用普及最快的网络设备之一,同时,也是随着这种快速的发展,交换机的功能不断增强,随之而来则是交换机端口的更新换代以及各种特殊设备连接端口不断的添加到交换机上,这也使得交换机的接口类型变得非 ...…

查看全部问答>

ARM AND 传感器

-----------学过单片机, 现在想搞ARM,可不知道怎么入手了,还有就是想看看ARM 的板子,价格少点的(我是学生,靠节约点才能买)  还请各位高手指点呀!在此先谢了。                 ...…

查看全部问答>

顶尖创意来自高度好奇心

客户包括微软、苹果及百事可乐等业界巨头的顶尖创意管理公司IDEO的执行长兼总裁布朗(Tim Brown)把问题看得比答案更重要。 他回忆自己的第一份专业设计工作是在英格兰北部的一家小公司,那是一家从工业大革命时期开始营运,生产木工机械的老公司 ...…

查看全部问答>

Microsoft编写优质无错C程序秘诀

Microsoft编写优质无错C程序秘诀,主要介绍微软编程习惯,非常不错的编程规范资料,…

查看全部问答>

Windows Mobile vs Windows CE

公司要做个项目,现在在确定平台,是使用windows mobile还是wince,主要是从研发周期和成本方面考虑,恳请大家给点建议。 目前只知道用mobile需要微软评估,另外开发工具费用、授权费用都很贵,但具体成本是多少没有概念;而用wince相对便宜些,网 ...…

查看全部问答>

咨询下版主:IAR仿真调试问题!

最近开始学习STM32,手头也有块板。 昨天晚上跑了下demo测试程序,用的是IAR4.42编译软件(第一次用IAR,不熟悉)。 现在问题是:跑原demo程序....debug....没问题; 但是在原demo上修改下程序后:rebuild all  没反应。 今天在 ...…

查看全部问答>

希望MSP430 SRAM更大些

希望MSP430 SRAM更大些   现在跑一般的程序没问题,带一些算法时,1K SRAM略小些!…

查看全部问答>

拆机!

昨天答应上拆机图的,现在把图片发上来。先申明,细心拆解,装回去后完好如初,正常使用哦!首先拆接收器:图片上有个433大家都看到了吧!难道是用的433MHz的无线通信?我没查证,随意猜的,请大家来指正。然后是鼠标:单面板PCB可能不能布通,还用 ...…

查看全部问答>

收到接进传感器套件了,怎么用呢?

相信很多人手里都拿到套件了,也许有的放旁边睡觉,有的急不可耐的上电测试了。大家是怎么用的呢?用在什么方面?简单测试后,和想象中有点差距。 [ 本帖最后由 yunbei 于 2012-4-1 18:20 编辑 ]…

查看全部问答>