CN103198270A - 使用清单来记录有效软件和校准的存在 - Google Patents
使用清单来记录有效软件和校准的存在 Download PDFInfo
- Publication number
- CN103198270A CN103198270A CN2012104152907A CN201210415290A CN103198270A CN 103198270 A CN103198270 A CN 103198270A CN 2012104152907 A CN2012104152907 A CN 2012104152907A CN 201210415290 A CN201210415290 A CN 201210415290A CN 103198270 A CN103198270 A CN 103198270A
- Authority
- CN
- China
- Prior art keywords
- software
- memory
- calibration
- calibration file
- file
- 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
- 230000015654 memory Effects 0.000 claims abstract description 231
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims description 62
- 229910003460 diamond Inorganic materials 0.000 description 7
- 239000010432 diamond Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000008672 reprogramming Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005183 dynamical system Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- 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/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24034—Model checker, to verify and debug control software
Abstract
本发明涉及使用清单来记录有效软件和校准的存在,具体地,一种用于在引导加载器将文件闪存到在车辆ECU上的内存中之后在允许操作软件执行之前验证操作软件和校准文件存在且有效的系统和方法。ECU内存限定用于操作软件和校准文件的内存段。软件清单设置在在内存中的操作软件段之前的内存槽中。同样地,校准清单设置在在ECU内存中的校准段之前的内存槽中。在软件已经被闪存到ECU内存中之后,将软件标记设置在软件清单内存槽中,并且每当校准文件被闪存时,将用于特定校准文件的校准标记设置在校准清单中。
Description
相关申请的交叉引用
本申请要求2011年10月28日提交的标题为“Using a Manifest to Record Presence of Valid Software and Calibration(使用清单来记录有效软件和校准的存在)”的美国临时专利申请序号No.61/552,968的优先权日期的权益。
技术领域
本发明大体涉及一种用于在引导加载器将文件闪存到的控制器上的内存中之后在允许操作软件在控制器中执行之前确定操作软件和/或校准文件存在且有效的系统和方法,并且更具体地,涉及一种用于在引导加载器将文件闪存到的车辆电子控制单元 (ECU)的内存中之后在允许操作软件在ECU中执行之前确定操作软件和/或校准文件存在且有效的系统和方法,其中该方法包括:在用于操作软件和校准文件两者的内存段的开头创建编程清单,从而识别在软件和校准内存段中的所有可编程部分是有效的。
背景技术
大多数现代车辆包括:电子控制单元(ECU);或控制诸如动力系、气候控制系统、信息娱乐系统、车身系统、底盘系统等车辆系统的操作的控制器。这样的控制器需要为特定目的设计的软件以便执行控制功能。随着这些控制器的数量和复杂性的增加,以及由恶意软件的开发者所构成的威胁的增加,认证被加载在机动车控制器上的二进制文件的来源和内容比以往更重要。在车辆控制器中使用未经适当验证的或者更糟地恶意设计的软件的后果包括:车辆或其系统的非预期行为;车辆上的防盗特征的丧失;对诸如里程计的部件的可能的窜改;以及其它车辆特征和功能的丧失。
一种已知的数字编码技术被称为非对称密钥密码术,其使用数字签名以便认证被编程进控制器中的文件。如本领域的技术人员将容易理解的,非对称密钥密码术使用被称为私人密钥和公共密钥的一对算术相关的密钥来对消息加密和解密。为了创建数字签名,签名人使用他的仅为他自己所知的私人密钥来对消息加密。数字签名可稍后由另一方使用与签名人的私人密钥成对的公共密钥来解密。
闪存(flashing)是用于将软件、校准文件和其它应用上传到车辆ECU的内存或其它可编程装置中的熟知的过程。引导加载器是在ECU的内存上加载的嵌入式软件程序,其在ECU和对软件进行闪存的编程装置之间提供接口。引导加载器将操作软件和校准文件闪存到ECU内存中,其中操作软件提供促使各种车辆功能彼此结合操作的软件,并且校准文件是各种车辆构造和调谐参数,诸如特定车辆系统的二进制开关、阈值等。在允许上传到ECU或ECU的重新闪存之前,引导加载器通常利用非对称密钥加密并且存储必须被用来对由编程装置传递的数字签名进行解码的公共密钥来防止恶意软件或校准文件被上传到ECU中。
在ECU通电和/或复位时,引导加载器可以通过校验在软件和/或校准文件内存块内被称为“存在模式”的特定数字模式的发生来确定操作软件和/或校准文件存在且有效。然而,利用该闪存验证过程存在几个缺点。例如,引导加载器必须“知道”存在模式位于何处,即使所述模式可以固定内存增量移动。此外,软件和校准再分区可使得引导加载器与存储在内存中的软件和校准文件不兼容。另外,因为所述存在模式被包括在软件和校准文件中,所以所述模式在执行完整性检查之前存在。因此,在当存在模式被写入时和当完整性检查被执行时之间存在机会窗,其中黑客可能将恶意软件/校准写入到ECU中并且诸如通过拔去电池停止编程操作。这将允许恶意软件/校准得到执行。
一种已知的全球引导加载器规范协议允许引导加载器在完整性检查在闪存完成之后通过之后写入存在模式。然而,仍然存在如下问题:由于存在模式在上一个软件或校准文件中,所以不知道什么文件在其它的在先的软件或校准文件中。例如,个人可能擦除校准内存段,在所有内存段中的恶意文件中闪存(flash)并且写入有效的存在模式。换句话说,用于在闪存过程期间闪存软件和校准文件的已知的技术遵循如下程序:其中多个文件将被闪存,然后引导加载器将通过确保上一个文件被正确地闪存来验证已闪存的文件的完整性。这呈现安全性问题,因为黑客会适当地闪存上一个文件,引导加载器在该上一个文件已经被适当地闪存之前使用该上一个文件来验证所有文件,其中黑客可能已经在上一个文件之前恶意地闪存了不合适的软件或校准文件。在该场景下,提供有效的上一个软件或校准文件但是写入恶意的前一个软件或校准文件的黑客,可以促使引导加载器退出引导加载器以运行操作软件,因为引导加载器将相信所有的文件已经被正确地闪存。
发明内容
根据本发明的教义,公开了一种用于在引导加载器将文件闪存到在车辆ECU上的内存之后在允许操作软件执行之前验证操作软件和校准文件存在且有效的系统和方法。ECU内存限定用于操作软件和校准文件中的每一个的内存段。软件清单设置在在ECU内存中的操作软件段之前的内存槽中。类似地,校准清单设置在在ECU内存中的校准段之前的内存槽中。在软件已经被闪存到ECU内存中之后,将软件标记设置在软件清单内存槽中,并且每当校准文件被闪存时,将用于特定校准文件的校准标记设置在校准清单中。引导加载器检查以看在闪存之后所有的标记是否已经被适当地设置以确定在引导加载器允许操作软件执行之前操作软件和校准文件已经被适当地闪存。
本发明还提供如下方案:
1. 一种用于在允许操作软件在控制器中执行之前验证所述操作软件和校准文件已经被适当地闪存到所述控制器中的方法,所述方法包括:
在控制器内存中限定内存段以便存储所述操作软件和一个或多个校准文件;
为所述内存段中的操作软件保留软件内存区并且为所述一个或多个校准文件保留一个或多个校准文件内存区;
将所述操作软件闪存到所述软件内存区中;
将软件标记设置在所述软件内存区中的软件清单内存槽中,从而指示所述操作软件已经被适当地闪存和验证;
将所述一个或多个校准文件闪存到所述一个或多个校准文件内存区中;
将用于每个独立的校准文件的校准标记设置在所述一个或多个校准文件内存区中的至少一个校准文件清单内存槽中,从而指示特定校准文件已经被适当地闪存和验证;以及
在允许所述操作软件由所述控制器执行之前,验证所有的操作软件和校准文件标记已经被适当地设置。
2. 根据方案1所述的方法,其特征在于,在所述软件内存区中所述软件清单在所述操作软件的前面。
3. 根据方案1所述的方法,其特征在于,在所述校准文件内存区中所述至少一个校准文件清单在所述一个或多个校准文件的前面。
4. 根据方案1所述的方法,其特征在于,为所述一个或多个校准文件保留一个或多个校准文件内存区包括为多个校准文件保留多个校准文件内存区,其中单个校准文件设置在每个校准文件内存区中,并且其中将所述一个或多个校准文件闪存到所述一个或多个校准文件内存区中包括将独立的校准文件闪存到所述多个校准文件内存区中的每一个中。
5. 根据方案4所述的方法,其特征在于,所述多个校准文件内存区是彼此相连的。
6. 根据方案5所述的方法,其特征在于,为每个独立的校准文件设置校准标记包括:将校准标记设置在单个校准文件清单内存槽中,其存储用于所有的校准文件的所有的校准标记。
7. 根据方案4所述的方法,其特征在于,为每个独立的校准文件设置所述校准标记包括:为每个校准文件提供包括单个校准标记的独立的校准文件内存槽。
8. 根据方案7所述的方法,其特征在于,所述多个校准文件内存区不是彼此相连的。
9. 根据方案1所述的方法,其特征在于,所述控制器是在车辆上的电子控制单元(ECU)。
10. 一种用于在允许一个或多个软件文件在车辆上的电子控制单元(ECU)中被执行之前验证所述一个或多个软件文件已经被适当地闪存到所述ECU的内存中的方法,所述方法包括:
在所述ECU的内存中限定至少一个内存段以便存储至少一个软件文件;
为所述内存段中的所述至少一个软件文件保留内存区;
将所述至少一个软件文件闪存到所述内存区中;
将至少一个软件标记设置在所述软件内存区中的软件清单内存槽中,从而指示所述至少一个软件文件已经被适当地闪存;以及
在允许所述软件文件由所述控制器执行之前,验证所述软件标记已经被适当地设置。
11. 根据方案10所述的方法,其特征在于,限定至少一个内存段包括限定用于存储操作软件的内存段,并且其中为所述至少一个软件文件保留内存段包括为所述操作软件保留内存段,并且其中将所述至少一个软件文件闪存到所述内存段中包括将所述操作软件闪存到所述内存段中,并且其中将所述至少一个软件标记设置在软件清单内存槽中包括将所述操作软件标记设置在在所述内存段的紧前面的操作软件清单槽中。
12. 根据方案10所述的方法,其特征在于,限定至少一个内存段包括限定用于存储多个校准文件的内存段,并且其中为所述至少一个软件文件保留内存段包括为所述校准文件中的每一个保留来自多个内存段的独立的内存段,并且其中将所述至少一个软件文件闪存到所述内存段中包括将所述多个校准文件闪存到所述内存段中,并且其中将所述至少一个软件标记设置在软件清单内存槽中包括:将对于每个校准文件的独立的校准标记设置在一个或多个校准标记清单槽中。
13. 根据方案12所述的方法,其特征在于,所述多个校准文件内存区是彼此相连的。
14. 根据方案13所述的方法,其特征在于,设置用于每个独立的校准文件的校准标记包括:将校准标记设置在存储用于所有的校准文件的所有的校准标记的单个校准文件清单内存槽中。
15. 根据方案12所述的方法,其特征在于,设置用于每个独立的校准文件的所述校准标记包括:为每个校准文件提供包括单个校准标记的独立的校准文件内存槽。
16. 根据方案15所述的方法,其特征在于,所述多个校准文件内存区不是彼此相连的。
17. 根据方案10所述的方法,其特征在于,所述内存段存储多个软件文件,其中每个软件文件包括独立的软件文件ID,并且其中闪存所述软件文件包括基于所述ID以预定的序列将所述软件文件闪存到所述内存段中。
18. 一种用于在允许一个或多个软件文件在控制器中被执行之前验证所述一个或多个软件文件已经被适当地闪存到所述控制器的内存中的系统,所述系统包括:
用于在所述控制器的内存中限定至少一个内存段以便存储至少一个软件文件的装置;
用于为所述内存段中的所述至少一个软件文件保留内存段的装置;
用于将所述至少一个软件文件闪存到所述内存段中的装置;
用于将至少一个软件标记设置在软件内存区中的软件清单槽中指示所述至少一个软件文件已经被适当地闪存的装置;以及
用于在允许所述软件文件由所述控制器执行之前验证所述软件标记已经被适当地设置的装置。
19. 根据方案18所述的系统,其特征在于,用于限定至少一个内存段的所述装置限定用于存储操作软件的内存段,并且其中用于为所述至少一个软件文件保留内存段的所述装置为所述操作软件保留内存段,并且其中用于将所述至少一个软件文件闪存到所述内存段中的所述装置将所述操作软件闪存到所述内存段中,并且其中用于将所述至少一个软件标记设置在软件清单内存槽中的装置将操作软件标记设置在在所述内存段的紧前面的操作软件清单槽中。
20. 根据方案18所述的系统,其特征在于,用于限定至少一个内存段的装置限定用于存储多个校准文件的内存段,并且其中用于为所述至少一个软件文件保留内存段的装置为所述校准文件中的每一个保留来自多个内存段的独立的内存段,并且其中用于将所述至少一个软件文件闪存到所述内存段中的装置将所述多个校准文件闪存到所述内存段中,并且其中用于将至少一个软件标记设置在软件清单内存槽中的装置将对于每一个校准文件的独立的校准标记设置在一个或多个校准标记清单槽中。
本发明的另外的特征将从结合附图所作出的下列描述和所附权利要求变得明显。
附图说明
图1是示出了数字签名验证过程的操作的系统的框图;
图2是示出用于识别操作软件和校准部分在ECU内存中是否存在并有效以允许引导加载器执行操作软件的过程的流程图;
图3是示出了包括识别软件和校准文件存在并有效的标记的编程清单的ECU中的内存的表征;以及
图4是示出了包括识别软件和校准文件存在并有效的标记的编程清单的ECU中的内存的另一表征。
具体实施方式
对涉及用于在引导加载器已经将操作软件校准文件闪存到车辆ECU中之后在允许操作软件执行之前确定操作软件和/或校准文件存在且有效的系统和方法的本发明实施例的下列讨论,本质上仅仅是示例性的,并且决不旨在限制本发明或其应用或使用。例如,此处的讨论涉及验证软件和校准文件已被适当地闪存到车辆ECU。然而,如本领域的技术人员将了解的,该系统和方法可以具有针对将软件和/或校准文件闪存到其它类型的控制器中的应用。
图1是用于使用非对称密钥数字签名以便认证被编程到控制器中的文件的已知方法的框图10。如本领域的技术人员将理解的,非对称密钥密码使用一对被称为私人密钥和公共密钥的算术相关的密钥来对消息加密和解密。为了创建数字签名,签名人使用他的仅为他自己所知的私人密钥来对文件或消息加密。数字签名可稍后由另一方使用与签名人的私人密钥成对的公共密钥来解密以认证文件或消息。
在签名步骤12中,内容文件14被提供,其中内容文件14可能是一份软件、校准文件、或将在控制器中使用的其它“软部分(soft-part)”内容。哈希(hash)计算在内容文件14上进行以产生哈希值16。然后,用签名人的私人密钥对哈希值16加密以产生数字签名18,其中数字签名18仅对那个特定的内容文件14有效。
数字签名18和内容文件14因此在验证步骤20中被使用,该验证步骤20将由在此处讨论的应用中的ECU中的引导加载器执行。使用签名人的公共密钥来对数字签名18解密以产生哈希值22。同时, 由验证器在内容文件14上进行哈希计算以产生计算的哈希值24。在框26处,将解密的哈希值22与计算的哈希值24相比较。如果解密的哈希值22匹配计算的哈希值24,则有效的决定在椭圆形28处发出,并且内容文件14被使用。如果解密的哈希值22不匹配计算的哈希值24,则无效的决定在椭圆形30处发出,并且内容文件14被不使用。
本发明提出了一种用于确认操作软件通过使用引导加载器被适当地闪存到车辆ECU的内存中的技术。该技术在内存段中的第一软件闪存段处为软件分配预定的内存空间,其中软件代码紧随内存空间。内存空间被限定为识别操作软件已经例如通过将标记设置在软件清单中而被适当地闪存的软件编程清单(manifest)。第一内存段被用作软件清单,因为它在软件重编程序期间首先被擦除以记录软件编程结果。用于清单的内存空间是由引导加载器闪存允许的最小写入尺寸的增量。被闪存的软件不重写该内存空间。在引导加载器对软件编程之后,诸如上述数字签名验证的完整性检查的结果被记录在清单中。
本发明还提出了一种用于确认校准文件通过使用引导加载器被适当地闪存到车辆ECU的内存中的技术。该技术在内存段中的第一校准文件闪存段处为校准文件分配预定的内存空间,其中校准文件代码紧随内存空间。内存空间被限定为识别校准文件已经例如通过将标记设置在校准文件清单中而被适当地闪存的校准文件编程清单。第一内存段被用作校准文件清单,因为它在校准文件重新编程期间首先被擦除以记录校准文件结果。用于清单的内存空间是由引导加载器闪存允许的最小写入尺寸的增量。被闪存的校准文件不重写该内存空间。在引导加载器对每个校准文件编程之后,完整性检查的结果被记录在清单空间中。
在ECU复位时,引导加载器将检查软件和校准文件清单中的所有软件和校准标记。如果所有的标记是有效的,则允许转移到操作软件。另外,引导加载器保持在引导(boot)模式中。
图2是示出了用于当通过引导加载器闪存过程将操作软件和/或校准文件闪存到在车辆ECU上的内存时使用编程清单来记录有效的软件和/或校准文件的存在的过程的流程图40。在框42处的引导加载器编程执行控制引导加载器编程功能,并且该功能可以经由在服务设施处的服务工具的请求而输入。引导加载器编程执行检测请求以对软件或校准编程并且进入框44以执行一些操作,诸如针对特定车辆ECU上传或闪存操作软件和/或校准文件。每当引导加载器闪存操作软件或校准文件时,它首先擦除(一个或多个)适当的内存段,其在编程清单内存空间中设置(一个或多个)标记指示软件或特定的校准文件尚未被适当地闪存。在决策菱形46处,每当独立份的软件或校准文件通过确定标记已经被适当地设置在清单而被闪存时,引导加载器确定有效的闪存是否发生。
如果在决策菱形46处操作软件或校准文件已经被适当地闪存,则在框48处引导加载器执行完整性检查并且更新编程清单。然后,在决策菱形50处引导加载器确定是否所有的操作软件和校准文件已经被适当地闪存,并且如果否,则恢复到在框42处的引导加载器编程执行以闪存下一份软件或校准文件。如果在决策菱形50处所有的软件和/或校准文件被适当地闪存,则在决策菱形52处引导加载器确定在编程清单中的所有操作软件和校准文件标记是否已经被适当地设置并且是有效的,并且如果是,则允许在框54处执行操作软件。如果在决策菱形46处特定的操作软件校准文件的有效的闪存尚未发生或在决策菱形52处所有的编程标记是无效的,则引导加载器对在框56处的诸如编程工具的请求者发送指示闪存尚未适当地发生的否定响应消息。
图3是包括存储由引导加载器闪存的操作软件和校准文件的闪存内存段62的ECU内存60的一部分的表征。在闪存段62的该表征中,引导加载器存储特定应用的一个操作软件文件和四个校准文件,这是一个非限制性实施例。操作软件被闪存到内存段64中,并且校准文件被闪存到内存段66中。如上所讨论的,编程清单被限定在内存段62中用于操作软件和校准文件两者,并且该清单在操作软件或校准文件的内存段的开头。在该示例中,软件清单被存储在在软件内存区64之前的内存槽68处,并且仅包括单个软件标记70,因为操作软件即存储在段64中的操作软件仅包括单个部分。同样地,校准清单被定位在在内存段66中的校准文件之前的内存槽72处,其中校准清单存储用于独立的校准文件中的每一个的校准标记74,其在该示例中将是四个校准标记。如上所提及,清单内存空间被设置在操作软件和校准文件的内存段的开头,因为如果操作软件或特定的校准文件被用新的文件重新编程,则该空间将是待被擦除的内存的第一部分,其中新的标记将需要被设置在清单中用于那些新的文件。注意由于校准文件均驻留在相同的内存段中,所以所有的校准文件必须在任何校准闪存事件期间被编程,并且该段在写入第一校准文件之前被擦除一次。
图4是ECU内存80的一部分的另一表征,其中与ECU内存60相似的元件由相同的附图标记表示。在ECU内存80中,代替在校准文件紧前面对于所有校准文件具有信号(单个)校准清单,包括校准标记的校准清单被设置成在校准文件中的每一个的紧前面。例如,在该实施例中,校准清单被设置在内存槽82处用于存储在内存段84中的校准文件并且包括单个校准标记,校准清单被设置在内存槽86处用于存储在内存段88的校准文件并且也包括单个校准标记,校准清单被设置在内存槽90用于存储在内存段92中的校准文件并且也包括单个校准标记,并且校准清单被设置在内存槽94处用于存储在内存段96中的校准文件并且也包括单个校准文件。ECU内存80的构造可以具有超过ECU内存60的构造的益处,因为校准文件可以被闪存到彼此不相连的不同的校准段,其中校准清单将被设置在独立的校准段的开头,从而在新的校准文件被下载时可以被重写。
在可以为ECU内存60和80的组合的另一实施例中,ECU内存中的哪些段被闪存用于一个或多个校准文件的知识可以确定在校准清单中有多少标记,其中一个闪存段可以包括单个校准文件,并且其它闪存段可以包括多个校准文件。
在另一种方法中,可能存在用于整个闪存段的一个标记,无论在那个段中是否存在多于一个校准文件。引导加载器将确保:在那个标记通过强制执行校准文件的编程序列而被设置之前所有的校准文件被编程。例如,每个校准文件将被给予特定的序列ID,并且校准文件的闪存将按那些ID的次序执行。例如,具有3的序列ID的校准文件将不会在具有2的序列ID的校准文件之前被闪存。在该实施例中,在下一个校准文件被闪存之前,被闪存的校准文件的编程必须是成功的,即,签名必须是有效的。在上一个校准文件被写入和验证之后,引导加载器设置标记以指示在那个段中的所有的校准文件的成功的编程。
如本领域的技术人员将很好地理解的,此处所讨论的用以描述本发明的若干和各个步骤和过程可以指由计算机、处理器或使用电现象操作和/或变换数据的其它电子计算装置执行的操作。那些计算机和电子装置可以利用各种易失性和/或非易失性内存,包括带有在其上存储的可执行程序的非暂态计算机可读介质,所述可执行程序包括能够由计算机或处理器执行的各种代码或可执行指令,其中内存和/或计算机可读介质可包括所有形式和类型的内存以及其它计算机可读介质。
上面的讨论仅公开并描述了本发明的示例性实施例。根据这样的讨论以及根据附图和权利要求,本领域的技术人员将容易地意识到,在不脱离如所附权利要求中所限定的本发明的精神和范围的情况下,能够在其中作出各种改变、修改和变型。
Claims (10)
1.一种用于在允许操作软件在控制器中执行之前验证所述操作软件和校准文件已经被适当地闪存到所述控制器中的方法,所述方法包括:
在控制器内存中限定内存段以便存储所述操作软件和一个或多个校准文件;
为所述内存段中的操作软件保留软件内存区并且为所述一个或多个校准文件保留一个或多个校准文件内存区;
将所述操作软件闪存到所述软件内存区中;
将软件标记设置在所述软件内存区中的软件清单内存槽中,从而指示所述操作软件已经被适当地闪存和验证;
将所述一个或多个校准文件闪存到所述一个或多个校准文件内存区中;
将用于每个独立的校准文件的校准标记设置在所述一个或多个校准文件内存区中的至少一个校准文件清单内存槽中,从而指示特定校准文件已经被适当地闪存和验证;以及
在允许所述操作软件由所述控制器执行之前,验证所有的操作软件和校准文件标记已经被适当地设置。
2.根据权利要求1所述的方法,其特征在于,在所述软件内存区中所述软件清单在所述操作软件的前面。
3.根据权利要求1所述的方法,其特征在于,在所述校准文件内存区中所述至少一个校准文件清单在所述一个或多个校准文件的前面。
4.根据权利要求1所述的方法,其特征在于,为所述一个或多个校准文件保留一个或多个校准文件内存区包括为多个校准文件保留多个校准文件内存区,其中单个校准文件设置在每个校准文件内存区中,并且其中将所述一个或多个校准文件闪存到所述一个或多个校准文件内存区中包括将独立的校准文件闪存到所述多个校准文件内存区中的每一个中。
5.根据权利要求4所述的方法,其特征在于,所述多个校准文件内存区是彼此相连的。
6.根据权利要求5所述的方法,其特征在于,为每个独立的校准文件设置校准标记包括:将校准标记设置在单个校准文件清单内存槽中,其存储用于所有的校准文件的所有的校准标记。
7.根据权利要求4所述的方法,其特征在于,为每个独立的校准文件设置所述校准标记包括:为每个校准文件提供包括单个校准标记的独立的校准文件内存槽。
8.根据权利要求7所述的方法,其特征在于,所述多个校准文件内存区不是彼此相连的。
9.一种用于在允许一个或多个软件文件在车辆上的电子控制单元(ECU)中被执行之前验证所述一个或多个软件文件已经被适当地闪存到所述ECU的内存中的方法,所述方法包括:
在所述ECU的内存中限定至少一个内存段以便存储至少一个软件文件;
为所述内存段中的所述至少一个软件文件保留内存区;
将所述至少一个软件文件闪存到所述内存区中;
将至少一个软件标记设置在所述软件内存区中的软件清单内存槽中,从而指示所述至少一个软件文件已经被适当地闪存;以及
在允许所述软件文件由所述控制器执行之前,验证所述软件标记已经被适当地设置。
10.一种用于在允许一个或多个软件文件在控制器中被执行之前验证所述一个或多个软件文件已经被适当地闪存到所述控制器的内存中的系统,所述系统包括:
用于在所述控制器的内存中限定至少一个内存段以便存储至少一个软件文件的装置;
用于为所述内存段中的所述至少一个软件文件保留内存段的装置;
用于将所述至少一个软件文件闪存到所述内存段中的装置;
用于将至少一个软件标记设置在软件内存区中的软件清单槽中指示所述至少一个软件文件已经被适当地闪存的装置;以及
用于在允许所述软件文件由所述控制器执行之前验证所述软件标记已经被适当地设置的装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161552968P | 2011-10-28 | 2011-10-28 | |
US61/552968 | 2011-10-28 | ||
US13/557,060 US8930710B2 (en) | 2011-10-28 | 2012-07-24 | Using a manifest to record presence of valid software and calibration |
US13/557060 | 2012-07-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103198270A true CN103198270A (zh) | 2013-07-10 |
CN103198270B CN103198270B (zh) | 2015-11-25 |
Family
ID=48084482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210415290.7A Active CN103198270B (zh) | 2011-10-28 | 2012-10-26 | 使用清单来记录有效软件和校准文件的存在 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8930710B2 (zh) |
CN (1) | CN103198270B (zh) |
DE (1) | DE102012109615B4 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789672A (zh) * | 2017-01-18 | 2017-05-31 | 北京经纬恒润科技有限公司 | 一种报文路由处理方法及装置 |
US11412835B2 (en) | 2015-06-08 | 2022-08-16 | Cosmetic Technologies, L.L.C. | Automated delivery system of a cosmetic sample |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9600662B2 (en) * | 2014-06-06 | 2017-03-21 | T-Mobile Usa, Inc. | User configurable profiles for security permissions |
US9430220B2 (en) * | 2014-07-22 | 2016-08-30 | GM Global Technology Operations LLC | Method, medium, and apparatus for re-programming flash memory of a computing device |
JP2017167916A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社デンソー | 情報処理システム |
DE102016007498A1 (de) | 2016-06-18 | 2017-12-21 | Audi Ag | Manipulationssichere Bereitstellung einer Funktionalität eines Assistenzsystems eines Kraftfahrzeugs |
US9928890B2 (en) | 2016-08-29 | 2018-03-27 | Apple Inc. | System and method for calibrating memory using credit-based segmentation control |
DE102016221108A1 (de) * | 2016-10-26 | 2018-04-26 | Volkswagen Aktiengesellschaft | Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs |
US10430178B2 (en) | 2018-02-19 | 2019-10-01 | GM Global Technology Operations LLC | Automated delivery and installation of over the air updates in vehicles |
US11822955B2 (en) * | 2020-01-17 | 2023-11-21 | Steering Solutions Ip Holding Corporation | System and method for decentralized vehicle software management |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505105B2 (en) * | 2001-01-05 | 2003-01-07 | Delphi Technologies, Inc. | Electronic control unit calibration |
US6550052B1 (en) * | 1999-11-09 | 2003-04-15 | Daimlerchrysler Corporation | Software development framework for constructing embedded vehicle controller software |
CN101031880A (zh) * | 2004-09-30 | 2007-09-05 | 罗伯特·博世有限公司 | 用于描述存储内容和用于描述存储内容的传输的方法 |
US20110138188A1 (en) * | 2009-12-04 | 2011-06-09 | Electronics And Telecommunications Research Institute | Method and system for verifying software platform of vehicle |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5619698A (en) * | 1995-05-05 | 1997-04-08 | Apple Computer, Inc. | Method and apparatus for patching operating systems |
US6571191B1 (en) | 1998-10-27 | 2003-05-27 | Cummins, Inc. | Method and system for recalibration of an electronic control module |
US7366589B2 (en) | 2004-05-13 | 2008-04-29 | General Motors Corporation | Method and system for remote reflash |
DE102005001430A1 (de) * | 2004-09-30 | 2006-04-13 | Robert Bosch Gmbh | Verfahren zur Beschreibung von Speicherinhalten und zur Beschreibung des Transfers von Speicherinhalten |
-
2012
- 2012-07-24 US US13/557,060 patent/US8930710B2/en active Active
- 2012-10-10 DE DE102012109615.5A patent/DE102012109615B4/de active Active
- 2012-10-26 CN CN201210415290.7A patent/CN103198270B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6550052B1 (en) * | 1999-11-09 | 2003-04-15 | Daimlerchrysler Corporation | Software development framework for constructing embedded vehicle controller software |
US6505105B2 (en) * | 2001-01-05 | 2003-01-07 | Delphi Technologies, Inc. | Electronic control unit calibration |
CN101031880A (zh) * | 2004-09-30 | 2007-09-05 | 罗伯特·博世有限公司 | 用于描述存储内容和用于描述存储内容的传输的方法 |
US20110138188A1 (en) * | 2009-12-04 | 2011-06-09 | Electronics And Telecommunications Research Institute | Method and system for verifying software platform of vehicle |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11412835B2 (en) | 2015-06-08 | 2022-08-16 | Cosmetic Technologies, L.L.C. | Automated delivery system of a cosmetic sample |
CN106789672A (zh) * | 2017-01-18 | 2017-05-31 | 北京经纬恒润科技有限公司 | 一种报文路由处理方法及装置 |
CN106789672B (zh) * | 2017-01-18 | 2020-08-04 | 北京经纬恒润科技有限公司 | 一种报文路由处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
DE102012109615A1 (de) | 2013-05-02 |
DE102012109615B4 (de) | 2022-05-12 |
CN103198270B (zh) | 2015-11-25 |
US20130111271A1 (en) | 2013-05-02 |
US8930710B2 (en) | 2015-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103198270B (zh) | 使用清单来记录有效软件和校准文件的存在 | |
CN103218569B (zh) | 用以替换引导加载器公共密钥的方法 | |
CN105938433B (zh) | 用于对机动车的控制设备进行编程的方法 | |
CN103677891B (zh) | 用于选择性软件回退的方法 | |
US7711944B2 (en) | Method and apparatus for securely updating and booting code image | |
JP4733840B2 (ja) | 署名方法 | |
US8881308B2 (en) | Method to enable development mode of a secure electronic control unit | |
CN101308538B (zh) | 检查固件完整性的方法和设备 | |
US8856538B2 (en) | Secured flash programming of secondary processor | |
CN103220264A (zh) | 提供数字签名以确保闪存编程功能的方法 | |
US20070028115A1 (en) | Method for guaranteeing the integrity and authenticity of flashware for control devices | |
EP2704053A1 (en) | Method and system for updating a firmware of a security module | |
US20140075517A1 (en) | Authorization scheme to enable special privilege mode in a secure electronic control unit | |
CN106133739B (zh) | 数据到安全元件的非易失性存储器中的加载的安全保护 | |
CN112231647A (zh) | 一种软件授权验证方法 | |
US20140058532A1 (en) | Method for partial flashing of ecus | |
US20170060779A1 (en) | Method and memory module for security-protected write processes and/or read processes on the memory module | |
CN113805908A (zh) | 固件更新系统和方法 | |
CN111190611A (zh) | 软件安装方法 | |
CN107949847A (zh) | 车辆的电子控制单元 | |
KR20170102285A (ko) | 보안 요소 | |
JP2007507020A (ja) | プログラミング可能な読出し専用メモリのブートセクタ内にソフトウェアをリロードするための方法 | |
EP3460705B1 (en) | Distributed deployment of unique firmware | |
JP6468168B2 (ja) | 電子制御装置 | |
CN117677948A (zh) | 用于验证数字签名的方法、车辆计算单元和车辆 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |