CN103198270A - 使用清单来记录有效软件和校准的存在 - Google Patents

使用清单来记录有效软件和校准的存在 Download PDF

Info

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
Application number
CN2012104152907A
Other languages
English (en)
Other versions
CN103198270B (zh
Inventor
K.M.贝尔特斯
J.T.库尔尼克
R.J.盖尼耶
T.M.富里斯特
A.I.阿尔拉巴迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of CN103198270A publication Critical patent/CN103198270A/zh
Application granted granted Critical
Publication of CN103198270B publication Critical patent/CN103198270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24034Model 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.一种用于在允许一个或多个软件文件在控制器中被执行之前验证所述一个或多个软件文件已经被适当地闪存到所述控制器的内存中的系统,所述系统包括:
用于在所述控制器的内存中限定至少一个内存段以便存储至少一个软件文件的装置;
用于为所述内存段中的所述至少一个软件文件保留内存段的装置;
用于将所述至少一个软件文件闪存到所述内存段中的装置;
用于将至少一个软件标记设置在软件内存区中的软件清单槽中指示所述至少一个软件文件已经被适当地闪存的装置;以及
用于在允许所述软件文件由所述控制器执行之前验证所述软件标记已经被适当地设置的装置。
CN201210415290.7A 2011-10-28 2012-10-26 使用清单来记录有效软件和校准文件的存在 Active CN103198270B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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