CN113849212B - 一种软件升级控制方法、装置及电子设备 - Google Patents
一种软件升级控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113849212B CN113849212B CN202111162350.4A CN202111162350A CN113849212B CN 113849212 B CN113849212 B CN 113849212B CN 202111162350 A CN202111162350 A CN 202111162350A CN 113849212 B CN113849212 B CN 113849212B
- Authority
- CN
- China
- Prior art keywords
- software
- area
- asymmetric digital
- value
- check
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012795 verification Methods 0.000 claims abstract description 50
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 5
- 206010068065 Burning mouth syndrome Diseases 0.000 description 25
- 238000011161 development Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000006378 damage Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013524 data verification Methods 0.000 description 3
- 238000003745 diagnosis Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件升级控制方法、装置及电子设备,应用于软件提供端,该方法包括:获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥;利用所述第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值;获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值;当所述第一校验值与所述第一哈希值一致时,判定所述软件未被篡改;在判定所述软件未被篡改之后,将所述软件发送至软件升级端。也就是说,在将软件发送至软件升级端之前,需要对软件进行预先校验,由此可以保证软件本身未被破坏,从而可以提高软件升级的可靠性。
Description
技术领域
本发明涉及新能源汽车技术领域,具体涉及一种软件升级控制方法、装置及电子设备。
背景技术
随着新能源汽车行业的快速发展,市场保有量逐步上升,随之带来的车载电池管理***BMS的软件售后升级及无线升级OTA技术的需求日益增多。对于传统汽车,通常在汽车授权4S店使用诊断仪通过标准的OBD诊断接口来连接BMS并升级其软件,一般其过程可靠并可控;而对于新能源汽车,多数都支持OTA无线升级,相比于4S店的升级方式,此无线升级过程存在更大的干扰失效及数据被篡改的可能性。
目前在一般BMS的软件升级流程中,在程序全部下载完或者分段下载完,会进行所下载程序的数据传输校验,一般采用ADD累加算法或者循环冗余算法CRC16、CRC32等算法,由诊断仪将校验出来的校验值发给BMS,BMS用相同的算法校验后与收到的校验值进行对比。如果两者值一样,则认为从诊断仪接收到的数据完好,反馈正响应给诊断仪。之后继续下一段传输或者完成传输进入后续流程。但是在当前设计的校验方法在正常情况下能校验出从诊断仪到BMS之间的传输过程中的数据错误,但如果诊断仪中保存的BMS程序文件本身被破坏,则即使传输给BMS的过程没有出错,也能通过升级流程中的完整性校验,但仍会造成实际上的刷写失败,并导致不可预料的问题。
发明内容
因此,本发明要解决的技术问题在于克服现有程序升级过程中程序代码本身被破坏的缺陷,从而提供一种软件升级控制的方法、装置及电子设备。
根据第一方面,本发明实施例公开了一种软件升级控制方法,包括:获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥;利用所述第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值;获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值;当所述第一校验值与所述第一哈希值一致时,判定所述软件未被篡改;在判定所述软件未被篡改之后,将所述软件发送至软件升级端。
可选地,在获取软件的非对称数字校验区中的非对称数字校验值和所述软件的公钥之前或在获取所述软件中除引导区和所述非对称数字校验区之外的全部数据之前,还包括:在所述软件上电后,获取所述软件的标定数据区中除校验区之外的第二数据;利用预设的校验算法对所述第二数据进行校验得到标定数据区校验值;获取所述校验区中的预设校验值;当所述标定数据区校验值与所述预设校验值一致时,启动所述软件。
可选地,在获取软件的非对称数字校验区中的非对称数字校验值和所述软件的公钥之前,还包括:在所述软件集成时,对所述第一数据进行第二哈希计算,得到第二哈希值;利用私钥对所述第二哈希值进行加密,得到所述非对称数字校验值,其中所述私钥与所述公钥相对应。
可选地,所述公钥和所述私钥采用非对称加密算法得到。
可选地,所述非对称加密算法为RSA算法。
根据第二方面,本发明实施例还公开了一种软件升级控制方法,应用于软件升级端,包括:在软件升级后,获取所述软件非对称数字校验区中的第二非对称数字校验值和所述软件的第二公钥;利用所述第二公钥对所述第二非对称数字校验值进行校验,得到第二校验值;获取所述软件中除引导区和所述非对称数字校验区之外的第三数据,并对所述第三数据进行第三哈希计算,得到第三哈希值;当所述第二校验值与所述第三哈希值一致时,则判定所述软件升级成功。
可选地,在判定所述软件升级成功之后,还包括:生成软件升级成功的标志位,并将所述标志位写到预设位置;在所述软件下次上电后,判断是否读取到所述预设位置的标志位;当读取到所述预设位置的标志位时,判定所述软件可正常启动。
根据第三方面,本发明实施例还提供了一种软件升级控制装置,应用于软件提供端,包括:第一获取模块,用于获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥;第一校验模块,用于利用所述第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值;第一计算模块,用于获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值;第一判断模块,用于当所述第一校验值与所述第一哈希值一致时,判定所述软件未被篡改;发送模块,用于在判定所述软件未被篡改之后,将所述软件发送至软件升级端。
根据第四方面本发明实施例还提供了一种软件升级控制装置,应用于软件升级端,包括:第二获取模块,用于在软件升级后,获取所述软件非对称数字校验区中的第二非对称数字校验值和所述软件的第二公钥;第二校验模块,用于利用所述第二公钥对所述第二非对称数字校验值进行校验,得到第二校验值;哈希计算模块,用于获取所述软件中除引导区和所述非对称数字校验区之外的第三数据,并对所述第三数据进行第三哈希计算,得到第三哈希值;第二判断模块,用于当所述第二校验值与所述第三哈希值一致时,则判定所述软件升级成功。
根据第五方面,本发明实施例还公开了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如第一方面或第一方面任一可选实施方式所述的方法的步骤。
根据第六方面,本发明实施方式还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面任一可选实施方式所述的方法的步骤。
本发明实施例技术方案,具有如下优点:
1、本发明实施例在软件提供端利用第一公钥对非对称数字校验区中的第一非对称数字校验值进行校验,并将校验后的第一校验值与需要校验的数据(即第一数据)进行哈希计算后得到的第一哈希值进行比较,当第一校验值与第一哈希值一致时,确定软件程序未被篡改,在软件程序未被篡改的情况下,才将软件发送至软件升级端,也就是说,在将软件发送至软件升级端之前,需要对软件进行预先校验,由此可以保证软件本身未被破坏,从而可以提高软件升级的可靠性。
2、本发明实施例在软件升级后,在软件升级端利用第二公钥对非对称数字校验区中的第二非对称数字校验值进行校验,并将校验后的第二校验值与需要校验的数据(即第三数据)进行哈希计算后得到的第三哈希值进行比较,当第一校验值与第三哈希值一致时,确定软件升级成功。也就是说,在软件升级后,通过软件升级后的事后校验,可以确保软件在解析时没有出错,避免由于解析出错导致的软件刷写失败的问题,从而可以提高软件升级的可靠性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为BMS程序软件的Flash存储结构示意图;
图2为本发明实施例中软件升级控制方法应用于软件提供端的一个具体示例的流程图;
图3为本发明实施例中软件升级控制方法的一个程序判断的流程图;
图4为本发明实施例中软件升级控制方法应用于软件升级端的一个具体示例的流程图;
图5为本发明实施例中软件升级控制装置应用于软件提供端的一个结构示意图;
图6为本发明实施例中软件升级控制装置应用于软件升级端的一个结构示意图;
图7为本发明实施例中电子设备的一个具体示例图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,在本申请说明书和所附权利要求书中使用的术语“及/和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例公开了一种软件升级控制方法,应用于软件提供端。在本发明实施例中,软件为BMS程序软件,图1为BMS程序软件的Flash存储结构示意图如图1所示,BMS程序软件分为引导区(简称Boot)、标定数据区(简称Calibration)和代码区(简称Code)。其中,Boot为BMS上电首先运行的程序部分,出厂后不能更新;Boot负责引导及程序升级,程序升级的范围包含Calibration和Code。Calibration为可标定参数,开发过程中可由开发人员调整。Code为程序算法,是不可调整的程序代码区。
图2为本发明实施例中应用于软件提供端的软件升级控制方法的一个具体示例的流程图,如图2所示,该方法包括如下步骤:
步骤101,获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥。
进一步的,在获取软件的非对称数字校验区中的非对称数字校验值和所述软件的公钥之前,还包括以下步骤:在所述软件集成时,对所述第一数据进行第二哈希计算,得到第二哈希值;利用私钥对所述第二哈希值进行加密,得到所述非对称数字校验值,其中所述私钥与所述公钥相对应。
具体的,所述公钥和所述私钥采用非对称加密算法得到。更加具体的,所述非对称加密算法为RSA算法。本发明实施例通过常规条件下无法被破解的RSA算法对BMS程序进行了非对称数字校验,保密性极强,可信度非常高,极大降低了BMS程序在文件传输、无线通讯,有线通讯及其他使用过程中对程序的意外破坏及非授权的更改的风险。避免了BMS程序失效或者被攻击和破坏的可能性。提升了整车BMS的可靠与可信水平。
示例性地,BMS程序软件在代码编译集成时,直接通过工具对代码区或者代码区+标定区进行SHA512算法的计算,生成固定长度的HASH哈希值,长度为512bits。之后采用非对称加密算法RSA2048生成成对的两把秘钥(公钥和私钥),用严格保密的私钥对该HASH哈希值进行运算,生成非对称数字校验值,存放在软件的代码CODE的数字校验区;该私钥只在软件集成时使用一次,且未存放于BMS内部程序中;该公钥在严格授权的一定开发使用范围内公开,可以更有效的提升BMS软件信息安全。
步骤102,利用所述第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值。
也就是说,用存在BMS内部的公钥对代码区的第一非对称数字校验值进行校验,生成第一校验值。
步骤103,获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值。
示例性的,如图3所示,在代码区(或代码区加标定数据区)校验中,Boot程序对代码区或者代码+标定区的全部数据(去除非对称数字校验区)进行的SHA512的计算,生成第一哈希值。
步骤104,当所述第一校验值与所述第一哈希值一致时,判定所述软件未被篡改。
进一步的,当所述第一校验值和所述第一哈希值,证明所述软件已经被非授权人员篡改了,软件停止运行。
也就是说,在软件升级过程中,首先对待刷写程序的数据进行预先校验,其中预先校验的过程为:获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥,然后利用所述的第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值,同时获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值,进而将所述第一校验值和所述第一哈希值进行比对,当所述第一校验值和所述第一哈希值相同时,证明所述软件未被篡改。只有在软件未被篡改时,才将软件发送至软件升级端。
其中,软件提供端可以是诊断枪等用于提供软件的设备。
进一步的,在软件升级过程中,还会存在BMS程序的标定数据被非授权人员修改的情况,具体的,如果BMS程序的标定数据被非授权人员修改,程序升级时也无法校验出,存在车辆安全或者性能上的问题和隐患。为了避免这种情况的出现,在获取软件的非对称数字校验区中的非对称数字校验值和所述软件的公钥之前或在获取所述软件中除引导区和所述非对称数字校验区之外的全部数据之前,还包括以下步骤:在所述软件上电后,获取所述软件的标定数据区中除校验区之外的第二数据;利用预设的校验算法对所述第二数据进行校验得到标定数据区校验值;获取所述校验区中的预设校验值;当所述标定数据区校验值与所述预设校验值一致时,启动所述软件。当所述标定数据区校验值与所述预设校验值一致时,证明被校验数据没有被篡改,可以启动所述软件提供端。
示例性的,在开发阶段,主要是使用CRC算法对标定数据区检验,在标定数据区最后位置4Bytes存放CRC数据,用于标定区的数据校验,该算法可用算法公开的CRC 32的数学算法。
在BMS上电启动时,Boot程序对标定数据区的全部数据(去除CRC校验区)根据CRC算法进行校验,然后跟CRC校验区的数值进行比较,如果不一致,则认为标定数据区的数据被非授权更改,BMS将不再继续启动,进入停止状态。
通常此时对于开发工程师的实时在线标定过程,可正常调整参数,不受影响,下电后自动失效;如果需要BMS下次上电自动体现,需要手动或者用工具计算出新的CRC值,和标定区其他数据一并烧录进BMS的FLASH区域。
该算法适合开发阶段的一般性校验,可防止一般非授权开发人员永久更改程序,该校验功能一般在批量生产后予以关闭,转为和代码区一并校验。其中,该CRC算法根据需求也可以替换成其他公开校验算法如CCITT等校验算法。
也就是说软件提供端在执行刷写程序前,会通过利用预设的校验算法对本身的程序进行预先校验,校验方式主要为上述的代码区(或代码区加标定数据区)校验方法,检验通过之后启动程序刷写流程。
步骤105,在判定所述软件未被篡改之后,将所述软件发送至软件升级端。
本发明实施例在软件提供端利用第一公钥对非对称数字校验区中的第一非对称数字校验值进行校验,并将校验后的第一校验值与需要校验的数据(即第一数据)进行哈希计算后得到的第一哈希值进行比较,当第一校验值与第一哈希值一致时,确定软件程序未被篡改,在软件程序未被篡改的情况下,才将软件发送至软件升级端,也就是说,在将软件发送至软件升级端之前,需要对软件进行预先校验,由此可以保证软件本身未被破坏,从而可以提高软件升级的可靠性。
进一步的,在所述软件发送至软件升级端之后,在程序刷写过程中,在程序全部下载完或者分段下载完,诊断仪会继续对传输的程序数据进行常规的CRC32校验,防止传输过程中数据被干扰;跟诊断仪的预先校验相结合,则可保证刷写过程是可靠并可信的。
具体的,常规的CRC32校验方法为针对标定数据区检验,在标定数据区最后位置4Bytes存放CRC数据,用于标定区的数据校验,该算法可用算法公开的CRC 32的数学算法。
需要说明的是,如果BMS主芯片无专用的硬件安全模块来进行数据校验,在BMS上电启动时,可能会存在校验时间过长,可以根据实际取消上电的数据校验,只保留软件升级时的完整的数据校验方式,也就是说可以直接进行所述的代码区(或代码区加标定数据区)校验方法进行校验,校验过程简易安全,不容易造成数据泄露。
由此可见,本发明实施例通过对BMS控制器采用程序的常规及非对称性校验操作,来实现程序的完整性和可行性,且比较容易操作,在使用的各个环节容易校验,在不同的BMS开发阶段也兼顾了标定开发的便利性;极大降低了信息泄露的可能性,有利于提升BMS软件信息安全,方便维护管理。
本发明实施例还公开了一种软件升级控制方法,应用于软件升级端,如图4所示,该方法包括如下步骤:
步骤401,在软件升级后,获取所述软件非对称数字校验区中的第二非对称数字校验值和所述软件的第二公钥。
步骤402,利用所述第二公钥对所述第二非对称数字校验值进行校验,得到第二校验值。
步骤403,获取所述软件中除引导区和所述非对称数字校验区之外的第三数据,并对所述第三数据进行第三哈希计算,得到第三哈希值。
步骤404,当所述第二校验值与所述第三哈希值一致时,则判定所述软件升级成功。
进一步的,在判定所述软件升级成功之后,还包括:生成软件升级成功的标志位,并将所述标志位写到预设位置;在所述软件下次上电后,判断是否读取到所述预设位置的标志位;当读取到所述预设位置的标志位时,判定所述软件可正常启动。
也就是说,软件升级端(可以是新能源汽车的车载BMS的待升级的软件)在软件升级之后,软件升级端的控制单元ECU会对接收到的程序执行上述的代码区(或代码区加标定数据区)校验方法,即ECU在升级完成后对CODE区的非对称数字校验值进行校验,得到上述的第二校验值和第三哈希值,当第二校验值与所述第三哈希值一致,证明此时升级成功,则将程序写入刷写成功的标志到FLASH特定位置,下次ECU上电时如果读取到该位置的成功标志,方可正常启动。
本发明在软件升级后,在软件升级端利用第二公钥对非对称数字校验区中的第二非对称数字校验值进行校验,并将校验后的第二校验值与需要校验的数据(即第三数据)进行哈希计算后得到的第三哈希值进行比较,当第一校验值与第三哈希值一致时,确定软件升级成功。也就是说,在软件升级后,通过软件升级后的事后校验,可以确保软件在解析时没有出错,避免由于解析出错导致的软件刷写失败的问题,从而可以提高软件升级的可靠性。通过对升级后的软件进行检验极大降低了BMS程序在文件传输、无线通讯、有线通讯及其他使用过程中对程序的意外破坏及非授权的更改的风险,提升了整车BMS的可靠与可信水平。
本发明通过常规条件下无法被破解的RSA算法对BMS程序进行了非对称数字校验,保密性极强,可信度非常高,极大降低了BMS程序在文件传输、无线通讯,有线通讯及其他使用过程中对程序的意外破坏及非授权的更改的风险。避免了BMS程序失效或者被攻击和破坏的可能性。提升了整车BMS的可靠与可信水平。本发明还通过对BMS控制器采用程序的常规及非对称性校验操作,来实现程序的完整性和可行性,且比较容易操作,在使用的各个环节容易校验,在不同的BMS开发阶段也兼顾了标定开发的便利性;极大降低了信息泄露的可能性,有利于提升BMS软件信息安全,方便维护管理。
本发明实施例还公开了一种软件升级控制装置,应用于软件提供端,如图5所示,该装置包括:
第一获取模块51,用于获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥,详细内容参考步骤101所述;
第一校验模块52,用于利用所述第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值,详细内容参考步骤102所述;
第一计算模块53,用于获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值,详细内容参考步骤103所述;
第一判断模块54,用于当所述第一校验值与所述第一哈希值一致时,判定所述软件未被篡改,详细内容参考步骤104所述;
发送模块55,用于在判定所述软件未被篡改之后,将所述软件发送至软件升级端,详细内容参考步骤105所述。
本发明实施例还公开了一种软件升级控制装置,应用于软件升级端,如图6所示,该装置包括:
第二获取模块61,用于在软件升级后,获取所述软件非对称数字校验区中的第二非对称数字校验值和所述软件的第二公钥,详细内容参考步骤401所述;
第二校验模块62,用于利用所述第二公钥对所述第二非对称数字校验值进行校验,得到第二校验值,详细内容参考步骤402所述;
哈希计算模块63,用于获取所述软件中除引导区和所述非对称数字校验区之外的第三数据,并对所述第三数据进行第三哈希计算,得到第三哈希值,详细内容参考步骤403所述;
第二判断模块64,用于当所述第二校验值与所述第三哈希值一致时,则判定所述软件升级成功,详细内容参考步骤404所述。
本发明实施例还提供了一种设备,如图7所示,该设备可以包括处理器701和存储器702,其中处理器701和存储器702可以通过总线或者其他方式连接,图5中以通过总线连接为例。
处理器701可以为中央处理器(Central Processing Unit,CPU)。处理器701还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器702作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的软件升级控制方法对应的程序指令/模块。处理器701通过运行存储在存储器702中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的软件升级控制方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器701所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至处理器701。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器702中,当被所述处理器701执行时,执行如图1所示实施例中的软件升级控制方法。
上述电子设备具体细节可以对应参阅图1所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (7)
1.一种软件升级控制方法,其特征在于,应用于软件提供端,包括:
获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥;
利用所述第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值;
获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值;
当所述第一校验值与所述第一哈希值一致时,判定所述软件未被篡改;
在判定所述软件未被篡改之后,将所述软件发送至软件升级端;
在获取软件的非对称数字校验区中的非对称数字校验值和所述软件的公钥之前或在获取所述软件中除引导区和所述非对称数字校验区之外的全部数据之前,还包括:
在所述软件上电后,获取所述软件的标定数据区中除校验区之外的第二数据;
利用预设的校验算法对所述第二数据进行校验得到标定数据区校验值;
获取所述校验区中的预设校验值;
当所述标定数据区校验值与所述预设校验值一致时,启动所述软件。
2.根据权利要求1所述的方法,其特征在于,在获取软件的非对称数字校验区中的非对称数字校验值和所述软件的公钥之前,还包括:
在所述软件集成时,对所述第一数据进行第二哈希计算,得到第二哈希值;
利用私钥对所述第二哈希值进行加密,得到所述非对称数字校验值,其中所述私钥与所述公钥相对应。
3.根据权利要求2所述的方法,其特征在于,所述公钥和所述私钥采用非对称加密算法得到。
4.根据权利要求3所述的方法,其特征在于,所述非对称加密算法为RSA算法。
5.一种软件升级控制装置,其特征在于,应用于软件提供端,包括:
第一获取模块,用于获取软件非对称数字校验区中的第一非对称数字校验值和所述软件的第一公钥;
第一校验模块,用于利用所述第一公钥对所述第一非对称数字校验值进行校验,得到第一校验值;
第一计算模块,用于获取所述软件中除引导区和所述非对称数字校验区之外的第一数据,并对所述第一数据进行第一哈希计算,得到第一哈希值;
第一判断模块,用于当所述第一校验值与所述第一哈希值一致时,判定所述软件未被篡改;
发送模块,用于在判定所述软件未被篡改之后,将所述软件发送至软件升级端;
在获取软件的非对称数字校验区中的非对称数字校验值和所述软件的公钥之前或在获取所述软件中除引导区和所述非对称数字校验区之外的全部数据之前,还包括:在所述软件上电后,获取所述软件的标定数据区中除校验区之外的第二数据;利用预设的校验算法对所述第二数据进行校验得到标定数据区校验值;获取所述校验区中的预设校验值;当所述标定数据区校验值与所述预设校验值一致时,启动所述软件。
6.一种电子设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-4任一所述的软件升级控制方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的软件升级控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111162350.4A CN113849212B (zh) | 2021-09-30 | 2021-09-30 | 一种软件升级控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111162350.4A CN113849212B (zh) | 2021-09-30 | 2021-09-30 | 一种软件升级控制方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849212A CN113849212A (zh) | 2021-12-28 |
CN113849212B true CN113849212B (zh) | 2024-05-14 |
Family
ID=78977558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111162350.4A Active CN113849212B (zh) | 2021-09-30 | 2021-09-30 | 一种软件升级控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113849212B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385215B (zh) * | 2022-03-25 | 2022-06-24 | 江铃汽车股份有限公司 | 软件升级方法及*** |
CN114615075B (zh) * | 2022-03-28 | 2023-04-25 | 重庆长安汽车股份有限公司 | 一种控制器的软件防篡改***、方法及存储介质 |
CN115421756B (zh) * | 2022-09-16 | 2023-07-18 | 杭州云动智能汽车技术有限公司 | 一种服务型网关升级方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100012595A (ko) * | 2008-07-29 | 2010-02-08 | 콘티넨탈 오토모티브 시스템 주식회사 | Ecu 동작 제어 방법 |
CN102572595A (zh) * | 2012-02-03 | 2012-07-11 | 深圳市同洲电子股份有限公司 | Iptv的升级包结构、升级方法以及开机校验方法 |
CN107678765A (zh) * | 2017-10-12 | 2018-02-09 | 北方电子研究院安徽有限公司 | 一种基于c8051f系列单片机的在线升级方法 |
CN110378104A (zh) * | 2018-04-16 | 2019-10-25 | 北京升鑫网络科技有限公司 | 一种升级防纂改的方法 |
CN110417808A (zh) * | 2019-08-08 | 2019-11-05 | 深圳市英博超算科技有限公司 | 防篡改方法、装置、***以及终端 |
CN111385191A (zh) * | 2018-12-28 | 2020-07-07 | 联合汽车电子有限公司 | 车载互联网关、车辆ota升级***和方法、计算机存储介质 |
CN111625295A (zh) * | 2020-05-22 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种嵌入式***启动方法、装置、设备及存储介质 |
CN112379932A (zh) * | 2020-11-23 | 2021-02-19 | 歌尔科技有限公司 | 电子设备的Boot方法、Boot装置和电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100791304B1 (ko) * | 2006-07-24 | 2008-01-04 | 삼성전자주식회사 | 소프트웨어 갱신을 위한 장치, 시스템 및 방법 |
JP6332970B2 (ja) * | 2011-02-11 | 2018-05-30 | シーメンス・ヘルスケア・ダイアグノスティックス・インコーポレーテッドSiemens Healthcare Diagnostics Inc. | 安全なソフトウェアの更新のためのシステム及び方法 |
US10642781B2 (en) * | 2017-04-07 | 2020-05-05 | Qualcomm Incorporated | Boot time determination of calibration parameters for a component coupled to a system-on-chip |
-
2021
- 2021-09-30 CN CN202111162350.4A patent/CN113849212B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100012595A (ko) * | 2008-07-29 | 2010-02-08 | 콘티넨탈 오토모티브 시스템 주식회사 | Ecu 동작 제어 방법 |
CN102572595A (zh) * | 2012-02-03 | 2012-07-11 | 深圳市同洲电子股份有限公司 | Iptv的升级包结构、升级方法以及开机校验方法 |
CN107678765A (zh) * | 2017-10-12 | 2018-02-09 | 北方电子研究院安徽有限公司 | 一种基于c8051f系列单片机的在线升级方法 |
CN110378104A (zh) * | 2018-04-16 | 2019-10-25 | 北京升鑫网络科技有限公司 | 一种升级防纂改的方法 |
CN111385191A (zh) * | 2018-12-28 | 2020-07-07 | 联合汽车电子有限公司 | 车载互联网关、车辆ota升级***和方法、计算机存储介质 |
CN110417808A (zh) * | 2019-08-08 | 2019-11-05 | 深圳市英博超算科技有限公司 | 防篡改方法、装置、***以及终端 |
CN111625295A (zh) * | 2020-05-22 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种嵌入式***启动方法、装置、设备及存储介质 |
CN112379932A (zh) * | 2020-11-23 | 2021-02-19 | 歌尔科技有限公司 | 电子设备的Boot方法、Boot装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113849212A (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113849212B (zh) | 一种软件升级控制方法、装置及电子设备 | |
CN110134412B (zh) | 软件更新方法、装置、车辆及计算机可读存储介质 | |
KR101600460B1 (ko) | 보안기능을 갖는 ecu 업그레이드시스템 및 그 방법 | |
WO2020124985A9 (zh) | 固件安全升级方法、装置、车载***和车辆 | |
US20200057630A1 (en) | Method and Apparatus for Wirelessly Updating Software for Vehicle | |
CN111142500B (zh) | 车辆诊断数据的权限设置方法、装置及车载网关控制器 | |
CN113645590B (zh) | 基于加密算法的远程控制车辆的方法、装置、设备及介质 | |
CN110989564B (zh) | 一种汽车数据诊断方法及装置 | |
JP6712538B2 (ja) | 改竄検知システム | |
WO2022077922A1 (zh) | 胎压监测***的学习方法、装置、传感器、***及介质 | |
CN110427784A (zh) | 一种车辆的安全网关装置及安全通信方法 | |
CN108482308B (zh) | 电动汽车安全控制方法、装置、存储介质及电动汽车 | |
Khodari et al. | Decentralized firmware attestation for in-vehicle networks | |
CN113805916A (zh) | 一种升级方法、***、可读存储介质及车辆 | |
KR101675223B1 (ko) | 워치독 장치, 워치독 보안 시스템 및 그 보안 방법 | |
JP6483461B2 (ja) | 管理方法、管理プログラム、管理装置、管理システムおよび情報処理方法 | |
CN115495123A (zh) | 硬件安全模块的刷写方法及*** | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及*** | |
CN115220989B (zh) | 一种付费软件监控方法、装置及*** | |
CN112887099B (zh) | 数据签名方法、电子设备及计算机可读存储介质 | |
CN114338073A (zh) | 车载网络的防护方法、***、存储介质及设备 | |
US10789365B2 (en) | Control device and control method | |
CN111746464A (zh) | 防盗校验的匹配码生成方法及装置 | |
CN115576302A (zh) | 一种车载网络安全通信的测试方法及***、电子设备、存储介质 | |
CN115296815B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |