CN112242903A - 混合设备以及针对混合设备执行安全引导过程的方法 - Google Patents
混合设备以及针对混合设备执行安全引导过程的方法 Download PDFInfo
- Publication number
- CN112242903A CN112242903A CN202010685813.4A CN202010685813A CN112242903A CN 112242903 A CN112242903 A CN 112242903A CN 202010685813 A CN202010685813 A CN 202010685813A CN 112242903 A CN112242903 A CN 112242903A
- Authority
- CN
- China
- Prior art keywords
- software
- hash
- signature
- subsystem
- generated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008569 process Effects 0.000 title claims abstract description 24
- 238000012795 verification Methods 0.000 claims abstract description 49
- 230000006870 function Effects 0.000 claims description 59
- 238000012545 processing Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000000875 corresponding effect Effects 0.000 description 16
- 230000015654 memory Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000001010 compromised effect Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 230000004224 protection Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了混合设备以及针对混合设备执行安全引导过程的方法。混合设备包括多个不同的子系统,所述子系统包括第一子系统和第二子系统。第一子系统包括被配置成存储第一软件的至少一个第一安全存储设备和被配置成引导并执行第一软件的第一CPU。第二子系统包括被配置成存储第二软件的至少一个第二安全存储设备和被配置成引导并执行第二软件的第二CPU。第一CPU被配置成生成第一软件的第一哈希并将所生成的第一软件的第一哈希传送至第二子系统。第二CPU被配置成使用所接收的第一软件的第一哈希对第一软件执行第一真实性验证检查,以及在对第一软件的第一真实性验证检查失败的情况下生成错误信号。
Description
技术领域
本公开总体上涉及安全的混合系统及其操作方法。具体地,本公开涉及混合设备以及针对混合设备执行安全引导过程的方法。
背景技术
鉴于现代交通工具的自动化和半导体含量的增加,机动交通工具中的电子系统的功能安全性是重要的主题。期望具有针对部署在系统中的安全关键部件的可靠且安全的功能。
除了功能安全性以外,网络安全性已经成为交通工具电子系统中的重要方面。从电子产品设计的开始就不可避免地包括功能安全性和汽车网络安全性。功能安全性已经达到成熟水平,但是网络安全性相对较新。可能很快需要安全部件既安全又可靠。
安全引导过程在汽车电子中很重要,其功能在很大程度上由软件(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。例如,XA=HASH-A(SW-A)表示通过经由哈希函数/算法HASH-A对软件A(SW-A)进行哈希处理而获得的哈希值XA。XB=HASH-B(SW-B)表示通过经由哈希函数/算法HASH-B对软件B(SW-B)进行哈希处理而获得的哈希值XB。X*A=HASH-B(SW-A)表示通过经由哈希函数/算法HASH-B对软件A(SW-A)进行哈希处理而获得的哈希值X*A。双等号“==”表示比较函数。例如,可以对由两个不同的源生成的两个哈希值进行比较(例如,XA==XA)。
类似地,通用符号S=SIGNK(X)表示通过经由签名函数/算法SIGN使用密钥k对哈希值X进行签名而获得的签名S。例如,SA1=SIGN-AK1(XA)表示通过经由签名函数/算法SIGN-A使用密钥K1对哈希值XA进行签名而获得的签名SA1。SA2=SIGN-BK2(XA)表示通过经由签名函数/算法SIGN-B使用密钥K2对哈希值XA进行签名而获得的签名SA2。SB1=SIGN-AK1(XB)表示通过经由签名函数/算法SIGN-A使用密钥K1对哈希值XB进行签名而获得的签名SB1。SB2=SIGN-BK2(XB)表示通过经由签名函数/算法SIGN-B使用密钥K2对哈希值XB进行签名而获得的签名SB2。SA*1=SIGN-AK1(X*A)表示通过经由签名函数/算法SIGN-A使用密钥K1对哈希值X*A进行签名而获得的签名SA*1。SA*2=SIGN-BK2(X*A)表示通过经由签名函数/算法SIGN-B使用密钥K2对哈希值X*A进行签名而获得的签名SA*2。双等号“==”表示比较功能。例如,可以对由两个不同源生成的两个签名进行比较(例如,SIGN-AK1(XA)==SA1)。
图1是根据一个或更多个实施方式的安全引导系统100的框图。安全引导系统包括外部设备1和微控制器单元(MCU)2,外部设备1和MCU2中的每一个都存储公共的秘密密钥K。另外,外部设备1初始存储用于加载到MCU 2上的软件SW。最初,由外部设备1通过以下对软件SW进行外部签名:首先生成软件SW的哈希X(即,X=HASH(SW)),并且然后生成哈希X的签名S'(即,S'=SIGNK(X))。然后,将软件SW和签名S'从外部设备1传送至MCU 2。为了执行软件的安全引导操作,MCU 2在执行引导操作之前并且最终在执行软件SW本身之前首先检查软件SW的真实性。为了检查软件SW的真实性,MCU 2生成其自身软件SW的哈希并且然后计算签名S。最后,将签名S与所存储的签名S'进行比较(即S==S')。如果两个签名相同,则MCU2继续进行软件SW的引导操作。如果两个签名不同,则中断引导操作并生成错误。
汽车系统中传统安全引导过程是完全顺序的,其中,在执行之前检查引导软件。随着认证的量的增加,这成为瓶颈,因为汽车的启动定时受到严格约束并且在执行软件之前必须执行若干其他任务(例如,任务模式逻辑的测试)。
图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以及签名SA1、SA*1和SB1传送至域A。类似地,外部设备计算各种哈希和签名,并且将软件SW-B和签名SB2、SA2和SA*2传送至域B。为了计算签名,外部设备必须知道相对应的哈希算法和签名算法。
软件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的哈希XA。CPU 21/域A还向域B发送包括哈希XA的通信,并且域B将哈希XA存储在安全存储设备-B 26或RAM-B 25中(参见操作320B)。
在操作320A中,CPU 21使用签名算法SIGN-A和秘密密钥K1计算哈希XA的签名,并通过将计算的签名与存储的签名SA1进行比较来检查软件SW-A的真实性。如果这两个签名匹配,则在操作325A-1中,CPU 21继续引导并执行软件SW-A。如果这两个签名不匹配,则CPU21生成错误。
通过执行初始真实性验证操作,CPU 21执行其自身软件验证使得软件SW-A的关键功能可以尽可能快地进行以使实时(例如安全)关键功能上线。同时,域B的CPU 24也被配置成并行地对软件SW-A执行真实性验证操作。
在操作315B-1中,作为软件SW-B的真实性验证操作的一部分,域B的CPU 24被配置成使用要在它自己的真实性验证操作中使用的哈希算法HASH-B计算软件SW-B的哈希XB。另外,CPU 24可以访问安全存储设备-A23中的软件SW-A,并且因此可以使用哈希算法HASH-B来计算对应的哈希X*A。然而,一旦从域A收到哈希XA,则真实性验证操作即被中断以便对软件SW-A执行第二真实性验证操作。
在操作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接收哈希XA、使用签名算法SIGN-B和秘密密钥K2来计算哈希XA的签名并通过将计算的签名与存储的签名SA2进行比较来检查软件SW-A的真实性。如果两个签名匹配,则CPU 24不生成错误且CPU 21继续执行软件SW-A而不出现差错。另一方面,如果两个签名之间不匹配,则CPU 24生成错误并通知域A。需要注意,秘密密钥K2的密钥长度可以比秘密密钥K1更长,以提供较高的安全级别。这样,与CPU 21和对其自身引导时间具有实时约束的软件SW-A相比,由于缺少对软件SW-B引导的实时约束,CPU 24可以更容易地花费与较长密钥长度相关联的较长处理时间。
当CPU 24在操作320B中对软件SW-A执行第二真实性验证操作之后,在操作315B-2中继续进行对软件SW-B的真实性验证操作。因此,如果CPU 24不能完成哈希XB和(如果需要的话)X*A的生成,则CPU 24在操作315B-2中完成哈希的生成并且然后进行至操作325B。另外,CPU24可以被配置成向域A发送哈希XB和X*A,用于附加的真实性验证操作(参见操作330A)。
在操作325B中,域B的CPU 24通过以下继续对软件SW-B执行真实性验证操作:使用签名算法SIGN-B和秘密密钥K2来计算哈希XB的签名,以及通过将计算的签名与存储的签名SB2进行比较来检查软件SW-B的真实性。如果两个签名匹配,则在操作330B中,CPU 24继续引导并执行软件SW-B。如果两个签名不匹配,则CPU 24生成错误。
另外,在操作325B中,CPU 24可以通过以下对软件SW-A执行附加真实性验证操作(即,第三真实性验证操作):使用签名算法SIGN-B和秘密密钥K2计算哈希X*A的签名,以及通过将计算的签名与存储的签名SA*2进行比较来检查软件SW-A的真实性。如果两个签名匹配,则不会生成错误,并且域A继续保持现状。然而,如果两个签名不匹配,则CPU24生成错误并且可以通知域A。
返回至域A,在操作330A中,响应于从域B接收到哈希XB,CPU 21对软件SW-B执行第二真实性验证操作。为了执行该检查,CPU 21中断执行软件SW-A。响应于接收到哈希XB,CPU21使用签名算法SIGN-A和秘密密钥K1来计算哈希XB的签名,并且通过将计算的签名与存储的签名SB1进行比较来检查软件SW-B的真实性。如果两个签名匹配,则CPU 21不生成错误,并且CPU 24继续执行软件SW-B而不出现事故。另一方面,如果两个签名之间不匹配,则CPU21生成错误并通知域B。
另外,CPU 21可通过以下对软件SW-A执行附加真实性验证操作(即第四真实性验证操作):使用签名算法SIGN-A和秘密密钥K1计算哈希X*A的签名,并且通过将计算的签名与存储的签名SA*1进行比较来检查软件SW-A的真实性。如果两个签名匹配,则不生成错误,并且域A在操作325A-2中继续执行软件SW-A。然而,如果两个签名不匹配,则CPU 21生成错误。
鉴于上述,两个域负责对其各自的软件执行真实性验证操作。另外,两个域中的至少一个域被配置成对另一域的软件执行真实性验证操作。
其他变型也是可行的。可能需要将域A和域B两者都配置成对哈希的真实性进行确认(例如,在域A的情况下为SA1和SA2)。例如,域A用签名SA1对哈希XA进行检查,域B用签名SA2对哈希XA进行检查。附加地或可替选地,域B可以使用签名SA*2对哈希X*A进行检查。应当意识到,域A可以类似地如上所述对域B的哈希XB执行检查。
由于不同的真实性检查,这可以被称为“安全模式”。这包括散哈希计算的多样性,其中域A和域B计算域A(即软件SW-A)的哈希。域A使用较快但较弱的哈希(XA),而域B使用较强但较慢的哈希(X*A)。因此,这使得能够快速引导启动具有基本真实性的域A,这通过从域B计算的不同的哈希值X*A的高真实性进行补充。通常,安全模式适合以下配置:域的软件被检查至少两次,这些检查包括通过自身的域进行的检查以及由至少一个其他域进行的至少一次交叉检查。安全模式的级别也可能会有所不同,其中较高的安全模式包括对一个域或者对两个或更多个域执行大量真实性验证操作或真实性检查。
在另一变型中,仅需要一个域(域A或域B)来确认软件SW-A的真实性,并且仅需要一个域(域A或域B)来确认软件SW-B的真实性。这可以被称为“故障操作模式”,并且使得能够在例如随机硬件故障的情况下提高可用性。因此,在故障操作模式的一种变型中,域A和域B可以分开引导而不相互检查。
在交通工具的驱动周期期间可以使用不同模式或变型的组合,其中,驱动周期由以下时间段定义:从交通工具被开启的时间到交通工具被关闭的时间。例如,可以在冷启动时(即,在交通工具的第一次启动时)实施安全模式,并且可以在初始启动阶段之后或在系统已经运行了预定量时间之后使用故障操作模式或较低的安全模式。可替选地,可以在启动时随机地选择不同的模式。
第一域对第二域的监测功能(即,监测第二域的第一域)可以以某一恒定间隔或随机间隔运行。
另外,提供与哈希计算并行的监测机制的实现,其中一个域可以被配置成监测另一域的哈希计算以确保所述另一域确实是被监测的已经生成了相应软件的哈希SW-X的域。这对于防止被监测的域将“编造值(madeup value)”呈现为其相应软件SW-X的哈希值的情况很有意义。例如,CPU24可以被配置成监测哈希XA的哈希生成操作以确保CPU 21实际生成哈希XA,或者检测到不正确的哈希是由CPU 21生成或由攻击者注入的。
例如,CPU 24可以监测至少一个哈希生成参数或度量,该参数或度量与通过域A生成的哈希XA相对应。受监测的参数或度量可以包括:经过的执行时间(例如,基于公共的时间基准)、当前CPU状态(例如程序计数器值)、哈希计算功能的真实性和/或CPU配置(例如中断配置、调试系统配置)的真实性,这些受监测的参数或度量中的一个或更多个对于通过域A生成哈希XA可以是唯一的。
因此,一旦接收到哈希XA(例如,参见图3中的操作320B),CPU 24就可以通过将域A的一个或更多个受监测的参数或度量中的每一个与相对应的预定参数或度量进行比较来验证哈希XA是否是由CPU 21生成的。如果匹配,则CPU 24确认哈希XA是由CPU 21生成的。然而,如果受监测的参数或度量中的任何一个不匹配,则CPU 24将接收到的哈希XA标记为错误并发出警告。
对于通过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)或者其它的等效集成电路或离散逻辑电路。因此,术语“处理器”如本文所使用的指代前述结构或适合于实现本文所描述的技术的任何其它结构中的任一者。另外,在一些方面,可以在专用硬件和/或软件模块内提供本文描述的功能。此外,所述技术可以在一个或更多个电路或逻辑元件中完全实现。
上述示例性实施方式仅仅是说明性的。应当理解,本文所描述的布置和细节的修改与变型对于本领域的技术人员将是明显的。因此,意图仅由未决的专利权利要求书的范围来限制并且不由通过本文的实施方式的描述和说明所呈现的具体细节来限制。
Claims (26)
1.一种混合设备,包括:
多个不同的子系统,其包括第一子系统和第二子系统,
其中,所述第一子系统包括被配置成存储第一软件的至少一个第一安全存储设备和被配置成引导并执行所述第一软件的第一中央处理单元CPU,
其中,所述第二子系统包括被配置成存储第二软件的至少一个第二安全存储设备和被配置成引导并执行所述第二软件的第二CPU,
其中,所述至少一个第一安全存储设备还被配置成存储第一秘密密钥和与所述第一软件的第一哈希相对应的第一存储签名,
其中,所述至少一个第二安全存储设备还被配置成存储第二秘密密钥、与所述第一软件的第一哈希相对应的第二存储签名以及与所述第二软件的第一哈希相对应的第三存储签名,
其中,所述第一CPU被配置成生成所述第一软件的第一哈希并将所生成的第一软件的第一哈希传送至所述第二子系统,以及
其中,所述第二CPU被配置成使用所接收的第一软件的第一哈希对所述第一软件执行第一真实性验证检查,以及在对所述第一软件的第一真实性验证检查失败的情况下生成错误信号。
2.根据权利要求1所述的混合设备,其中,所述第一CPU被配置成在时间约束内引导所述第一软件。
3.根据权利要求2所述的混合设备,其中,所述第二CPU被配置成在没有任何时间约束的情况下引导所述第二软件。
4.根据权利要求1所述的混合设备,其中,所述第二CPU被配置成基于对所述第一子系统的至少一个哈希生成参数的监测来监测所述第一子系统的哈希生成操作并且验证所述第一CPU生成的所述第一哈希。
5.根据权利要求1所述的混合设备,其中,所述第一CPU和所述第二CPU被配置成交换会话密钥并且使用交换后的会话密钥经由安全通信进行通信。
6.根据权利要求1所述的混合设备,其中:
所述第一CPU被配置成通过对所述第一软件应用第一哈希函数来生成所述第一软件的第一哈希,
所述第二CPU被配置成通过以下来执行对所述第一软件的第一真实性验证检查:生成与所接收的所述第一软件的第一哈希相对应的生成签名、将所述生成签名与所述第二存储签名进行比较以生成比较结果以及基于所述比较结果来验证所述第一软件的真实性。
7.根据权利要求6所述的混合设备,其中:
所述第一CPU被配置成应用第一哈希函数和第一签名算法以在所述第一子系统中分别生成哈希和签名,
所述第二CPU被配置成应用第二哈希函数和第二签名算法以在所述第二子系统中分别生成哈希和签名,
所述第一哈希函数与所述第二哈希函数不同,所述第一签名算法与所述第二签名算法不同,并且所述第一秘密密钥的第一密钥长度与所述第二秘密密钥的第二密钥长度不同,以及
所述第二CPU被配置成使用所述第二签名算法和所述第二秘密密钥生成与所接收的第一软件的第一哈希相对应的生成签名。
8.根据权利要求1所述的混合设备,其中,所述第一CPU被配置成通过以下来对所述第一软件执行第二真实性验证检查:生成与所生成的第一软件的第一哈希相对应的生成签名、将所述生成签名与所述第一存储签名进行比较以生成比较结果以及基于所述比较结果来验证所述第一软件的真实性。
9.根据权利要求1所述的混合设备,其中,所述第二CPU被配置成生成所述第二软件的第一哈希并通过以下对所述第二软件执行第一真实性验证检查:生成与所生成的第二软件的第一哈希相对应的生成签名、将所述生成签名与所述第三存储签名进行比较以生成比较结果以及基于所述比较结果来验证所述第二软件的真实性。
10.根据权利要求1所述的混合设备,其中:
所述第一CPU被配置成应用第一哈希函数和第一签名算法以在所述第一子系统中分别生成哈希和签名,
所述第二CPU被配置成应用第二哈希函数和第二签名算法以在所述第二子系统中分别生成哈希和签名,并且
所述第一哈希函数与所述第二哈希函数不同,并且所述第一签名算法与所述第二签名算法不同。
11.根据权利要求10所述的混合设备,其中:
所述第一CPU被配置成通过以下对所述第一软件执行第二真实性验证检查:使用所述第一签名算法和所述第一秘密密钥生成与所生成的第一软件的第一哈希相对应的第一生成签名、将所述第一生成签名与所述第一存储签名进行比较以生成第一比较结果以及基于所述第一比较结果来验证所述第一软件的真实性,
所述第二CPU被配置成通过以下对所述第一软件执行所述第一真实性验证检查:使用所述第二签名算法和所述第二秘密密钥生成与所接收的所述第一软件的第一哈希相对应的第二生成签名、将所述第二生成签名与所述第二存储签名进行比较以生成第二比较结果以及基于所述第二比较结果来验证所述第一软件的真实性。
12.根据权利要求11所述的混合设备,其中,所述第二哈希函数比所述第一哈希函数强。
13.根据权利要求11所述的混合设备,其中,所述第二CPU被配置成在所述第一CPU执行所述第一软件的同时执行所述第一真实性验证检查。
14.根据权利要求11所述的混合设备,其中,所述第二CPU被配置成生成所述第二软件的第一哈希并通过以下对所述第二软件执行第一真实性验证检查:使用所述第二签名算法和所述第二秘密密钥生成与所生成的第二软件的第一哈希相对应的第三生成签名、将所述第三生成签名与所述第三存储签名进行比较以生成第三比较结果以及基于所述第三比较结果来验证所述第二软件的真实性。
15.根据权利要求1所述的混合设备,其中:
所述第二CPU被配置成生成所述第二软件的第一哈希并将所生成的第二软件的第一哈希传送至所述第一子系统,以及
所述第一CPU被配置成使用所接收的第二软件的第一哈希对所述第二软件执行第一真实性验证检查,以及在对所述第二软件的第一真实性验证检查失败的情况下生成错误信号。
16.根据权利要求1所述的混合设备,其中:
使用所述第一秘密密钥和所述第一软件的第一哈希从第一签名算法得出所述第一存储签名,
从第一哈希函数和所述第一软件得出所述第一软件的第一哈希,
使用所述第二秘密密钥和所述第一软件的第一哈希从第二签名算法得出所述第二存储签名,
使用所述第二秘密密钥和所述第二软件的第一哈希从所述第二签名算法得出所述第三存储签名,
从第二哈希函数和所述第二软件得出所述第二软件的第一哈希,
其中,所述第一秘密密钥和所述第二秘密密钥具有不同的密钥长度,所述第一哈希函数与所述第二哈希函数不同,并且所述第一签名算法与所述第二签名算法不同。
17.根据权利要求16所述的混合设备,其中:
所述至少一个第一安全存储设备还被配置成存储与所述第二软件的第一哈希相对应的第四存储签名;
使用所述第一秘密密钥和所述第二软件的第一哈希从所述第一签名算法得出所述第四存储签名,以及
从所述第二哈希函数和所述第二软件得出所述第二软件的第一哈希。
18.根据权利要求17所述的混合设备,其中:
所述第二CPU被配置成生成所述第二软件的第一哈希并将所生成的第二软件的第一哈希传送至所述第一子系统,以及
所述第一CPU被配置成通过以下对所述第二软件执行第一真实性验证检查:使用所接收的第二软件的第一哈希生成第四生成签名、将所述第四生成签名与所述第四存储签名进行比较以生成比较结果以及基于所述比较结果验证所述第二软件的真实性。
19.根据权利要求17所述的混合设备,其中:
所述至少一个第二安全存储设备还被配置成存储与所述第一软件的第二哈希相对应的第五存储签名;
使用所述第二秘密密钥和所述第一软件的第二哈希从所述第二签名算法得出所述第五存储签名,以及
从所述第二哈希函数和所述第一软件得出所述第一软件的第二哈希。
20.根据权利要求19所述的混合设备,其中:
所述第二CPU被配置成从所述至少一个第一安全存储设备访问所述第一软件、基于所访问的第一软件来生成所述第一软件的第二哈希以及通过以下对所述第一软件执行第二真实性验证检查:使用所述第二签名算法和所述第二秘密密钥生成与所生成的第一软件的第二哈希相对应的第五生成签名、将所述第五生成签名与所述第五存储签名进行比较以生成比较结果以及基于所述比较结果来验证所述第一软件的真实性。
21.一种针对混合设备执行安全引导过程的方法,所述混合设备包括多个不同子系统,所述子系统包括第一子系统和第二子系统,所述第一子系统引导并执行被存储在至少一个第一安全存储设备中的第一软件,所述第二子系统引导并执行被存储在至少一个第二安全存储设备中的第二软件,其中,第一秘密密钥和与所述第一软件的第一哈希相对应的第一存储签名被存储在所述至少一个第一安全存储设备中,并且其中,第二秘密密钥、与所述第一软件的第一哈希相对应的第二存储签名以及与所述第二软件的第一哈希相对应的第三存储签名被存储在所述至少一个第二安全存储设备中,所述方法包括:
由所述第一子系统生成所述第一软件的第一哈希;
由所述第一子系统将所生成的第一软件的第一哈希传送至所述第二子系统;
由所述第二子系统使用所接收的第一软件的第一哈希对所述第一软件执行第一真实性验证检查;以及
由所述第二子系统在对所述第一软件的所述第一真实性验证检查失败的情况下生成错误信号。
22.根据权利要求21所述的方法,其中:
由所述第一子系统生成所述第一软件的第一哈希包括对所述第一软件应用第一哈希函数,以及
由所述第二子系统对所述第一软件执行所述第一真实性验证检查包括:生成与所接收的第一软件的第一哈希相对应的生成签名、将所述生成签名与所述第二存储签名进行比较以生成比较结果以及基于所述比较结果验证所述第一软件的真实性。
23.根据权利要求21所述的方法,还包括:
由所述第一子系统通过以下对所述第一软件执行第二真实性验证检查:生成与所生成的第一软件的第一哈希相对应的生成签名、将所述生成签名与所述第一存储签名进行比较以生成比较结果以及基于所述比较结果验证所述第一软件的真实性。
24.根据权利要求21所述的方法,还包括:
由所述第二子系统通过以下对所述第二软件执行第一真实性验证检查:生成所述第二软件的第一哈希、生成与所生成的第二软件的第一哈希相对应的生成签名、将所述生成签名与所述第三存储签名进行比较以生成比较结果以及基于所述比较结果验证所述第二软件的真实性。
25.根据权利要求21所述的方法,还包括:
由所述第一子系统应用第一哈希函数以在所述第一子系统中生成哈希;
由所述第一子系统使用所述第一秘密密钥应用第一签名算法以在所述第一子系统中生成签名;
由所述第二子系统应用第二哈希函数以在所述第二子系统中生成哈希;
由所述第二子系统使用所述第二秘密密钥应用第二签名算法以在所述第二子系统中生成签名;
其中,所述第一哈希函数与所述第二哈希函数不同,所述第一签名算法与所述第二签名算法不同,并且所述第一秘密密钥与所述第二秘密密钥具有不同的密钥长度。
26.根据权利要求25所述的方法,还包括:
由所述第一子系统通过以下对所述第一软件执行第二真实性验证检查:使用所述第一签名算法和所述第一秘密密钥生成与所生成的第一软件的第一哈希相对应的第一生成签名、将所述第一生成签名与所述第一存储签名进行比较以生成第一比较结果以及基于所述第一比较结果验证所述第一软件的真实性,
其中,由所述第二子系统对所述第一软件执行所述第一真实性验证检查包括:使用所述第二签名算法和所述第二秘密密钥生成与所接收的第一软件的第一哈希相对应的第二生成签名、将所述第二生成签名与所述第二存储签名进行比较以生成第二比较结果以及基于所述第二比较结果来验证所述第一软件的真实性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/515,633 US11100229B2 (en) | 2019-07-18 | 2019-07-18 | Secure hybrid boot systems and secure boot procedures for hybrid systems |
US16/515,633 | 2019-07-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112242903A true CN112242903A (zh) | 2021-01-19 |
CN112242903B CN112242903B (zh) | 2023-12-15 |
Family
ID=74093927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010685813.4A Active CN112242903B (zh) | 2019-07-18 | 2020-07-16 | 混合设备以及针对混合设备执行安全引导过程的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11100229B2 (zh) |
CN (1) | CN112242903B (zh) |
DE (1) | DE102020117552A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102020211346A1 (de) * | 2020-09-10 | 2022-03-10 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Booten einer elektronischen Vorrichtung |
DE102021003840A1 (de) | 2021-07-27 | 2023-02-02 | Mercedes-Benz Group AG | Verfahren zur Überprüfung digitaler Signaturen, Fahrzeug-Recheneinheit und Fahrzeug |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729647A (zh) * | 2002-12-21 | 2006-02-01 | 国际商业机器公司 | 生成和/或使用附条件电子签名以报告状态变化的方法、装置以及计算机程序 |
US20080168275A1 (en) * | 2007-01-07 | 2008-07-10 | Dallas Blake De Atley | Securely Recovering a Computing Device |
CN107004091A (zh) * | 2014-09-26 | 2017-08-01 | 英特尔公司 | 安全地交换车辆传感器信息 |
US20170357496A1 (en) * | 2016-06-12 | 2017-12-14 | Intel Corporation | Technologies for secure software update using bundles and merkle signatures |
US20180241568A1 (en) * | 2017-02-21 | 2018-08-23 | Google Inc. | Verification of code signature with flexible constraints |
CN108881303A (zh) * | 2018-08-06 | 2018-11-23 | 罗伯特·博世有限公司 | 具有计算功能的节点、安全验证网络和安全验证方法 |
CN109691016A (zh) * | 2016-07-08 | 2019-04-26 | 卡列普顿国际有限公司 | 分布式事务处理及认证系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080200225A1 (en) * | 1994-03-11 | 2008-08-21 | Walker Jay S | Methods and apparatus for facilitating game play and generating an authenticatable audit-trail |
AU2001285125B2 (en) * | 2000-08-21 | 2004-08-26 | Igt | Method and apparatus for software authentication |
WO2002032047A1 (en) * | 2000-10-11 | 2002-04-18 | Trustcopy Pte Ltd | Remote printing of secure and/or authenticated documents |
US20030196096A1 (en) * | 2002-04-12 | 2003-10-16 | Sutton James A. | Microcode patch authentication |
US20040064457A1 (en) * | 2002-09-27 | 2004-04-01 | Zimmer Vincent J. | Mechanism for providing both a secure and attested boot |
US7594124B2 (en) * | 2004-06-09 | 2009-09-22 | Intel Corporation | Cross validation of data using multiple subsystems |
US8051299B2 (en) * | 2006-03-20 | 2011-11-01 | Hewlett-Packard Development Company, L.P. | Computer security method and computer system |
WO2008061028A1 (en) * | 2006-11-10 | 2008-05-22 | Aristocrat Technologies Australia Pty, Ltd | Casino game download system and method of use |
US8375219B2 (en) * | 2007-10-24 | 2013-02-12 | Microsoft Corporation | Program and operation verification |
US20100192207A1 (en) * | 2009-01-28 | 2010-07-29 | Gregory G. Raleigh | Virtual service provider systems |
US8738932B2 (en) * | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
US8782387B2 (en) * | 2011-12-31 | 2014-07-15 | International Business Machines Corporation | Secure boot of a data breakout appliance with multiple subsystems at the edge of a mobile data network |
US9288056B1 (en) * | 2015-05-28 | 2016-03-15 | Pearson Education, Inc. | Data access and anonymity management |
US9307409B2 (en) * | 2013-12-27 | 2016-04-05 | Intel Corporation | Apparatus, system and method of protecting domains of a multimode wireless radio transceiver |
US9317691B2 (en) * | 2014-05-08 | 2016-04-19 | Dell Products L.P. | Pre-boot software verification |
US20170286665A1 (en) * | 2016-03-30 | 2017-10-05 | Qualcomm Incorporated | Devices and methods for facilitating software signing by more than one signing authority |
WO2018160341A1 (en) * | 2017-03-03 | 2018-09-07 | Google Llc | Secure code jump and execution gating |
US11157656B2 (en) * | 2019-01-31 | 2021-10-26 | Arista Networks, Inc. | Method and system for software image verification using a Null File |
JP7008661B2 (ja) * | 2019-05-31 | 2022-01-25 | 本田技研工業株式会社 | 認証システム |
-
2019
- 2019-07-18 US US16/515,633 patent/US11100229B2/en active Active
-
2020
- 2020-07-03 DE DE102020117552.3A patent/DE102020117552A1/de active Pending
- 2020-07-16 CN CN202010685813.4A patent/CN112242903B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729647A (zh) * | 2002-12-21 | 2006-02-01 | 国际商业机器公司 | 生成和/或使用附条件电子签名以报告状态变化的方法、装置以及计算机程序 |
US20080168275A1 (en) * | 2007-01-07 | 2008-07-10 | Dallas Blake De Atley | Securely Recovering a Computing Device |
CN107004091A (zh) * | 2014-09-26 | 2017-08-01 | 英特尔公司 | 安全地交换车辆传感器信息 |
US20170357496A1 (en) * | 2016-06-12 | 2017-12-14 | Intel Corporation | Technologies for secure software update using bundles and merkle signatures |
CN109691016A (zh) * | 2016-07-08 | 2019-04-26 | 卡列普顿国际有限公司 | 分布式事务处理及认证系统 |
US20180241568A1 (en) * | 2017-02-21 | 2018-08-23 | Google Inc. | Verification of code signature with flexible constraints |
CN108881303A (zh) * | 2018-08-06 | 2018-11-23 | 罗伯特·博世有限公司 | 具有计算功能的节点、安全验证网络和安全验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112242903B (zh) | 2023-12-15 |
DE102020117552A1 (de) | 2021-01-21 |
US20210019417A1 (en) | 2021-01-21 |
US11100229B2 (en) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020504390A (ja) | サービス指向アーキテクチャに基づく集中化サービスecuおよびその使用方法 | |
EP3883208B1 (en) | Validation of software residing on remote computing devices | |
Mun et al. | Ensuring safety and security in CAN-based automotive embedded systems: A combination of design optimization and secure communication | |
CN112448941B (zh) | 认证系统和用于认证微控制器的方法 | |
Oguma et al. | New attestation based security architecture for in-vehicle communication | |
TW201735578A (zh) | 受控的安全碼認證 | |
CN112242903B (zh) | 混合设备以及针对混合设备执行安全引导过程的方法 | |
WO2017008829A1 (en) | A method and a system for reliable computation of a program | |
US20230083716A1 (en) | Devices, methods, and computer program for releasing transportation vehicle components, and vehicle-to-vehicle communication module | |
Khodari et al. | Decentralized firmware attestation for in-vehicle networks | |
WO2021022802A1 (zh) | 安全启动方法、控制器和控制系统 | |
US20220209946A1 (en) | Key revocation for edge devices | |
Giri et al. | An integrated safe and secure approach for authentication and secret key establishment in automotive Cyber-Physical systems | |
WO2022018095A1 (en) | Method and vehicle bus system to forward asil relevant information from a data source to a data sink | |
EP4147148A1 (en) | Trusted computing for digital devices | |
CN114946155A (zh) | 一种车辆诊断系统、方法及装置 | |
US20230205887A1 (en) | Secure automotive system | |
Giri | A dependable and secure approach for secret key establishment and operation in automotive CPS | |
Wolf | Vehicular security mechanisms | |
Andréasson et al. | Device Attestation for In-Vehicle Network | |
CN111226214A (zh) | 用于确认密码密钥的系统和方法 | |
CN117375873A (zh) | 用于在车辆内部通信网络中使用密码密钥的方法 | |
CN116388992A (zh) | 针对分布式tee应用的远程认证方法及装置 | |
CN111914222A (zh) | 保护电子控制单元的方法 | |
CN117195202A (zh) | 应用验签方法、装置、车辆和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |