掌桥专利:专业的专利平台
掌桥专利
首页

混合设备以及针对混合设备执行安全引导过程的方法

文献发布时间:2023-06-19 09:36:59


混合设备以及针对混合设备执行安全引导过程的方法

技术领域

本公开总体上涉及安全的混合系统及其操作方法。具体地,本公开涉及混合设备以及针对混合设备执行安全引导过程的方法。

背景技术

鉴于现代交通工具的自动化和半导体含量的增加,机动交通工具中的电子系统的功能安全性是重要的主题。期望具有针对部署在系统中的安全关键部件的可靠且安全的功能。

除了功能安全性以外,网络安全性已经成为交通工具电子系统中的重要方面。从电子产品设计的开始就不可避免地包括功能安全性和汽车网络安全性。功能安全性已经达到成熟水平,但是网络安全性相对较新。可能很快需要安全部件既安全又可靠。

安全引导过程在汽车电子中很重要,其功能在很大程度上由软件(SW)定义。应该很好地保护这样的软件免于修改使得可以确保来自供应商的预期功能并防止引入恶意软件。混合系统是包括至少两种不同类型的子系统的系统,这些子系统可以例如包括不同的中央处理单元(CPU)、存储器和总线系统。安全引导过程的有效性直接取决于系统中受到威胁以引入不同功能的部分。在特定序列中受到威胁或干扰的部件的数量越多,成功引入恶意软件的可能性就越高。

因此,期望能够以较高的安全性执行混合引导过程的改进系统。

发明内容

实施方式涉及混合系统并且涉及用于混合系统的安全引导过程。混合系统是包括至少两种不同类型的子系统的系统,这些子系统可以例如包括不同的中央处理单元(CPU)、存储器和/或总线系统。

一个或更多个实施方式提供了一种包括多个不同子系统的混合设备,所述子系统包括第一子系统和第二子系统。第一子系统包括被配置成存储第一软件的至少一个第一安全存储设备和被配置成引导并执行第一软件的第一中央处理单元(CPU)。第二子系统包括被配置成存储第二软件的至少一个第二安全存储设备和被配置成引导并执行第二软件的第二CPU。所述至少一个第一安全存储设备还被配置成存储第一秘密密钥和与第一软件的第一哈希(hash)相对应的第一存储签名。所述至少一个第二安全存储设备还被配置成存储第二秘密密钥、与第一软件的第一哈希相对应的第二存储签名以及与第二软件的第一哈希相对应的第三存储签名。第一CPU被配置成生成第一软件的第一哈希并将所生成的第一软件的第一哈希传送至第二子系统。第二CPU被配置成使用所接收的第一软件的第一哈希对第一软件执行第一真实性验证检查,并且在对第一软件的第一真实性验证检查失败的情况下生成错误信号。

一个或更多个实施方式提供了一种针对包括多个不同子系统的混合设备执行安全执行过程的方法,所述子系统包括第一子系统和第二子系统,第一子系统引导并执行被存储在至少一个第一安全存储设备中的第一软件,第二子系统引导并执行被存储在第二安全存储设备中的第二软件,其中,第一秘密密钥和与第一软件的第一哈希相对应的第一存储签名被存储在所述至少一个第一安全存储器中,并且其中第二秘密密钥、与第一软件的第一哈希相对应的第二存储签名以及与第二软件的第一哈希相对应的第三存储签名被存储在至少一个第二安全存储设备中。该方法包括:由第一子系统生成第一软件的第一哈希;由第一子系统将所生成的第一软件的第一哈希传送至第二子系统;由第二子系统使用所接收的第一软件的第一哈希对第一软件执行第一真实性验证检查;由第二子系统在对第一软件的第一真实性验证检查失败的情况下生成错误信号。

附图说明

本文参照附图描述实施方式。

图1是根据一个或更多个实施方式的安全引导系统的框图;

图2是根据一个或更多个示例的实现安全混合引导过程的混合系统的框图;以及

图3是根据一个或更多个实施方式的在混合设备中实现的安全混合引导过程的流程图。

具体实施方式

在下文中,阐述了多个细节以提供对示例性实施方式的更透彻的说明。然而,对于本领域技术人员来说明显的是,可以在没有这些具体细节的情况下实践实施方式。在其他实例中,为了避免使实施方式模糊,以框图形式或以示意图而不是详细地示出公知的结构和设备。另外,除非另外具体指出,否则下文描述的不同实施方式的特征可以彼此组合。例如,除非相反地指出,否则关于实施方式之一描述的变型或修改也可以应用于其他实施方式。可以经由使用图中的虚线和方框来说明能够被激活和去激活的元件或可选元件。

此外,在以下描述中,用等效或相似的附图标记表示等效或相似的元件或具有等效或相似功能的元件。由于在附图中相同或功能上等效的元件被赋予相同的附图标记,因此可以省略对具有相同附图标记的元件的重复描述。因此,对具有相同或相似附图标记的元件的描述可以相互交换。

除非另外指出,否则附图中所示或本文所描述的元件之间的连接或耦接可以是基于有线的连接或无线连接。此外,这样的连接或耦接可以是没有附加中间元件的直接连接或耦接,或者是具有一个或更多个附加中间元件的间接连接或耦接,只要本质上保持连接或耦接的通用目的(例如用于传送某种信号或传送某种信息)即可。

应当理解,术语“微处理器”、“处理器”、“处理器核”、“处理单元”和“处理电路”在本公开内容中可以互换地被使用。处理器可以包括用于处理、存储和/或分发数据和信息的专用硬件。两个或更多个处理器也可以组合以执行处理功能,并且可以被认为是一个处理器。

实施方式涉及混合系统并且涉及用于混合系统的安全引导过程。混合系统是具有至少两种不同类型的子系统的系统,该子系统可以例如由不同的中央处理单元(CPU)、存储器和总线系统组成。CPU通常被定义为用于执行软件(计算机程序)的设备。在安全系统中,CPU可以被配置成与存储在安全存储模块例如安全存储设备中的软件配合。更具体地,CPU可以执行构成安全软件程序的指令。如下面将更详细描述的,混合系统可以包括两个或更多个域,每个域包括它自己的子系统(例如,每个域包括它自己的CPU、安全存储模块和软件)。

逻辑块可以包括一个或更多个处理器和/或被配置成接收和处理一个或更多个输入以生成输出的其他逻辑电路。特别地,逻辑块可以是任何计算设备,例如处理器、CPU、密码引擎、计算系统等。

实施方式涉及电子控制单元(ECU)和交通工具通信网络(例如,控制器区域网络(CAN)、具有灵活数据速率的CAN(CAN FD)、以太网(ETH)、快速外围部件互连(PCIe)或另一总线标准)。ECU是汽车电子部件中控制交通工具中的一个或更多个电气系统或子系统的任何嵌入式系统。每个ECU包括微控制器(即,微控制器单元(MCU))、存储器、各种输入(例如,电源电压、数字输入和/或模拟输入)和输出(例如,继电器驱动器、H桥驱动器、喷射器驱动器和/或逻辑输出)以及通信链路。因此,ECU是车载汽车网络的节点,而那些网络的边缘是通信网络(例如,CAN、CAN FD、ETH、PCIe等)。

ECU类型的非穷举列表包括电子控制单元、引擎控制模块(ECM)、引擎控制单元、变速器控制单元(TCU)、变速器控制模块(TCM)、制动控制模块(BCM或EBCM)、中央控制模块(CCM)、中央定时模块(CTM)、通用电子模块(GEM)、车身控制模块(BCM)、悬架控制模块(SCM)、门控制单元(DCU)、电力转向控制单元(PSCU)、人机界面(HMI)、座椅控制单元、速度控制单元(SCU)、远程信息控制单元(TCU)以及电池管理系统(BMS)。有时,引擎控制单元和TCU的功能被组合成称为动力传动系统控制模块(PCM)的单个ECU。另外,BCM可以被配置成控制防抱死制动系统(ABS)、电子稳定性控件(ESC)和/或动态稳定性控件(DSC)。

实施方式还涉及用于验证软件的真实性的密码哈希值和数字签名。密码哈希函数或哈希算法是可以被用于将任意大小的数据映射至固定大小的数据(即,生成哈希值)的任何函数或数学算法。哈希是根据数学算法和任意大小的消息例如电子邮件、文档、图片、软件或其他类型的数据生成的固定长度的数字和/或字母的字符串。哈希函数返回的值称为哈希值、哈希码、摘要或简称为哈希。哈希函数是确定性的使得相同的输入始终会导致相同的哈希。这意指所生成的字符串对于要进行哈希处理的文件而言是唯一的并且是单向函数,从而使得无法找到具有相同哈希值的两个不同输入。哈希值的长度可以变化。通常,越强的哈希函数生成的哈希值越长,并且,哈希值越长,则哈希值越安全或越强。然而,通常,对于较强的哈希值而言,计算负荷会较大,从而导致较长的处理时间。换句话说,与较弱的哈希相比,较强的哈希具有较小的冲突概率,并且因此还具有较长的计算运行时间。

常用的哈希算法包括SHA-1、SHA-2和SHA-3,但是本文描述的实施方式不限于此。在将值与所存储的值进行比较的任何情况下都可以使用哈希,但是出于安全原因,不能存储其明文表示。

例如,当传送安全消息时,预期消息的哈希被生成并加密,并且与消息一起被发送。当接收到消息时,接收器对哈希以及消息进行解密。然后,接收器根据解密后的消息创建另一哈希。如果两个哈希在比较时相同,则已经发生了安全传送。传送器和接收器两者都必须使用相同的哈希函数或算法。在一些情况下,传送器可以向接收器发送算法连同消息的哈希值。这种哈希处理确保消息不被未授权的终端用户改变。因此,哈希处理的目的是验证所传送的消息的真实性(authenticity),但是如果使用密钥,则哈希处理也可以用于认证。

数字签名是指用于验证消息、软件或数字文档的真实性的算法和加密保护的集合。数字签名通过证明数字消息、软件或文档自签名之日起没有被(有意地或无意地)修改来工作。数字签名通过生成消息或文档的唯一哈希并使用发送方的私有密钥对其进行加密来实现这一工作。所生成的哈希对消息、软件或文档是唯一的,并且改变其中的任何部分将完全改变该哈希。

一旦完成,就对消息或数字文档进行数字签名并将其发送至接收方。然后,接收方生成它们自身的消息或数字文档的哈希,并使用发送方的公开密钥来对发送方的(包括在原始消息中的)哈希进行解密。接收方将它们生成的哈希与发送方的经解密的哈希进行比较;如果它们匹配,则消息或数字文档尚未被修改并且已认证发送方。

通用符号H=HASH(X)表示通过经由哈希函数/算法HASH对数据X进行哈希处理(hashing)而获得的哈希值H。例如,X

类似地,通用符号S=SIGN

图1是根据一个或更多个实施方式的安全引导系统100的框图。安全引导系统包括外部设备1和微控制器单元(MCU)2,外部设备1和MCU2中的每一个都存储公共的秘密密钥K。另外,外部设备1初始存储用于加载到MCU 2上的软件SW。最初,由外部设备1通过以下对软件SW进行外部签名:首先生成软件SW的哈希X(即,X=HASH(SW)),并且然后生成哈希X的签名S'(即,S'=SIGN

汽车系统中传统安全引导过程是完全顺序的,其中,在执行之前检查引导软件。随着认证的量的增加,这成为瓶颈,因为汽车的启动定时受到严格约束并且在执行软件之前必须执行若干其他任务(例如,任务模式逻辑的测试)。

图2是根据一个或更多个示例的实现安全混合引导过程的混合系统200的框图。混合系统200至少包括两个不同的域(即,子系统),域A和域B,其中每个域被配置成执行不同类型的计算任务。也就是说,域A和域B表示两种不同类型的子系统,这两种不同类型的子系统中的CPU、存储设备(非易失性设备和易失性设备)和/或总线系统中的至少之一彼此不同。

例如,域A可以被配置成执行需要快速且按需执行的实时计算任务。作为结果,域A可以用作实时控制模块并且被称为实时域。例如,域A可以被配置成执行与安全相关任务相对应的任务。在交通工具环境中,安全相关任务对于维持交通工具的安全操作以及对变化的环境条件和因素快速响应至关重要。因此,重要的是域A能够以实时方式执行其软件。

相比之下,域B可以被配置成执行计算密集型算法或其他需要高度计算能力的任务。作为结果,域B可以用作性能计算模块或应用核心并且可以被称为计算域。此处,可能不像要实时执行的任务那么关键。在交通工具环境中,这些任务可以与信息娱乐处理、图像数据处理等相关。可替选地,域B可以通过提供附加的计算带宽来用作补充域A。例如,域B可以向域A的实时部分提供性能插件。

每个域包括它自己的CPU、存储当前正由CPU使用的数据和机器代码的随机存取存储器(RAM)以及安全地存储要由相应CPU执行的软件的安全存储设备。因此,域A包括CPU-A21、RAM-A 22以及安全地存储软件SW-A、签名和加密密钥(例如,秘密密钥)的安全存储设备-A 23。类似地,域B包括CPU-B 24、RAM-B 25以及安全地存储软件SW-B、签名和加密密钥(例如,秘密密钥)的安全存储设备-B 26,其中软件SW-A和软件SW-B是不同的软件(即,它们彼此不同)。

外部设备例如外部设备2可以被配置成向相应的域(例如,向相应的安全存储设备)分发、加载或共享相应的软件、秘密密钥和签名。

例如,外部设备可以与域A共享秘密密钥K1并且可以与域B共享秘密密钥K2。可以在嵌入式闪存,熔丝或者外部的NOR闪存或NAND闪存中存储、加密每个秘密密钥K1和K2。例如,域A可以使用嵌入式闪存或熔丝来存储它的密钥(例如,密钥K1),而域B可以使用外部的NOR闪存或NAND闪存来存储它的密钥(例如,密钥K2)。秘密密钥K1和K2可以具有不同的密钥长度使得两个域之间的“安全级别”和所需的性能是可变的。例如,在本文提出的示例中,秘密密钥K2可以具有比秘密密钥K1更长的密钥长度。

当各个域需要访问其秘密密钥时,可以将秘密密钥加载到专用密码模块中。注意,域A的专用密码模块可以不同于域B的专用密码模块。例如,域A的专用密码模块可以是高级加密标准(AES)密码模块,而域B的专用密码模块可以是Salsa20加密模块、ChaCha加密模块等。

另外,外部设备计算各种哈希和签名,并且将软件SW-A以及签名SA

软件SW-A可以被存储在嵌入式闪存中,并且由于ECU在交通工具车载网络中的注册而可以具有硬引导时间约束。相比之下,软件SW-B可以在外部闪存中被存储、加密,并且可以不具有任何引导时间约束或者可以由于在系统启动期间所需的延迟可用性而具有软引导时间约束。因此,可以从外部闪存来引导出于安全目的需要对其进行加密的软件SW-B。

此外,为了使域A和域B进一步不同,这两个域两者可以使用不同的哈希算法(例如,分别为HASH-A或HASH-B)和不同的签名算法(例如,分别为SIGN-A或SIGN-B)。

图3是根据一个或更多个实施方式的在混合设备中实现的安全混合引导过程300的流程图。特别地,该流程图示出了在包括软件SW-A的引导和SW-B的引导的安全混合引导过程期间(即,随着时间t)由域A和域B采取的相应的动作。折线用于指示为了执行真实性验证操作而中断软件的引导操作或软件的执行操作的位置。

每次真实性验证操作都可能导致软件的真实性被验证(即,被批准)或被发现有故障。在后一种情况下,可能会检测到错误并且可能会产生引导中断或执行中断,该引导中断或执行中断使相应域中的引导过程或执行过程停止并且/或者被用于向用户发出软件可能被篡改或破坏的警告。

安全混合引导过程300并行地启动两个域。例如,可以在交通工具驱动周期开始时(即,在交通工具起动时)分别在操作305A和305B中重置这两个域。在操作310A和310B中,两个域交换用于两个域之间的安全通信的会话密钥。因此,跨域的所有交换(即通信)都受到会话密钥和时间戳的保护,以防止重复交换和中间人(MITM)攻击。即,两个域仅经由安全通信来交换信息。

在操作315A和320A中,域A的CPU 21被配置成对软件SW-A执行真实性验证操作以满足引导和执行软件SW-A的实时时间约束。因此,在操作315A中,域A的CPU 21使用哈希算法HASH-A计算软件SW-A的哈希X

在操作320A中,CPU 21使用签名算法SIGN-A和秘密密钥K1计算哈希X

通过执行初始真实性验证操作,CPU 21执行其自身软件验证使得软件SW-A的关键功能可以尽可能快地进行以使实时(例如安全)关键功能上线。同时,域B的CPU 24也被配置成并行地对软件SW-A执行真实性验证操作。

在操作315B-1中,作为软件SW-B的真实性验证操作的一部分,域B的CPU 24被配置成使用要在它自己的真实性验证操作中使用的哈希算法HASH-B计算软件SW-B的哈希X

在操作320B中,CPU 24被配置成使用哈希算法HASH-B对软件SW-A执行第二真实性验证操作。哈希算法HASH-B可以是比哈希算法HASH-A更强的哈希函数。因此,通过使用哈希算法HASH-B,域B对软件SW-A提供不同的真实性检查,这比用哈希算法HASH-A更能抵抗攻击。需要权衡的是较强的哈希函数需要更多时间来生成和进行验证。因此,域A使用需要较少的处理时间以满足其实时约束的安全性较低的哈希函数。相比之下,不满足域A的实时约束的域B具有足够的时间和处理带宽以使用较强的哈希函数。

换句话说,要求CPU 21在时间约束内引导软件SW-A使得例如使安全关键功能上线以满足实时约束。相比之下,CPU 24被配置成在没有任何时间约束或与软件SW-A相比较低时间约束的情况下引导软件SW-B。这使得CPU 24能够中断其自身软件的引导操作以对CPU21的软件执行验证检查,在整个系统(例如,整个交通工具系统)的功能方面,对CPU21的软件执行验证检查具有高优先级。一旦CPU 24完成对软件SW-A的验证检查,CPU 24就恢复软件SW-B的引导操作。

返回至操作320B,CPU 24从域A接收哈希X

当CPU 24在操作320B中对软件SW-A执行第二真实性验证操作之后,在操作315B-2中继续进行对软件SW-B的真实性验证操作。因此,如果CPU 24不能完成哈希X

在操作325B中,域B的CPU 24通过以下继续对软件SW-B执行真实性验证操作:使用签名算法SIGN-B和秘密密钥K2来计算哈希X

另外,在操作325B中,CPU 24可以通过以下对软件SW-A执行附加真实性验证操作(即,第三真实性验证操作):使用签名算法SIGN-B和秘密密钥K2计算哈希X*

返回至域A,在操作330A中,响应于从域B接收到哈希X

另外,CPU 21可通过以下对软件SW-A执行附加真实性验证操作(即第四真实性验证操作):使用签名算法SIGN-A和秘密密钥K1计算哈希X*

鉴于上述,两个域负责对其各自的软件执行真实性验证操作。另外,两个域中的至少一个域被配置成对另一域的软件执行真实性验证操作。

其他变型也是可行的。可能需要将域A和域B两者都配置成对哈希的真实性进行确认(例如,在域A的情况下为SA

由于不同的真实性检查,这可以被称为“安全模式”。这包括散哈希计算的多样性,其中域A和域B计算域A(即软件SW-A)的哈希。域A使用较快但较弱的哈希(X

在另一变型中,仅需要一个域(域A或域B)来确认软件SW-A的真实性,并且仅需要一个域(域A或域B)来确认软件SW-B的真实性。这可以被称为“故障操作模式”,并且使得能够在例如随机硬件故障的情况下提高可用性。因此,在故障操作模式的一种变型中,域A和域B可以分开引导而不相互检查。

在交通工具的驱动周期期间可以使用不同模式或变型的组合,其中,驱动周期由以下时间段定义:从交通工具被开启的时间到交通工具被关闭的时间。例如,可以在冷启动时(即,在交通工具的第一次启动时)实施安全模式,并且可以在初始启动阶段之后或在系统已经运行了预定量时间之后使用故障操作模式或较低的安全模式。可替选地,可以在启动时随机地选择不同的模式。

第一域对第二域的监测功能(即,监测第二域的第一域)可以以某一恒定间隔或随机间隔运行。

另外,提供与哈希计算并行的监测机制的实现,其中一个域可以被配置成监测另一域的哈希计算以确保所述另一域确实是被监测的已经生成了相应软件的哈希SW-X的域。这对于防止被监测的域将“编造值(madeup value)”呈现为其相应软件SW-X的哈希值的情况很有意义。例如,CPU24可以被配置成监测哈希X

例如,CPU 24可以监测至少一个哈希生成参数或度量,该参数或度量与通过域A生成的哈希X

因此,一旦接收到哈希X

对于通过CPU 24生成的任何哈希,可以以类似的方式执行通过域A来监测域B。

存在若干预防攻击场景。例如,以下是针对域A的攻击场景的示例,它们也可以应用于其他域并且也可以彼此任意组合使用。

在第一攻击场景中,域A受到威胁,域A的自身安全引导未被规避,并且域B在确定错误后指示故障(即,攻击)。

在第二攻击场景中,域A受到威胁,域A的自身安全引导被规避,并且域A没有如预期发送其哈希值。

在第三攻击场景中,域A受到威胁,域A的自身安全引导被规避,并且域A发送了错误的哈希值,该值被域B检测到。

在第四攻击场景中,域A的签名算法被破坏(不安全),并且在域B的仍然安全的签名算法上提供了回退机制。

在第五攻击场景中,由于通过域B对域A进行了随机的安全故障安全性检查,因此确定域A工作不正常。因此,可以通过域B中的冗余安全性检查来防止攻击。

在第六攻击场景中,一个域受到威胁并且恶意软件的执行具有可以通过另一域的监测功能(例如,运行时间、存储器等……)来识别的不同的特征。

在第七攻击场景中,域A与域B之间的通信受到“第三方”(例如,过载总线……)的干扰,可以通过例如时间监测来识别该“第三方”。

在八种攻击场景中,被引入导致异常行为的一个域中的侧通道攻击(例如,小故障)可以被另一域通过监测功能(例如,运行时间、存储器)识别。

尽管本文描述的实施方式涉及交通工具系统,但是应当理解,本文描述的概念可以类似地扩展到使用至少两种不同类型的子系统的任何混合系统中,在所述子系统中需要安全引导过程。

另外,尽管已经在装置的上下文中描述了一些方面,但是清楚的是,这些方面还表示对相对应方法的描述,其中,块或设备对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描述的方面也表示对相对应块的描述或相对应装置的项目或特征的描述。可以通过(或使用)硬件装置例如微处理器、可编程计算机或电子电路执行方法步骤中的一些或全部。在一些实施方式中,可以由这样的装置执行方法步骤中的某一步骤或更多步骤。

取决于特定的实现要求,可以用硬件和/或软件来实现本文提供的实施方式。可以使用其上存储有电子可读控制信号的计算机可读数字存储介质例如DVD、蓝光、CD、RAM、ROM、PROM、EPROM、EEPROM或FLASH存储器来执行该实现,所述电可读控制信号与可编程计算机系统协作(或能够协作)使得相应的方法被执行。

可以由一个或更多个处理器执行指令,所述一个或更多个处理器例如一个或更多个中央处理单元(CPU)、数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门(或逻辑)阵列(FPGA)或者其它的等效集成电路或离散逻辑电路。因此,术语“处理器”如本文所使用的指代前述结构或适合于实现本文所描述的技术的任何其它结构中的任一者。另外,在一些方面,可以在专用硬件和/或软件模块内提供本文描述的功能。此外,所述技术可以在一个或更多个电路或逻辑元件中完全实现。

上述示例性实施方式仅仅是说明性的。应当理解,本文所描述的布置和细节的修改与变型对于本领域的技术人员将是明显的。因此,意图仅由未决的专利权利要求书的范围来限制并且不由通过本文的实施方式的描述和说明所呈现的具体细节来限制。

相关技术
  • 混合设备以及针对混合设备执行安全引导过程的方法
  • 在混合蜂窝电信系统中执行涉及移动台的安全程序的方法和设备
技术分类

06120112230530