CN107949847B - 车辆的电子控制单元 - Google Patents
车辆的电子控制单元 Download PDFInfo
- Publication number
- CN107949847B CN107949847B CN201680050445.8A CN201680050445A CN107949847B CN 107949847 B CN107949847 B CN 107949847B CN 201680050445 A CN201680050445 A CN 201680050445A CN 107949847 B CN107949847 B CN 107949847B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- processor
- electronic control
- control unit
- 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.)
- Active
Links
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
- B60W50/0225—Failure correction strategy
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/04—Monitoring the functioning of the control system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- 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/604—Tools and structures for managing or administering access control systems
-
- 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
-
- 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/86—Secure or tamper-resistant housings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
一种车辆的电子控制单元(1),该电子控制单元(1)包括处理器(2),其包括:处理器核(13);存储器(14a,14b),存储器(14a,14b)存储包括用于处理器核(13)的指令的数据;与存储器(14a,14b)耦接以用于读取和写入的防篡改硬件安全模块(15);以及外部接口(18);电子控制单元(1)还包括通过外部接口(18)与处理器(2)连接且包含另外的数据的另外的存储器(21);其中硬件安全模块(15)被布置为做出关于存储器内的数据(14a,14b)是否已经被篡改的确定,并且在确定数据已经被篡改时,使另外的数据经由外部接口(18)从另外的存储器(21)被加载到存储器(14a,14b)内。公开了用于提高电子控制电路的安全性的其它装置和方法。
Description
本发明涉及车辆的电子控制单元,并且涉及这样的电子控制单元的方法和操作。
现代车辆典型地使用一个或多个电子控制单元(ECU)来控制车辆的功能。在汽车中,电子控制单元典型地包括制动器和/或转向致动器,以及其它。所希望的是,尤其是在ECU可以连接到外部数据网络的情况下,确保由这样的ECU的处理器执行的数据未被修改,不管是由于事故还是蓄意的。
虽然过去已经有人提出通过检查在ECU处理器的非易失性存储器内的代码是否与加密的签名(使用硬件安全模块(HSM),该硬件安全模块是处理器的防篡改部分并且存储用于验证和加密/解密的密钥和算法)正确匹配来确定该代码是否已经被篡改,但对于不匹配的确定的响应迄今为止一般地要么是暂停处理器,要么是在知道它可能受到影响的情况下继续执行该数据。这两个选项都不完全适合于需要运行ECU以安全操作的车辆,即使是在“跛行回家(limp-home)”模式中。过去已经给出的另一个选项是,如果发现软件受到威胁,则限制对加密密钥的访问。尽管该选项可保护***免受发送看起来值得信任的消息的流氓软件的影响,但是它不能保护可能具有安全隐患的本地功能免受流氓软件的操作的影响。
HSM通常是***的唯一可信任部分,并且通过验证最底层的引导程序然后允许从这里开始进行启动,HSM可以被用作***的安全启动的基础(例如,参见RuhrBochum的Benjamin Nagel的学士论文“Secure Boot of an Embedded MulticoreProcessor System”)。运行于ECU的处理器上的应用软件不可能对HSM进行安全询问然后在应用软件可能已经受到怀疑时对该询问的结果进行操作(所以可能已经被编程以正好忽略HSM的“失败”结果)。
安全的目的是为了防止危害。这种危害可能是(例如)物理上的、财务上的、隐私侵犯或名誉上的。
在考虑对安全漏洞的潜在反应时必须要考虑的一种关键的危害是“拒绝服务(denial of service)”;在此,汽车可以呈现为不可由外部代理人驾驶,这会间接造成危害,不管是物理上的(如果车辆位于驾驶员必须迅速离开的危险地方),还是信誉上的(就将会因关于车辆不启动的报告而受到危害的车辆制造商而言)。
危害还可能来自外设(这些外设是处理单元理解和影响外部世界的途径)。例如,应用软件将请求某些时序的脉冲以在转向***中提供扭矩需求,或者要由驾驶员辅助***(DAS)传感器发送的消息,或者要与互联网服务共享的信息。上述信息中的任一项如果不正确(不管是因为错误,还是因为恶意行为者的活动)则将出现问题。
即使面对已经被篡改的软件,ECU的功能保持不变是至关重要的(对于一些ECU)。跛行回家或功能减少可能是可接受的。
跛行回家功能的示例:
·DAS***(例如雷达)可能正好无法工作,尽管随着车辆逐渐提高自主性,这将是不可接受的。
·制动ECU可能会(例如)退回到仅提供非主动功能,诸如滑动控制(slip-control)。但是,制动ECU可能要负责将车速信息提供给车辆的其余部分(例如仪表板),因此从传感器到通信的接口必须保持不变且未被篡改。
·即使是在跛行回家模式中,发动机和转向ECU两者也都需要外设来进行非常精准控制的动态活动,所以仅仅阻止访问外设是不可能的。
根据本发明的第一方面,本发明提供了车辆的电子控制单元,该电子控制单元包括处理器,该处理器包括:
·处理器核;
·存储器,该存储器存储包括用于处理器核的指令的数据;
·防篡改硬件安全模块,该防篡改硬件安全模块耦接到存储器以用于读取和写入;以及
·外部接口;
电子控制单元还包括通过外部接口连接到处理器的另外的存储器,并且该另外的存储器包含另外的数据;
其中硬件安全模块被布置为做出关于存储器内的数据是否已经被篡改的确定,并且基于数据已经被篡改的确定,使另外的数据经由外部接口从另外的存储器被加载到该存储器内。
如此,如果确定存储器内的数据已经被篡改,则电子控制单元(ECU)可以利用硬件安全模块来使新的数据被加载到存储器内。典型地,该另外的数据不太可能已经被篡改。
典型地,硬件安全模块还将被布置为在另外的数据已经被写入存储器内之后做出关于该另外的数据是否已经被篡改的确定。如果确定该另外的数据已经被篡改,则硬件安全模块可以使得来自该另外的存储器的补充数据被加载到该存储器内以由处理器核执行,并且还可以做出关于补充数据是否已经被篡改的确定。替代地或附加地,如果确定另外的数据或补充数据已经被篡改,则硬件安全模块可以被布置为暂停处理器和/或处理器核。
电子控制单元可以被布置为使得关于数据(或另外的数据或补充数据)是否已经被篡改的确定包括检查数据(或另外的数据或补充数据)是否具有可以使用(通常安全地)保存于硬件安全模块内的密钥来验证的签名。因而,如果签名(通常是加密的)得到正确地验证,数据才会被允许执行。
在正常使用时,存储器可以包含表示由处理器执行的第一应用的数据。另外的数据可以表示由处理器执行的替代应用,该替代应用可以具有与第一应用相比减少的功能——“跛行回家”功能。替代地,它可以是第一应用的完整的未经修改的副本。
典型地,另外的存储器将位于处理器的外部。处理器可以是单个集成电路,另外的存储器位于不同的集成电路上。这允许减少处理器上的存储器数量,而仍然有保持另外的数据的益处。
存储器和另外的存储器两者都可以是被布置为在电子控制单元的供电被切断时仍保留存储于其内的数据的非易失性存储器。
由硬件安全模块做出的每个确定都可以由硬件安全模块、处理器核或这两者来执行。在一种实施例中,由HSM做出的每个确定将由HSM执行,因为它是***的唯一可信任部分。在一些***中,HSM控制整个启动过程,并且应用处理器完全被阻止执行任何任务,直到HSM已经验证了处理器将运行的代码。
在另一种实施例中,HSM将仅检查小的所谓“引导装载程序”,然后应用处理器将执行该代码。在该代码(现在是可信任的)中将驻留有用于检查代码的剩余部分(该剩余部分代码通常形成***的应用)的功能。检查代码的剩余部分的功能将利用HSM的功能以提供关于应用代码(以及任何相关联的数据)是否已经被篡改的确定。
根据本发明的第二方面,提供了一种用于操作车辆的电子控制单元的方法,该电子控制单元包括处理器,该处理器包括:
·处理器核;
·存储器,该存储器存储包括用于处理器核的指令的数据;
·防篡改硬件安全模块,该防篡改硬件安全模块耦接到存储器以用于读取和写入;以及
·外部接口;
电子控制单元还包括通过外部接口连接到处理器的另外的存储器,并且该另外的存储器包含另外的数据;
该方法包括确定存储器内的数据是否已经被篡改,并且在确定数据已经被篡改时,经由外部接口将另外的数据从另外的存储器加载到该存储器内。
如此,如果确定存储器内的数据已经被篡改,则该方法可以利用硬件安全模块,可以使新的数据被加载到存储器内。典型地,另外的数据不太可能已经被篡改。
典型地,该方法还将包括在另外的数据已经被写入存储器之后确定该另外的数据是否已经被篡改。如果确定另外的数据已经被篡改,则可以将补充数据从另外的存储器加载到该存储器内以由处理器核执行,并且做出关于补充数据是否已经被篡改的确定。替代地或附加地,如果确定另外的数据或补充数据已经被篡改,则该方法可以包括暂停处理器和/或处理器核。
关于数据(或另外的数据或补充数据)是否已经被篡改的确定可以包括检查数据(或者另外的数据或补充数据)是否具有可以使用(通常安全地)保存于硬件安全模块内的密钥来验证的签名。因而,如果签名(通常是加密的)得到正确验证,数据才会被允许执行。
典型地,另外的存储器将位于处理器的外部。处理器可以是单个集成电路,另外的存储器位于不同的集成电路上。这允许减少处理器上的存储器数量,而仍然有保持另外的数据的益处。
每个确定可以由硬件安全模块、处理器核或这两者执行。
在正常使用时,存储器可以包含表示由处理器执行的第一应用的数据。另外的数据可以表示由处理器执行的替代应用,该替代应用可以具有与第一应用相比减少的功能——“跛行回家”功能。
存储器和另外的存储器两者都可以是被布置为在电子控制单元的供电被切断时仍保留存储于其内的数据的非易失性存储器。
根据本发明的第三方面,提供了一种车辆的电子控制单元,该电子控制单元包括处理器,该处理器包括:
·处理器核;
·第一存储器,该第一存储器存储包括用于处理器核的指令的数据;以及
·防篡改硬件安全模块,该防篡改硬件安全模块耦接到第一存储器以用于读取;
其中第一存储器存储加密的引导装载程序,硬件安全模块被布置为在电子控制单元启动时从第一存储器中读取加密的引导装载程序,并且在硬件安全模块内对其进行解密以形成解密的引导装载程序,处理器核被布置为在电子控制单元启动时读取并运行解密的引导装载程序。
因而,硬件安全模块(HSM)可以对加密的引导装载程序进行解密,加密的引导装载程序与未加密的引导装载程序相比可能更不会受到威胁。
硬件安全模块可以被布置为做出解密的引导装载程序是否已经被篡改的确定。它也可以被布置为使得如果确定解密的引导装载程序已经被篡改,则阻止处理器核运行解密的引导装载程序。如此,这是确保引导装载程序的完整性的另一个步骤。
电子控制单元可以包括第二存储器,并且硬件安全模块可以被布置为将解密的引导装载程序写入第二存储器内,并且处理器核可以被布置为从第二存储器中读取解密的引导装载程序。替代地,硬件安全模块可以将解密的引导装载程序发送到处理器核以由处理器核执行。
第一存储器可以只能由处理器核通过硬件安全模块来读取和/或写入。在这种情况下,可以在处理器内设置第三存储器,该第三存储器可以由处理器核读取而没有处理器核的介入。
在另一种情况下,处理器核被布置为从第一存储器读取数据,既可通过硬件安全模块读取(通常为需要解密的情况)也可在没有硬件安全模块介入的情况下读取。因而,安全的和不安全的数据都可以存储于存储器内。
第一存储器可以是被布置为在处理器的供电被切断时仍保留存储于其内的数据的非易失性存储器。第二存储器将通常是处理器的在处理器的供电被切断时易于丢失存储于其内的数据的易失性存储器。
根据本发明的第四方面,提供了一种控制车辆的电子控制单元的方法,该电子控制单元包括处理器,该处理器包括:
·处理器核;
·第一存储器,该第一存储器存储包括用于处理器核的指令的数据;以及
·防篡改硬件安全模块,该防篡改硬件安全模块耦接到第一存储器以用于读取;
其中第一存储器存储加密的引导装载程序,
该方法包括:在电子控制单元启动时,硬件安全模块从第一存储器中读取加密的引导装载程序并且在硬件安全模块内对其进行解密以形成解密的引导装载程序,处理器核读取并运行解密的引导装载程序。
因而,硬件安全模块(HSM)可以对加密的引导装载程序进行解密,加密的引导装载程序与未加密的引导装载程序相比可能更不会受到威胁。
该方法可以包括确定解密的引导装载程序是否已经被篡改。该方法还可以包括,在确定解密的引导装载程序已经被篡改时阻止处理器核运行解密的引导装载程序。如此,这是确保引导装载程序的完整性的另一个步骤。
电子控制单元可以包括第二存储器,并且该方法可以包括:将解密的引导装载程序写入第二存储器内,并且处理器核从第二存储器中读取解密的引导装载程序。替代地,该方法可以包括:硬件安全模块将解密的引导装载程序发送到处理器核,并且处理器执行解密的引导装载程序。
该方法可以包括由处理器核仅通过硬件安全模块对第一存储器进行读取和/或写入。在这种情况下,第三存储器可以被设置于处理器内,该第三存储器可以由处理器核读取,而没有处理器核的介入。
在另一种情况下,该方法包括:处理器核从第一存储器中读取数据,既可通过硬件安全模块读取(通常为需要解密的情况),也可在没有硬件安全模块介入的情况下读取。因而,安全的和不安全的数据都可以存储于存储器内。
第一存储器可以是被布置为在处理器的供电被切断时仍保留存储于其内的数据的非易失性存储器。第二存储器通常是处理器的在处理器的供电被切断时易于丢失存储于其内的数据的易失性存储器。
根据本发明的第五方面,本发明提供一种车辆的电子控制单元,该电子控制单元包括处理器,该处理器包括:
·处理器核;
·存储器,该存储器存储包括用于处理器核的指令的数据;以及
·防篡改硬件安全模块,该防篡改硬件安全模块耦接到存储器以用于读取和写入;
其中硬件安全模块被布置为在数据从存储器中被读取并被传递给处理器核来执行时对该数据执行加密错误校正。
因而,至少达到一定规模的错误(无论是偶然的还是恶意的),在其被执行之前,都可以在代码中被校正。
典型地,电子控制单元将设置有密钥存储器,该密钥存储器存储至少一个第一加密密钥。数据可以被划分成至少一个块,每个块都以与第一加密密钥对应的第二加密密钥来签名,使得加密错误校正依赖于第二加密密钥以执行加密错误校正以指出每个数据块是否都是以对应的第一加密密钥来签名的,以及该数据块自签名以来是否已经被改动了,并且如果被改动了则对数据中的任何改动进行校正。
对应的第一加密密钥和第二加密密钥可以相同的;但是,在一种优选的实施例中,它们是对应的公钥和私钥,其中第一加密密钥是公钥,第二加密密钥是私钥。如此,电子控制单元可以不存储每个第二加密密钥。
处理器核可以设置有用于数据的高速缓存,该高速缓存被布置为以高速缓存行(cacheline)读取数据;每个块都可以表示在加密错误校正之后的一个高速缓存行的数据。
典型地,电子控制单元将被布置为使得处理器核不可能读取数据,除非通过硬件安全模块。这确保了所有数据都在被执行之前进行错误检查。
根据本发明的第六方面,提供了一种用于操作车辆的电子控制单元的方法,该电子控制单元包括处理器,该处理器包括:
·处理器核;
·存储器,该存储器存储包括用于处理器核的指令的数据;以及
·防篡改硬件安全模块,该防篡改硬件安全模块耦接到存储器以用于读取和写入;
该方法包括:在数据从存储器中被读取并被传递给处理器核来执行时(通常使用硬件安全模块)对该数据执行加密错误校正。
因而,至少达到一定规模的错误(无论是偶然的还是恶意的),在其被执行之前,都可以在代码中被校正。
典型地,该方法将包括将至少一个第一加密密钥存储于电子控制单元内。数据可以被划分成至少一个块,每个块都以与第一加密密钥对应的第二加密密钥来签名,使得加密错误校正依赖于第二加密密钥以执行加密错误校正以指出每个数据块是否都是以对应的第一加密密钥来签名的,以及该数据块自签名以来是否已经被改动,并且如果被改动了则对数据中的任何改动进行校正。
对应的第一加密密钥和第二加密密钥可以相同的;但是,在一种优选的实施例中,它们是对应的公钥和私钥,其中第一加密密钥是公钥,第二加密密钥是私钥。如此,电子控制单元可以不存储每个第二加密密钥。
在处理器核具有用于数据的高速缓存的情况下,该方法可以包括以高速缓存行读取数据;每个块都可以表示在加密错误校正之后的一个高速缓存行的数据。
典型地,该方法将包括不将数据加载到处理器核中,除非通过硬件安全模块。这确保了所有数据都在被执行之前进行错误检查。
根据本发明的第七方面,提供了一种包括本发明的第一、第三或第五方面中的任一方面的电子控制单元的车辆。
典型地,该车辆可以设置有由电子控制单元控制的至少一个致动器。这些致动器可以选自:制动致动器、转向致动器以及用于控制车辆的内燃机的性能的致动器。
而且,该车辆可以设置有耦接到电子控制单元的至少一个传感器,以便向电子控制单元提供数据。这些传感器可以选自:速度传感器、位置传感器、以及被布置为感测其它对象的位置的传感器(诸如雷达、声纳或激光雷达传感器)。
车辆可以包括车辆总线(如CAN总线),电子控制单元附接到该车辆总线。典型地,车辆还会包括连接到车辆总线的外设。至少一个外设可以设置有用于允许访问车辆外部的数据的端口;该端口可以是网络接口,典型为无线网络接口,其允许连接到外部网络,诸如因特网。电子控制单元可以被布置为允许在网络端口处接收的数据被写入存储器内。
车辆可以是公路车辆(诸如汽车)或轨道车辆(诸如火车)。替代地,其也可以是飞机。
以下将通过仅作为示例的方式提供对于参照附图来描述的本发明的实施例的描述,在附图中:
图1示出了可以用于本发明的各种实施例中的示例性电子控制单元;
图2示出了根据本发明的第一实施例来使用的图1的电子控制单元;
图3示出了根据本发明的第二实施例来使用的图1的电子控制单元;
图4示出了根据本发明的第三实施例来使用的图1的电子控制单元;以及
图5示出了根据本发明的第四实施例来使用的图1的电子控制单元。
附图中的图1中示出了在车辆100内的电子控制单元(ECU)1,该电子控制单元(ECU)1可以用于本发明的各种实施例中。在本示例中,车辆是汽车。电子控制单元1包括处理器2,处理器2是连接到ECU 1内的外部接口3、4的单个集成电路。外部接口3将ECU 1连接到CAN总线5,其它单元(诸如制动器ECU 6、转向ECU 7和网关10)也连接到CAN总线5。外部接口4将ECU 1连接到车辆100的致动器8(例如制动或转向致动器)和传感器9(例如速度或位置传感器)。
网关10(其可以是车辆的无线电的一部分)具有无线网络接口11,其允许与外部网络12(在本示例中为因特网)通信。如此,这允许经网络12接收的数据通过CAN总线5传递到ECU 1,这表示了在处理器1上存储和执行恶意代码的潜在安全风险。典型地,网关将被布置为减轻许多常见的安全风险,但总是存在通过网关突破的可能。
如上文所讨论的,处理器2自身包括单个集成电路,该集成电路具有若干特征。其具有用于执行ECU 1的多数处理功能的处理器核13。其具有数据和程序指令被保存于其内的存储器14。存在各种内部外设16,诸如看门狗定时器、信号处理加速器、直接存储器存取(DMA)控制器。存在与外部接口3通信的通信外设。还存在一组外设,诸如与外部接口4通信的模数转换器(ADC)、定时器等。
处理器还具有防篡改的硬件安全模块(HSM)15;而防篡改的HSM在本领域中是众所周知的,并且本领域技术人员实现这样的HSM几乎不会有什么问题(参见例如著作“Security Engineering”(第二版)(Ross Anderson,ISBN 978-0470068526)的第16章中所描述的技术),例如,可以通过将HSM引入到硅集成电路中的与处理器核相同的区域上来使其可防篡改。可以将金属层添加到集成电路中以检测探测尝试,并且可以添加电压传感器以检测可能导致恶意故障的电压毛刺(glitches)。这执行如以下关于各种实施例所描述的各种功能。
在本发明的第一实施例中,如附图中的图2所示,处理器2的存储器14被提供作为易失性存储器14a(当电力被切断时容易丢失其内容)以及非易失性存储器14b(当电力被切断时不容易丢失其内容)。在本实施例中,HSM 15介于处理器核13与非易失性存储器14b之间,使得非易失性存储器14b的全部读出都经过HSM 15。
如此,HSM对从非易失性部件14b读出的全部数据执行加密错误校正,以用于由处理器核13执行。加密错误校正是利用加密密钥来校正数据中的错误的技术,如在麻省理工学院的Christopher Jason Peikert的题目为“Cryptographic Error Correction”的哲学博士(PhD)论文中描述的。
在本示例中,存储于非易失性存储器14b内的、要从非易失性存储器14b中被读出的每个高速缓存行的数据之前都已经用密钥(典型为私钥)进行了签名,其中该密钥不存储于ECU 1内。当该数据从非易失性部件14b中被读出时,HSM 15使用存储于HSM 15内的对应密钥(典型为公钥)来检查该数据的完整性。如果在那时发现了错误(达到一定规模的错误),则这些错误可以被校正。因而,可以校正数据中的小变化——这些小变化通常是所有恶意行为者都需要做的,以便造成某些危害。
典型地,存储于HSM内的(一个或多个)密钥将在生产时安全地存储于HSM内,并且只能通过一些安全协议来更新存储于HSM内的(一个或多个)密钥。
在第二实施例中,如附图中的图3所示,设置ECU 1的存储器14作为易失性存储器14a、主非易失性存储器14b和启动非易失性部件14c。HSM 15传递(mediate)来自启动非易失性存储器14c的所有读取。启动非易失性存储器14c保存ECU 1的引导装载程序;即,在ECU1启动时由处理器核13执行的第一代码。引导装载程序被使用密钥加密,该密钥存储于HSM15内。
为了启动,HSM 15使用存储于HSM 15内的密钥(尽管可以使用公钥/私钥对来代替)对引导装载程序进行解密。HSM将解密的引导装载程序发送到处理器核13以由处理器核来执行。HSM还可以使用HSM所保存的相同密钥来检查引导装载程序是否已经被正确解密,以及所解密的引导装载程序是否匹配其加密签名。如果以此方式成功地验证了解密的引导装载程序,HSM 15才将允许处理器核13执行解密的引导装载程序。
应当注意,来自启动非易失性存储器14c的全部读出都通过HSM。对启动非易失性存储器14c的写入有可能类似地受到限制,或者甚至在生产之后被阻止,诸如通过将启动非易失性存储器内的写入线上的保险丝熔断(blow)。
本发明的第三实施例与第二实施例类似,只是加密的引导装载程序20被保存于主非易失性存储器14b内,并且没有启动非易失性部件14c。处理器核可以直接读取或通过HSM15读取非易失性部件14b。如同上文所讨论的,它使用HSM 15来对加密的引导装载程序20进行解密;这可以被写入易失性部件14a内,以由处理器核13执行。在其它方面,本实施例起着如同第二实施例那样的作用。
在本发明的第四实施例中,如附图中的图5所示,处理器核13可以直接读写非易失性存储器14b。但是,HSM 15定期检查非易失性存储器14b的内容。典型地,它会在任何空闲时间这样做。
在非易失性存储器14b内的每个数据块将已经使用未存储于ECU 1内的密钥(典型为私钥)进行了签名。在每次检查时,HSM 15使用存储于HSM 15内的密钥(典型为公钥)来检查每个块的签名是否验证每个块的内容。
如果确定在非易失性存储器14b内的数据不匹配其签名,则HSM 15将从外部存储器21中读取回退图像。外部存储器仍包含于ECU 1内,但是在与处理器2不同的集成电路上。该回退图像被写入非易失性部件14b内。回退图像也将被签名,并且HSM 15将使用其密钥来验证回退图像的内容还没有被修改。只有在验证之后,HSM 15才会允许处理器核13执行回退图像。
典型地,与另外存储于非易失性存储器14b内的数据相比,回退图像将包含ECU 1的更有限的应用。例如,在转向***中,它可以仅为驾驶员提供动力辅助,而不允许自主驾驶功能。在制动***中,它可以仅提供核心制动活动,而不提供更高级的功能(诸如稳定性控制或自主性)。假定回退图像既进行了加密也进行了签名,则第三方将难以恶意地修改ECU 1所运行的软件,因为任何修改都会导致受信任的代码被执行。
如果HSM 15确定回退图像的内容未通过其签名得到验证,则HSM将不允许处理器核13来执行它,而是作为替代,可以从外部存储器21加载另外的回退图像,或者简单地暂停处理器核13。
Claims (26)
1.一种用于车辆的电子控制单元,所述电子控制单元包括处理器,所述处理器包括:
处理器核;
第一存储器,所述第一存储器存储包括用于所述处理器核的指令的数据;
防篡改硬件安全模块,所述防篡改硬件安全模块耦接到所述第一存储器以用于读取和写入;以及
外部接口;
所述电子控制单元还包括通过所述外部接口连接到所述处理器的第二存储器,并且所述第二存储器包含另外的数据;
其中所述硬件安全模块被布置为做出关于所述第一存储器内的所述数据是否已经被篡改的确定,并且在确定所述数据已经被篡改时,使所述另外的数据经由所述外部接口从所述第二存储器被加载到所述第一存储器内。
2.根据权利要求1所述的电子控制单元,其中所述硬件安全模块被布置为在所述另外的数据已经被写入所述第一存储器之后做出关于所述另外的数据是否已经被篡改的确定。
3.根据权利要求2所述的电子控制单元,其中如果确定所述另外的数据已经被篡改,则所述硬件安全模块使补充数据从所述第二存储器中被加载到所述第一存储器内以由所述处理器核执行。
4.根据权利要求2所述的电子控制单元,其中如果确定所述另外的数据已经被篡改,则所述硬件安全模块被布置为暂停所述处理器和/或所述处理器核。
5.根据权利要求1所述的电子控制单元,被布置为使得关于所述数据是否已经被篡改的所述确定包括检查所述数据是否具有能够使用保存于所述硬件安全模块内的密钥来验证的签名。
6.根据权利要求1所述的电子控制单元,其中所述第二存储器在所述处理器的外部。
7.根据权利要求1所述的电子控制单元,被布置为使得每个确定都由所述硬件安全模块、所述处理器核或这两者来执行。
8.根据权利要求1所述的电子控制单元,其中在正常使用时,所述第一存储器包含表示由所述处理器执行的第一应用的数据,并且所述另外的数据表示由所述处理器执行的替代应用,所述替代应用与所述第一应用相比具有减少的功能。
9.根据权利要求1所述的电子控制单元,其中所述处理器包括第一集成电路,并且其中所述第二存储器包括与所述第一集成电路分开的第二集成电路。
10.一种用于操作车辆的电子控制单元的方法,所述电子控制单元包括处理器,所述处理器包括:
处理器核;
第一存储器,所述第一存储器存储包括用于所述处理器核的指令的数据;
防篡改硬件安全模块,所述防篡改硬件安全模块耦接到所述第一存储器以用于读取和写入;以及
外部接口;
所述电子控制单元还包括通过所述外部接口连接到所述处理器的第二存储器,并且所述第二存储器包含另外的数据;
所述方法包括确定所述第一存储器内的所述数据是否已经被篡改,并且在确定所述数据已经被篡改时,所述另外的数据经由所述外部接口从所述第二存储器被加载到所述第一存储器内。
11.根据权利要求10所述的方法,包括在所述另外的数据已经被写入所述第一存储器之后确定所述另外的数据是否已经被篡改。
12.根据权利要求11所述的方法,其中如果确定所述另外的数据已经被篡改,则将补充数据从所述第二存储器加载到所述第一存储器内,以由所述处理器核执行。
13.根据权利要求12所述的方法,其中如果确定所述另外的数据或所述补充数据已经被篡改,则所述方法包括暂停所述处理器和/或所述处理器核。
14.根据权利要求10所述的方法,其中确定所述数据是否已经被篡改包括检查所述数据是否具有能够使用保存于所述硬件安全模块内的密钥来验证的签名。
15.根据权利要求10所述的方法,其中每个确定都由所述硬件安全模块、所述处理器核或这两者来执行。
16.根据权利要求10所述的方法,其中在正常使用时,所述第一存储器包含表示由所述处理器执行的第一应用的数据,并且所述另外的数据表示由所述处理器执行的替代应用,所述替代应用与所述第一应用相比具有减少的功能。
17.根据权利要求10所述的方法,其中所述处理器包括第一集成电路,并且其中所述第二存储器包括与所述第一集成电路分开的第二集成电路。
18.一种用于车辆的电子控制单元,所述电子控制单元包括处理器,所述处理器包括:
处理器核;
存储器,所述存储器存储包括用于所述处理器核的指令的数据;以及
防篡改硬件安全模块,所述防篡改硬件安全模块耦接到所述存储器以用于读取和写入;
其中所述硬件安全模块被布置为在所述数据从所述存储器中被读取以被传递给所述处理器核来执行时对所述数据执行加密错误校正,
其中,所述电子控制单元设置有密钥存储器,所述密钥存储器存储至少一个第一加密密钥,并且
其中所述数据被划分成至少一个块,每个块都以与所述第一加密密钥对应的第二加密密钥来签名,使得所述加密错误校正在执行所述加密错误校正中依赖于所述第一加密密钥以指出每个数据块是否都是以对应的第二加密密钥来签名的,以及所述数据块自签名以来是否已经被改动,并且如果被改动了则对所述数据中的任何改动进行校正。
19.根据权利要求18所述的电子控制单元,其中所述处理器核设置有用于所述数据的高速缓存,所述高速缓存被布置为以高速缓存行读取所述数据;每个块都能够表示在加密错误校正之后的一个高速缓存行的数据。
20.根据权利要求18所述的电子控制单元,被布置为使得所述处理器核不可能读取所述数据,除非通过所述硬件安全模块。
21.根据权利要求18所述的电子控制单元,其中所述密钥存储器设置在所述硬件安全模块内。
22.根据权利要求18所述的电子控制单元,其中所述处理器包括单个集成电路。
23.一种用于操作车辆的电子控制单元的方法,所述电子控制单元包括处理器,所述处理器包括:
处理器核;
存储器,所述存储器存储包括用于所述处理器核的指令的数据;以及
防篡改硬件安全模块,所述防篡改硬件安全模块耦接到所述存储器以用于读取和写入;
所述方法包括在所述数据从所述存储器中被读取以被传递给所述处理器核来执行时使用所述硬件安全模块来对所述数据执行加密错误校正,
所述方法包括在所述电子控制单元内存储至少一个第一加密密钥,以及
其中所述数据被划分成至少一个块,每个块都以与所述第一加密密钥对应的第二加密密钥来签名,使得所述加密错误校正在执行所述加密错误校正中依赖于所述第一加密密钥以指出每个数据块是否都是以对应的第二加密密钥来签名的,以及所述数据块自签名以来是否已经被改动,并且如果被改动了则对所述数据中的任何改动进行校正。
24.根据权利要求23所述的方法,其中所述处理器核具有用于所述数据的高速缓存,所述方法包括以高速缓存行读取所述数据;每个块表示在加密错误校正之后的一个高速缓存行的数据。
25.根据权利要求23所述的方法,其中所述电子控制单元在所述硬件安全模块内。
26.根据权利要求23所述的方法,其中所述处理器包括单个集成电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1512462.1 | 2015-07-16 | ||
GB1512462.1A GB2540408B (en) | 2015-07-16 | 2015-07-16 | Electronic control units for vehicles |
PCT/GB2016/052104 WO2017009634A1 (en) | 2015-07-16 | 2016-07-12 | Electronic control units for vehicles |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107949847A CN107949847A (zh) | 2018-04-20 |
CN107949847B true CN107949847B (zh) | 2022-03-29 |
Family
ID=54014061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680050445.8A Active CN107949847B (zh) | 2015-07-16 | 2016-07-12 | 车辆的电子控制单元 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10824765B2 (zh) |
CN (1) | CN107949847B (zh) |
DE (1) | DE112016002785T5 (zh) |
GB (1) | GB2540408B (zh) |
WO (1) | WO2017009634A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3284619B1 (en) * | 2016-08-19 | 2019-02-13 | WEGMANN automotive GmbH | Tire pressure monitoring sensor |
DE102017202079A1 (de) * | 2017-02-09 | 2018-08-09 | Bayerische Motoren Werke Aktiengesellschaft | System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug |
IT201700050086A1 (it) * | 2017-05-09 | 2018-11-09 | St Microelectronics Srl | Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato, dispositivo e procedimento |
US10719606B2 (en) * | 2018-02-23 | 2020-07-21 | Infineon Technologies Ag | Security processor for an embedded system |
EP3604049B1 (en) | 2018-08-03 | 2022-10-05 | Aptiv Technologies Limited | Secure vehicle control unit |
CN111443950A (zh) * | 2018-12-29 | 2020-07-24 | 北京奇虎科技有限公司 | 车载***安全启动方法及车载*** |
EP3736716B1 (en) * | 2019-05-10 | 2021-12-22 | Aptiv Technologies Limited | Method for protecting an electronic control unit |
CN115795472A (zh) * | 2022-11-08 | 2023-03-14 | 北京地平线信息技术有限公司 | 芯片的安全启动控制方法、装置、电子设备和存储介质 |
FR3143146A1 (fr) * | 2022-12-08 | 2024-06-14 | Vitesco Technolgies | Unite de commande electronique pour vehicule comprenant une boite noire transactionnelle, et procede de fonctionnement d’une telle unite de commande electronique |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725703B2 (en) * | 2005-01-07 | 2010-05-25 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
WO2006082985A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
JP4720781B2 (ja) * | 2007-05-07 | 2011-07-13 | 株式会社デンソー | 車両制御装置のデータ書換システム |
US7945792B2 (en) * | 2007-10-17 | 2011-05-17 | Spansion Llc | Tamper reactive memory device to secure data from tamper attacks |
US8694714B2 (en) * | 2008-01-18 | 2014-04-08 | Spansion Llc | Retargeting of a write operation retry in the event of a write operation failure |
US8650399B2 (en) * | 2008-02-29 | 2014-02-11 | Spansion Llc | Memory device and chip set processor pairing |
US8103909B2 (en) * | 2008-09-15 | 2012-01-24 | Juniper Networks, Inc. | Automatic hardware-based recovery of a compromised computer |
JP5641244B2 (ja) * | 2011-09-12 | 2014-12-17 | トヨタ自動車株式会社 | 車両用ネットワークシステム及び車両用情報処理方法 |
US8775784B2 (en) * | 2011-11-11 | 2014-07-08 | International Business Machines Corporation | Secure boot up of a computer based on a hardware based root of trust |
US9092630B2 (en) * | 2012-11-19 | 2015-07-28 | Dell Products L.P. | Systems and methods for isolation of information handling resources in response to external storage resource boot |
US9705678B1 (en) * | 2014-04-17 | 2017-07-11 | Symantec Corporation | Fast CAN message authentication for vehicular systems |
-
2015
- 2015-07-16 GB GB1512462.1A patent/GB2540408B/en active Active
-
2016
- 2016-07-12 DE DE112016002785.0T patent/DE112016002785T5/de not_active Withdrawn
- 2016-07-12 WO PCT/GB2016/052104 patent/WO2017009634A1/en active Application Filing
- 2016-07-12 US US15/745,175 patent/US10824765B2/en active Active
- 2016-07-12 CN CN201680050445.8A patent/CN107949847B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
DE112016002785T5 (de) | 2018-04-26 |
GB201512462D0 (en) | 2015-08-19 |
GB2540408A (en) | 2017-01-18 |
US20190012483A1 (en) | 2019-01-10 |
US10824765B2 (en) | 2020-11-03 |
WO2017009634A1 (en) | 2017-01-19 |
GB2540408B (en) | 2021-09-15 |
CN107949847A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107949847B (zh) | 车辆的电子控制单元 | |
CN109564606B (zh) | 用于将安全协处理器用于固件保护的方法和装置 | |
JP2021184254A (ja) | セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法 | |
US11809543B2 (en) | Validation of software residing on remote computing devices | |
CN109923518B (zh) | 用于安全关键***的软件更新机制 | |
CN105892348B (zh) | 用于运行控制设备的方法 | |
US7584350B2 (en) | Method for booting up software in the boot sector of a programmable read-only memory | |
US9778642B2 (en) | Protection unit for a programmable data-processing system | |
JP6659180B2 (ja) | 制御装置および制御方法 | |
Dhobi et al. | Secure firmware update over the air using trustzone | |
US20200233676A1 (en) | Bios management device, bios management system, bios management method, and bios management program-stored recording medium | |
CN112219186B (zh) | 用于将程序代码包安装到设备中的方法以及设备和机动车 | |
JP2013171467A (ja) | 情報処理装置、車両用電子制御装置、データ読み書き方法 | |
GB2592830A (en) | Electronic control units for vehicles | |
JP6698778B2 (ja) | 制御システム | |
JP2021057043A (ja) | トラストアンカコンピューティング装置を備える処理システムおよび対応する方法 | |
EP4198788A1 (en) | Method and device for checking an integrity of data stored in a non-volatile memory of an electronic control unit of an vehicle | |
JP4811132B2 (ja) | 車両用盗難防止装置 | |
US20220300612A1 (en) | Security processing device | |
JP6177748B2 (ja) | 組み込み制御装置 | |
CN113935012A (zh) | 用于执行控制设备的安全启动序列的方法 | |
CN115762122A (zh) | 用于监控作用链的组件的方法 | |
CN114091008A (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 |