提供数字签名以确保闪存编程功能的方法

文档序号:7863877阅读:241来源:国知局
专利名称:提供数字签名以确保闪存编程功能的方法
技术领域
本发明大体涉及一种用于认证被编程到嵌入式控制器中的文件的方法,并且更具体地,涉及一种用于使用非对称密钥数字签名来认证被编程到自动嵌入式控制器中的二进制文件的源和内容的方法,包括用以处理从创建到使用的内容和签名文件的几种替代途径。
背景技术
随着越来越多的数字技术被引入到汽车中,恶意软件和硬件操纵的威胁增加。特别地,运行在车辆上的各种控制器所需的软件可能来自许多源。如果使用了一款假冒软件(非认证的并且因此未被适当地验证),或使用了一款恶意设计的软件,则车辆的性能和可靠性可能受到损害,并且车辆及其 系统可能表现出非预期的行为。可以用来验证电子消息的真实性的数字签名是已知的技术。然而,因为一直通过在控制器上的内容执行来管理来自内容源的(多份)数字签名文件的复杂性,所以数字签名未被广泛用于控制器嵌入式软件和其它内容的认证。需要用于克服该局限性的方法,使得数字签名可以有效地由汽车制造商管理,并且被编程到自动嵌入式控制器中的文件的源和内容可以得到适当地验证。

发明内容
根据本发明的教义,公开了一种用于提供数字签名以便认证被闪存编程到自动嵌入式控制器中的二进制文件的源和内容的方法。一份电子内容在签字服务器上通过使用签名人的私人密钥来创建哈希值并且对该值加密来进行数字地签名。然后,内容和数字签名文件使用几种替代途径中的一种被传送至编程工具,该编程工具进而将内容和签名文件加载到控制器上,内容将在该控制器上执行。控制器通过对签名文件解密以恢复哈希值并且将该哈希值与根据内容本身计算的哈希值进行比较来验证内容。用于一种内容的多个签名文件可能被需要,并且被容纳在所公开的方法中。本发明还提供以下方案:
1.一种用于提供数字签名以便认证被闪存编程到控制器中的内容文件的方法,所述方法包括:
提供来自文件存储库源的内容文件以及一个或多个数字签名;
将所述内容文件以及所述一个或多个数字签名从所述存储库转移到生产数据库;
将所述内容文件以及所述一个或多个数字签名从所述生产数据库转移到编程工具,所述编程工具是被配置成对所述控制器闪存编程的装置;
将所述内容文件以及所述一个或多个数字签名从所述编程工具转移到所述控制器;以

由所述控制器使用所述一个或多个数字签名来验证所述内容文件和所述存储库的真实性。2.根据方案I所述的方法,其特征在于,所述控制器通过使用所述存储库源的公共密钥来对所述一个或多个数字签名解密来验证所述内容文件以及所述存储库源的真实性,并且将解密的哈希值与根据所述内容文件计算的哈希值相比较。3.根据方案2所述的方法,其特征在于,所述内容文件包括文件标题,并且其中所述文件标题包括根据在所述内容文件中的内容计算的哈希值。4.根据方案I所述的方法,其特征在于,所述内容文件以及所述一个或多个数字签名均是带有独立部分编号的独立文件。5.根据方案I所述的方法,其特征在于,所述一个或多个数字签名中的每一个与所述内容文件独立地组合以创建具有其自己的部分编号的唯一文件。6.根据方案I所述的方法,其特征在于,所述一个或多个数字签名中的每一个独立地嵌入所述内容文件内以创建具有其自己的部分编号的唯一文件。7.根据方案I所述的方法,其特征在于,所述一个或多个数字签名的全部被组合到单个数字签名文件中,并且所述数字签名文件和所述内容文件具有相同的部分编号。8.根据方案7所述的方法,其特征在于,所述数字签名文件是可扩展标记语言(XML)文件。9.根据方案I所述的方法,其特征在于,所述一个或多个数字签名中的每一个被包含在其自己的数字签名文件中,并且所有的数字签名文件和内容文件具有相同的部分编号。10.根据方案8所述的方法,其特征在于,所述数字签名文件是可扩展标记语言(XML)文件。11.根据方案I所述的方法,其特征在于,所述内容文件以及全部的所述一个或多个数字签名被组合到具有单个部分编号的单个文件中。12.根据方案I所述的方法,其特征在于,所述控制器是在汽车中的嵌入式控制器。13.一种用于提供数字签名以便认证被闪存编程到在车辆上的电子控制单元(ECU)中的内容文件的方法,所述方法包括:
提供来自文件存储库源的内容文件以及一个或多个数字签名;
将所述内容文件以及所述一个或多个数字签名从所述存储库转移到生产数据库;
将所述内容文件以及所述一个或多个数字签名从所述生产数据库转移到编程工具,所述编程工具是被配置成对所述ECU闪存编程的装置;
将所述内容文件以及所述一个或多个数字签名从所述编程工具转移到所述ECU;以及由所述ECU使用所述一个或多个数字签名来验证所述内容文件以及所述存储库的真实性,其中所述ECU通过使用所述存储库的公共密钥来对所述一个或多个数字签名解密来验证所述内容文件以及所述存储库的真实性, 并且将解密的哈希值与根据所述内容文件计算的哈希值相比较。14.根据方案13所述的方法,其特征在于,所述内容文件以及所述一个或多个数字签名均是带有独立部分编号的独立文件。15.根据方案13所述的方法,其特征在于,所述一个或多个数字签名中的每一个与所述内容文件独立地组合以创建具有其自己的部分编号的唯一文件。16.根据方案13所述的方法,其特征在于,所述一个或多个数字签名中的每一个独立地嵌入所述内容文件内以创建具有其自己的部分编号的唯一文件。17.根据方案13所述的方法,其特征在于,所有的所述一个或多个数字签名被组合到单个数字签名文件中,并且所述数字签名文件以及所述内容文件具有相同的部分编号。18.根据方案13所述的方法,其特征在于,所述一个或多个数字签名中的每一个被包含在其自己的数字签名文件中,并且所有的数字签名文件和内容文件具有相同的部分编号。19.根据方案13所述的方法,其特征在于,所述内容文件以及所有的所述一个或多个数字签名被组合到具有单个部分编号的单个文件中。20.一种用于提供数字签名以 便认证被闪存编程到控制器中的内容文件的系统,所述系统包括:
用于提供来自文件存储库源的内容文件以及一个或多个数字签名的装置;
将所述内容文件以及所述一个或多个数字签名从所述存储库转移到生产数据库的装
置;
将所述内容文件以及所述一个或多个数字签名从所述生产数据库转移到编程工具的装置,所述编程工具是被配置成对所述控制器闪存编程的装置;
用于将所述内容文件以及所述一个或多个数字签名从所述编程工具转移到所述控制器的装置;以及
由所述控制器使用所述一个或多个数字签名来验证所述内容文件以及所述存储库的真实性的装置。本发明的另外的特征将从结合附图所作出的下列描述和所附权利要求变得明显。


图1是使用数字签名来签署并验证电子内容的标准方法的框 图2是用于使用数字签名来签署并验证电子内容的方法的框图,包括将内容和签名文件从编程源传送到执行控制器;
图3是示出了如何将电子内容和数字签名物理地传送至车辆中的控制器的示意 图4是用于将内容和签名文件从源传送至目的地的第一替代方法的框 图5是用于将内容和签名文件从源传送至目的地的第二替代方法的框 图6是用于将内容和签名文件从源传送至目的地的第三替代方法的框 图7是用于将内容和签名文件从源传送至目的地的第四替代方法的框 图8是用于将内容和签名文件从源传送至目的地的第四替代方法的微小变化的框图; 图9是用于将内容和签名文件从源传送至目的地的第五替代方法的框图;并且图10是用于将内容和签名文件从源传送至目的地的第六替代方法的框图。
具体实施例方式对涉及用于提供数字签名以便认证被编程到自动嵌入式控制器的二进制文件的源和内容的方法的本发明实施例的下列讨论,本质上仅仅是示例性的,并且决不旨在限制本发明或其应用或使用。例如,此处所公开的方法用于认证用于车辆电子控制单元(ECU)的二进制文件的源和内容。然而,如本领域的技术人员将了解的,该方法将具有针对认证用于其它控制器的二进制文件的源和内容的应用。许多现代车辆包括:电子控制单元(ECU);或控制诸如动力系、气候控制系统、信息娱乐系统、车身系统、底盘系统等车辆系统的操作的控制器。这样的控制器需要为特定目的设计的软件以便执行控制功能。随着这些控制器的数量和复杂性的增加,以及由恶意软件的开发者所构成的威胁的增加,认证被加载在自动控制器上的二进制文件的源和内容比以往更重要。在车辆控制器中使用未经适当验证的或者更糟地恶意设计的假冒软件的后果包括:车辆或其系统的非预期行为;增加的车辆的盗窃风险;对诸如里程计的部件的可能的窜改;以及其它车辆特征件和功能的丧失。图1是用于使用非对称密钥密码-具体地,数字签名-用于认证被编程到控制器的文件的已知方法的框图10。如本领域的技术人员将理解的,非对称密钥密码使用一对被称为私人密钥和公共密钥的算术相关的密钥来对消息加密和解密。为了创建数字签名,签名人使用他的仅为他自己所知的私人密钥来对字符串加密。数字签名可稍后由另一方使用与签名人的私人密钥成对的公共密钥来解密。在签署步骤12中,内容文件14被提供,其中内容文件14可能是将在控制器中被使用的一款软件、校准文件、或其它“软部 分(soft-part)”内容。在内容文件14上进行哈希计算(hash calculation)以产生哈希值16。然后,用签名人的私人密钥对哈希值16加密以产生数字签名18。然后,在验证步骤20中使用数字签名18和内容文件14。使用签名人的公共密钥来对数字签名18解密以产生解密的哈希值22。同时,由验证器在内容文件14上进行哈希计算以产生计算的哈希值24。在框26处,将解密的哈希值22与计算的哈希值24相比较。如果解密的哈希值22匹配计算的哈希值24,则有效的决定在椭圆形28处发出,并且内容文件14被使用。如果解密的哈希值22不匹配计算的哈希值24,则无效的决定在椭圆形30处发出,并且内容文件14不被使用。如先前所讨论的,图1中所示的数字签名技术是已知的,但是从签署步骤12到验证步骤20存在与管理内容文件14和数字签名18相关联的许多实际问题。目前所公开的方法解决了那些问题。图2是示出了用于使用数字签名来签署并验证电子内容的方法的框图40,包括将内容和签名文件从编程源传送到执行控制器。文件存储库42存储被统称为内容文件44的可执行软件和/或校准文件。内容文件44通常是二进制文件。期望获得用于内容文件44的数字签名46。为了对内容文件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用于安装在被提供服务的车辆上。内容文件44和数字签名46如何由存储库42、制造数据库56、服务数据库62和编程工具68处理的细节在下文中讨论的替代方法中规定。编程工具68的下一个步骤是将内容文件44安装在车辆中的控制器上。E⑶74是将实际上使用内容文件44的控制器。下面是ECU 74的架构的简要讨论。ECU 74上的软件由引导加载器、可执行软件、以及一个或多个校准文件组成。出于该讨论目的,ECU 74被假定具有单个中央处理单元(CPU)。在实际车辆中,E⑶74可能具有多个CPU,并且每个CPU将具有引导加载器、可执行软件、以及一个或多个校准文件。ECU 74中的引导加载器负责确认并安装新的可执行软件和校准文件。因此,在该段落中所描述的功能由ECU 74中的引导加载器执行。编程工具68对ECU 74提供内容文件44和数字签名46。由引导加载器使用嵌入式公共密钥来对数字签名46解密以产生解密的哈希值78。公共签署密钥可以驻留在ECU 74中或结合内容文件44和数字签名46被提供给ECU 74。同时,由引导加载器在内容文件44上进行哈希计算以产生计算的哈希值84。在框80处,将解密的哈希值78与计算的哈希值84相比较。如果解密的哈希值78匹配计算的哈希值84,则有效的决定88被发出,并且内容文件44被使用。如果将被使用的内容文件44可执行软件,则引导加载器将它安装作为ECU 74上新的可执行软件。如果将被使用的内容文件44是校准文件,则引导加载器将它安装作为ECU 74上的所述一个或多个校准文件中的一个。如果解密的哈希值78不匹配计算的哈希值84,则无效的决定86被发出,并且在E⑶74上不使用内容文件44。图3是示出了如何将电子内容和数字签名文件物理地传送至车辆控制器的示意图。车辆36包括图2中所示和以上所讨论的E⑶74。E⑶74可以控制发动机、变速器、底盘、车身、信息娱乐系统、或车辆36上的其它系统。内容文件44和数字签名46被提供给在此处示出为制造数据库56的中央数据库。将内容文件44和数字签名46转移到制造数据库56可在公司网络上发生。制造数据库56对编程工具68提供内容文件44和数字签名46,其中该转移可通过将编程工具68附接到可以访问数据库56的计算机来完成。编程工具68经由连接38与E⑶74通信, 该连接可以是有线的或无线的。利用建立的连接38,内容文件44和数字签名46可从编程工具68下载到ECU 74,其中引导加载器可以执行先前所讨论的安全验证功能。由图2所示的方法是将内容和数字签名文件从存储库42传送到ECU 74的通用途径。构想了文件处理和传送方法的如下所讨论的几个替代实施例。总体而言,数字签名46可以被嵌入内容文件44内,被附加到内容文件44,或从内容文件44分离。另外,存在多于一个数字签名46是必需的情境,并且文件处理和传送方法论必须适应该情形。多于一个数字签名46可能是必需的,例如,当国家要求汽车制造商公开在该国内出售的软件中所使用的私人密钥时,在这种情况下,汽车制造商将希望使用针对那个国家的独特的私人密钥,该独特的私人密钥不同于在世界其它国家出售车辆中的软件所使用的私人密钥。下面讨论的替代实施例中的每一个具有某些特征和优势。汽车制造商可以挑选替代方案中的一个或替代方案的混合或组合,作为最适合于制造商的组织结构、商务过程、和IT商务系统。三个数字签名在下列讨论的替代方法中的每一个中示出,但是应理解的是,实际上可以使用多于或少于三个。图4是用于将电子内容和签名文件从源传送至目的地的第一替代方法的框图90。除了内容文件44和数字签名46之外,还示出了第二数字签名96和第三数字签名98。在框图90的方法中,内容文件44和数字签名46、96和98均是彼此分离的独立文件并且每个具有其自己的部件编号。即,该方法使用四个数据文件和四个部分编号来代表内容文件44和数字签名46、96和98。文件中的每一个将在材料单中具有唯一的部分编号,将作为制造数据库56和服务数据库62中的独立项存储,并且将被“释放”或核准用于以与当前用于其它软件部分的方式相同的方式生产。该方法提供了很大灵活性,因为任意数量的数字签名文件可以与电子内容的特定片段一起使用。该方法也不要求引导加载器的定制编程,因为这由制造或服务部门来负责以将随内容文件44的合适的数字签名(46、96或98)提供给编程工具68。然后,编程工具68将内容文件44和数字签名(46、96或98-编程工具68从制造数据库56或服务数据库62接收的 那一个)下载到ECU 74,其中引导加载器如先前所描述处理。图5是用于将电子内容和签名文件从源传送至目的地的第二替代方法的框图100。在框图100的方法中,如左边所示,内容文件44与数字签名46组合以产生将代表数据库56和62以及材料单中的一个部分编号的单个二进制文件。同样地,内容文件44将与数字签名96组合以产生第二个二进制文件和第二个部分编号,并且内容文件44将与数字签名98组合以产生第三个二进制文件和第三个部分编号。即,该方法使用三个数据文件和三个部分编号来代表内容文件44和数字签名46、96和98。类似于图4的第一替代方法,文件中的每一个在该方法中将在材料单中具有唯一的部分编号,将作为制造数据库56和服务数据库62中的独立项存储,并且将被“释放”或核准用于以与当前用于其它软件部分的方式相同的方式生产。该方法也提供了很大灵活性,因为任意数量的数字签名文件可以与电子内容的特定片段一起使用。另外,在该方法中,将由制造或服务部门负责将合适的部分文件(内容文件44与数字签名46、96或98中的一个组合)提供给编程工具68。然后,编程工具68将下载组合文件到E⑶74,其中引导加载器将按先前所描述处理。在这种情况下,弓丨导加载器将被编程以了解由某一地址范围代表的组合文件的第一部分包含数字签名数据。图6是用于将电子内容和签名文件从源传送至目的地的第三替代方法的框图140。该方法类似于图5的方法,除在该方法中数字签名文件被嵌入内容文件44内而不是这两个文件如图5的第二替代方法中所示简单地组合。即,数字签名46被嵌入内容文件44内以产生将代表数据库56和62以及材料单中的一个部分编号的单个二进制文件。同样地,数字签名96将被嵌入内容文件44内以产生第二个二进制文件和第二个部分编号,并且数字签名98将被嵌入内容文件44内以产生第三个二进制文件和第三个部分编号。因此,该方法使用三个数据文件和三个部分编号来代表内容文件44和数字签名46、96和98。将数字签名文件嵌入内容文件44内将以与当前被嵌入在软件文件内的诸如部分编号和检查和(checksum)的其它数据相同的方法进行。与以上第二替代方法一样,部分释放以及变更管理过程和工具将不受影响。在该第三替代方法中,引导加载器将需要了解数字签名数据被嵌入内容文件44内何处,使得引导加载器可以使用数字签名数据来产生解密的哈希值78,并且还使得引导加载器当确定计算的哈希值84时可以略过数字签名数据。图7是用于将电子内容和签名文件从源传送至目的地的第四替代方法的框图160。因为其它数据源被涉及,所以图7不只包括内容文件44和各种数字签名文件。在图2中引入的以及先前所讨论的存储库42产生三个文件。这些文件中的一个是内容文件44。第二文件是元数据文件166,其包含关于由内容文件44代表的部分编号的信息。第三文件是签名库文件168,其包含在例如以可扩展标记语言(XML)格式的单个数据文件中的数字签名46、96和98。仅一个部分编号在该替代中被使用,并且三个文件44,166和168均具有基于部分编号的带有不同的文件类型扩展名的匹配文件名。文件44,166和168被提供给制造数据库56。服务数据库62将还接收文件44、166和168,但是为简单起见,从图7省略了。制造数据库56对编程工具68提供文件44、166和168,该编程工具68进而对E⑶74编程。在图7中所示的第四替代方法中,仍旧将被示出的是编程工具68和E⑶74如何了解使用签名库文件168中的哪一个签名,以及如何确定使用何种公共密钥来对签名解密。数字签名46、96和98中的每一个与“生产选项”相关联,其识别关于车辆的参数。用于数字签名46、96和98中的每一个的公共密钥标识符和值被包含在密钥数据库178中。生产选项数据被包含在选项数据库180中。被生产的每个车辆具有从选项数据库180提供给编程工具68的已知的生产选项代码。已知对于车辆的生产选项代码,编程工具68可以(在签名46、96和98中)选择适当的相关联的数字签名,并且还可以从数据库178检索合适的公共密钥。然后,编程工具68将内容文件44和合适的数字签名(46、96或98)下载到E⑶74用于确认和安装。在图7的第四替代方法中,还可以让编程工具68以试错法(trial and error)模式操作而不访问密钥数据库178或选项数据库180。在试错法模式中,编程工具68将数字签名46、96和98 —次一个地发送到E⑶74,并且引导加载器将基于其嵌入式公共密钥来确定使用哪个签名。该试错法模式在编程工具68中需要较少的复杂性,但是需要将引导加载器程序定制到单独的车辆选项。图8是图7的第四替代方法的具有微小变化的框图190。在第四替代方案的该变化中,数字签名中的每一个被包含在其自己的文件中;即,数字签名46被包含在第一 XML文件194中,数字签名96被包含在第二 XML文件196中,并且数字签名98被包含在第三XML文件198中。XML文件194、 196和198连同内容文件44和元数据文件166,均由存储库42产生,均被提供给制造数据库56,并且对编程工具68均可用。这里,再一次,所有的文件-44、166、194、196和198-均具有基于单个部分编号的带有不同文件扩展名的匹配的文件名。第四替代方案的该变化的优势是,新的数字签名可适于新的XML文件,无需创建新的签名库文件168。然而,商务过程必须被设计成确保那个新的数字签名XML文件被提供给制造数据库56和编程工具68。由编程工具68在该变化中对数字签名以及E⑶74的闪存编程的实际选择与先前针对图7的第四替代方法所描述的相同。图9是用于将电子内容和签名文件从源传送至目的地的第五替代方法的框图230。该方法是图5中所示的第二替代方法的扩展,然而,在该方法中,内容文件44和多个数字签名文件被组合并且被释放作为一个文件和部分编号。如图9的左边所示,内容文件44和数字签名46和96被组合。该组合被给予部分编号,被释放以便生产,被转移到制造数据库56,等等。如果诸如数字签名98的新的数字签名是必须的,则新的部分编号将被产生并且被释放,其中文件将是内容文件44和三个数字签名46、96和98的组合。该第五替代方法是灵活的,因为单个部分编号和文件可以与多个密钥或签名一起使用。该方法也是简单的,因为它将对现有的商务过程和数据库起作用。在图9的第五替代方法中,对E⑶74提供合适的签名对编程工具68是必要的。这可以使用先前所讨论的试错法模式来进行,其中编程工具68 —次一个地发送数字签名,并且E⑶74使用与嵌入在引导加载器中的公共密钥匹配的签名。编程工具68还可能对E⑶74发出数据请求以检索引导加载器的嵌入公共密钥的身份,然后编程工具68将仅适当的数字签名发送给E⑶74。图10是用于将电子 内容签名文件从源传送至目的地的第六替代方法的框图200。在该实施例中,ECU内容和安全参数被组合并且作为一个文件被释放以允许在编程之前对编程信息的确认。内容文件202被示出为包括其文件标题204和将被编程到ECU中的实际内容206。虽然以上未明确示出,但是内容文件44的确包括文件标题。在以上讨论的实施例中,内容文件44是哈希计算的,并且哈希是经过签名的。在该实施例中,内容206是哈希计算的,并且哈希值被放入文件标题204中。文件标题204代替实际内容206被签名。文件标题204的详细描述被示出在右侧上并且包括用于包括部分编号、地址范围、模块ID等的部分信息的内存槽212和用于签名的内存槽216以及用于签名密钥ID的内存槽218。内容206的哈希值被示出在文件标题204的内存槽220中。被表示为内存段210的内存槽212、216、218和220的内容被签名,并且该签名被放置在内存槽222中。文件标题204包括对可以在擦除和书写闪存之前被确认的部分编程的指令。提供ECU内容文件的供给者将具有由处理内部文件的相同的释放工具构成的签名。如本领域的技术人员将很好地理解的,此处所讨论的用以描述本发明的若干和各个步骤和过程可以指由计算机、处理器或使用电现象操作和/或变换数据的其它电子计算装置执行的操作。那些计算机和电子装置可以利用各种易失性和/或非易失性内存,包括带有在其上存储的可执行程序的非暂态计算机可读介质,所述可执行程序包括能够由计算机或处理器执行的各种代码或可执行指令,其中内存和/或计算机可读介质可包括所有形式和类型的内存以及其它计算机可读介质。上面的讨论仅公开并描述了本发明的示例性实施例。根据这样的讨论以及根据附图和权利要求,本领域的技术人员将容易地意识到,在不脱离如所附权利要求中所限定的本发明的精神和范围的情况下,能够在其中作出各种 改变、修改和变型。
权利要求
1.一种用于提供数字签名以便认证被闪存编程到控制器中的内容文件的方法,所述方法包括: 提供来自文件存储库源的内容文件以及一个或多个数字签名; 将所述内容文件以及所述一个或多个数字签名从所述存储库转移到生产数据库; 将所述内容文件以及所述一个或多个数字签名从所述生产数据库转移到编程工具,所述编程工具是被配置成对所述控制器闪存编程的装置; 将所述内容文件以及所述一个或多个数字签名从所述编程工具转移到所述控制器;以及 由所述控制器使用所述一个或多个数字签名来验证所述内容文件和所述存储库的真实性。
2.根据权利要求1所述的方法,其特征在于,所述控制器通过使用所述存储库源的公共密钥来对所述一个或多个数字签名解密来验证所述内容文件以及所述存储库源的真实性,并且将解密的哈希值与根据所述内容文件计算的哈希值相比较。
3.根据权利要求2所述的方法,其特征在于,所述内容文件包括文件标题,并且其中所述文件标题包括根据在所述内容文件中的内容计算的哈希值。
4.根据权利要求1所述的方法,其特征在于,所述内容文件以及所述一个或多个数字签名均是带有独立部分编号的独立文件。
5.根据权利要求1所述的方法,其特征在于,所述一个或多个数字签名中的每一个与所述内容文件独立地组合以创建具有其自己的部分编号的唯一文件。
6.根据权利要求1所述的方法,其特征在于,所述一个或多个数字签名中的每一个独立地嵌入所述内容文件内以创建具有其自己的部分编号的唯一文件。
7.根据权利要求1所述的方法,其特征在于,所述一个或多个数字签名的全部被组合到单个数字签名文件中,并且所述数字签名文件和所述内容文件具有相同的部分编号。
8.根据权利要求7所述的方法,其特征在于,所述数字签名文件是可扩展标记语言(XML)文件。
9.一种用于提供数字签名以便认证被闪存编程到在车辆上的电子控制单元(ECU)中的内容文件的方法,所述方法包括: 提供来自文件存储库源的内容文件以及一个或多个数字签名; 将所述内容文件以及所述一个或多个数字签名从所述存储库转移到生产数据库; 将所述内容文件以及所述一个或多个数字签名从所述生产数据库转移到编程工具,所述编程工具是被配置成对所述ECU闪存编程的装置;将所述内容文件以及所述一个或多个数字签名从所述编程工具转移到所述ECU;以及由所述ECU使用所述一个或多个数字签名来验证所述内容文件以及所述存储库的真实性,其中所述ECU通过使用所述存储库的公共密钥来对所述一个或多个数字签名解密来验证所述内容文件以及所述存储库的真实性,并且将解密的哈希值与根据所述内容文件计算的哈希值相比较。
10.一种用于提供数字签名以便认证被闪存编程到控制器中的内容文件的系统,所述系统包括: 用于提供来自文件存储库源的内容文件以及一个或多个数字签名的装置;将所述内容文件以及所述一个或多个数字签名从所述存储库转移到生产数据库的装置; 将所述内容文件以及所述一个或多个数字签名从所述生产数据库转移到编程工具的装置,所述编程工具是被配置成对所述控制器闪存编程的装置; 用于将所述内容文件以及所述一个或多个数字签名从所述编程工具转移到所述控制器的装置;以及 由所述控制器使用所述一个或多个数字签名来验证所述内容文件以及所述存储库的真实性的装置。
全文摘要
本发明涉及提供数字签名以确保闪存编程功能的方法,具体地,一种用于提供数字签名以便认证被闪存编程到自动嵌入式控制器中的二进制文件的源和内容的方法。一份电子内容在签字服务器上通过使用签名人的私人密钥来创建哈希值并且对该值加密来进行数字签名。然后,内容文件和数字签名文件使用几种替代途径中的一个被传送至编程工具,该编程工具进而将内容和签名文件加载到控制器上,内容将该控制器上执行。控制器通过对签名文件解密以恢复哈希值并且将该解密的哈希值与根据内容本身计算的哈希值进行比较来验证内容。支持用于一项内容的多个签名文件。
文档编号H04L29/06GK103220264SQ20121041529
公开日2013年7月24日 申请日期2012年10月26日 优先权日2011年10月28日
发明者K.M.贝尔特斯, M.H.科斯丁, T.M.富里斯特, A.I.阿尔拉巴迪 申请人:通用汽车环球科技运作有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1