CN103679005A - 启用安全电子控制单元的开发模式的方法 - Google Patents

启用安全电子控制单元的开发模式的方法 Download PDF

Info

Publication number
CN103679005A
CN103679005A CN201310414715.7A CN201310414715A CN103679005A CN 103679005 A CN103679005 A CN 103679005A CN 201310414715 A CN201310414715 A CN 201310414715A CN 103679005 A CN103679005 A CN 103679005A
Authority
CN
China
Prior art keywords
file
controller
signature
testing
software
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
CN201310414715.7A
Other languages
English (en)
Other versions
CN103679005B (zh
Inventor
K.M.贝尔茨
A.I.阿尔拉巴迪
T.M.富里斯特
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 CN103679005A publication Critical patent/CN103679005A/zh
Application granted granted Critical
Publication of CN103679005B publication Critical patent/CN103679005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及启用安全电子控制单元的开发模式的方法,具体提供一种用于在不需要软件被适当签名的情况下将软件安装在安全控制器上的***和方法。所述方法包括确定是否已在控制器中设定了绕过标识,该绕过标识识别是否需要文件验证程序来安装文件,该方法还包括执行预检验操作来确定文件的预定参数是否已被满足。所述方法还包括如果预检验操作已被满足则将文件安装到控制器中的存储器内。所述方法进一步包括确定文件是否具有适当签名并且如果设定了绕过标识且该文件不包括适当的签名就指示所述签名是适当的,以及如果该签名已被指示为适当的那么允许安装所述文件。

Description

启用安全电子控制单元的开发模式的方法
技术领域
本发明总体上涉及一种在控制器上安装软件而不需要所述软件包括授权的安全码的***和方法,更具体地涉及一种用于在生产车辆电子控制单元(ECU)上安装开发软件而不需要所述软件被签名的***和方法。
背景技术
多数现代车辆包括控制车辆***-例如动力系、气候控制***、资讯娱乐***、车体***、底盘***以及其他***的操作的电子控制单元(ECU)或控制器。这种控制器需要为特定目的设计的软件以便执行控制功能。随着这些控制器的数量和复杂性的增加以及由恶意软件的开发者造成的威胁的增长,认证加载到汽车控制器上的二进制文件的来源和内容变得愈发重要。在车辆控制器中使用没有适当认证或者(更糟糕的)恶意设计的软件的后果包括:车辆或者其***的非期望表现、车辆上防盗窃特征的丧失、诸如里程表的部件的潜在擅改以及其他车辆特征和功能的丧失。
一种公知的数字编码技术被称为非对称密钥加密术,所述技术使用数字签名来认证编程到控制器中的文件。如将为所属领域技术人员充分理解的,非对称密钥加密术使用称为私有密钥和公共密钥的一对数学上相关的密钥来为消息加密和解密。为了形成数字签名,签名者使用他的私有密钥(只有他自己知道)来为消息加密。数字签名可随后被使用与签名者的私有密钥配对的公共密钥的另一方解密。
快速安装(flashing)是用于将软件文件、校准文件和/或其他应用安装到车辆ECU的闪存存储器或其他可编程装置中的众所周知的过程。引导加载程序(bootloader)是加载到ECU上的嵌入软件程序,所述引导加载程序在ECU与快速安装文件的程序装置之间提供接口。在允许ECU执行软件文件或校准文件之前,所述引导加载程序可采用非对称密钥加密术并且存储将程序装置传送的数字签名解码所必须使用的公共密钥。
当开发和测试新版本的软件和校准文件时,通常期望采用已快速安装了现有文件的产品控制器来作为仅为了开发目的而提供的专门控制器的成本较低的备选方案。当在生产控制器中安装开发软件文件时,在ECU将允许文件安装之前,文件必须被适当地签名或者以其他方式认证。要求授权使用者对开发软件文件和校准文件签名需要付出很多的精力、时间和资源。然而,如果能将开发软件文件相对容易地安装到ECU中-包括绕过认证用于授权使用者的文件的签名要求,那么黑客将ECU设置成不需要签名的配置也会比较容易。因此,期望提供一种安全程序,其中被用于测试开发软件的生产控制器被指令不需要通过签名来快速安装软件,但仍足够安全以便防止潜在的黑客执行相同操作。
如果车辆上的特定模块存在大量生产控制器并且开发了一种为了测试和开发目的而将开发软件快速安装到那些控制器中的一个上的技术,如果该技术曾在安全开发环境之外释放,那么所有那些产品控制器随后可能都有容易受到攻击的风险。因此,用于指令控制器接收对于一种类型的特定控制器未签名的开发软件的技术需要足够安全以便防止潜在的黑客访问该控制器,并且还需要足够安全而当潜在的黑客取得了用于控制器的该技术时所述技术将不能在相同类型的所有其他控制器上使用。
发明内容
根据本发明的教导,公开了一种用于在不需要软件被适当签名的情况下将软件安装在安全控制器上的***和方法。所述方法包括使用控制器中的绕过标识,该绕过标识识别安装该文件是否需要文件验证程序。所述方法还包括执行预检验操作来确定文件的预定参数是否被满足。所述方法还包括如果预检验操作已满足就将文件安装到控制器中的存储器内。所述方法进一步包括确定文件是否具有适当签名并且如果设定了绕过标识则指示所述签名是适当的。如果签名已指示为是适当的,那么允许安装所述文件。
方案1. 一种用于将文件安全地安装到控制器上的方法,所述方法包括:
确定是否已在控制器中设定了绕过标识,该绕过标识确定是否需要文件验证程序来安装文件;
执行预检验操作来确定文件的预定参数是否已满足;
如果预检验操作已满足,则将文件安装到控制器中的存储器内;
确定文件是否具有授权的安全码并且如果设定了绕过标识且文件不包括授权的安全码则指示安全码是已授权的;以及
如果安全码被指示为已授权的,则允许安装文件。
方案2. 如方案1所述的方法,其中执行预检验操作来确定文件的预定参数是否已满足包括执行预检验操作-在该预检验操作中设定了绕过标识时将被满足的参数的数量小于绕过标记未被设定时将被满足的预定参数的数量。
方案3. 如方案1所述的方法,其中执行预检验操作来确定文件的预定参数是否已满足包括执行下述操作中的一个或多个:核实标题格式标识、核实签名版本、核实密钥标识和安全水平、核实存储地址范围、核实控制器标识号、核实文件的安全水平、核实兼容标识号是适当的、识别将安装的文件是否是用于控制器的以及核实文件的过期日。
方案4. 如方案1所述的方法,其中确定文件是否具有授权的安全码包括确定文件是否具有与采用数字签名以及公共和私有密钥的非对称密钥加密术编码相关的有效签名。
方案5. 如方案1所述的方法,其中安装文件到控制器中的存储器内包括擦除识别文件存在和有效的存在模式。
方案6. 如方案1所述的方法,进一步包括在将文件安装到控制器的存储器中之后但在确定文件是否具有授权的安全码之前执行校验和操作。
方案7. 如方案1所述的方法,其中所述文件可以是软件文件或校准文件,并且其中确定是否已设定了绕过标识包括确定是否已对软件文件或校准文件设定了独立的绕过标识。
方案8. 如方案1所述的方法,其中设定绕过标识来将开发软件安装在生产控制器上而无需为文件授权。
方案9. 如方案1所述的方法,其中所述控制器是车辆的电子控制单元(ECU)。
方案10. 一种用于将软件文件或校准文件安全地安装到车辆电子控制单元(ECU)上的方法,所述方法包括:
确定对软件文件或校准文件是否已在ECU中设定了绕过标识,该绕过标识确定是否需要文件验证程序来安装文件;
执行预检验操作来确定文件的预定参数是否已满足,其中执行预检验包括执行下述预检验操作-在该预检验操作中设定了绕过标识时将被满足的参数的数量小于绕过标识未设定时将要满足的预定参数的数量;
如果预检验操作已被满足,则将文件安装到控制器中的存储器内;
确定文件是否具有授权的签名并且如果设定了绕过标识并且文件不包括授权的签名则指示签名是已授权的;以及
如果签名被指示为已授权的,则允许安装文件。
方案11. 如方案10所述的方法,其中安装文件到控制器中的存储器内包括擦除识别文件存在和有效的存在模式。
方案12. 一种用于将文件安全地安装到控制器上的***,所述***包括:
用于确定是否已在控制器中设定了绕过标识从而确定是否需要文件验证程序来安装文件的装置;
用于执行预检验操作来确定文件的预定参数是否已满足的装置;
如果预检验操作已满足就将文件安装到控制器中的存储器内的装置;
用于确定文件是否具有授权的安全码并且如果设定了绕过标识且文件不包括授权的安全码就指示安全码已授权的装置;以及
如果安全码被指示为已授权的就允许安装文件的装置。
方案13. 如方案12所述的***,其中所述用于执行预检验操作的装置执行预检验操作来确定文件的预定参数是否已满足,包括执行下述预检验操作-在该预检验操作中设定了绕过标识时将要满足的参数的数量小于绕过标记未设定时将要满足的预定参数的数量。
方案14. 如方案12所述的***,其中所述用于执行预检验操作来确定文件的预定参数是否已满足的装置执行下述操作中的一个或多个:核实标题格式标识、核实签名版本、核实密钥标识和安全水平、核实存储地址范围、核实控制器标识号、核实文件的安全水平、核实兼容标识号是适当的、识别将安装的文件是否是用于控制器的以及核实文件的过期日。
方案15. 如方案12所述的***,其中所述用于确定文件是否具有授权的安全码的装置确定文件是否具有与采用数字签名以及公共和私有密钥的非对称密钥加密术编码相关的有效签名。
方案16. 如方案12所述的***,其中所述用于安装文件到控制器中的存储器内的装置擦除识别文件存在和有效的存在模式。
方案17. 如方案12所述的***,进一步包括用于在将文件安装到控制器的存储器中之后但在确定文件是否具有授权的安全码之前执行校验和操作的装置。
方案18. 如方案12所述的***,其中所述文件可以是软件文件或校准文件,并且其中确定是否已设定了绕过标识包括根据所述文件是软件文件还是校准文件来独立地确定是否已设定了绕过文件。
方案19. 如方案12所述的***,其中设定绕过标识来将开发软件安装在生产控制器上而无需为文件授权。
方案20. 如方案12所述的***,其中所述控制器是车辆的电子控制单元(ECU)。
通过结合附图来参阅下面的描述和所附权利要求,本发明的附加特征将变得清楚。
附图说明
图1是示出了用于核实数字签名的过程的示意方框图;
图2是一种使用数字签名来签名和核实电子内容的方法的方框图,该方法包括从程序源输送内容和签名文件到执行控制器;
图3是示出了电子内容和数字签名如何物理地输送到车辆中的控制器的示意图;
图4是示出了一种用于绕过生产控制器的安全码的方法的方框流程图;
图5是控制器的存储区段的方框图;以及
图6是示出了一种用于签名的软件部分的安全快速安装程序的过程的流程图。
具体实施方式
下面对涉及用于在无需软件被签名的情况下将软件安装在控制器上的***和方法的本发明的实施方式的论述本质上仅是示例性的,决非用于限制本发明、其应用或用途。例如,本文论述的技术对于车辆ECU具有特定应用。然而,如将为所属领域技术人员理解的是,所述技术可应用于其他控制器。
图1是使用用于认证编程到控制器中的文件的非对称密钥数字签名的公知方法的方框图。如将为所属领域技术人员充分理解的,非对称密钥加密术使用称为私有密钥和公共密钥的一对数学上相关的密钥来为消息加密和解密。为了形成数字签名,签名者使用他的私有密钥(只有他自己知道)来为数字消息加密。数字签名可随后被使用与签名者的私有密钥配对的公共密钥的另一方解密从而认证文件或消息。
在签名步骤12,提供了内容文件14,其中所述内容文件14可以是一款软件、校准文件或者控制器中使用的其他“软件部分”内容。在内容文件14上执行散列计算来产生内容文件14的散列值16。散列值16随后通过签名者的私有密钥来加密从而产生数字签名18,其中所述数字签名18仅有益于该特定的内容文件。
数字签名18和内容文件14随后用于核实步骤20,将在本文论述的应用中通过ECU中的引导加载程序执行所述核实步骤20。使用签名者的公共密钥为数字签名18解密从而产生解密散列值22。与此同时,通过核实器在内容文件14上执行散列计算,来产生计算的散列值24。在方框26处,将解密的散列值22与计算的散列值24相比较。如果解密散列值22匹配计算的散列值24,那么在椭圆框28处发出有效确定,并且使用内容文件14。如果解密散列值22不匹配计算的散列值24,那么在椭圆框30处发出无效确定,并且不使用内容文件14。
图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的副本。也就是说,制造部门可以从制造数据库56提供内容文件44和数字签名46到程序工具68以便安装在新生产的车辆上,或者服务部门可以从服务数据库62提供内容文件44和数字签名46到程序工具68以便安装在被保养的车辆上。
接下来的步骤是程序工具68将内容文件44安装在车辆中的控制器上。ECU74是将实际使用内容文件44的控制器。下面是ECU74的配置的简述。ECU74上的软件包括引导加载程序、可执行软件以及一个或多个校准文件。为了该论述的目的,ECU74被假定为具有单个中央处理器(CPU)。在实际车辆中,ECU74可具有多个CPU,并且每个CPU都将具有引导加载程序、可执行软件以及一个或多个校准文件。
ECU74中的引导加载程序负责验证和安装新的软件文件和校准文件。因此,本段中描述的功能是通过ECU74中的引导加载程序来执行的。程序工具68提供内容文件44和数字签名46到ECU74。数字签名46是通过引导加载程序使用库42的公共密钥来解密的,以便生成解密散列值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上的其他***36。内容文件44和数字签名46提供到在此示出为制造数据库56的中心数据库。内容文件44和数字签名46到制造数据库56的传送可以在公司网络上进行。制造数据库56提供内容文件44和数字签名46到程序工具68,其中该传送可以通过将所述程序工具68附接到已接入到数据库56的计算机来实现。程序工具68通过可以是有线的或无线的连接38与ECU74通讯。通过建立连接38,内容文件44和数字签名46可以从程序工具68下载到ECU74,其中引导加载程序可以执行前面论述的安全核实功能。
本发明提出一种技术,所述技术允许已快速安装了现有文件的生产控制器为了测试、核实、分析等目的而快速安装上开发软件和/或校准文件而无需通过签名或其他有效码来签名或以其他方式认证开发软件文件和/或校准文件,从而允许工程师和技术人员以更容易、节省成本和友好的方式使用生产控制器进行产品开发。如下面将要详细论述的,所述技术被执行以便仅允许单个特定实例控制器-而不是特定控制器类型的所有控制器在无需签名的情况下快速安装上开发软件。
图4是其中从顶部到底部代表时间进程的方框流程图90,图中示出了总体上在上面提及的技术的过程,并且该流程图包括代表安全(即,仅接受签名的软件)车辆生产ECU或控制器的方框92、代表想要为产品开发目的使用所述生产控制器92的工程师或技术人员的方框94-其中所述工程师94将使用上面提及的类型的程序工具来访问所述控制器92,还包括服务器96,所述服务器96代表用于特定机构的已知、可信并且远程的数据库或者“后台”,所述特定机构能够为特定应用提供认证、授权和稽核服务(AAA)。
当工程师94希望使用控制器92(例如,将未签名的软件和/或校准文件编程到控制器中)时,为了禁用或绕过签名验证要求或者替换用于核实数字签名的签名密钥的目的,工程师94将通过程序工具在线98上发送控制器信息的请求。当控制器92在线98上接收请求时,流程往下进行来形成由线100代表的控制器信息标签,并且所述标签通过程序工具在线102上传送给工程师94。信息标签是消息,所述消息可包括识别该特定ECU的任何独特信息-例如模块ID号、部件序号或者制造可追溯性,并且如下面将更详细论述的,可能包括必须确认或回答来满足控制器92以便超越或绕过签名要求的挑战或其他要求。
工程师94随后登录服务器96(由线104代表)以便获得服务器96验证和核准控制器信息标签,其中工程师94和服务器96交换必要信息使得服务器96了解工程师94是服务器96的授权使用者。服务器96将定位在远离工程师94和控制器92的安全设备处,其中工程师94以任何适当方式-例如通过PC键盘、触摸屏等访问服务器96,并且其中可以通过任何适当的安全连接-例如无线、安全可靠的电话线等连接到服务器96。一旦工程师94已登录到服务器96,工程师94随后通过与登录相同的过程在线106上发送控制器信息标签到服务器96。基于控制器信息标签中提供的信息,服务器96形成授权标签(由线108代表),其中所述授权标签是通过服务器96签名的并且可以是具有特定模块ID的文件标题。应当指出的是,服务器96必须了解该文件标题的形式。
图5是本文论述的那种类型的授权标签120的示意图,所述授权标签允许控制器92验证工程师94为授权使用者。服务器96生成包括在区段122处的控制器信息的标签120,所述控制器信息识别控制器92并且包括对挑战问题的回答,使得授权标签120仅对单个特定控制器92有效。在区段124处,授权标签120可包括一种参数,所述参数描述为什么工程师94想要更新控制器92的目的-例如绕过软件文件和/或校准部分的签名验证、解锁控制器92、替换签名验证密钥、更新特殊参数等。在区段126处,授权标签120可包括限定标签120的有效期-例如一次使用、点火循环等的验证码。在区段128处,标签120可包括签名信息-例如签名值、签名者ID等。
服务器96随后在线110上通过已建立的连接发送授权标签120到工程师94,并且工程师94随后通过程序工具在线112上发送授权标签120到控制器92,其中通过控制器92处理所述授权标签120(以线114代表)。控制器92处理授权标签120中的信息以便建立有效的授权标签,并且设定适当标识或者提供适当启用方案(例如,允许工程师94现在在控制器92上安装未签名的开发软件文件和/或校准文件)。由服务器96生成的授权标签120告诉控制器92它需要知道什么类型的信息来核实标签并且更新控制器92。控制器92考察授权标签120并且确定它是否具有具体用于控制器92的适当签名或者代码和ID信息。
如上所述,由控制器92生成的控制器信息标签可包括包含在由服务器96生成的授权标签120中的某些类型的挑战或者其他代码,使得当工程师94将授权标签120发回到控制器92时它需要包括该特定挑战或代码,以便控制器92知道它不是前面用于不同程序操作的授权标签。因此,每次工程师94想要将控制器92从生产模式转换到开发模式时,他或她必须通过首先从控制器92获得控制器信息标签来取得新的授权标签。服务器92使用控制器信息标签中的信息来形成具有适当代码的授权标签120,所述适当代码允许控制器92知道它已被适当地验证并且工程师94是授权使用者。因此,可能必须需要识别该控制器的信息、随机数或其他挑战识别器以及/或者控制器标识号和随机数两者。仅使控制器ID获得授权标签120的优点是,工程师94仅需要访问服务器96一次来取得用于该特定控制器的授权标签。然而,如果控制器92转换回到生产模式,那么没有该挑战的授权标签可能被误用而将控制器92转换回到生产模式。
上述用于超越快速安装开发软件文件和/或校准部分的签名要求的过程可以在控制器92中设定签名或授权绕过标识,以便允许开发软件文件快速安装到控制器92中。备选地,上述用于超越签名要求的过程可用于除了在生产控制器上快速安装开发软件文件和/或校准部分之外的其他目的。假定签名绕过标识已设定,本发明还提出一种技术,所述技术是用于开发软件文件和/或校准部分随后如何快速安装在控制器92中的过程。还应当指出的是,本文论述的签名绕过标识并非必须是用于绕过签名要求的标识,而可以是被设定为用于绕过其他授权要求的标识。
图6是流程图130,图中示出了在签名绕过标识已设定或没有设定的两种情况下都允许软件文件和/或校准文件快速安装在控制器92中的过程。流程图130中描绘的算法可用于快速安装软件文件或校准文件,其中软件文件或校准文件的快速安装将彼此独立。关于这点,所述算法在方框132处首先确定将要快速安装的文件是软件文件还是校准文件,并且随后基于该确定往下进行至菱形决策框134以便确定是否已设定软件文件绕过标识或校准文件绕过标识。如果用于软件文件或者校准文件的绕过标识尚未设定,那么软件文件或者校准文件的快速安装需要使用如上所述的签名核实来验证。同样地,如果绕过标识已设定,那么软件文件或校准文件不需要如上所述被验证。
如果绕过标识尚未设定,那么所述算法往下进行至菱形决策框136来执行一系列预检验,以便确定软件文件或校准文件是否具有适当格式-例如标题格式标识、签名版本、密钥标识、存储地址范围等。在预检验操作中可以采用适用于特定软件文件、校准文件、控制器等的任何预检验。适当的非限制性核实示例包括:模块ID检验,所述模块ID检验识别呈送给控制器的文件的类型-即校准文件或软件;控制器检验,所述控制器检验确定将被编程的兼容地址范围是否在与用于校准文件或软件文件的已知有效范围关联的范围内,将用于计算待安装的软件文件或校准文件的签名的密钥是否与控制器中的密钥兼容,用于计算将被编程的软件文件或校准文件的签名的密钥的安全水平是否与存储在控制器中的密钥安全水平兼容,正被编程的软件文件或校准文件的安全水平是否与存储在控制器中的软件安全水平兼容,兼容性ID是否适于确定将快速安装的软件文件或校准文件是否与控制器中的引导软件兼容,呈送给控制器的文件内的目标名称是否与控制器匹配-例如不适当的文件可能被发送到错误的控制器,将快速安装的文件的过期日等。
在菱形决策框136处的预检验步骤中如果软件文件或校准文件不包括适当的预检验标识等,那么所述算法往下进行至方框138来报错并且保持在引导模式并且文件不被快速安装。如果在菱形决策框136处软件文件或校准文件通过预检验步骤,那么所述算法往下进行至方框140,在所述方框140处软件文件或校准文件存储在存储器中同时所述软件文件或校准文件被认证和验证。执行对于该特定文件的快速安装,并且所述快速安装包括擦除软件或校准文件存在模式、擦除快速安装区段、写入文件来进行快速安装等,所有这些都将为所属领域技术人员充分理解。因为在本文论述的用于处理签名、校验和等的控制器中的RAM存储器限制,将要安装的文件可以在它们被验证之前快速安装到存储器中。因此,引导加载程序将软件或校准文件快速安装到非易失存储器中,并且如果确定它是有效的仅使用快速安装的软件或校准文件,否则当它不是有效的时候就擦除软件或校准文件。存在模式是核实软件文件或校准文件的众所周知的数字消息。具体地,加载引导程序可以通过检验特定数字模式的出现来确定软件和/或校准文件是存在和有效的,所述特定数字模式已知为软件和/或校准文件存储块内的存在模式。可以在与软件或校准文件相关的存储器区段中的任何适当位置处并且通常在存储区段的末端设置所述存在模式。
一旦执行了快速安装过程,所述算法在菱形决策框142处确定是否应当执行或绕过校验和过程。如将为所属领域技术人员充分理解的,校验和是高水平验证过程以便确保快速安装过程没有被滥用并且一切都正确安装。如将为所属领域技术人员充分理解的,为了验证的目的某些快速安装过程可能想要采用校验和过程,而其他快速安装过程可能不采用校验和过程。如果校验和过程将不被绕过,那么所述算法确定校验和验证过程是否指示所述快速安装过程是有效的,并且如果不是有效的,往下进行至方框138来报错并且保持在引导模式。如果校验和过程在菱形决策框142处被绕过或者在菱形决策框146处是有效的,那么所述算法在方框144处验证诸如上述的快速安装存储上的签名,以确定安装的软件文件或者校准文件是否被认证和验证。所述算法在菱形决策框148处确定签名是否有效,并且如果不是有效的,往下进行至方框138来报错并且保持在引导模式。否则,所述算法写入软件文件或校准文件存在模式,如果在方框150处所有存在模式都是有效的,就报告快速安装成功并且退出引导模式。
如果在菱形决策框134处设定了绕过标识,意味着将快速安装的软件文件或校准文件不需要通过其签名或其他安全码来验证,那么所述算法在决策框152处仍执行如上所述的预检验过程,而如果预检验未通过,那么所述算法移动至方框138来报错并且保持在引导模式。应当指出的是,基于绕过标识是否设定,预检验过程可以是不同的,其中如果设定了绕过标识,那么预检验过程将可能不那么可靠。因此,如果在设定了绕过标识时某些不是预检验测试的一部分的预检验操作没有被满足,那么所述算法将仍往下进行至用于快速安装软件的方框154。
如果在菱形决策框152处通过预检验操作,那么所述算法:在方框154处以与在方框140处相同的方式擦除存在模式和快速安装区段,在菱形决策框156处以与在菱形决策框142处相同的方式确定校验和是否应被绕过,以及在菱形决策框160处以与在菱形决策框146相同的方式确定校验和是否有效。在当前绕过标识已设定的情况下,所述算法仍通过该过程来在方框158处确定签名是否有效,并且无论其是否有效,都向签名有效菱形决策框148报告签名有效。换句话说,即使设定了绕过标识,所述算法仍试图认证签名并且报告它是有效的而无论已知它是否有效。主要由于时间原因-即签名验证过程占用一定量的时间并且需要在开发过程中重复,所述算法计算当它处于开发绕过模式时该签名是否有效。
如将为所属领域技术人员充分理解的,本文论述的描述本发明的多个以及各种步骤和过程可意指操作,所述操作由计算机、使用电气现象操纵和/或变换数据的处理器或者其他电子计算装置来执行。那些计算机和电子装置可采用各种易失和/或非易失存储器,所述存储器包括具有存储在其上的可执行程序的非临时计算机可读介质,所述可执行程序包括能够由计算机或处理器执行的各种代码或可执行指令,其中所述存储器和/或计算机可读介质可包括所有形式和类型的存储器和其他计算机可读介质。
前面的论述仅仅是对本发明的示例性实施方式的公开和描述。通过这些论述以及附图和权利要求,本领域技术人员将会容易地认识到,在不偏离由所附权利要求限定的本发明的精神和范围的情况下,可以对本发明做出各种改变、改型和变型。

Claims (10)

1.一种用于将文件安全地安装到控制器上的方法,所述方法包括:
确定是否已在控制器中设定了绕过标识,该绕过标识确定是否需要文件验证程序来安装文件;
执行预检验操作来确定文件的预定参数是否已满足;
如果预检验操作已满足,则将文件安装到控制器中的存储器内;
确定文件是否具有授权的安全码并且如果设定了绕过标识且文件不包括授权的安全码则指示安全码是已授权的;以及
如果安全码被指示为已授权的,则允许安装文件。
2.如权利要求1所述的方法,其中执行预检验操作来确定文件的预定参数是否已满足包括执行预检验操作-在该预检验操作中设定了绕过标识时将被满足的参数的数量小于绕过标记未被设定时将被满足的预定参数的数量。
3.如权利要求1所述的方法,其中执行预检验操作来确定文件的预定参数是否已满足包括执行下述操作中的一个或多个:核实标题格式标识、核实签名版本、核实密钥标识和安全水平、核实存储地址范围、核实控制器标识号、核实文件的安全水平、核实兼容标识号是适当的、识别将安装的文件是否是用于控制器的以及核实文件的过期日。
4.如权利要求1所述的方法,其中确定文件是否具有授权的安全码包括确定文件是否具有与采用数字签名以及公共和私有密钥的非对称密钥加密术编码相关的有效签名。
5.如权利要求1所述的方法,其中安装文件到控制器中的存储器内包括擦除识别文件存在和有效的存在模式。
6.如权利要求1所述的方法,进一步包括在将文件安装到控制器的存储器中之后但在确定文件是否具有授权的安全码之前执行校验和操作。
7.如权利要求1所述的方法,其中所述文件可以是软件文件或校准文件,并且其中确定是否已设定了绕过标识包括确定是否已对软件文件或校准文件设定了独立的绕过标识。
8.如权利要求1所述的方法,其中设定绕过标识来将开发软件安装在生产控制器上而无需为文件授权。
9.一种用于将软件文件或校准文件安全地安装到车辆电子控制单元(ECU)上的方法,所述方法包括:
确定对软件文件或校准文件是否已在ECU中设定了绕过标识,该绕过标识确定是否需要文件验证程序来安装文件;
执行预检验操作来确定文件的预定参数是否已满足,其中执行预检验包括执行下述预检验操作-在该预检验操作中设定了绕过标识时将被满足的参数的数量小于绕过标识未设定时将要满足的预定参数的数量;
如果预检验操作已被满足,则将文件安装到控制器中的存储器内;
确定文件是否具有授权的签名并且如果设定了绕过标识并且文件不包括授权的签名则指示签名是已授权的;以及
如果签名被指示为已授权的,则允许安装文件。
10.一种用于将文件安全地安装到控制器上的***,所述***包括:
用于确定是否已在控制器中设定了绕过标识从而确定是否需要文件验证程序来安装文件的装置;
用于执行预检验操作来确定文件的预定参数是否已满足的装置;
如果预检验操作已满足就将文件安装到控制器中的存储器内的装置;
用于确定文件是否具有授权的安全码并且如果设定了绕过标识且文件不包括授权的安全码就指示安全码已授权的装置;以及
如果安全码被指示为已授权的就允许安装文件的装置。
CN201310414715.7A 2012-09-12 2013-09-12 启用安全电子控制单元的开发模式的方法 Active CN103679005B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/612165 2012-09-12
US13/612,165 US8881308B2 (en) 2012-09-12 2012-09-12 Method to enable development mode of a secure electronic control unit

Publications (2)

Publication Number Publication Date
CN103679005A true CN103679005A (zh) 2014-03-26
CN103679005B CN103679005B (zh) 2017-09-22

Family

ID=50153436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310414715.7A Active CN103679005B (zh) 2012-09-12 2013-09-12 启用安全电子控制单元的开发模式的方法

Country Status (3)

Country Link
US (1) US8881308B2 (zh)
CN (1) CN103679005B (zh)
DE (1) DE102013108022A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408384A (zh) * 2014-11-14 2015-03-11 北京开运联合信息技术有限公司 操作***登录装置和方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542558B2 (en) * 2014-03-12 2017-01-10 Apple Inc. Secure factory data generation and restoration
US9590983B2 (en) 2014-04-09 2017-03-07 Cardex Systems Inc. Self-authenticating chips
US9705678B1 (en) * 2014-04-17 2017-07-11 Symantec Corporation Fast CAN message authentication for vehicular systems
US10235370B2 (en) 2015-03-02 2019-03-19 Bank Of America Corporation Methods and apparatus for providing unified transmission tracking services
DE102015006091A1 (de) * 2015-05-11 2016-11-17 Veridos Gmbh Verfahren zur Überprüfung einer Identität einer Person
JP2017167916A (ja) * 2016-03-17 2017-09-21 株式会社デンソー 情報処理システム
US10171478B2 (en) * 2016-06-30 2019-01-01 Faraday & Future Inc. Efficient and secure method and apparatus for firmware update
DE102016221108A1 (de) 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
US10395038B2 (en) * 2018-02-01 2019-08-27 Quanta Computer Inc. System and method for automatic recovery of firmware image
US10691805B2 (en) * 2018-02-14 2020-06-23 GM Global Technology Operations LLC Resident manufacturing test software based system for mitigating risks associated with vehicle control modules
US10430178B2 (en) 2018-02-19 2019-10-01 GM Global Technology Operations LLC Automated delivery and installation of over the air updates in vehicles
US11956369B2 (en) 2020-08-13 2024-04-09 Robert Bosch Gmbh Accelerated verification of automotive software in vehicles
DE102021130402A1 (de) 2021-11-22 2023-05-25 Audi Ag Steuergerät und Steuergerätsystem für ein Kraftfahrzeug sowie Verfahren zum Betreiben eines Steuergeräts für ein Kraftfahrzeug
US20230415754A1 (en) 2022-06-23 2023-12-28 GM Global Technology Operations LLC Performance tuning for electronic control unit
US11954205B2 (en) * 2022-06-24 2024-04-09 GM Global Technology Operations LLC Security control for electronic control unit

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087870A1 (en) * 2009-10-13 2011-04-14 Google Inc. Computing device with developer mode
US20110179195A1 (en) * 2010-01-20 2011-07-21 Spansion Llc Field upgradable firmware for electronic devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110087870A1 (en) * 2009-10-13 2011-04-14 Google Inc. Computing device with developer mode
US20110179195A1 (en) * 2010-01-20 2011-07-21 Spansion Llc Field upgradable firmware for electronic devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NILSSON等: "《A Framework for Self-Verification of Firmware Updates over the Air in Vehicle ECUs》", 《IEEE》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408384A (zh) * 2014-11-14 2015-03-11 北京开运联合信息技术有限公司 操作***登录装置和方法

Also Published As

Publication number Publication date
US20140075579A1 (en) 2014-03-13
US8881308B2 (en) 2014-11-04
CN103679005B (zh) 2017-09-22
DE102013108022A1 (de) 2014-03-13

Similar Documents

Publication Publication Date Title
CN103679005A (zh) 启用安全电子控制单元的开发模式的方法
CN103677892A (zh) 在安全电子控制单元中启用特殊优先模式的授权方案
CN103677891B (zh) 用于选择性软件回退的方法
CN103166759B (zh) 使用诊断链路连接器(dlc)和onstar***的用于安全固件下载的方法和装置
EP3274897B1 (en) System and method for managing installation of an application package requiring high-risk permission access
CN101194229B (zh) 更新数据指令的方法和设备
US8966248B2 (en) Secure software file transfer systems and methods for vehicle control modules
US8856538B2 (en) Secured flash programming of secondary processor
CN111279310A (zh) 一种车载设备升级方法及相关设备
KR101430240B1 (ko) 어플리케이션 서명 장치 및 방법
US20130111212A1 (en) Methods to provide digital signature to secure flash programming function
KR20120134509A (ko) 어플리케이션 개발 시스템에서 디바이스용 어플리케이션을 생성 및 설치하기 위한 장치 및 방법
CN112165382A (zh) 软件授权方法、装置、授权服务端及终端设备
JP6894160B1 (ja) スマートコントラクトに基づいた利用権情報処理装置、利用権情報処理システム、および利用権情報処理方法
CN113261253A (zh) 用于控制资源的释放的方法和***
US9858061B2 (en) Tamperproof installation of building control software in approved runtime environments
CN114444134A (zh) 一种数据使用授权方法、***及装置
CN110661779A (zh) 基于区块链网络的电子证件管理方法、***、设备及介质
CN106031124B (zh) 借助于肯定名单来使用证书
CN111953634B (zh) 终端设备的访问控制方法、装置、计算机设备和存储介质
CN108540335B (zh) 设备分析报告的管理方法及管理装置
Plappert et al. Secure and Lightweight ECU Attestations for Resilient Over-the-Air Updates in Connected Vehicles
JP4818824B2 (ja) プログラム管理システムおよび端末装置
CN109074247B (zh) 车辆计算机更新认证
CN116707758A (zh) 可信计算设备的认证方法、设备和服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant