CN103218569B - 用以替换引导加载器公共密钥的方法 - Google Patents

用以替换引导加载器公共密钥的方法 Download PDF

Info

Publication number
CN103218569B
CN103218569B CN201210416317.4A CN201210416317A CN103218569B CN 103218569 B CN103218569 B CN 103218569B CN 201210416317 A CN201210416317 A CN 201210416317A CN 103218569 B CN103218569 B CN 103218569B
Authority
CN
China
Prior art keywords
public keys
memory
stored
boot loader
key
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
Application number
CN201210416317.4A
Other languages
English (en)
Other versions
CN103218569A (zh
Inventor
K.M.贝尔特斯
T.M.富里斯特
M.H.科斯丁
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 CN103218569A publication Critical patent/CN103218569A/zh
Application granted granted Critical
Publication of CN103218569B publication Critical patent/CN103218569B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Abstract

本发明涉及用以替换引导加载器公共密钥的方法,具体地,一种用于将新的或替换公共密钥写入到存储在车辆ECU的内存中的内存段中的引导加载器而无需重新写入整个引导加载器的系统和方法。该方法包括将密钥表限定在包括多个空的内存槽的引导加载器内存段中,这些内存槽如果被需要的话则可用于存储替换公共密钥。密钥表是引导加载器内存段的独立段,因而密钥表内存槽不被引导加载器代码使用。

Description

用以替换引导加载器公共密钥的方法
相关申请的交叉引用
本申请要求2011年10月28日提交的标题为“MethodtoReplaceBootloaderPublicKey(替换引导加载器公共密钥的方法)”的美国临时专利申请序号No.61/552,962的优先权日的权益。
技术领域
本发明大体涉及一种用于替换作为被存储在控制器中的引导加载器的一部分的公共密钥的系统和方法,并且更具体地,涉及一种用于替换作为被存储在车辆电子控制单元(ECU)中的引导加载器的一部分的公共密钥的系统和方法,其中该方法包括限定包括作为引导加载器内存闪存段的一部分的内存槽但是可用于独立地存储替换公共密钥的密钥表。
背景技术
大多数现代车辆包括:电子控制单元(ECU);或控制诸如动力系、气候控制系统、信息娱乐系统、车身系统、底盘系统等车辆系统的操作的控制器。这样的控制器需要为特定目的设计的软件以便执行控制功能。随着这些控制器的数量和复杂性的增加,以及由恶意软件的开发者所构成的威胁的增加,认证被加载在机动车控制器上的二进制文件的来源和内容比以往更重要。在车辆控制器中使用未经适当验证的或者更糟地恶意设计的软件的后果包括:车辆或其系统的非预期行为;车辆上的防盗特征的丧失;对诸如里程计的部件的可能的窜改;以及其它车辆特征和功能的丧失。
一种已知的数字编码技术被称为非对称密钥密码术,其使用数字签名以便认证被编程进控制器中的文件。如本领域的技术人员将容易理解的,非对称密钥密码术使用被称为私人密钥和公共密钥的一对算术相关的密钥来对消息加密和解密。为了创建数字签名,签名人使用他的仅为他自己所知的私人密钥来对消息加密。数字签名可稍后由另一方使用与签名人的私人密钥成对的公共密钥来解密。
闪存(flashing)是用于将软件、校准文件和其它应用上传到车辆ECU的内存或其它可编程装置中的熟知的过程。引导加载器是在ECU上加载的嵌入式软件程序,其在ECU和对软件进行闪存的编程装置之间提供接口。引导加载器通常利用非对称密钥密码术并且存储必须用来在允许ECU执行软件或校准之前对由编程装置传递的数字签名进行解码的公共密钥。
如果在引导加载器中的公共密钥受到损坏或出于其它原因需要被替换,则期望由适当的服务人员提供安全的方法来允许密钥被替换。引导加载器大体上使用内存的包括公共密钥的仅一个闪存段,因此无法使公共密钥进行独立可编程的校准。因此,如果公共密钥需要被替换,则整个引导加载器需要被重新写入和替换,这是不期望的,因为中断操作可能导致可能不再被编程的ECU。
发明内容
根据本发明的教义,公开了一种用于将新的或替换公共密钥写入到存储在车辆ECU的内存中的内存段中的引导加载器而无需重新写入整个引导加载器的系统和方法。该方法包括将密钥表限定在包括多个空的内存槽的引导加载器内存段中,这些内存槽如果被需要的话则可用于存储替换公共密钥。在密钥表中的每个内存槽包括指示内存槽是否加载有有效公共密钥的有效性标记,其中引导加载器使用在密钥表中的具有有效公共密钥的上一个槽。密钥表是引导加载器内存段的独立保留段,因而密钥表内存槽通常不被引导加载器代码使用。
本发明还提供如下方案:
1.一种用于替换在控制器中存储的引导加载器中的公共密钥的方法,所述方法包括:
将引导加载器内存段限定在所述引导加载器将被存储的控制器中的内存中;
将密钥表限定在包括用于存储公共密钥的多个可用内存槽的引导加载器内存段中;
将初始公共密钥存储在所述密钥表中的第一内存槽中并且使所述密钥表中的其余内存槽为空;以及
将替换公共密钥存储在所述密钥表中的上一个存储的公共密钥下方的下一个内存槽中。
2.根据方案1所述的方法,其特征在于,其还包括:在存储所述替换密钥之前确定存储所述替换密钥的请求是否是有效的。
3.根据方案1所述的方法,其特征在于,将所述初始公共密钥存储在第一内存槽中包括:将所述第一内存槽中的有效性标记设置成有效,并且将所述密钥表中的所有其它内存槽设置成无效。
4.根据方案3所述的方法,其特征在于,将所述替换公共密钥存储在下一个内存槽中包括:将所述下一个内存槽的有效性标记设置成有效。
5.根据方案1所述的方法,其特征在于,存储替换公共密钥包括:确定所述替换公共密钥是否与存储在包括公共密钥的密钥表中的上一个内存槽中的公共密钥相同,并且确定该内存槽的有效性标记是否被设置成有效。
6.根据方案5所述的方法,其特征在于,其还包括:如果所述替换公共密钥与已经在所述上一个内存槽中的公共密钥相同并且如果所述有效的标记已经被设置成无效,则将所述有效性标记设置成有效。
7.根据方案1所述的方法,其特征在于,其还包括:如果所述密钥表中的所有的内存槽是满的并且有必要替换所述公共密钥,则擦除整个密钥表。
8.根据方案1所述的方法,其特征在于,在非对称密钥加密过程中使用所述公共密钥用于安全地将程序闪存到所述控制器中,所述非对称密钥加密过程包括用于哈希运算将被存储在所述控制器中的内容文件并且使用所述公共密钥来验证所述内容文件的哈希的数字签名的过程。
9.根据方案1所述的方法,其特征在于,所述控制器是车辆上的电子控制单元(ECU)。
10.一种用于替换存储在车辆上的电子控制单元(ECU)的内存中的引导加载器中的公共密钥的方法,所述方法包括:
将引导加载器内存段限定在所述引导加载器将被存储的ECU中的内存中;
将密钥表限定在包括用于存储公共密钥的多个可用内存槽的引导加载器内存段中;
将初始公共密钥存储在所述密钥表中的第一内存槽中并且使所述密钥表中的其余内存槽为空;
将与所述密钥表中的第一内存槽相关联的有效性标记设置成有效,并且将与空槽相关联的所有其它有效性标记设置成无效;
将替换公共密钥存储在所述密钥表中的上一个存储的公共密钥下方的下一个内存槽中;以及
一旦所述替换公共密钥被存储,就将所述下一个内存槽的有效性标记设置成有效。
11.根据方案10所述的方法,其特征在于,存储替换公共密钥包括:确定所述替换公共密钥是否与存储在包括公共密钥的密钥表中的上一个内存槽中的公共密钥相同,并且确定该内存槽的有效性标记是否被设置成有效。
12.根据方案10所述的方法,其特征在于,其还包括:如果所述替换公共密钥与已经在所述上一个内存槽中的公共密钥相同并且如果所述有效性标记已经被设置成无效,则将所述有效性标记设置成有效。
13.根据方案10所述的方法,其特征在于,其还包括:如果所述密钥表中的所有的内存槽是满的并且有必要替换所述公共密钥,则擦除整个密钥表。
14.根据方案10所述的方法,其特征在于,在非对称密钥加密过程中使用所述公共密钥用于安全地将程序闪存到所述控制器中,所述非对称密钥加密过程包括用于哈希运算将被存储在所述控制器中的内容文件并且使用所述公共密钥来验证所述内容文件的哈希的数字签名的过程。
15.一种用于替换在控制器中存储的引导加载器中的公共密钥的系统,所述系统包括:
用于将引导加载器内存段限定在所述引导加载器将被存储的控制器中的内存中的装置;
用于将密钥表限定在包括用于存储公共密钥的多个可用内存槽的引导加载器内存段中的装置;
用于将初始公共密钥存储在所述密钥表中的第一内存槽中并且使所述密钥表中的其余内存槽为空的装置;以及
用于将替换公共密钥存储在所述密钥表中的上一个存储的公共密钥下方的下一个内存槽中的装置。
16.根据方案15所述的系统,其特征在于,用于将所述初始公共密钥存储在第一内存槽中的装置将所述第一内存槽中有效性标记设置成有效,并且将所述密钥表中的所有其它内存槽设置成无效。
17.根据方案16所述的系统,其特征在于,用于将所述替换公共密钥存储在下一个内存槽中的装置将所述下一个内存槽的有效性标记设置成有效。
18.根据方案15所述的系统,其特征在于,用于存储替换公共密钥的装置确定所述替换公共密钥是否与存储在包括公共密钥的密钥表中的上一个内存槽中的公共密钥相同,并且确定该内存槽的有效性标记是否被设置成有效。
19.根据方案18所述的系统,其特征在于,其还包括:如果所述替换公共密钥与已经在所述上一个内存槽中的公共密钥相同并且如果所述有效性标记已经被设置成无效,则将所述有效性标记设置成有效。
20.根据方案15所述的系统,其特征在于,在非对称密钥加密过程中使用所述公共密钥用于安全地将程序闪存到所述控制器中,所述非对称密钥加密过程包括用于哈希运算将被存储在所述控制器中的内容文件并且使用所述公共密钥来验证所述内容文件的哈希的数字签名的过程。
本发明的另外的特征将从结合附图所作出的下列描述和所附权利要求变得明显。
附图说明
图1是示出了用于证明数字签名的过程的示意框图;
图2是用于使用数字签名来签署和验证电子内容的方法的框图,包括将内容和签名文件从编程源传送到执行控制器;
图3是示出了如何将电子内容和数字签名物理地传送至车辆中的控制器的示意图;
图4是包括用于存储与引导加载器内存段分离的替换公共密钥的密钥表内存段的ECU内存的一部分的表征;
图5是示出了用于替换车辆ECU的内存中的引导加载器公共密钥的方法的流程图;
图6是示出了用以用内置恢复系统替代密钥的操作的流程图;并且
图7是示出了用于读取密钥的过程的流程图。
具体实施方式
对涉及用于替换存储在车辆ECU内存中的引导加载器中的公共密钥的系统和方法的本发明的实施例的下列讨论,本质上仅仅是示例性的,并且决不旨在限制本发明或其应用或使用。例如,如此处所讨论的,用于替换引导加载器中的公共密钥的技术是用于车辆ECU。然而,如本领域的技术人员将了解的,用于替换引导加载器中的公共密钥的方法可以具有用于其它控制器的应用。
图1是用于使用非对称密钥数字签名用于认证被编程到控制器中的文件的已知方法的框图10。如本领域的技术人员将理解的,非对称密钥密码使用一对被称为私人密钥和公共密钥的算术相关的密钥来对消息加密和解密。为了创建数字签名,签名人使用他的仅为他自己所知的私人密钥来对数字消息加密。数字签名可稍后由另一方使用与签名人的私人密钥成对的公共密钥来解密以认证文件或消息。
在签署步骤12中,内容文件14被提供,其中内容文件14可能是一份软件、校准文件、或将在控制器中被使用的其它“软部分(soft-part)”内容。哈希(hash)计算在内容文件14上执行以产生对内容文件14加密的哈希值16。然后,用签名人的私人密钥对哈希值16加密以产生数字签名18,其中数字签名18仅对该特定的内容文件有效。
数字签名18和内容文件14然后在验证步骤20中被使用,该验证步骤20将由在此处讨论的应用中的ECU中的引导加载器执行。使用签名人的公共密钥来对数字签名18解密以产生解密的哈希值22。同时,由验证器在内容文件14上进行哈希计算以产生计算的哈希值24。在框26处,将解密的哈希值22与计算的哈希值24相比较。如果解密的哈希值22匹配计算的哈希值24,则有效的决定在椭圆形28处发出,并且内容文件14被使用。如果解密的哈希值22不匹配计算的哈希值24,则无效的决定在椭圆形30处发出,并且内容文件14不被使用。
图2是示出了用于使用数字签名来签署和验证电子内容的方法的框图40,包括将内容和签名文件从编程源传送到执行控制器。文件存储库42存储被统称为内容文件44的可执行的软件、校准文件或其它“软部分”文件。内容文件44通常是二进制文件。期望获得数字签名46用于内容文件44。为了对内容文件44进行数字签署,将内容文件44提供给签署服务器48。在签署服务器48上,哈希计算在内容文件44上执行以产生哈希值52。使用存储在签署服务器48上的私人密钥对哈希值52加密,其中该加密产生数字签名46。然后,将数字签名46提供返回给存储库42。
此时,内容文件44和数字签名46两者均存在于存储库42中。挑战因此是通过由汽车制造商使用的各种商务系统来传送内容文件44和数字签名46,以及安装和确认在车辆中的控制器上的内容文件44。一般而言,汽车制造商将具有至少两个负责在车辆中的控制器上安装软件和校准文件的组织或部门,即制造和服务部门。图2示出制造数据库56,该数据库56由汽车制造商的制造部门使用以便管理被安装作为在生产车辆中的“部分”的电子文件。图2同样地示出服务数据库62,该服务数据库62由汽车制造商的服务部门使用以便管理被安装作为在车辆中的在服务设施中起作用的“服务部分”的电子文件。如图2中所示,制造数据库56和服务数据库62两者接收将被用于制造部门和服务部门的相应功能的内容文件44和数字签名46的副本。
为了实际上将内容文件44安装在车辆中的控制器上,使用了编程工具68。如所示出的,编程工具68也接收内容文件44和数字签名46的副本。即,制造部门可能对编程工具68提供来自制造数据库56的内容文件44和数字签名46以便安装在新的生产车辆上,或服务部门可能对编程工具68提供来自服务数据库62的内容文件44和数字签名46以便安装在被提供服务的车辆上。
对于编程工具68来说下一个步骤是将内容文件44安装在车辆中的控制器上。ECU74是将实际上使用内容文件44的控制器。下面是ECU74的架构的简要讨论。ECU74上的软件由引导加载器、可执行软件、以及一个或多个校准文件组成。出于该讨论目的,ECU74被假定具有单个中央处理单元(CPU)。在实际车辆中,ECU74可能具有多个CPU,并且每个CPU将具有引导加载器、可执行软件、以及一个或多个校准文件。
ECU74中的引导加载器负责确认并安装新的可执行软件和校准文件。因此,在该段落中所描述的功能由ECU74中的引导加载器执行。编程工具68对ECU74提供内容文件44和数字签名46。由引导加载器使用存储库42的公共密钥来对数字签名46解密以产生解密的哈希值78。公共签名密钥可以驻留在ECU74中或结合内容文件44和数字签名46被提供给ECU74。同时,由引导加载器在内容文件44上进行哈希计算以产生计算的哈希值84。在框80处,将解密的哈希值78与计算的哈希值84相比较。如果解密的哈希值78匹配计算的哈希值84,则有效的决定88被发出,并且内容文件44被使用。如果将被使用的内容文件44是可执行软件,则引导加载器将它安装作为ECU74上新的可执行软件。如果将被使用的内容文件44是校准文件,则引导加载器将它安装作为ECU74上的所述一个或多个校准文件中的一个。如果解密的哈希值78不匹配计算的哈希值84,则无效的决定86被发出,并且在ECU74上不使用内容文件44。
图3是示出了如何将电子内容和数字签名物理地传送至车辆控制器的示意图。车辆36包括图2中所示和以上所讨论的ECU74。ECU74可以控制发动机、变速器、底盘、车身、信息娱乐系统、或车辆36上的其它系统。内容文件44和数字签名46被提供给在此处示出为制造数据库56的中央数据库。将内容文件44和数字签名46转移到制造数据库56可在公司网络上发生。制造数据库56对编程工具68提供内容文件44和数字签名46,其中该转移可通过将编程工具68附接到可以访问数据库56的计算机来完成。编程工具68经由连接38与ECU74通信,该连接可以是有线的或无线的。利用建立的连接38,内容文件44和数字签名46可从编程工具68被下载到ECU74,其中引导加载器可以执行先前所讨论的安全验证功能。
本发明提出了一种用于如果当前存储的公共密钥已经受到损坏或需要被替换则写入或闪存用于存储在车辆ECU的内存中的引导加载器的新的公共密钥或替换公共密钥以替换现有公共密钥的技术。如上所讨论的,安全的闪存编程需要嵌入在引导加载器中的公共密钥。本发明描述了一种用以替换引导加载器中的公共密钥的成本有效且可靠的技术。该方法包括利用ECU闪存内存来存储密钥、支持无擦除闪存写入的数据结构、以及用以可靠地替换密钥的算法。该技术包括保留可用于存储多个公共密钥的ECU内存中的专用内存段,其中该内存段被称为密钥表,并且其中该密钥表是在或可以在与引导加载器软件或代码相同的内存闪存段内。当引导加载器程序首先用软件和/或校准文件写入或闪存时,密钥表变空,而不是存储在第一密钥表内存槽中的最初的公共密钥。这允许密钥表随后被写入而无需擦除存储有引导加载器的闪存内存段。在密钥表表中的每个内存槽包括有效的密钥标记,该有效的密钥标记当被设置时指示在该内存槽中的密钥是有效的密钥。引导加载器将使用密钥表中的上一个有效的密钥。
如果引导加载器公共密钥需要被替换,则替换密钥被写入到密钥表中的第一空排或内存槽,并且其它先前存储的公共密钥不被修改或擦除。如果在密钥表中不存在用以接收替换公共密钥的可用的内存槽或密钥替换失败,则该算法用指示写入失败的适当的响应来对尝试写入新密钥的请求者进行回复。引导加载器将在安全的闪存编程功能期间使用密钥表中的上一个有效的密钥来写入到ECU。可以使用安全的机制来替换密钥,其中ECU特定例程可以使用ECU的当前有效的密钥来签署,并且指令和例程可使用与安全的闪存编程类似的策略来做出。
图4是ECU内存120的一部分的表征,示出了包括内存槽124的内存段122,在内存槽124中,引导加载器存储在ECU74中。在内存段122中的内存槽124中的几个,在此处四个槽,被限定为密钥表126并且被专用以便仅将公共密钥存储在引导加载器内存段122内。密钥表126可以位于引导加载器内存段122中的任何位置。初始公共密钥将被存储在密钥表126中的第一槽128中,并且密钥表126中剩余的槽将保持对随后的替换密钥开放。空密钥槽默认为无效的密钥项。引导加载器将被编程以使用在密钥表126中的密钥列表中的上一个有效的密钥。在密钥表126中的每个内存槽包括有效性标记130,该有效性标记130识别当前是有效的那些密钥,其中引导加载器使用在密钥表126中的上一个有效的密钥作为“当前有效的密钥”。在密钥表126中为空的那些槽由默认的已擦除内存状态“标记为”无效,并且因此将不被使用。如果密钥闪存过程正被执行并且功率被中断,其中在替换密钥可能已经被写入到下一个可用的密钥表内存槽中,则该内存槽将仍包括无效的标记设置,因为新的密钥闪存过程未完成。因此,引导加载器将不使用该上一个写入的密钥,而是将返回到在其上方的先前有效的密钥。
如果用于写入新的密钥的闪存过程已经完成并且在密钥表126中的该内存槽被指示为是有效的,则引导加载器将使用该密钥作为有效的密钥,即使在该密钥上方的内存槽也被指示为有效的。如果用于新的密钥的闪存过程被中断,则前一个有效的密钥仍可以使用。被用来存储密钥的闪存内存的默认的擦除状态将具有密钥将被认为无效的效果。第一擦除的内存槽还可以用来迅速找到上一个有效的密钥。在正常操作期间执行的引导加载器内存段122的任何完整性检查将排除密钥表项,除非检查和被更新以解释最近写入的密钥数据。如果在密钥表126中的所有的内存槽充满密钥,则整个引导加载器需要被重新写入以便替换公共密钥并且再一次打开密钥表126。
图5是示出了如上所述的用于替换车辆ECU内存中的引导加载器公共密钥的方法的流程图90。在框92处引导加载器编程执行控制ECU内存中的引导加载器,并且可以是在服务设施处的服务或编程工具。引导加载器编程执行在框94处可以与引导加载器框联系以执行一些操作,诸如转移数据、维护、改编程序、重新闪存等。引导加载器确定公共密钥更新是否在决策菱形96处被请求,并且如果否,则返回到框92以等候来自下一个闪存过程的引导加载器编程执行的指令。如果公共密钥更新在决策菱形96处被请求,则引导加载器确定该请求在决策菱形98处是否有效,并且如果是,则在框100处定位密钥表中的第一可用的内存槽从而可用于接受替换公共密钥。任何适当的安全过程可以用来确定该请求是有效的。然后,引导加载器确定内存槽是否是可用的以在决策菱形102处接受替换密钥,并且如果是,则在框104处将替换公共密钥写入到在密钥表中的该槽。然后,引导加载器在决策菱形106处确定替换公共密钥是否已经被写入到ECU内存,并且如果是,则在框108处将新的密钥标记为有效的并且在框110处将肯定响应消息发送给请求者。如果在决策菱形98处请求是无效的或在决策菱形102处在密钥表中找不到可用的槽或在决策菱形106处替换密钥写入已经不适当地发生,则在框112处引导加载器向请求者发送否定响应消息。
图6是示出了用以用内置恢复系统替换公共密钥的过程的流程图140。算法在框142处初始化以开始用于替换密钥的过程。在框144处,算法将密钥索引设置到在密钥表126中的不为空的上一个内存槽以确定该内存槽是否具有有效的密钥。在决策菱形146处,算法确定将被写入到密钥表中的新的替换密钥是否与在密钥表126中的上一个充满的内存槽中的密钥相同以确定所写入的上一个密钥是否为有效的写入。如果在决策菱形146处新的密钥与上一个槽中的密钥相同,则算法在决策菱形148处确定用于该密钥的有效性标记130是否已经被设置成有效。如果有效性密钥标记130已经被设置成有效并且新的密钥与被试图将被闪存的密钥相同,则过程在150处结束。如果在决策菱形148处有效性标记未被设置成有效,则算法在框152处将有效性标记设置成有效并且过程在框150处结束。如果在决策菱形146处被闪存的新的密钥与密钥表126的上一个充满槽中的密钥不同,则在框154处算法将新的密钥写入到在密钥表126中的下一个开放槽(openslot)并且在框156处将用于新槽的有效标记设置为有效。
图7是示出了用于在正常闪存操作期间读取密钥的过程的流程图160。在框162处算法初始化读取密钥序列,然后在框164处识别在密钥表126中的包括有效的标记的上一个槽。在框166处算法读取在该槽中的密钥值,并且过程在框168处结束。
如本领域的技术人员将很好地理解的,此处所讨论的用以描述本发明的若干和各个步骤和过程可以指由计算机、处理器或使用电现象操作和/或变换数据的其它电子计算装置执行的操作。那些计算机和电子装置可以利用各种易失性和/或非易失性内存,包括带有在其上存储的可执行程序的非暂态计算机可读介质,所述可执行程序包括能够由计算机或处理器执行的各种代码或可执行指令,其中内存和/或计算机可读介质可包括所有形式和类型的内存以及其它计算机可读介质。
上面的讨论仅公开并描述了本发明的示例性实施例。根据这样的讨论以及根据附图和权利要求,本领域的技术人员将容易地意识到,在不脱离如所附权利要求中所限定的本发明的精神和范围的情况下,能够在其中作出各种改变、修改和变型。

Claims (20)

1.一种用于替换在控制器中存储的引导加载器中的公共密钥的方法,所述方法包括:
将引导加载器内存段限定在所述引导加载器将被存储的控制器中的内存中;
将密钥表限定在包括用于存储公共密钥的多个可用内存槽的引导加载器内存段中;
将初始公共密钥存储在所述密钥表中的第一内存槽中并且使所述密钥表中的其余内存槽为空;
接收公共密钥更新请求;以及
将替换公共密钥存储在所述密钥表中的上一个存储的公共密钥下方的下一个内存槽中,其中使用所述替换公共密钥而不重新写入所述引导加载器,并且其中先前存储的初始公共密钥不被修改或擦除。
2.根据权利要求1所述的方法,其特征在于,其还包括:在存储所述替换密钥之前确定存储所述替换密钥的请求是否是有效的。
3.根据权利要求1所述的方法,其特征在于,将所述初始公共密钥存储在第一内存槽中包括:将所述第一内存槽中的有效性标记设置成有效,并且将所述密钥表中的所有其它内存槽设置成无效。
4.根据权利要求3所述的方法,其特征在于,将所述替换公共密钥存储在下一个内存槽中包括:将所述下一个内存槽的有效性标记设置成有效。
5.根据权利要求1所述的方法,其特征在于,存储替换公共密钥包括:确定所述替换公共密钥是否与存储在包括公共密钥的密钥表中的上一个内存槽中的公共密钥相同,并且确定该内存槽的有效性标记是否被设置成有效。
6.根据权利要求5所述的方法,其特征在于,其还包括:如果所述替换公共密钥与已经在所述上一个内存槽中的公共密钥相同并且如果所述有效的标记已经被设置成无效,则将所述有效性标记设置成有效。
7.根据权利要求1所述的方法,其特征在于,其还包括:如果所述密钥表中的所有的内存槽是满的并且有必要替换所述公共密钥,则擦除整个密钥表。
8.根据权利要求1所述的方法,其特征在于,在非对称密钥加密过程中使用所述公共密钥用于安全地将程序闪存到所述控制器中,所述非对称密钥加密过程包括用于哈希运算将被存储在所述控制器中的内容文件并且使用所述公共密钥来验证所述内容文件的哈希的数字签名的过程。
9.根据权利要求1所述的方法,其特征在于,所述控制器是车辆上的电子控制单元(ECU)。
10.一种用于替换存储在车辆上的电子控制单元(ECU)的内存中的引导加载器中的公共密钥的方法,所述方法包括:
将引导加载器内存段限定在所述引导加载器将被存储的电子控制单元(ECU)中的内存中;
将密钥表限定在包括用于存储公共密钥的多个可用内存槽的引导加载器内存段中;
将初始公共密钥存储在所述密钥表中的第一内存槽中并且使所述密钥表中的其余内存槽为空;
将与所述密钥表中的第一内存槽相关联的有效性标记设置成有效,并且将与空槽相关联的所有其它有效性标记设置成无效;
将替换公共密钥存储在所述密钥表中的上一个存储的公共密钥下方的下一个内存槽中;
接收公共密钥更新请求;以及
一旦所述替换公共密钥被存储,就将所述下一个内存槽的有效性标记设置成有效,其中使用所述替换公共密钥而不重新写入所述引导加载器,并且其中先前存储的初始公共密钥不被修改或擦除。
11.根据权利要求10所述的方法,其特征在于,存储替换公共密钥包括:确定所述替换公共密钥是否与存储在包括公共密钥的密钥表中的上一个内存槽中的公共密钥相同,并且确定该内存槽的有效性标记是否被设置成有效。
12.根据权利要求10所述的方法,其特征在于,其还包括:如果所述替换公共密钥与已经在所述上一个内存槽中的公共密钥相同并且如果所述有效性标记已经被设置成无效,则将所述有效性标记设置成有效。
13.根据权利要求10所述的方法,其特征在于,其还包括:如果所述密钥表中的所有的内存槽是满的并且有必要替换所述公共密钥,则擦除整个密钥表。
14.根据权利要求10所述的方法,其特征在于,在非对称密钥加密过程中使用所述公共密钥用于安全地将程序闪存到所述内存中,所述非对称密钥加密过程包括用于哈希运算将被存储在所述内存中的内容文件并且使用所述公共密钥来验证所述内容文件的哈希的数字签名的过程。
15.一种用于替换在控制器中存储的引导加载器中的公共密钥的系统,所述系统包括:
用于将引导加载器内存段限定在所述引导加载器将被存储的控制器中的内存中的装置;
用于将密钥表限定在包括用于存储公共密钥的多个可用内存槽的引导加载器内存段中的装置;
用于将初始公共密钥存储在所述密钥表中的第一内存槽中并且使所述密钥表中的其余内存槽为空的装置;
接收公共密钥更新请求的装置;以及
用于将替换公共密钥存储在所述密钥表中的上一个存储的公共密钥下方的下一个内存槽中的装置,其中使用所述替换公共密钥而不重新写入所述引导加载器,并且其中先前存储的初始公共密钥不被修改或擦除。
16.根据权利要求15所述的系统,其特征在于,用于将所述初始公共密钥存储在第一内存槽中的装置将所述第一内存槽中有效性标记设置成有效,并且将所述密钥表中的所有其它内存槽设置成无效。
17.根据权利要求16所述的系统,其特征在于,用于将所述替换公共密钥存储在下一个内存槽中的装置将所述下一个内存槽的有效性标记设置成有效。
18.根据权利要求15所述的系统,其特征在于,用于存储替换公共密钥的装置确定所述替换公共密钥是否与存储在包括公共密钥的密钥表中的上一个内存槽中的公共密钥相同,并且确定该内存槽的有效性标记是否被设置成有效。
19.根据权利要求18所述的系统,其特征在于,其还包括:如果所述替换公共密钥与已经在所述上一个内存槽中的公共密钥相同并且如果所述有效性标记已经被设置成无效,则将所述有效性标记设置成有效。
20.根据权利要求15所述的系统,其特征在于,在非对称密钥加密过程中使用所述公共密钥用于安全地将程序闪存到所述控制器中,所述非对称密钥加密过程包括用于哈希运算将被存储在所述控制器中的内容文件并且使用所述公共密钥来验证所述内容文件的哈希的数字签名的过程。
CN201210416317.4A 2011-10-28 2012-10-26 用以替换引导加载器公共密钥的方法 Active CN103218569B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161552962P 2011-10-28 2011-10-28
US61/552962 2011-10-28
US13/557046 2012-07-24
US13/557,046 US9021246B2 (en) 2011-10-28 2012-07-24 Method to replace bootloader public key

Publications (2)

Publication Number Publication Date
CN103218569A CN103218569A (zh) 2013-07-24
CN103218569B true CN103218569B (zh) 2016-05-18

Family

ID=48084483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210416317.4A Active CN103218569B (zh) 2011-10-28 2012-10-26 用以替换引导加载器公共密钥的方法

Country Status (3)

Country Link
US (1) US9021246B2 (zh)
CN (1) CN103218569B (zh)
DE (1) DE102012109617A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2854066B1 (en) * 2013-08-21 2018-02-28 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
US9407638B2 (en) 2013-08-26 2016-08-02 The Boeing Company System and method for trusted mobile communications
KR102227263B1 (ko) * 2013-12-31 2021-03-15 삼성전자주식회사 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
US9344439B2 (en) * 2014-01-20 2016-05-17 The Boeing Company Executing unprotected mode services in a protected mode environment
US9798887B2 (en) * 2015-08-26 2017-10-24 Qualcomm Incorporated Computing device to securely activate or revoke a key
CN106789672B (zh) * 2017-01-18 2020-08-04 北京经纬恒润科技有限公司 一种报文路由处理方法及装置
US10430178B2 (en) 2018-02-19 2019-10-01 GM Global Technology Operations LLC Automated delivery and installation of over the air updates in vehicles
DE102018211139A1 (de) 2018-07-05 2020-01-09 Robert Bosch Gmbh Steuergerät sowie Verfahren zu dessen Betrieb
DE102018215141A1 (de) * 2018-09-06 2020-03-12 Continental Teves Ag & Co. Ohg Verfahren zur Verbesserung des Nutzungsgrades einer Fahrzeug-zu-X Kommunikationsvorrichtung sowie Fahrzeug-zu-X Kommunikationsvorrichtung
US11829517B2 (en) * 2018-12-20 2023-11-28 Intel Corporation Method and apparatus for trust domain creation and destruction
EP3736716B1 (en) * 2019-05-10 2021-12-22 Aptiv Technologies Limited Method for protecting an electronic control unit
KR102645542B1 (ko) * 2019-11-06 2024-03-11 한국전자통신연구원 차량 내부 네트워크 장치 및 방법
CN113708921B (zh) * 2020-05-22 2023-05-09 华为技术有限公司 一种基于冗余密码算法进行安全启动的方法及设备
CN114268447B (zh) * 2020-09-16 2023-04-07 京东科技信息技术有限公司 一种文件传输方法、装置、电子设备和计算机可读介质
US11804962B2 (en) 2021-04-29 2023-10-31 GM Global Technology Operations LLC System and method for establishing an in-vehicle cryptographic manager
FR3126249B1 (fr) * 2021-08-18 2023-07-07 Continental Automotive Procédé, dispositif et système d’autorisation d’accès à un véhicule partagé

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102123031A (zh) * 2009-12-23 2011-07-13 英特尔公司 硬件认证技术

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
AU2003277850A1 (en) * 2002-09-16 2004-04-30 Telefonaktiebolaget Lm Ericsson (Publ) Loading data onto an electronic device
ATE444617T1 (de) * 2003-01-07 2009-10-15 Qualcomm Inc System, vorrichtung und verfahren zum auswechseln eines kryptographischen schlüssels
WO2004114131A1 (de) * 2003-06-24 2004-12-29 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
US20070055881A1 (en) * 2005-09-02 2007-03-08 Fuchs Kenneth C Method for securely exchanging public key certificates in an electronic device
US8171283B2 (en) * 2007-03-19 2012-05-01 Telcordia Technologies, Inc. Vehicle segment certificate management using short-lived, unlinked certificate schemes
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate
CN101400059B (zh) * 2007-09-28 2010-12-08 华为技术有限公司 一种active状态下的密钥更新方法和设备
KR100925327B1 (ko) * 2007-11-26 2009-11-04 한국전자통신연구원 다운로더블 제한 수신 시스템에서 호스트의 망 이동 여부감지 방법 및 그 장치
CN101340282B (zh) * 2008-05-28 2011-05-11 北京易恒信认证科技有限公司 复合公钥的生成方法
US8761390B2 (en) * 2008-06-30 2014-06-24 Gm Global Technology Operations Production of cryptographic keys for an embedded processing device
US9800413B2 (en) * 2008-08-15 2017-10-24 Gm Global Technology Operations, Inc. System and method for performing an asymmetric key exchange between a vehicle and a remote device
TW201015322A (en) * 2008-10-08 2010-04-16 Ee Solutions Inc Method and system for data secured data recovery
US9652755B2 (en) * 2009-08-11 2017-05-16 Silver Spring Networks, Inc. Method and system for securely updating field upgradeable units
US8489893B2 (en) * 2010-01-29 2013-07-16 Hewlett-Packard Development Company, L.P. Encryption key rotation messages written and observed by storage controllers via storage media
US8578362B2 (en) * 2011-03-18 2013-11-05 Hamilton Sundstrand Corporation Method for downloading software to an electronics product
US8949813B2 (en) * 2011-07-29 2015-02-03 Dell Products Lp Systems and methods for facilitating activation of operating systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102123031A (zh) * 2009-12-23 2011-07-13 英特尔公司 硬件认证技术

Also Published As

Publication number Publication date
US20130111203A1 (en) 2013-05-02
CN103218569A (zh) 2013-07-24
DE102012109617A1 (de) 2013-05-02
US9021246B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
CN103218569B (zh) 用以替换引导加载器公共密钥的方法
CN103677891B (zh) 用于选择性软件回退的方法
CN103198270B (zh) 使用清单来记录有效软件和校准文件的存在
JP4980064B2 (ja) 携帯端末内に格納されたデータを第1のデータバージョンから更新データバージョンに差分的に更新する方法、携帯端末及びコンピュータプログラム
US8290660B2 (en) Data access to electronic control units
US20160259584A1 (en) Method for programming a control unit of a motor vehicle
US11803366B2 (en) Firmware updating system and method
US20100058073A1 (en) Storage system, controller, and data protection method thereof
CN102105883A (zh) 电子装置以及电子装置的软件或固件更新的方法
US20120272052A1 (en) Method for generating a cryptographic key for a protected digital data object on the basis of current components of a computer
US20110307668A1 (en) Method and system of updating shared memory
JP6585072B2 (ja) 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと
CN101542972A (zh) 能够传送权限对象的装置和便携式存储装置及传送权限对象的方法
US20140058532A1 (en) Method for partial flashing of ecus
JP7113115B2 (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
US11698970B2 (en) Double wrapping for verification
US11811743B2 (en) Online service store for endpoints
US20220132298A1 (en) Cloud-service on-boarding without prior customization of endpoints
EP2709073B1 (en) Electronic control unit of vehicle
CN114117364B (zh) 一种离线的软件许可控制方法及系统
EP3989480A1 (en) Virtual subscriber identification module and virtual smart card
US20220131847A1 (en) Subscription Sharing among a Group of Endpoints having Memory Devices Secured for Reliable Identity Validation
US11736453B2 (en) Secure key storage devices
US20220129391A1 (en) Track Activities of Endpoints having Secure Memory Devices for Security Operations during Identity Validation
CN114144759A (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