用于规避安全控制模块的真实性检查的方法和系统的制作方法
【专利摘要】本发明提供用于规避安全控制模块的真实性检查的方法和系统。在一个实施例中,一种方法包括:从安全源接收真实性数据,其中,所述真实性数据包括签名和对控制模块独特的识别符;用真实性数据编程控制模块;以及基于真实性数据规避控制模块的控制程序的真实性检查。
【专利说明】用于规避安全控制模块的真实性检查的方法和系统
【技术领域】
[0001]【技术领域】总体上涉及用于规避安全控制模块的真实性检查的方法和系统。
【背景技术】
[0002]车辆控制模块控制车辆的一个或多个部件的操作。例如,控制模块可以用作控制车辆的发动机或变速器的操作的发动机控制模块或变速器控制模块。通常,车辆控制模块包括控制程序,包括用于控制部件操作的指令。控制程序可包括但不限于引导程序、应用程序和标定数据。控制模块的存储器可以被擦除和/或重写,以便更换或更新控制程序。
[0003]安全生产控制模块通常需要控制程序被数字签名,以便更换或更新控制程序。为了被签名,控制程序包括对特定控制模块真实的数字签名。数字签名通常从安全源(例如,安全服务器)产生。
[0004]因此,期望提供用于用未签名控制程序来更新或更换安全控制器的控制程序的方法和系统。此外,本发明的其它期望特征和特性将从随后的详细说明和所附权利要求结合附图以及前述【技术领域】和【背景技术】显而易见。
【发明内容】
[0005]提供用于规避安全控制模块的真实性检查的方法和系统。在一个实施例中,一种方法包括:从安全源接收真实性数据,其中,所述真实性数据包括签名和对控制模块独特的识别符;用真实性数据编程控制模块;以及基于真实性数据规避控制模块的控制程序的真实性检查。
[0006]在另一个实施例中,一种系统包括具有非易失性存储器的安全控制模块。控制程序包括从安全源接收的真实性数据,将真实性数据存储在非易失性存储器中,以及基于真实性数据规避真实性检查,其中,所述真实性数据包括签名和对控制模块独特的识别符。
[0007]方案1.一种用于规避安全控制模块的真实性检查的方法,包括:
从安全源接收真实性数据,其中,所述真实性数据包括签名和对控制模块独特的识别符(ID);
用真实性数据编程控制模块;以及 基于真实性数据规避控制模块的控制程序的真实性检查。
[0008]方案2.根据方案I所述的方法,还包括:将真实性数据与控制程序的至少一个文件组合,且其中,用真实性数据编程控制模块包括用所述至少一个文件和真实性数据编程控制|吴块。
[0009]方案3.根据方案2所述的方法,其中,规避控制程序的真实性检查包括:当真实性数据的签名有效时且当ID与控制模块的标识符匹配时,选择性地规避控制程序的真实性检查。
[0010]方案4.根据方案I所述的方法,其中,用真实性数据编程控制模块包括将真实性数据作为真实性应用程序存储在应用存储器中。[0011]方案5.根据方案4所述的方法,还包括:运行真实性应用程序,以从引导存储器擦除生产引导程序且将开发引导程序书写到引导存储器。
[0012]方案6.根据方案5所述的方法,其中,规避控制程序的真实性检查通过开发引导程序执行。
[0013]方案7.根据方案6所述的方法,其中,规避控制程序的真实性检查包括:当真实性数据的签名有效时且当ID与控制模块的标识符匹配时,选择性地规避控制程序的真实性检查。
[0014]方案8.根据方案I所述的方法,其中,用真实性数据编程控制模块包括将真实性数据存储在指定存储器位置。
[0015]方案9.根据方案8所述的方法,其中,规避控制程序的真实性检查包括:当真实性数据存储在指定存储器位置时,选择性地规避控制程序的真实性检查。
[0016]方案10.根据方案9所述的方法,其中,规避控制程序的真实性检查还包括:还当真实性数据的签名有效时且当ID与控制模块的标识符匹配时,选择性地规避控制程序的真实性检查。
[0017]方案11.根据方案8所述的方法,其中,指定存储器位置位于标定存储器中。
[0018]方案12.根据方案8所述的方法,其中,指定存储器位置位于不是应用存储器和标定存储器的一部分的存储器位置。
[0019]方案13.根据方案I所述的方法,其中,真实性数据以文件标头的形式被编程到控制丰吴块。
[0020]方案14.根据方案I所述的方法,其中,真实性数据以应用程序的形式被编程到控制丰吴块。
[0021]方案15.根据方案I所述的方法,其中,真实性数据以防伪票的形式被编程到控制模块。
[0022]方案16.—种用于规避真实性检查的系统,包括:
具有非易失性存储器的安全控制模块;和
控制程序,所述控制程序包括从安全源接收的真实性数据,将真实性数据存储在非易失性存储器中,以及基于真实性数据规避真实性检查,其中,所述真实性数据包括签名和对控制模块独特的识别符(ID)。
[0023]方案17.根据方案16所述的系统,其中,所述非易失性存储器至少分为引导存储器、应用存储器和标定存储器,且其中,真实性数据存储在应用存储器中。
[0024]方案18.根据方案16所述的系统,其中,所述非易失性存储器至少分为引导存储器、应用存储器和标定存储器,且其中,真实性数据存储在标定存储器中。
[0025]方案19.根据方案16所述的系统,其中,所述非易失性存储器至少分为引导存储器、应用存储器、标定存储器和真实性存储器,且其中,真实性数据存储在真实性存储器中。
【专利附图】
【附图说明】
[0026]在下文结合如下附图描述示例性实施例,在附图中,类似的附图标记表示类似的元件,且其中:
图1是根据各个实施例的包括真实性规避系统的控制模块的功能框图; 图2和3是图示根据各个实施例的控制模块和真实性规避系统的存储器的框图;
图4和5是图示根据各个实施例的可以由图2和3的真实性规避系统执行的真实性规避方法的流程图;
图6是图示根据各个其它实施例的控制模块和真实性规避系统的存储器的框图;
图7、8和9是图示根据各个实施例的可以由图6的真实性规避系统执行的真实性规避方法的流程图;
图10是图示根据各个其它实施例的控制模块和真实性规避系统的存储器的框图;和图11是图示根据各个实施例的可以由图10的真实性规避系统执行的真实性规避方法的流程图。
【具体实施方式】
[0027]以下详细描述本质上仅是示例性的,且并不旨在限制应用和使用。此外,并不旨在受限于前述【技术领域】、【背景技术】、
【发明内容】
或以下详细描述中提出的任何明确的或隐含的理论。如在此所使用的,术语模块指的是专用集成电路(ASIC)、电子电路、执行一个或更多软件或固件程序的处理器(共享的、专用的、或组)和存储器、组合逻辑电路、和/或提供所述功能的其他合适的部件。
[0028]现在参考图1,控制模块20总体上包括易失性存储器22、非易失性存储器24、中央处理单元(CPU) 26和输入/输出接口 28。虽然未示出,但是控制模块20还可以包括电源模块和/或其它标准部件。控制模块20在非易失性存储器24和/或易失性存储器22中存储控制程序30。CPU 26操作以基于控制程序30的指令来控制车辆33的部件32。
[0029]易失性存储器22存储由控制程序30使用的临时数据。通常,易失性存储器22的内容在关闭和/或再次初始化(例如,写为零)时在控制模块20重置后丢失。然而,易失性存储器22可包括用于保存永久性数据的临时存储器区域。某些数据可以在控制模块20的操作期间存储在临时存储器区域中。数据然后可以在控制模块20关闭之前传输给非易失性存储器24的可用区域。由此,存储在临时存储器区域中的数据在易失性存储器22被擦除之前保存在非易失性存储器24中。
[0030]非易失性存储器24存储控制程序30。在各个实施例中,非易失性存储器24包括可重写和/或不可重写区域。控制程序30通常包括引导程序34、应用程序36和一个或多个标定文件38。在各个实施例中,引导程序34、应用程序36和标定文件38可以存储在可重写和不可重写区域中的任一个内。例如,如图2、3、6和10所示,非易失性存储器24可以分为引导存储器40、应用存储器42和标定存储器44。引导存储器40存储引导程序34。应用存储器42存储应用程序36。标定存储器44存储标定文件38。
[0031 ] 回到图1,通常,引导程序34由CPU 26在控制模块20供电或重置时(S卩,在控制模块20处于“引导模式”时)执行。例如,引导程序34可以确定是否存在合适的应用或标定数据。此外,引导程序34可以验证应用程序或标定文件的完整性。如果引导程序34验证所有所需软件和/或数据的存在和完整性,CPU 26执行应用程序36 (S卩,在控制模块20处于“应用模式”时)。
[0032]应用程序36由CPU 26执行以控制车辆22的一个或多个部件32。CPU 26使用来自于标定文件38的标定数据执行应用程序36的指令。标定数据可以是所述一个或多个部件32特定的和/或可以是所选择车辆33特定的。
[0033]数据重写模块50经由媒介52 (例如,有线或无线)和输入/输出接口 28与控制模块20通信,以便擦除或重写存储在非易失性存储器24中的控制程序30。在各个实施例中,数据重写模块50可以是车辆33的一部分,和/或可以实施为与车辆33独立的装置(未示出)。
[0034]根据各个实施例,要重写的控制程序30包括真实性规避系统54。如关于图2 —11更详细所述,真实性规避系统54可以实施在引导程序34、应用程序36和/或标定文件38中的任一个内。通常,在控制模块20是安全生产控制模块时,真实性规避系统54存储并执行可以由控制模块20使用的真实性规避方法,以规避真实性检查。真实性规避系统和方法使用真实性规避数据56。
[0035]在各个实施例中,真实性规避数据56由安全源58在请求(例如,通过存储生产控制模块信息的生产服务器)时产生。真实性规避数据56最少包括真实性签名57和控制模块识别符59 (称为E⑶ID)。真实性签名57和E⑶ID 59对于每个生产控制模块20是独特的。
[0036]现在参考图2和3,框图图示了根据各个实施例的真实性规避系统54-1、54_2。在这些实施例中,真实性规避系统54以防伪票60的形式存储真实性规避数据56。防伪票60然后用于打开和关闭引导程序34的真实性规避函数62。
[0037]在各个其它实施例中,如图2所示,防伪票60存储在标定存储器44的指定存储器位置。防伪票60例如基于数据重写模块50 (图1)的常规标定文件编程方法存储在标定存储器44中。
[0038]在各个实施例中,如图3所示,防伪票60存储在与引导存储器40、应用存储器42和标定存储器44独立且称为真实性存储器64的指定存储器位置(例如,用于模仿EEPROM的存储器位置)。防伪票60通过应用程序的密钥书写函数66存储在真实性存储器64中。
[0039]例如,如图4所示且继续参考图1和2,当控制模块20(图1)在100处于应用模式时,在Iio确定是否接收将防伪票60 (例如,由数据重写模块50产生的)书写到真实性存储器64的请求。如果在110接收请求,在120任选地验证所述防伪票。在130,防伪票60书写到真实性存储器64。之后,方法在140以应用模式继续。然而,如果在110未接收请求,方法在140可以以应用模式继续。
[0040]如图5所示且继续参考图1、2和3,当在150控制模块20处于引导模式(例如,在控制模块20休息之后),在160确定防伪票60是否存储在真实性存储器64中。如果在160防伪票60存储在真实性存储器64中,那么在170从防伪票60读取真实性数据56。在180,基于签名数据56来确定防伪票60是否真实。如果在180签名57指示防伪票60真实,那么在190评估E⑶ID 59。然而,如果在180防伪票60不真实,那么方法在200继续执行真实性检查。之后,在230,方法可以引导模式继续。
[0041]在190,如果E⑶ID 59与存储在引导程序62中的E⑶ID不匹配,那么方法在200继续执行真实性检查。之后,在230,方法可以引导模式继续。
[0042]在190,如果E⑶ID 59与存储在引导程序34中的E⑶ID匹配,那么在210引导程序34的真实性规避标志设定为真(即,启用规避功能)且在220规避编程应用程序或标定文件的真实性检查。之后,在230,方法可以引导模式继续。[0043]现在参考图6,流程图图示了根据各个其它实施例的真实性规避系统54-3。在该实施例中,真实性规避系统54-3以真实性规避程序68的形式存储真实性规避数据56。真实性规避程序68然后用于使用包括签名规避函数70的开发引导程序34-2来重新编程生产引导程序34-1。在各个实施例中,真实性规避程序68例如通过生产引导程序34-1在重新编程时存储在应用存储器42中。
[0044]例如,参考图7 — 9且继续参考图1和6,当在图7的300控制模块20处于生产引导模式时,在310确定是否接收真实性规避程序68。如果在310未接收真实性规避程序68,那么在320方法以生产引导模式继续。然而,如果在310接收真实性规避程序68,那么规避程序68的真实性数据56在330被读取且在340和350被评估。如果在340签名57指示真实性规避程序68是真实的,那么在350控制模块20继续评估ECU ID 59。否则,如果在340签名57指示真实性规避程序68不真实,那么在360废弃真实性规避程序68且在320控制模块20以生产引导模式继续。
[0045]如果在350E⑶ID 59与在生产引导程序34_1中的存储E⑶ID匹配,那么在370规避程序68存储在应用存储器42中且在320控制模块20以生产引导模式继续。然而,如果在350E⑶ID 59与在生产引导程序34-1中的存储E⑶ID不匹配,那么在360废弃真实性规避程序68且在320控制模块20以生产引导模式继续。
[0046]如图8所示,当在380控制模块20处于应用模式时,任选地,在390确定是否存在真实性规避程序68。如果在390不存在真实性规避程序68,那么在400控制模块20以应用模式继续。
[0047]然而,如果确定在应用存储器42中存在真实性规避程序68,那么在410运行真实性规避程序68。例如,真实性规避程序68在420从引导存储器40擦除生产引导程序34_1且在430将开发引导程序34-2书写到引导存储器40。之后,在400控制模块20以应用模式继续。
[0048]如图9所示,当在440控制模块20处于开发引导模式时(例如,在控制模块20重置之后),在450确定是否启用真实性规避函数70。如果在450未启用真实性规避函数70,那么在460执行真实性检查且在470控制模块20以开发引导模式继续。然而,如果在450启用真实性规避函数70,那么在480规避真实性检查且在470控制模块20以开发引导模式继续。
[0049]现在参考图10,框图图示了根据各个其它实施例的真实性规避系统54-4。在该实施例中,真实性规避系统54-4以真实性规避标头(header )72形式存储真实性规避数据56。真实性规避标头72附连到应用程序36和/或标定文件38,或者可选地附连到应用程序36的应用文件中的每个和/或标定文件38中的每个。真实性规避标头72然后用于在应用程序36和/或标定文件38编程到控制模块20时打开和关闭引导程序34的真实性规避函数74。
[0050]例如,参考图11且继续参考图1和10,当在500控制模块20处于引导模式时,如果在510接收包括应用程序36和/或标定文件38的编程数据包,那么标头72在520被提取且在530和540被评估。然而,如果在510未接收编程数据包,那么在550控制模块20以引导模式继续。
[0051]如果在530标头72的签名57指示应用程序36 (或应用文件)或标定文件38是真实的,那么在540控制模块20继续评估标头的E⑶ID 59。否则,如果在530签名57指示应用程序36 (或应用文件)或标定文件38不真实,那么在560废弃应用程序36或标定文件38且在550控制模块20以引导模式继续。
[0052]如果在540E⑶ID 59与引导程序34中的存储E⑶ID匹配,那么在570应用程序36或标定文件38存储在应用存储器42或标定存储器44中(而不执行真实性检查)且在550控制模块20以引导模式继续。然而,如果在540ECU ID 59与引导程序34中的存储E⑶ID不匹配,那么在560废弃应用程序36或标定文件38且在550控制模块20以引导模
式继续。
[0053]虽然已经在上述详细描述中说明了至少一个示例性实施例,但应当理解,存在大量的变型。还应当理解的是,示例性实施例仅仅是示例,并不旨在以任何方式对本公开的范围、应用或构造构成限制。相反,上述详细描述将向本领域的技术人员提供应用示例性实施例的便捷路径。应当理解,可对元件的功能及设置进行各种改变而不脱离所附权利要求及其合法等价物界定的本公开范围。
【权利要求】
1.一种用于规避安全控制模块的真实性检查的方法,包括: 从安全源接收真实性数据,其中,所述真实性数据包括签名和对控制模块独特的识别符(ID); 用真实性数据编程控制模块;以及 基于真实性数据规避控制模块的控制程序的真实性检查。
2.根据权利要求1所述的方法,还包括:将真实性数据与控制程序的至少一个文件组合,且其中,用真实性数据编程控制模块包括用所述至少一个文件和真实性数据编程控制模块。
3.根据权利要求2所述的方法,其中,规避控制程序的真实性检查包括:当真实性数据的签名有效时且当ID与控制模块的标识符匹配时,选择性地规避控制程序的真实性检查。
4.根据权利要求1所述的方法,其中,用真实性数据编程控制模块包括将真实性数据作为真实性应用程序存储在应用存储器中。
5.根据权利要求4所述的方法,还包括:运行真实性应用程序,以从引导存储器擦除生产引导程序且将开发引导程序书写到引导存储器。
6.根据权利要求5所述的方法,其中,规避控制程序的真实性检查通过开发引导程序执行。
7.根据权利要求6所述的方法,其中,规避控制程序的真实性检查包括:当真实性数据的签名有效时且当ID与控制模块的标识符匹配时,选择性地规避控制程序的真实性检查。
8.根据权利要求1所述的方法,其中,用真实性数据编程控制模块包括将真实性数据存储在指定存储器位置。
9.根据权利要求8所述的方法,其中,规避控制程序的真实性检查包括:当真实性数据存储在指定存储器位置时,选择性地规避控制程序的真实性检查。
10.一种用于规避真实性检查的系统,包括: 具有非易失性存储器的安全控制模块;和 控制程序,所述控制程序包括从安全源接收的真实性数据,将真实性数据存储在非易失性存储器中,以及基于真实性数据规避真实性检查,其中,所述真实性数据包括签名和对控制模块独特的识别符(ID)。
【文档编号】G06F21/44GK103886245SQ201310707483
【公开日】2014年6月25日 申请日期:2013年12月20日 优先权日:2012年12月20日
【发明者】A.I.阿尔拉巴迪, K.M.巴尔特斯, J.D.罗萨, T.M.富里斯特, A.D.韦斯特 申请人:通用汽车环球科技运作有限责任公司