CN115421466A - 控制器程序校验方法、装置、控制设备及存储介质 - Google Patents
控制器程序校验方法、装置、控制设备及存储介质 Download PDFInfo
- Publication number
- CN115421466A CN115421466A CN202210905757.XA CN202210905757A CN115421466A CN 115421466 A CN115421466 A CN 115421466A CN 202210905757 A CN202210905757 A CN 202210905757A CN 115421466 A CN115421466 A CN 115421466A
- Authority
- CN
- China
- Prior art keywords
- verification
- program
- controller
- memory
- preset
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种控制器程序校验方法、装置、控制设备及存储介质,涉及软件应用安全技术领域。方法包括:将第1个控制器中的第一存储器中的程序作为可信程序,并通过可信程序及第一预设校验规则,对第二存储器中的引导程序进行防篡改校验;当第二存储器中的引导程序校验成功通过时,通过引导程序及第二预设校验规则,对第二存储器中的应用程序进行防篡改校验;当第二存储器中的应用程序校验成功通过时,通过第二存储器中的应用程序中的第一校验单元及第三预设校验规则,对N个控制器中的第2个控制器中的应用程序进行防篡改校验。通过链式校验,可以实现对控制设备中的所有控制器的防篡改校验,有利于降低防篡改检测的硬件要求。
Description
技术领域
本发明涉及软件应用安全技术领域,具体而言,涉及一种控制器程序校验方法、装置、控制设备及存储介质。
背景技术
伴随着智能控制技术的发展,一些场景中,需要部署多个控制器,在多个控制器启动之初,需要进行可信检测,以避免控制器中的程序出现非法篡改。例如,随着智能网联汽车的迅速发展,为防止车端控制器的程序被非法篡改,需要在控制器启动过程中对即将运行的程序进行合法性、完整性校验,称为安全启动技术。安全启动技术通常基于控制器内部硬件的可信根,能保证自身程序不被篡改。由于车端控制器较多,控制器的硬件性能各不相同,很多控制器不支持硬件可信根,自身无法防篡改,因此,无法提供可信的校验能力,从而不利于对多个控制器进行防篡改检测。
发明内容
有鉴于此,本申请实施例的目的在于提供一种控制器程序校验方法、装置、控制设备及存储介质,能够实现多个控制器的防篡改检测,改善因部分控制器不支持硬件可信根而无法实现所有控制器可信检测的问题。
为实现上述技术目的,本申请采用的技术方案如下:
第一方面,本申请实施例提供了一种控制器程序校验方法,应用于控制设备,所述控制设备包括相连接的N个控制器,所述N个控制器中的第1个控制器包括只读的第一存储器及可读写的第二存储器,N为大于1的整数,所述方法包括:
当所述N个控制器上电时,将所述第1个控制器中的所述第一存储器中的程序作为可信程序,并通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验;
当所述第二存储器中的所述引导程序校验成功通过时,通过所述引导程序及第二预设校验规则,对所述第二存储器中的应用程序进行防篡改校验;
当所述第二存储器中的应用程序校验成功通过时,通过所述第二存储器中的应用程序中的第一校验单元及第三预设校验规则,对所述N个控制器中的第2个控制器中的应用程序进行防篡改校验;
当第n个控制器中的应用程序校验成功通过时,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,n为整数,且n依次取2至N-1;
当所述N个控制器均校验成功通过时,控制所述控制设备进入工作状态。
结合第一方面,在一些可选的实施方式中,通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验,包括:
通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,所述第一预设校验规则包括对称签名算法、非对称签名算法中的一种。
结合第一方面,在一些可选的实施方式中,通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,包括:
在所述第一预设周期内,通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验;
当所述第二存储器中的所述引导程序校验未通过时,重复通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验的步骤,其中,在一个所述第一预设周期内,当校验成功通过,或者重复校验的次数达到第一指定次数且校验均未通过时,停止对所述引导程序进行校验;
或者,在所述第二存储器中的所述引导程序校验成功通过后,且在间隔所述第一预设周期时,通过所述可信程序及所述第一预设校验规则,再次对所述第二存储器中的所述引导程序进行合法性及完整性校验。
结合第一方面,在一些可选的实施方式中,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,包括:
通过所述第n个控制器中的应用程序中的校验单元,在第二预设周期内利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验;
在所述第二预设周期内,当所述第n+1个控制器中的应用程序校验未通过时,重复通过所述第n个控制器中的应用程序中的校验单元,利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验的步骤,其中,当校验成功通过,或者重复校验的次数达到第二指定次数且校验均未通过时,停止对所述第n+1个控制器中的应用程序进行校验。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
当所述第n个控制器中的应用程序校验未通过时,控制所述第n个控制器进行复位或断电。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
当所述N个控制器中的任一控制器校验未通过时,发出报警提示信息。
第二方面,本申请还提供一种控制器程序校验装置,应用于控制设备,所述控制设备包括相连接的N个控制器,所述N个控制器中的第1个控制器包括只读的第一存储器及可读写的第二存储器,N为大于1的整数,所述装置包括:
第一检测单元,用于当所述N个控制器上电时,将所述第1个控制器中的所述第一存储器中的程序作为可信程序,并通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验;
第二检测单元,用于当所述第二存储器中的所述引导程序校验成功通过时,通过所述引导程序及第二预设校验规则,对所述第二存储器中的应用程序进行防篡改校验;
第三检测单元,用于当所述第二存储器中的应用程序校验成功通过时,通过所述第二存储器中的应用程序中的第一校验单元及第三预设校验规则,对所述N个控制器中的第2个控制器中的应用程序进行防篡改校验;
所述第三检测单元还用于当第n个控制器中的应用程序校验成功通过时,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,n为整数,且n依次取2至N-1;
启动控制单元,用于当所述N个控制器均校验成功通过时,控制所述控制设备进入工作状态。
结合第二方面,在一些可选的实施方式中,所述第一检测单元还用于:
通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,所述第一预设校验规则包括对称签名算法、非对称签名算法中的一种。
第三方面,本申请还提供一种控制设备,所述控制设备包括相连接的N个控制器,所述N个控制器中的第1个控制器包括只读的第一存储器及可读写的第二存储器,N为大于1的整数,所述N个控制器中的每个控制器的存储器内存储计算机程序,当所述计算机程序被对应的控制器执行时,使得所述控制设备执行上述的方法。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。
采用上述技术方案的发明,具有如下优点:
在本申请提供的技术方案中,由于控制设备中第1个控制器的第一存储器具有只读功能,意味着第一存储器中的程序为可信的,不会被轻易篡改,可以作为可信根。然后,利用第一存储器中的程序,对第1个控制器中的引导程序进行防篡改校验,并在校验通过后,利用引导程序对第1个控制器中的应用程序进行防篡改检测,如此,可以实现第1个控制器自身的防篡改检测。当第1个控制器校验通过后,再利用第1个控制器对第2个控制器中的应用程序进行防篡改校验。在第2个控制器校验通过后,便利用第2个控制器,对第3个控制器中的应用程序进行防篡改校验,基于该链式校验,可以实现对控制设备中的所有控制器的防篡改校验,且仅需其中一个控制器具有只读功能的存储器,以作为可信根,其他控制器无需具有只读存储器,有利于降低防篡改检测的硬件要求。
附图说明
本申请可以通过附图给出的非限定性实施例进一步说明。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的控制设备的框图。
图2为本申请实施例提供的控制器程序校验方法的流程示意图。
图3为本申请实施例提供的控制器程序校验装置的框图。
图标:10-控制设备;11-控制器;111-可信程序;112-引导程序;113-控制单元;114-校验单元;115-主程序;116-应用程序;12-控制器;121-控制单元;122-校验单元;123-主程序;124-被校验单元;13-控制器;131-控制单元;132-校验单元;133-主程序;134-被校验单元;200-控制器程序校验装置;210-第一检测单元;220-第二检测单元;230-第三检测单元;240-启动控制单元。
具体实施方式
以下将结合附图和具体实施例对本申请进行详细说明,需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,本申请实施例提供一种控制设备10。控制设备10可以包括相连接的N个控制器,所述N个控制器中的第1个控制器包括只读的第一存储器及可读写的第二存储器,N为大于1的整数。N个控制器中的每个控制器的存储器内存储计算机程序。当计算机程序被对应的控制器执行时,使得控制设备10能够执行下述控制器程序校验方法中的相应步骤。
其中,控制设备10所包括的控制器的数量可以根据实际情况灵活设置。控制器之间,可以通过物理线路连接,形成任意两个控制器可以直接或间接进行通信的网络拓扑。例如,控制器之间,可以通过SPI(Serial Peripheral Interface,串行外设接口)、CAN(Controller Area Network,控制器局域网络)、以太网等通信线进行连接。
在控制设备10中,至少有一个控制器具有只读存储器,例如,第1个控制器中的第一存储器即为只读存储器。只读存储器具有一次性写入特性,即,在只读存储器中首次写入相应的程序或数据后,通常便无法更改,后续只能从只读存储器中读出数据而无法写入数据。只读存储器中存储的程序被默认为是未经过非法篡改的,是可信的。因此,第1个控制器中只读存储器中的程序可以作为防篡改校验的可信根。
在本实施例中,控制设备10可以部署在车辆上,使得车辆具有自动驾驶功能。其中,控制设备10包括但不限于整车控制器、电机控制器、空调控制器、自动驾驶控制器等,控制设备10中的控制器的种类及数量可以根据实际情况灵活设置,这里不再赘述。
请参照图2,本申请还提供一种控制器程序校验方法,可以应用于上述的控制设备10。其中,控制器程序校验方法可以包括如下步骤:
步骤110,当所述N个控制器上电时,将所述第1个控制器中的所述第一存储器中的程序作为可信程序,并通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验;
步骤120,当所述第二存储器中的所述引导程序校验成功通过时,通过所述引导程序及第二预设校验规则,对所述第二存储器中的应用程序进行防篡改校验;
步骤130,当所述第二存储器中的应用程序校验成功通过时,通过所述第二存储器中的应用程序中的第一校验单元及第三预设校验规则,对所述N个控制器中的第2个控制器中的应用程序进行防篡改校验;
步骤140,当第n个控制器中的应用程序校验成功通过时,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,n为整数,且n依次取2至N-1;
步骤150,当所述N个控制器均校验成功通过时,控制所述控制设备10进入工作状态。
在上述的实施方式中,由于控制设备10中第1个控制器的第一存储器具有只读功能,意味着第一存储器中的程序为可信的,不会被轻易篡改,可以作为可信根。然后,利用第一存储器中的程序,对第1个控制器中的引导程序进行防篡改校验,并在校验通过后,利用引导程序对第1个控制器中的应用程序进行防篡改检测,如此,可以实现第1个控制器自身的防篡改检测。当第1个控制器校验通过后,再利用第1个控制器对第2个控制器中的应用程序进行防篡改校验。在第2个控制器校验通过后,便利用第2个控制器,对第3个控制器中的应用程序进行防篡改校验,基于该链式校验,可以实现对控制设备10中的所有控制器的防篡改校验,且仅需其中一个控制器具有只读功能的存储器,以作为可信根,其他控制器无需具有只读存储器,有利于降低防篡改检测的硬件要求。
下面将对控制器程序校验方法的各步骤进行详细阐述,如下:
步骤110可以包括:通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,所述第一预设校验规则包括对称签名算法、非对称签名算法中的一种。
对称签名算法即为加密与解密用的是同样的密钥,为常规的算法。例如,对称签名算法可以是但不限于AES(Advanced Encryption Standard,高级加密标准)算法。非对称签名算法包括但不限于RSA算法、DSA算法。其中,RSA算法指由罗纳德·李维斯特(RonRivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的公钥加密算法,与DSA(Digital Signature Algorithm,数字签名)算法均为常规的非对称签名算法。
例如,在可信程序中,可以预先存储有未经过篡改的引导程序的HASH值,第一预设校验规则可以用于计算第二存储器中的引导程序当前的HASH值,若这两个HASH值不同,则表示第二存储器中的引导程序已被篡改,不具有合法性或完整性,意味着校验失败。若这两个HASH值相同,则表示第二存储器中的引导程序未被篡改,具有合法性与完整性,意味着校验成功通过。
其中,通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,可以包括:
在所述第一预设周期内,通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验;
当所述第二存储器中的所述引导程序校验未通过时,重复通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验的步骤,其中,在一个所述第一预设周期内,当校验成功通过,或者重复校验的次数达到第一指定次数且校验均未通过时,停止对所述引导程序进行校验;
或者,在所述第二存储器中的所述引导程序校验成功通过后,且在间隔所述第一预设周期时,通过所述可信程序及所述第一预设校验规则,再次对所述第二存储器中的所述引导程序进行合法性及完整性校验。
在本实施例中,第一预设周期可以根据实际情况灵活设置,可以为10分钟、30分钟、1小时等时长。在一个第一预设周期内,若对第二存储器中的引导程序的校验未通过,则可以重复进行校验。若重复校验的次数达到第一指定次数,且均校验失败,则停止对引导程序进行校验。其中,重复校验的次数可以根据实际情况灵活设置。例如,第一指定次数可以为两次、三次等。
其中,完整性指待校验数据(引导程序)是否存在丢失,若待校验数据未出现丢失,便具有完整性。合法性指待校验数据(引导程序)的格式、名称等元素是否为预设的格式或预设的名称。若待校验数据的所有元素均符合对应的预设标准,则具有合法性。
需要说明的是,当对第二存储器中的引导程序的校验通过后,还可以在每到达一个第一预设周期时,重新对第二存储器中的引导程序进行防篡改校验,如此,可以提高校验的时效性。
另外,在一个第一预设周期内,若任一次对第二存储器中的引导程序的校验通过,则进入步骤120。
在步骤120中,由于引导程序校验成功通过,便意味着引导程序是可以被信任的,未经过非法篡改。此时,可以利用引导程序及第二预设校验规则,对所述第二存储器中的应用程序进行防篡改校验。其中,利用第二预设校验规则,对第二存储器中的应用程序进行防篡改校验的实现方式,与利用第一预设校验规则对引导程序进行防篡改校验的实现方式相同或类似。第二预设校验规则与第一预设校验规则类似,可以是对称签名算法或非对称签名算法。
例如,在引导程序中,预先存储有第二存储器中的应用程序的HASH值,以作为第一HASH值。另外,引导程序利用第二预设校验规则,可以计算第二存储器中的应用程序当前的HASH值,以作为第二HASH值。然后,利用引导程序,判断第一HASH值和第二HASH值是否相同。若二者相同,则表示第二存储器中的应用程序未经过非法篡改,具有合法性和完整性,校验成功通过。若二者不同,则表示第二存储器中的应用程序已被非法篡改,不具有合法性和完整性,校验不通过。
在步骤130中,第一控制器所包括的第二存储器中的应用程序校验成功通过,意味着第一控制器是可信的,第一控制器中的数据或程序未经过非法篡改。此时,可以将第一控制器作为可信根,并利用第一控制器对第二控制器中的应用程序进行防篡改校验。
可理解地,应用程序中的第一校验单元可以用于对与第一控制器相连接的第二控制器中的应用程序进行防篡改校验。其中,第三预设校验规则与第一预设校验规则相类似,可以是对称签名算法、非对称签名算法。即,对第二控制器中的应用程序进行防篡改校验的方式,与对第二存储器中的应用程序进行防篡改校验的方式相同或类似。
在步骤140中,当第2个控制器中的应用程序校验成功通过时,通过第2个控制器中的应用程序中的校验单元及第4预设校验规则,对第3个控制器中的应用程序进行防篡改校验;当第3个控制器中的应用程序校验成功通过时,通过第3个控制器中的应用程序中的校验单元及第5预设校验规则,对第4个控制器中的应用程序进行防篡改校验。如此,通过链式循环校验,可以实现对控制设备10中的所有控制器的应用程序进行防篡改校验。其中,第n+2预设校验规则与第一预设校验规则相同或类似。
可理解地,每个控制器中的应用程序具有校验单元,该校验单元用于对指定的下一控制器中的应用程序进行防篡改校验。其中,当前控制器中的校验单元利用相应的预设校验规则,对下一控制器中的应用程序进行防篡改校验的方式,与第一校验单元利用第三预设校验规则对第2个控制器中的应用程序进行防篡改校验的方式相同或类似,这里不再赘述。
在步骤140中,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,包括:
通过所述第n个控制器中的应用程序中的校验单元,在第二预设周期内利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验;
在所述第二预设周期内,当所述第n+1个控制器中的应用程序校验未通过时,重复通过所述第n个控制器中的应用程序中的校验单元,利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验的步骤,其中,当校验成功通过,或者重复校验的次数达到第二指定次数且校验均未通过时,停止对所述第n+1个控制器中的应用程序进行校验。
第二预设周期与第一预设周期可以相同或不同,可以根据实际情况灵活设置。第二指定次数与第一指定次数可以相同或不同,可以根据实际情况灵活设置。
在步骤150中,当N个控制器均校验成功通过时,意味着控制设备10中的所有控制器均经过校验,且均未被非法篡改,均是可信的。此时,控制设备10便可以正常运行,以进行相应的控制操作,如此,可以确保控制设备10安全稳定的运行,避免因应用程序出现非法篡改而影响运行的安全性与稳定性。其中,控制设备10正常运行的方式为常规方式,这里不再赘述。
作为一种可选的实施方式,方法还可以包括:当所述第n个控制器中的应用程序校验未通过时,控制所述第n个控制器进行复位或断电。
可理解地,若任一控制器的应用程序校验未通过,意味着该控制器是不可信的,为异常控制器,此时,便可以通过物理线路(如SPI、硬线等)断开该控制器的供电,或对该控制器进行复位。通过断电,可以避免异常控制器运行而影响整个控制设备10的安全运行。另外,异常控制器通过复位,有可能恢复正常,从而有可能在下次防篡改校验时,成功通过校验,从而让控制设备10正常运行。
作为一种可选的实施方式,方法还可以包括:当所述N个控制器中的任一控制器校验未通过时,发出报警提示信息。
在本实施例中,若任一控制器校验未通过,此时,可以通过控制设备10中的提示模块,发出报警提示,以便于供用户及时发现控制器的异常,并对异常的控制器进行定位,有利于维护人员直接对异常的控制器进行维护。提示模块可以是显示屏、扬声器等,可以通过提示界面、声音等发出提示信息。
为了更进一步理解方法的实现过程,下面将基于图1举例阐述方法的实现过程:
控制器11(第1个控制器)存储区分为内存和Flash存储器和只读存储器。即,只读存储器作为第一存储器,内存和Flash存储器作为第二存储器。只读存储器存储有可信程序111,Flash存储器存储有引导程序112以及应用程序116。应用程序116中包括控制单元113、校验单元114、主程序115,控制器11上电后内存首先调用可信程序111执行,可信程序111本身具有防篡改属性,程序写入后无法修改、删除。可信程序111采用通用验签名算法(如RSA算法、AES算法等)对Flash存储器中引导程序112的程序代码进行合法性、完整性校验,如果校验失败,则重复校验,重复校验三次仍失败后,则程序停在可信单元中或结束运行;如果校验成功,则运行引导程序112,引导程序112采用通用的验签算法对Flash存储器中的应用程序代码进行合法性、完整性校验,如果校验失败,则重复校验,重复校验三次仍失败后,程序停在引导程序112中或结束运行,如果校验成功则运行应用程序116。
上述过程可有效保障控制器11应用程序116的合法性和完整性。然后,以控制器11为信任起点,对控制器12(第2个控制器)进行合法性、完整性校验。具体过程为,控制器11中的应用程序116运行后,在100ms内,校验单元114通过总线(不做具体限制,如串口、SPI口、CAN、以太网等)读取控制器12中的被校验单元124,被校验单元124可以包括校验单元122及主程序123。然后,采用通用验签算法对被校验单元124(即为待校验的应用程序或应用程序中的部分程序)进行合法性、完整性校验。如果校验失败,则重复校验。重复校验三次仍失败后,则控制单元113通过硬线链路(不做具体限制,如串口、SPI、硬线等)将控制器12进行复位或断电处理。如果校验成功,则定时1小时(指第二预设周期)后再对控制器12的被校验单元124进行校验。
控制器12上电100毫秒内,校验单元122通过总线(不做具体限制,如串口、SPI口、CAN、以太网等)读取控制器13(第3个控制器)中的被校验单元134,被校验单元134可以包括校验单元132和主程序133。然后,采用通用验签算法对被校验单元134进行合法性、完整性校验。如果校验失败,则重复校验,重复校验三次仍失败后,则控制单元121通过硬线链路(不做具体限制,如串口、SPI、硬线等)将控制器13进行复位或断电处理。如果校验成功,则定时1小时后再对控制器13的被校验单元134进行校验。依次类推,若控制器13还与其他控制器连接,则控制单元131可以利用校验单元132,可以实现对其他控制器的防篡改校验,从而可以实现多个控制器的链式校验。
请参照图3,本申请还提供一种控制器程序校验装置200,可以应用于上述的控制设备10。控制器程序校验装置200包括至少一个可以软件或固件(Firmware)的形式存储于存储模块中或固化在控制设备10操作系统(Operating System,OS)中的软件功能模块。控制器用于执行存储模块中存储的可执行模块,例如控制器程序校验装置200所包括的软件功能模块及计算机程序等。
控制器程序校验装置200可以包括第一检测单元210、第二检测单元220、第三检测单元230及启动控制单元240,各单元具有的功能可以如下:
第一检测单元210,用于当所述N个控制器上电时,将所述第1个控制器中的所述第一存储器中的程序作为可信程序,并通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验;
第二检测单元220,用于当所述第二存储器中的所述引导程序校验成功通过时,通过所述引导程序及第二预设校验规则,对所述第二存储器中的应用程序进行防篡改校验;
第三检测单元230,用于当所述第二存储器中的应用程序校验成功通过时,通过所述第二存储器中的应用程序中的第一校验单元及第三预设校验规则,对所述N个控制器中的第2个控制器中的应用程序进行防篡改校验;
所述第三检测单元230还用于当第n个控制器中的应用程序校验成功通过时,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,n为整数,且n依次取2至N-1;
启动控制单元240,用于当所述N个控制器均校验成功通过时,控制所述控制设备10进入工作状态。
可选地,第一检测单元210还用于:通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,所述第一预设校验规则包括对称签名算法、非对称签名算法中的一种。
可选地,第一检测单元210还可以用于:
在所述第一预设周期内,通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验;
当所述第二存储器中的所述引导程序校验未通过时,重复通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验的步骤,其中,在一个所述第一预设周期内,当校验成功通过,或者重复校验的次数达到第一指定次数且校验均未通过时,停止对所述引导程序进行校验;
或者,在所述第二存储器中的所述引导程序校验成功通过后,且在间隔所述第一预设周期时,通过所述可信程序及所述第一预设校验规则,再次对所述第二存储器中的所述引导程序进行合法性及完整性校验。
可选地,第三检测单元230还可以用于:
通过所述第n个控制器中的应用程序中的校验单元,在第二预设周期内利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验;
在所述第二预设周期内,当所述第n+1个控制器中的应用程序校验未通过时,重复通过所述第n个控制器中的应用程序中的校验单元,利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验的步骤,其中,当校验成功通过,或者重复校验的次数达到第二指定次数且校验均未通过时,停止对所述第n+1个控制器中的应用程序进行校验。
可选地,启动控制单元240还可以用于当所述第n个控制器中的应用程序校验未通过时,控制所述第n个控制器进行复位或断电。
可选地,控制器程序校验装置200还可以包括提示单元,用于当所述N个控制器中的任一控制器校验未通过时,发出报警提示信息。
在本实施例中,每个控制器可以包括处理器与存储器。其中,控制器中的处理器可以是中央处理器(Central Processing Unit,CPU)、数字信号码处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
存储器可以用于存储程序,处理器在接收到执行指令后,可以执行该程序。
可以理解的是,图1中所示的控制设备10结构仅为一种结构示意图,控制设备10还可以包括比图1所示更多的组件。图1中所示的各组件可以采用硬件、软件或其组合实现。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的控制设备10的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
本申请实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的控制器程序校验方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,控制设备,或者网络设备等)执行本申请各个实施场景所述的方法。
综上所述,本申请实施例提供一种控制器程序校验方法、装置、控制设备及存储介质。在本方案中,由于控制设备中第1个控制器的第一存储器具有只读功能,意味着第一存储器中的程序为可信的,不会被轻易篡改,可以作为可信根。然后,利用第一存储器中的程序,对第1个控制器中的引导程序进行防篡改校验,并在校验通过后,利用引导程序对第1个控制器中的应用程序进行防篡改检测,如此,可以实现第1个控制器自身的防篡改检测。当第1个控制器校验通过后,再利用第1个控制器对第2个控制器中的应用程序进行防篡改校验。在第2个控制器校验通过后,便利用第2个控制器,对第3个控制器中的应用程序进行防篡改校验,基于该链式校验,可以实现对控制设备中的所有控制器的防篡改校验,且仅需其中一个控制器具有只读功能的存储器,以作为可信根,其他控制器无需具有只读存储器,有利于降低防篡改检测的硬件要求。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种控制器程序校验方法,其特征在于,应用于控制设备,所述控制设备包括相连接的N个控制器,所述N个控制器中的第1个控制器包括只读的第一存储器及可读写的第二存储器,N为大于1的整数,所述方法包括:
当所述N个控制器上电时,将所述第1个控制器中的所述第一存储器中的程序作为可信程序,并通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验;
当所述第二存储器中的所述引导程序校验成功通过时,通过所述引导程序及第二预设校验规则,对所述第二存储器中的应用程序进行防篡改校验;
当所述第二存储器中的应用程序校验成功通过时,通过所述第二存储器中的应用程序中的第一校验单元及第三预设校验规则,对所述N个控制器中的第2个控制器中的应用程序进行防篡改校验;
当第n个控制器中的应用程序校验成功通过时,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,n为整数,且n依次取2至N-1;
当所述N个控制器均校验成功通过时,控制所述控制设备进入工作状态。
2.根据权利要求1所述的方法,其特征在于,通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验,包括:
通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,所述第一预设校验规则包括对称签名算法、非对称签名算法中的一种。
3.根据权利要求2所述的方法,其特征在于,通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,包括:
在所述第一预设周期内,通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验;
当所述第二存储器中的所述引导程序校验未通过时,重复通过所述可信程序及所述第一预设校验规则,对所述第二存储器中的所述引导程序进行合法性及完整性校验的步骤,其中,在一个所述第一预设周期内,当校验成功通过,或者重复校验的次数达到第一指定次数且校验均未通过时,停止对所述引导程序进行校验;
或者,在所述第二存储器中的所述引导程序校验成功通过后,且在间隔所述第一预设周期时,通过所述可信程序及所述第一预设校验规则,再次对所述第二存储器中的所述引导程序进行合法性及完整性校验。
4.根据权利要求1所述的方法,其特征在于,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,包括:
通过所述第n个控制器中的应用程序中的校验单元,在第二预设周期内利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验;
在所述第二预设周期内,当所述第n+1个控制器中的应用程序校验未通过时,重复通过所述第n个控制器中的应用程序中的校验单元,利用所述第n+2预设校验规则对第n+1个控制器中的应用程序进行防篡改校验的步骤,其中,当校验成功通过,或者重复校验的次数达到第二指定次数且校验均未通过时,停止对所述第n+1个控制器中的应用程序进行校验。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第n个控制器中的应用程序校验未通过时,控制所述第n个控制器进行复位或断电。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
当所述N个控制器中的任一控制器校验未通过时,发出报警提示信息。
7.一种控制器程序校验装置,其特征在于,应用于控制设备,所述控制设备包括相连接的N个控制器,所述N个控制器中的第1个控制器包括只读的第一存储器及可读写的第二存储器,N为大于1的整数,所述装置包括:
第一检测单元,用于当所述N个控制器上电时,将所述第1个控制器中的所述第一存储器中的程序作为可信程序,并通过所述可信程序及第一预设校验规则,对所述第二存储器中的引导程序进行防篡改校验;
第二检测单元,用于当所述第二存储器中的所述引导程序校验成功通过时,通过所述引导程序及第二预设校验规则,对所述第二存储器中的应用程序进行防篡改校验;
第三检测单元,用于当所述第二存储器中的应用程序校验成功通过时,通过所述第二存储器中的应用程序中的第一校验单元及第三预设校验规则,对所述N个控制器中的第2个控制器中的应用程序进行防篡改校验;
所述第三检测单元还用于当第n个控制器中的应用程序校验成功通过时,通过所述第n个控制器中的应用程序中的校验单元及第n+2预设校验规则,对第n+1个控制器中的应用程序进行防篡改校验,n为整数,且n依次取2至N-1;
启动控制单元,用于当所述N个控制器均校验成功通过时,控制所述控制设备进入工作状态。
8.根据权利要求7所述的装置,其特征在于,所述第一检测单元还用于:
通过所述可信程序及所述第一预设校验规则,以第一预设周期对所述第二存储器中的所述引导程序进行合法性及完整性校验,所述第一预设校验规则包括对称签名算法、非对称签名算法中的一种。
9.一种控制设备,其特征在于,所述控制设备包括相连接的N个控制器,所述N个控制器中的第1个控制器包括只读的第一存储器及可读写的第二存储器,N为大于1的整数,所述N个控制器中的每个控制器的存储器内存储计算机程序,当所述计算机程序被对应的控制器执行时,使得所述控制设备执行如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210905757.XA CN115421466A (zh) | 2022-07-29 | 2022-07-29 | 控制器程序校验方法、装置、控制设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210905757.XA CN115421466A (zh) | 2022-07-29 | 2022-07-29 | 控制器程序校验方法、装置、控制设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115421466A true CN115421466A (zh) | 2022-12-02 |
Family
ID=84196349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210905757.XA Pending CN115421466A (zh) | 2022-07-29 | 2022-07-29 | 控制器程序校验方法、装置、控制设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115421466A (zh) |
-
2022
- 2022-07-29 CN CN202210905757.XA patent/CN115421466A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3883208B1 (en) | Validation of software residing on remote computing devices | |
US9626513B1 (en) | Trusted modular firmware update using digital certificate | |
JP5975964B2 (ja) | 情報処理プログラム、情報処理方法、情報処理装置、及び情報処理システム | |
KR102395258B1 (ko) | 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치 | |
US20240250825A1 (en) | Information processing device and control method for information processing device | |
CN114003915A (zh) | 基于芯片的安全启动方法及装置 | |
EP3706387A1 (en) | Vehicle control device, vehicle control device start-up method, and recording medium | |
US11880273B2 (en) | Method for installing a program code packet onto a device, device, and motor vehicle | |
CN115421466A (zh) | 控制器程序校验方法、装置、控制设备及存储介质 | |
JP7508571B2 (ja) | 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体 | |
CN114995918A (zh) | 基板管理控制器的启动方法、配置方法、装置及电子设备 | |
CN110362983B (zh) | 一种保证双域系统一致性的方法、装置及电子设备 | |
US20240104219A1 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium | |
JP2020057309A (ja) | 制御システム | |
CN118013509A (zh) | 安全启动方法、装置、车辆及存储介质 | |
TWI740214B (zh) | 伺服器啟動方法 | |
WO2022185570A1 (ja) | 制御装置 | |
WO2024057571A1 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
WO2007085987A1 (en) | Method for keeping track of upgrade safety, electronic device with upgradable firmware, server and data carrier | |
CN117519812A (zh) | 一种软件启动方法、控制器、车辆及存储介质 | |
CN118210567A (zh) | 一种座舱域多核异构SoC的防降级安全启动方法及系统 | |
CN115563625A (zh) | 车载电子控制单元的启动方法、装置、车辆及存储介质 | |
CN115310092A (zh) | 车辆电子控制器的启动方法、装置、电子控制器和介质 | |
CN114721693A (zh) | 一种微处理器、bios固件更新方法、计算机设备及存储介质 | |
CN113553108A (zh) | 一种用于校验操作系统前置软件的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |