CN115185562B - 一种基于双核的应用程序在线升级方法、系统及存储介质 - Google Patents

一种基于双核的应用程序在线升级方法、系统及存储介质 Download PDF

Info

Publication number
CN115185562B
CN115185562B CN202210886764.XA CN202210886764A CN115185562B CN 115185562 B CN115185562 B CN 115185562B CN 202210886764 A CN202210886764 A CN 202210886764A CN 115185562 B CN115185562 B CN 115185562B
Authority
CN
China
Prior art keywords
program
upgrade
information
core
security
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
Application number
CN202210886764.XA
Other languages
English (en)
Other versions
CN115185562A (zh
Inventor
刘吉平
毛海旭
王翔
郑增忠
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.)
Shenzhen Hangshun Chip Technology R&D Co Ltd
Original Assignee
Shenzhen Hangshun Chip Technology R&D Co Ltd
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 Shenzhen Hangshun Chip Technology R&D Co Ltd filed Critical Shenzhen Hangshun Chip Technology R&D Co Ltd
Priority to CN202210886764.XA priority Critical patent/CN115185562B/zh
Publication of CN115185562A publication Critical patent/CN115185562A/zh
Application granted granted Critical
Publication of CN115185562B publication Critical patent/CN115185562B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种基于双核的应用程序在线升级方法、系统及存储介质,通过接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;启动安全核对升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU为安全核、还是通用核,或者为安全核和通用核;最后升级程序对应的MCU核根据所述升级程序信息进行目标应用程序在线升级中的更新程序,实现目标应用程序的在线升级。本实施例公开的方法及系统,利用安全核实现对升级程序信息的安全识别和安全认证,再基于升级程序的不同分别利用安全核或通用核、或者同时利用安全核和通用核实现程序的的安全升级,确保了应用程序升级的安全性和完整性。

Description

一种基于双核的应用程序在线升级方法、系统及存储介质
技术领域
本发明涉及应用升级控制技术领域,尤其涉及的是一种基于双核的应用程序在线升级方法、系统及存储介质。
背景技术
MCU(微控制单元或单片机,Microcontroller Unit),属于芯片级计算机,是把LCD、计数器、USB、内存、A/D转化、USART等周边接口及缩减后的中央处理器(CPU)整合在单一芯片上而形成的,为不同的应用场合做不同组合控制。双核MCU即为包括两个中央处理器(CPU)的微控制单元。现有市场上的双核MCU具有强大的数据处理能力,同时稳定性和精度都比较高,在工业领域控制应用中占据了重要地位。
目前双核MCU应用程序更新的主要过程为:利用仿真器通过双核MCU的JTAG接口将应用程序下载到双核MCU内部闪存中,以完成对应用程序的升级,然后这种更新方式需要拆开设备连接仿真器才能进行升级,可操作性不强,同时在连接JTAG时,若同时存在其他数据读写程序,则存在安全隐患,也容易出现程序更新失败的情况,从而导致升级工作效率偏低。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于双核的应用程序在线升级方法、系统及存储介质,旨在解决现有技术中的应用程序在线升级程序中缺少安全识别和安全认证的步骤,无法确保升级操作安全运行的问题。
本发明解决问题所采用的技术方案如下:
第一方面,本实施例公开了一种基于双核的应用程序在线升级方法,其中,应用于具有双核MCU的应用程序在线升级系统,双核MCU包括:安全核和通用核;
所述方法包括:
接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;
启动所述安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核;其中,所述升级程序对应的MCU核为安全核和通用核中一个或者两个;
所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序,实现所述目标应用程序的在线升级。
可选的,所述启动所述安全核对所述升级程序信息进行安全识别和安全认证的步骤包括:
读取所述升级程序信息中的版本信息,根据版本信息判断当前升级程序是否匹配;
若匹配,则读取程序特定标签,并将所述程序特定标签与预先设置的程序标签进行比对;
若比对成功,则安全认证成功。
可选的,所述启动所述安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核的步骤包括:
获取升级程序信息中的认证信息,其中,所述认证信息包括:芯片的唯一标识码和程序摘要;
判断所述唯一标识码与目标应用程序芯片的唯一标识码是否匹配;
若匹配,则判断程序摘要是否符合预设约定规则;
若符合预设约定规则,则通过摘要信息判断所述升级程序信息对应的MCU。
可选的,所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序的步骤包括:
当所述升级程序对应的MCU核为安全核和通用核时,则分别在安全核和通用核内进行所述目标应用程序在线升级中的更新程序。
可选的,所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序的步骤包括:
对在线升级程序切换地址备份,并将升级程序烧录至目标烧录地址;
对所述升级程序信息进行校验,并判断是否校验完成;
若校验完成,则更改目标应用程序的启动地址,复位启动运行更新后的目标应用程序。
可选的,所述将升级程序烧录至目标烧录地址的步骤,之前还包括:
判断升级程序信息是否被加密,若被加密,则对所述升级程序信息进行解密。
可选的,所述认证信息还包括:更新版本信息、数字签名信息和/或加解密密钥;
所述启动所述安全核对所述升级程序信息进行安全识别和安全认证的步骤,还包括:
获取所述升级程序信息中含有的更新版本信息,并将所述目标应用程序的版本信息编号与所述更新版本信息中的版本信息编号进行比对,判断是否符合升级条件;
若符合升级条件,则将所述数字签名信息与升级程序校验后的结果进行比对,若比对成功,则更改目标应用程序的启动地址,复位启动更新后的目标应用程序。
第二方面,本实施例还公开了一种基于双核的应用程序在线升级系统,其中,包括:信息接收模块和双核MCU;双核MCU包括:安全核和通用核;
所述信息接收模块,用于接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;
所述安全核,用于对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核;其中,所述升级程序对应的MCU核为安全核和通用核中一个或者两个;
所述安全核和/或通用核,用于根据所述升级程序信息进行所述目标应用程序的更新程序,实现所述目标应用程序的在线升级。
可选的,所述安全核包括:安全识别模块、安全认证模块、第一程序更新模块和第一程序解密模块;
所述通用核包括:第二程序更新模块和第二程序解密模块;
所述安全识别模块,用于对所述升级程序信息进行安全识别;
所述安全认证模块,用于对所述升级程序信息进行认证,并根据所述升级程序信息确定升级程序对应的MCU核;
第一程序解密模块,用于对所述升级程序信息进行解密;所述第一程序更新模块,用于根据解密得到的升级程序信息对目标应用程序进行更新;
或者,第一程序解密模块,用于对所述升级程序信息进行解密,所述第一程序更新模块,用于根据解密得到的升级程序信息对目标应用程序进行更新;
或者,所述第一程序解密模块和第二程序解密模块,用于分别对所述升级程序信息进行解密;所述第一程序更新模块和第二程序更新模块,用于分别根据解密得到的升级程序信息对目标应用程序进行更新。
第三方面,本实施例提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行所述的基于双核的应用程序在线升级方法的步骤。
本发明的有益效果:本发明提供了一种基于双核的应用程序在线升级方法、系统及存储介质,通过接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;启动双核MCU中的安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU为安全核、还是通用核,或者为安全核和通用核;最后利用升级程序信息对应的MCU核进行目标应用程序在线升级中的更新程序,实现目标应用程序的在线升级。本实施例公开的方法及系统,利用安全核实现对升级程序信息的安全识别和安全认证,再基于升级程序的不同分别利用安全核或通用核、或者同时利用安全核和通用核实现程序的的安全升级,确保了应用程序升级的安全性和完整性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于双核的应用程序在线升级方法的流程示意图;
图2是本发明实施例提供的基于双核的应用程序在线升级系统的原理框图;
图3是本发明实施例提供的方法的步骤流程原理图;
图4是本发明实施例提供方法中安全认证的步骤流程图;
图5是本发明实施例提供方法中认证信息所含信息的原理框图;
图6是本发明实施例提供方法中安全识别的步骤流程图;
图7是本发明实施例提供方法中更新模块的步骤流程图;
图8是本发明实施例提供方法具体应用实施例的结构示意框图;
图9是本发明实施例提供的智能终端的内部结构原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
现在传统的做法是一般包括以下几种方式:
1.利用仿真器通过双核MCU的JTAG接口将应用程序下载到双核MCU内部闪存中,以完成对应用程序的升级;
2.通过将Bootloader内置到芯片内部,不需要依赖编程器、仿真器等特定工具,也无需配置GPIO引脚状态,实现芯片快速在线升级;
3.上位机通过以太网将升级程序发送给双核MCU,双核MCU根据升级程序对对应的应用程序进行升级。
上述三种方法存在使用麻烦,无安全性考虑等问题,并且在升级过程中如果遇到其他异常问题,会导致芯片无法正常回滚到之前的程序当中。
为了解决现有技术的问题,本实施例提供了一种基于双核的应用程序在线升级方法、系统及存储介质,该方法应用于具有双核MCU的智能终端,或者应用于存储介质中存储有执行上述方法步骤的程序的智能终端以实现应用程序的在线升级控制。双核MCU包括:安全核和通用核;其中,安全核具备对接收到的升级程序信息进行安全识别和安全认证的功能,通用核具备对升级程序信息进行更新或解码等功能。当安全核对接收到的升级程序信息进行安全识别和认证后,安全核或通用核对升级程序信息解密,在利用解密后的升级程序信息对目标应用程序进行更新操作,从而实现目标应用程序的在线升级。。安全核是具有安全功能的一个MCU,在一种实施方式中,使用的是N205芯片,该N205芯片具备AES,HASH,SM2,SM3,SM4等安全模块,同时也具备MMU,OTP(一次可编程区域)等安全辅助功能配置;通用核是类似通用MCU,在一种实施方式中,使用STM32F103芯片,该芯片具有串口,SPI,IIC等通用外设接口,能完成应用控制、电机驱动、医疗、报警、电力电子系统等应用功能的芯片。
具体的,如图3所示,本实施例公开的方法包括以下步骤:
步骤101,当接收到目标应用程序的在线升级指令后,系统进入升级模式,并接收输入的升级程序信息。
步骤102,使用安全核对接收到的升级程序信息进行安全识别;
步骤103、使用安全核对所述升级程序信息次进行安全认证;
步骤104、安全核和/或通用核先对升级程序信息里包含的程序进行备份;
步骤105,安全核和/或通用核根据升级程序信息对目标应用程序进行解密(若升级程序信息例的程序加密);
步骤106,安全核和/或通用核再基于解密后的升级程序进行目标应用程序的更新,并验证程序的完整性。
上述升级步骤中,升级程序信息包括:认证信息和升级程序包;在程序输入后,系统判断该操作是否为升级操作,若是,则进入升级状态,系统会先将升级程序中的认证信息部分进行读取包括芯片UID段和程序摘要两部分;芯片UID是芯片中的唯一标识码,在芯片出厂的时候由芯片方设计输出,同一款芯片的UID应该是由几段特定字符组成,同时由特定处理后UID会是在一个数据段中;及同款芯片会在一个特定的UID段中;类型是由芯片方设计。因此在读取程序中的芯片UID段与当前芯片的UID进行判断即可得出当前程序是否能够烧录到该芯片中;同时将读取的程序摘要在安全识别模块中进行判断,判断该程序摘要是否满足规则,若满足规则则判断该升级程序属于哪个核(安全核、通用核、安全及通用核);具体的,规则可以用户自定义设置,例如:提供了一段程序摘要:一个16字节的字段;若规定写入0x1234为安全核程序;0x2345为通用核程序;写入0x1223为双核合并的程序。可以想到的是,若系统判断该操作不是升级操作,或者若程序摘要不满足设定规则,则退出上述升级步骤。下面结合附图,对本发明所公开的所述方法做更为详细的解释。
示例性方法
本实施例提供一种基于双核的应用程序在线升级方法,该方法应用于智能终端,该智能终端具有双核MCU系统,且该智能终端基于双核MCU进行应用程序的升级。具体如图1所示,所述方法包括:
步骤S1、接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息。
智能终端的系统当接收到目标应用程序的在线升级指令后,控制进入升级模式,并接收输入的升级程序信息。智能终端接收信息的方式可以用多种,比如:可以通过通信模块接收升级程序信息,也可以通过设备外接接口实现升级程序信息的输入。
具体的,外部输入的升级程序信息包括程序的认证信息和升级程序包,用户可以使用上位机软件或者按方法设定的格式进行认证信息步骤的编排。升级程序信息可以是未加密的程序或加密的程序,则加密的程序则需要对其进行解密。
步骤S2、启动安全核对升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核;其中,所述升级程序对应的MCU核为安全核和通用核中一个或者两个。
本实施例中系统的安全核和通用核内进行的应用程序升级可以分开进行,两个核的应用功能也可以分开进行,不会相互影响,但是在进行应用程序在线升级时,安全核先启动运行,以保证升级程序过程的安全性。
具体的,升级程序的认证包括:认证信息标签(芯片UID段、程序摘要、更新版本信息、数字签名信息、加解密密钥对等)的认证,以及对这个认证信息标签的管理功能(检索、更新),在进行安全升级的时候通过对认证信息标签进行认证,判断升级程序的安全性,该程序认证的步骤可以使用程序认证模块来实现。
安全识别的步骤包括:调用安全认证模块中的芯片UID段(UID是指芯片的唯一标识码)和程序摘要对进行升级的程序进行判断,判断该程序输入哪个核,同时通过UID段来识别该程序是否与该芯片匹配;防止程序盗用到其他芯片中。
步骤S3、所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序,实现所述目标应用程序的在线升级。
当上述步骤S2执行完毕对升级程序信息的安全识别和安全认证后,则控制进入目标应用程序的更新步骤。
更新步骤包括:程序备份和程序解密等步骤。在具体实施时可以分别使用程序备份模块和程序解密模块实现相应的功能。
程序备份模块:在程序升级过程对之前的程序代码进行保存;更新成功后,依旧保存,在下一次更新时进行删除。
程序解密模块:该解密模块具有解密和校验功能。若升级程序被加密,则调用预先存储的密钥对,对该加密程序的密钥进行解密,在使用该密钥对加密程序进行解密后,将升级程序存入指定的地址。加解密算法可以设置为SM4+SM3/AES+HASH。
将解密后的升级程序写入并校验:程序写入过程中进行代码的校验(签名验签),在写入并校验完成后,计算出的校验和与程序的校验和进行对比;判断程序完整性。
最后更改目标应用程序的启动地址,复位启动则运行更新后的目标应用程序,实现目标应用程序的在线升级。步骤S2中所述启动所述安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU的步骤包括:
获取升级程序信息中的认证信息,其中,所述认证信息包括:芯片的唯一标识码和程序摘要。
判断所述唯一标识码与目标应用程序芯片的唯一标识码是否匹配;
若匹配,则判断程序摘要是否符合预设约定规则;
若符合预设约定规则,则通过摘要信息判断所述升级程序信息对应的MCU。
具体的,结合如图4所示,安全核中的安全识别程序的识别流程包括以下步骤:
在系统接收到升级指令后,进入安全识别流程,该步骤中需要判断升级程序的合法性以及升级程序属于哪个核。
当系统进入升级模式后,系统获取升级程序信息中的认证信息,认证信息可以是明文也可以是密文;若是密文,则调用提前存放好的密钥对其进行解密。将认证信息中的芯片UID段和程序摘要解析出来后,通过与当前芯片的UID段进行比较,判断该升级程序是否匹配芯片,若匹配则继续读取认证信息中的程序摘要,并将程序摘要与当前程序的摘要进行比对,若满足约定规则并正确,则判断该升级程序需要升级哪个核(升级到的核可能是安全核和通用核中的一个或两个),若该升级程序与当前的芯片不匹配或者当前认证信息中的程序摘要不满足约定规则,则退出升级。
结合图5所示,认证信息是在安全认证中具有很关键的作用,它的安全性决定了升级程序的安全性,在一种实现方式中,可以通过安全识别模块来实现对升级程序信息的安全识别,认证信息主要包括以下内容:
程序摘要:用于判断升级程序的完整性和识别升级程序输入哪个MCU核,其为一个16字节的字段,可由用户自定义配置;。
更新版本信息:用于判断当前应用程序的版本与输入的升级程序对应的版本是否匹配,本次目标应用程序是否能够升级,其为一个16字节的字段,其中包括程序的版本号4个字节,12个字节的程序特定标签。
芯片的UID段:用于判断升级程序与芯片是否匹配。
数字签名:程序解密后的校验,判断升级程序完整性,也可用于启动时判断升级程序是否被修改。
加解密密钥对:用于对加密的升级程序进行加密和解密。
认证信息若是密文,则需要用户提前将密钥放入芯片的OTP中,并且保护起来,加密算法由用户自定义。在进行升级操作时,认证信息保存在MMU保护的SRAM中,这段SRAM的功能特性为只能被MCU核内部读取,不能被修改,不能被DMA搬移,不能被Debug读取。
为了实现更加准确的对接收到的升级程序信息进行认证,所述启动所述安全核对所述升级程序信息进行安全识别和安全认证的步骤,还包括:
获取升级程序信息中含有的更新版本信息,并将当前目标应用程序的版本信息编号与所述更新版本信息中的版本信息编号进行比对,判断是否符合升级条件;若否,则返回系统启动步骤。
读取程序特点标签,并判断标签信息是否正确,若正确,则安全认证通过,否则本次升级失败,并记录升级次数。
结合图6所示,上述步骤S2所述启动所述安全核对所述升级程序信息进行安全识别和安全认证的步骤包括:
步骤S21、读取所述升级程序信息中的版本信息,根据版本信息判断当前升级程序是否匹配;
步骤S22、若版本信息相匹配,则读取程序特定标签,并将所述程序特定标签与预先设置的程序标签进行比对;
步骤S23、若比对成功,则安全认证成功。若比对失败,则本次更新失败次数加1,并记录更新失败次数,并判断更新失败次数是否超过3次,若是,则控制进入保护模式,在预设时间内系统不再支持目标应用程序升级。
在系统接收到升级指令后,并成功进行安全识别后,进入该安全认证流程;该模块为升级方法中最重要的一部分,他需要判断程序的安全性,判断程序的版本合理性,这样能够防止恶意操作带来的副作用。
进入认证模块后,系统会将输入程序的认证信息进行解析,该操作是在通过MMU保护的SRAM段中进行,若认证信息为密文,则进行解密操作;将程序的认证信息中的更新版本信息解析出来后,先将其中的版本信息与当前程序的版本信息进行比对,默认规则是程序的版本信息编号必须是累加的,不能跳跃,若不满足条件则退出升级;版本信息匹配的规则用户也可以自定义。
匹配成功后,将程序特定标签与当前程序的标签进行比对,该段标签可以是一段时间+人物+型号的特殊字符(可由用户自定),匹配成功则进行升级;若在该操作匹配失败超过3次,则进入保护模式,系统24小时之内不支持升级。
结合图6所示,在执行安全认证的步骤时,还记录更新次数是否超出预设数值,若超出,则进入保护模式,例如:预设时间段内不支持升级,比如:24小时。
当对升级程序信息进行安全识别和安全认证后,进行更新操作,也即是对升级程序信息进行解密和校验的操作。
进一步的,所述利用确定出的MCU进行目标应用程序在线升级中的更新程序的步骤包括:当确定出的MCU核为安全核和通用核时,则分别在安全核和通用核内进行目标应用程序在线升级中的更新程序。
所述更新程序具体包括以下步骤:
对在线升级程序切换地址备份,并将升级程序烧录至目标烧录地址;
对当前升级程序信息进行校验,并判断是否校验完成;
若校验完成,则更改目标应用程序的启动地址,复位启动运行更新后的目标应用程序。
进一步的,由于升级程序信息可能为加密程序,因此将升级程序烧录至目标烧录地址的步骤之前还包括:
判断升级程序信息是否被加密,若被加密,则对所述升级程序信息进行解密。具体的,如图7所示,更新操作包括以下步骤:
在进入更新后,系统会将当前程序保留备份,备份方式默认为切换地址,将升级程序烧录至另外一段地址中去;若程序被加密,则运行解密模块,对程序进行解密,加密解密方法由用户自定义;将解密的程序在烧录至指定Flash中,程序烧录完成后,对程序进行一次校验,判断其是否完成;校验的方法可以是通过将输入的认证信息中的数字签名部分读取出来与程序进行hash校验后比较,若比对成功,则表示当前程序完整并无修改,最后更改程序的启动地址,复位启动并运行更新后的程序。
结合图8所述,以具体应用实施例对本发明所提供的方法做进一步更为详细的说明:
图8中安全启动对应为安全启动模块,该安全启动模块集成了安全认证模块和安全识别模块,N205安全标签和N205 app对应的是安全核的认证信息和程序;CM3安全标签和CM3APP对应的是通用核的认证信息和程序。
在进行升级时,系统进入升级模式,升级程序信息传入至安全启动模块,同时升级程序中的认证信息会通过串口或者其它的通讯方式传入芯片的Sram中,该段Sram通过MMU进行了保护。此时进行安全识别步骤,系统首先将认证信息进行解密和解析得出芯片的UID段和程序摘要两部分,将芯片UID段与该芯片的UID进行比较,判断该升级程序是否适配当前芯片;再判断程序摘要是否满足约定规则,若满足则与N205和CM3的安全标签中的程序摘要继续比对判断升级程序输入哪个核。在完成安全识别后,进入安全认证判断,将认证信息中的更新版本信息读取出来与N205和CM3的安全标签中的版本信息进行比对;这里会根据之前的识别判断升级程序属于哪个核,若升级程序只升级N205,则在判断更新版本信息时,只与N205的安全标签进行比对,若升级程序只升级CM3,则在判断更新版本信息时,只与CM3的安全标签进行比对,若需要同时对两个核进行升级,则需要同时判断N205和CM3的安全标签中的更新版本信息;在完成以上安全识别和安全认证操作后,进入升级流程,通过串口或者其它通讯方式继续将升级程序传入进来,系统先将烧录地址设定好,该设定地址不能是当前目标应用程序的保存地址,以便于备份。备份完成后,进行升级程序解密,烧录,程序校验。当完成程序校验后,将系统启动地址切换至升级程序的烧录地址,实现应用程序的在线升级。
本实施所提供的方法,在线升级的时候,提高程序的安全性、不可更改性,具有认证信息比对功能,防止恶意攻击,在执行目标应用程序的升级时,可以实现分别升级,分别验证和分别认证,从而提搞了应用程序升级的安全性,为应用程序的升级安全提供了保证。
示例性设备
如图2中所示,本发明实施例提供一种基于双核的应用程序在线升级系统,包括:信息接收模块和双核MCU;双核MCU包括:安全核和通用核;
所述信息接收模块,用于接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;
所述安全核,用于对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核;其中,所述升级程序对应的MCU核为安全核和通用核中一个或者两个;
所述安全核和/或通用核,用于根据所述升级程序信息进行所述目标应用程序的更新程序,实现所述目标应用程序的在线升级。
进一步的,所述安全核包括:安全识别模块、安全认证模块、第一程序更新模块和第一程序解密模块;
所述通用核包括:第二程序更新模块和第二程序解密模块;
所述安全识别模块,用于对所述升级程序信息进行安全识别;
所述安全认证模块,用于对所述升级程序信息进行认证,并根据所述升级程序信息确定升级程序对应的MCU核;
第一程序解密模块,用于对所述升级程序信息进行解密;所述第一程序更新模块,用于根据解密得到的升级程序信息对目标应用程序进行更新;
或者,第一程序解密模块,用于对所述升级程序信息进行解密,所述第一程序更新模块,用于根据解密得到的升级程序信息对目标应用程序进行更新;
或者,所述第一程序解密模块和第二程序解密模块,用于分别对所述升级程序信息进行解密;所述第一程序更新模块和第二程序更新模块,用于分别根据解密得到的升级程序信息对目标应用程序进行更新。
本实施例还提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行所述的基于双核的应用程序在线升级方法的步骤。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图9所示,该智能终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于双核的应用程序在线升级方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该智能终端的温度传感器是预先在智能终端内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图2中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,结合图9所示,所述智能终端包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;
启动所述安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核;其中,升级程序对应的MCU核为安全核和通用核中一个或者两个;
所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序,实现所述目标应用程序的在线升级。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本发明提供了一种基于双核的应用程序在线升级方法、系统及存储介质,通过接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;启动双核MCU中的安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU为安全核、还是通用核,或者为安全核和通用核;最后利用升级程序信息对应的MCU核进行目标应用程序在线升级中的更新程序,实现目标应用程序的在线升级。本实施例公开的方法及系统,利用安全核实现对升级程序信息的安全识别和安全认证,从而实现程序升级的安全顺利进行。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (6)

1.一种基于双核的应用程序在线升级方法,其特征在于,应用于具有双核MCU的应用程序在线升级系统,所述双核MCU包括:安全核和通用核;
所述方法包括:
接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;
启动所述安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核;其中,所述升级程序对应的MCU核为安全核和通用核中一个或者两个;
所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序,实现所述目标应用程序的在线升级;
所述启动所述安全核对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核的步骤包括:
获取升级程序信息中的认证信息,其中,所述认证信息包括:芯片的唯一标识码和程序摘要;
判断所述唯一标识码与目标应用程序芯片的唯一标识码是否匹配;
若匹配,则判断程序摘要是否符合预设约定规则;
若符合预设约定规则,则通过摘要信息判断所述升级程序信息对应的MCU核;
所述启动所述安全核对所述升级程序信息进行安全识别和安全认证的步骤包括:
读取所述升级程序信息中的版本信息,根据版本信息判断当前升级程序是否匹配;
若匹配,则读取程序特定标签,并将所述程序特定标签与预先设置的程序标签进行比对;
若比对成功,则安全认证成功;
所述认证信息还包括:更新版本信息、数字签名信息和/或加解密密钥;
所述启动所述安全核对所述升级程序信息进行安全识别和安全认证的步骤,还包括:
获取所述升级程序信息中含有的更新版本信息,并将所述目标应用程序的版本信息编号与所述更新版本信息中的版本信息编号进行比对,判断是否符合升级条件;
若符合升级条件,则将所述数字签名信息与升级程序校验后的结果进行比对,若比对成功,则更改目标应用程序的启动地址,复位启动更新后的目标应用程序;
在进行升级时,系统首先将认证信息进行解密和解析得出芯片的UID段和程序摘要两部分,将解密得到的芯片UID段与当前芯片的UID进行比较,判断该升级程序是否适配当前芯片;再判断程序摘要是否满足约定规则,若满足则与N205和CM3的安全标签中的程序摘要继续比对判断升级程序输入哪个核;在完成安全识别后,进入安全认证判断,将认证信息中的更新版本信息读取出来与N205和CM3的安全标签中的版本信息进行比对;若升级程序只升级N205,则在判断更新版本信息时,只与N205的安全标签进行比对,若升级程序只升级CM3,则在判断更新版本信息时,只与CM3的安全标签进行比对,若需要同时对两个核进行升级,则需要同时判断N205和CM3的安全标签中的更新版本信息。
2.根据权利要求1所述的基于双核的应用程序在线升级方法,其特征在于,所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序的步骤包括:
当所述升级程序对应的MCU核为安全核和通用核时,则分别在安全核和通用核内进行所述目标应用程序在线升级中的更新程序。
3.根据权利要求2所述的基于双核的应用程序在线升级方法,其特征在于,所述升级程序对应的MCU核根据所述升级程序信息进行所述目标应用程序的更新程序的步骤包括:
对升级程序切换地址备份,并将升级程序烧录至目标烧录地址;
对所述升级程序信息进行校验,并判断是否校验完成;
若校验完成,则更改目标应用程序的启动地址,复位启动运行更新后的目标应用程序。
4.根据权利要求3所述的基于双核的应用程序在线升级方法,其特征在于,所述将升级程序烧录至目标烧录地址的步骤,之前还包括:
判断升级程序信息是否被加密,若被加密,则对所述升级程序信息进行解密。
5.一种基于双核的应用程序在线升级系统,其特征在于,包括:信息接收模块和双核MCU;双核MCU包括:安全核和通用核;
所述信息接收模块,用于接收目标应用程序的在线升级指令后,进入升级模式,并接收输入的升级程序信息;
所述安全核,用于对所述升级程序信息进行安全识别和安全认证,并根据所述升级程序信息确定升级程序对应的MCU核;其中,所述升级程序对应的MCU核为安全核和通用核中一个或者两个;
所述安全核和/或通用核,用于根据所述升级程序信息进行所述目标应用程序的更新程序,实现所述目标应用程序的在线升级;
所述安全核,用于获取升级程序信息中的认证信息,其中,所述认证信息包括:芯片的唯一标识码和程序摘要;
判断所述唯一标识码与目标应用程序芯片的唯一标识码是否匹配;
若匹配,则判断程序摘要是否符合预设约定规则;
若符合预设约定规则,则通过摘要信息判断所述升级程序信息对应的MCU核;
所述安全核包括:安全识别模块、安全认证模块、第一程序更新模块和第一程序解密模块;
所述通用核包括:第二程序更新模块和第二程序解密模块;
所述安全识别模块,用于对所述升级程序信息进行安全识别;
所述安全认证模块,用于对所述升级程序信息进行认证,并根据所述升级程序信息确定升级程序对应的MCU核;
第一程序解密模块,用于对所述升级程序信息进行解密;所述第一程序更新模块,用于根据解密得到的升级程序信息对目标应用程序进行更新;
或者,第一程序解密模块,用于对所述升级程序信息进行解密,所述第一程序更新模块,用于根据解密得到的升级程序信息对目标应用程序进行更新;
或者,所述第一程序解密模块和第二程序解密模块,用于分别对所述升级程序信息进行解密;所述第一程序更新模块和第二程序更新模块,用于分别根据解密得到的升级程序信息对目标应用程序进行更新;
在进行升级时,系统首先将认证信息进行解密和解析得出芯片的UID段和程序摘要两部分,将解密得到的芯片UID段与当前芯片的UID进行比较,判断该升级程序是否适配当前芯片;再判断程序摘要是否满足约定规则,若满足则与N205和CM3的安全标签中的程序摘要继续比对判断升级程序输入哪个核;在完成安全识别后,进入安全认证判断,将认证信息中的更新版本信息读取出来与N205和CM3的安全标签中的版本信息进行比对;若升级程序只升级N205,则在判断更新版本信息时,只与N205的安全标签进行比对,若升级程序只升级CM3,则在判断更新版本信息时,只与CM3的安全标签进行比对,若需要同时对两个核进行升级,则需要同时判断N205和CM3的安全标签中的更新版本信息。
6.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-4中任意一项所述的基于双核的应用程序在线升级方法的步骤。
CN202210886764.XA 2022-07-26 2022-07-26 一种基于双核的应用程序在线升级方法、系统及存储介质 Active CN115185562B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210886764.XA CN115185562B (zh) 2022-07-26 2022-07-26 一种基于双核的应用程序在线升级方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210886764.XA CN115185562B (zh) 2022-07-26 2022-07-26 一种基于双核的应用程序在线升级方法、系统及存储介质

Publications (2)

Publication Number Publication Date
CN115185562A CN115185562A (zh) 2022-10-14
CN115185562B true CN115185562B (zh) 2024-03-22

Family

ID=83521363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210886764.XA Active CN115185562B (zh) 2022-07-26 2022-07-26 一种基于双核的应用程序在线升级方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN115185562B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815494A (zh) * 2016-12-28 2017-06-09 中软信息系统工程有限公司 一种基于cpu时空隔离机制实现应用程序安全认证的方法
CN109032642A (zh) * 2018-07-26 2018-12-18 昆山岩古风智能科技有限公司 一种基于wifi的dsp与arm双核控制器在线升级系统及其方法
CN110389772A (zh) * 2018-04-23 2019-10-29 中车株洲电力机车研究所有限公司 双核mcu应用程序升级方法
CN111033470A (zh) * 2017-08-21 2020-04-17 霍尼韦尔国际公司 确保双处理器架构中的校正程序序列
CN111459518A (zh) * 2020-03-30 2020-07-28 北京经纬恒润科技有限公司 一种车辆ecu升级方法及系统
CN113377404A (zh) * 2021-06-29 2021-09-10 重庆长安新能源汽车科技有限公司 一种新能源车域控制器安全监控芯片程序更新方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572404B2 (en) * 2011-11-04 2013-10-29 Honeywell International Inc. Security and safety manager implementation in a multi-core processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815494A (zh) * 2016-12-28 2017-06-09 中软信息系统工程有限公司 一种基于cpu时空隔离机制实现应用程序安全认证的方法
CN111033470A (zh) * 2017-08-21 2020-04-17 霍尼韦尔国际公司 确保双处理器架构中的校正程序序列
CN110389772A (zh) * 2018-04-23 2019-10-29 中车株洲电力机车研究所有限公司 双核mcu应用程序升级方法
CN109032642A (zh) * 2018-07-26 2018-12-18 昆山岩古风智能科技有限公司 一种基于wifi的dsp与arm双核控制器在线升级系统及其方法
CN111459518A (zh) * 2020-03-30 2020-07-28 北京经纬恒润科技有限公司 一种车辆ecu升级方法及系统
CN113377404A (zh) * 2021-06-29 2021-09-10 重庆长安新能源汽车科技有限公司 一种新能源车域控制器安全监控芯片程序更新方法及系统

Also Published As

Publication number Publication date
CN115185562A (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
CN101681414B (zh) 用于保护电子装置中的用户识别模块锁信息的方法及设备
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
CN107330333B (zh) 保证pos机固件安全的方法及装置
KR101867789B1 (ko) 보안 배터리 인증
RU2541196C2 (ru) Способ обеспечения целостности программного обеспечения
CN104956374A (zh) 用于软件防回滚恢复的方法
US20230121492A1 (en) Monitoring and control method, circuit, and device for on-board trusted platform
CN110990084A (zh) 芯片的安全启动方法、装置、存储介质和终端
CN104486355A (zh) 防止代码被恶意篡改的方法和装置
US8549312B2 (en) Mobile terminal and method for protecting its system data
CN113064643A (zh) 一种即时生效的修改bios设定值的方法、系统及介质
CN111160879A (zh) 一种硬件钱包及其安全性提升方法和装置
CN106657551A (zh) 一种防止移动终端解锁的方法及系统
CN114398598A (zh) 一种库文件加密方法、解密方法以及加密装置
CN115185562B (zh) 一种基于双核的应用程序在线升级方法、系统及存储介质
CN113626792B (zh) PCIe Switch固件安全执行方法、装置、终端及存储介质
JP2013037417A (ja) メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法
CN112131537B (zh) 一种对zynq芯片程序镜像文件的加解密的方法
US20050177754A1 (en) Password management peripheral system and method
CN108256336B (zh) 操作系统与主板的绑定及识别方法
KR20040097435A (ko) Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법
CN111695164A (zh) 电子设备及其控制方法
KR101711926B1 (ko) 보안기능을 가지는 SoC 및 SoC의 보안방법
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN115599407B (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