CN111625295A - 一种嵌入式系统启动方法、装置、设备及存储介质 - Google Patents
一种嵌入式系统启动方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111625295A CN111625295A CN202010442634.8A CN202010442634A CN111625295A CN 111625295 A CN111625295 A CN 111625295A CN 202010442634 A CN202010442634 A CN 202010442634A CN 111625295 A CN111625295 A CN 111625295A
- Authority
- CN
- China
- Prior art keywords
- embedded system
- memory
- specified
- designated
- firmware image
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000001514 detection method Methods 0.000 claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005192 partition Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- JBWKIWSBJXDJDT-UHFFFAOYSA-N triphenylmethyl chloride Chemical compound C=1C=CC=CC=1C(C=1C=CC=CC=1)(Cl)C1=CC=CC=C1 JBWKIWSBJXDJDT-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种嵌入式系统启动方法、装置、设备及存储介质,该方法包括:当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对所述指定存储器中指定区域设定写保护,否则,对所述指定存储器中指定区域设定非写保护;其中,所述指定存储器为存储有所述嵌入式系统的固件镜像的存储器,所述指定区域为存储所述固件镜像中包含的引导加载程序的区域;利用所述引导加载程序对所述嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动所述嵌入式系统,否则,确定无法继续启动所述嵌入式系统。避免了现有技术中存在的问题,进而能够实现广泛应用。
Description
技术领域
本发明涉及嵌入式系统技术领域,更具体地说,涉及一种嵌入式系统启动方法、装置、设备及存储介质。
背景技术
在全球信息安全关注度越来越高的背景下,关键设备或部件的可信启动逐渐成为标配。目前可信启动通常需要配备专业的可信部件,如TPM、TPCM等,一方面这些可信部件及其软件价格昂贵,另一方面,这些可信部件的硬件设计上有很大限制,需要有复杂的硬件设计,这些问题均限制了可信部件的广泛应用。
发明内容
本发明的目的是提供一种嵌入式系统启动方法、装置、设备及存储介质,能够避免现有技术中利用可信部件实现嵌入式系统可信性检测时所存在的问题,进而能够实现广泛应用。
为了实现上述目的,本发明提供如下技术方案:
一种嵌入式系统启动方法,包括:
当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对所述指定存储器中指定区域设定写保护,否则,对所述指定存储器中指定区域设定非写保护;其中,所述指定存储器为存储有所述嵌入式系统的固件镜像的存储器,所述指定区域为存储所述固件镜像中包含的引导加载程序的区域;
利用所述引导加载程序对所述嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动所述嵌入式系统,否则,确定无法继续启动所述嵌入式系统。
优选的,对所述指定存储器中指定区域设定写保护之前,还包括:
如果所述指定存储器中上传有安全退出标志,则对所述安全退出标志进行可信性检测,如果检测通过,则对所述指定存储器中指定区域设定非写保护,否则,执行对所述指定存储器中指定区域设定写保护的步骤。
优选的,对所述固件镜像及所述安全退出标志进行可信性检测,包括:
确定所述固件镜像或者所述安全退出标志为待检测信息,获取所述引导加载程序中包含的公钥,利用所述公钥对指定值进行签名,得到相应的待检测签名值,如果所述待检测签名值与所述指定存储器中存储的标准签名值匹配,则确定检测通过,否则,确定检测未通过;其中,如果所述待检测信息为所述固件镜像,则所述指定值为对当前的固件镜像进行哈希计算得到的,所述标准签名值为对可信的固件镜像进行哈希计算后,利用所述公钥对应的私钥对哈希计算所得值进行签名得到的,如果所述待检测信息为所述安全退出标志,则所述指定值为预先设定的任意值,所述标准签名值为利用所述私钥对该任意值进行签名得到的。
优选的,对所述指定存储器中指定区域设定非写保护,包括:
如果当前所述指定区域为写保护的状态,则改变所述指定区域的状态为非写保护的状态,否则,拒绝对所述指定区域设定写保护。
优选的,对所述指定存储器中指定区域设定写保护,包括:
将所述引导加载程序的区域信息写入至实现写保护的指定寄存器中;
改变所述指定区域的状态为非写保护的状态,包括:
将所述指定寄存器中包含的所述引导加载程序的区域信息删除。
优选的,对所述指定存储器中指定区域设定非写保护,包括:
对所述指定存储器中的引导加载程序及与所述固件镜像对应指定值进行更新,并在更新完成后重启所述嵌入式系统;其中,所述引导加载程序中的公钥发生改变,所述固件镜像对应指定值为基于与所述引导加载程序中发生改变后的公钥对应私钥得到的。
优选的,判断指定存储器是否处于可写保护状态,包括:
如果所述指定存储器的状态线为指定电平,则确定所述指定存储器处于可写保护状态,否则,确定所述指定存储器未处于可写保护状态。
一种嵌入式系统启动装置,包括:
写保护模块,用于:当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对所述指定存储器中指定区域设定写保护,否则,对所述指定存储器中指定区域设定非写保护;其中,所述指定存储器为存储有所述嵌入式系统的固件镜像的存储器,所述指定区域为存储所述固件镜像中包含的引导加载程序的区域;
第一检测模块,用于:利用所述引导加载程序对所述嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动所述嵌入式系统,否则,确定无法继续启动所述嵌入式系统。
一种嵌入式系统启动设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述嵌入式系统启动方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述嵌入式系统启动方法的步骤。
本发明提供了一种嵌入式系统启动方法、装置、设备及存储介质,该方法包括:当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对所述指定存储器中指定区域设定写保护,否则,对所述指定存储器中指定区域设定非写保护;其中,所述指定存储器为存储有所述嵌入式系统的固件镜像的存储器,所述指定区域为存储所述固件镜像中包含的引导加载程序的区域;利用所述引导加载程序对所述嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动所述嵌入式系统,否则,确定无法继续启动所述嵌入式系统。本申请公开的技术方案中,在嵌入式系统启动后,首先判断嵌入式系统的固件镜像所在存储器是否为可写保护的状态,在判断结果为是时设定引导加载程序所在区域设定写保护,从而保证引导加载程序不被修改,能够顺利实现对嵌入式系统的固件镜像的可信性检测,在检测出嵌入式系统的固件镜像可信时继续启动嵌入式系统,否则无法继续启动嵌入式系统,从而通过这种方式实现对嵌入式系统的固件镜像,也即嵌入式系统的可信性检测,无需利用现有的可信部件实现嵌入式系统的可信性检测,从而也就避免了现有技术中存在的问题,进而能够实现广泛应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种嵌入式系统启动方法的流程图;
图2为本发明实施例提供的一种嵌入式系统启动装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种嵌入式系统启动方法的流程图,可以包括:
S11:当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对指定存储器中指定区域设定写保护,否则,对指定存储器中指定区域设定非写保护;其中,指定存储器为存储有嵌入式系统的固件镜像的存储器,指定区域为存储固件镜像中包含的引导加载程序的区域。
本发明实施例提供的一种嵌入式系统启动方法的执行主体可以为对应的嵌入式系统启动装置。需要说明的是,实现本申请实施例公开的嵌入式系统启动方法需要具备相应的硬件设计要求,具体来说,嵌入式系统需要配备存储器用于存储嵌入式系统的固件镜像(固件代码为嵌入式系统所运行的软件代码,而固件镜像则为将固件代码编译成机器语言形成的可执行的代码文件,因此固件镜像也即为可执行的嵌入式系统的软件代码);固件镜像中包括引导加载程序(u-boot),嵌入式系统启动后将运行存储器中的u-boot来引导嵌入式系统的Kernel、文件系统、可执行程序等,为了实现对引导加载程序的保护,本申请要求存储器具备分区写保护的功能,此处的分区写保护的功能具体可以是硬件分区写保护的功能,硬件分区写保护指的是通过外部PIN(状态线,与存储器连接)来控制存储器进入写保护状态,并配合通过配置存储器相应寄存器来控制存储器某段区域处于写保护的状态;而存储器类型包括Flash、TF卡、EMMC卡等。
u-boot是一个主要用于嵌入式系统的引导加载程序,也即其用于引导启动嵌入式系统的固件镜像,可以支持多种不同的计算机系统结构,包括PPC、ARM、AVR32、MIPS、x86、68k、Nios与MicroBlaze等;本实施例中用于实现固件镜像的可信性检测的主体可以为可信检测程序,将可信检测程序存放于u-boot中,u-boot可以存在于存储器的开头特定长度的区域内(当然也可以根据实际需要进行其他设定),进而通过控制u-boot所在的区域进入写保护的状态,保证u-boot内的可信检测程序不被修改,并保证存储器一直处于可写保护状态。
在嵌入式系统启动后,首先检测存储器是否处于能够实现写保护的状态,如果是,则让u-boot所在的区域进入写保护状态,其他区域为非写保护状态,之所以其他区域为非写保护状态,是因为这样便于嵌入式系统升级存储器中存储的固件镜像的相关代码。并且在设置u-boot所在的区域进入写保护状态之后,写保护状态的区域将永久处于写保护状态。
S12:利用引导加载程序对嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动嵌入式系统,否则,确定无法继续启动嵌入式系统。
在对引导加载程序所在区域设定写保护,以使之进入写保护状态之后,引导加载程序中包含的可信检测程序就会对嵌入式系统的固件镜像进行可信性检测,也即检测嵌入式系统的固件镜像是否是可信的,如果检测出其是可信的,则继续启动嵌入式系统,否则,确定无需继续启动嵌入式系统。
本申请公开的技术方案中,在嵌入式系统启动后,首先判断嵌入式系统的固件镜像所在存储器是否为可写保护的状态,在判断结果为是时设定引导加载程序所在区域设定写保护,从而保证引导加载程序不被修改,能够顺利实现对嵌入式系统的固件镜像的可信性检测,在检测出嵌入式系统的固件镜像可信时继续启动嵌入式系统,否则无法继续启动嵌入式系统,从而通过这种方式实现对嵌入式系统的固件镜像,也即嵌入式系统的可信性检测,无需利用现有的可信部件实现嵌入式系统的可信性检测,从而也就避免了现有技术中存在的问题,进而能够实现广泛应用。
本发明实施例提供的一种嵌入式系统启动方法,对指定存储器中指定区域设定写保护之前,还可以包括:
如果指定存储器中上传有安全退出标志,则对安全退出标志进行可信性检测,如果检测通过,则对指定存储器中指定区域设定非写保护,否则,执行对指定存储器中指定区域设定写保护的步骤。
嵌入式系统的固件镜像通常要进行固件更新,即将存储器中的固件镜像更换为新开发的固件镜像,u-boot在较为特殊的情况下也要进行代码更新,例如u-boot代码存在缺陷等情况,由于u-boot一直处于写保护状态,将无法对u-boot所在的区域进行更新,因此可以通过相应技术方案实现写保护的安全退出;具体来说,可以查看嵌入式系统所在存储器(指定存储器)上是否上传有安全退出标志,如果是,则执行后续写保护的安全退出相关技术方案,如果否,则确定无需实现写保护的安全退出;在实现写保护的安全退出时,先对安全退出标志进行可信性检测,如果检测通过,则说明安全退出标志是可信的,此时才实现写保护的退出,也即对指定区域设定非写保护,如果检测未通过,则说明安全退出标志不可信,因此执行对指定区域进行写保护的步骤;从而通过这种方式实现写保护的安全退出,能够满足不同应用场景的需求。
本发明实施例提供的一种嵌入式系统启动方法,对固件镜像及安全退出标志进行可信性检测,可以包括:
确定固件镜像或者安全退出标志为待检测信息,获取引导加载程序中包含的公钥,利用公钥对指定值进行签名,得到相应的待检测签名值,如果待检测签名值与指定存储器中存储的标准签名值匹配,则确定检测通过,否则,确定检测未通过;其中,如果待检测信息为固件镜像,则指定值为对当前的固件镜像进行哈希计算得到的,标准签名值为对可信的固件镜像进行哈希计算后,利用公钥对应的私钥对哈希计算所得值进行签名得到的,如果待检测信息为安全退出标志,则指定值为预先设定的任意值,标准签名值为利用私钥对该任意值进行签名得到的。
需要说明的是,本申请实施例中对固件镜像进行计算得到对应哈希值均具体为对固件镜像的代码区进行计算得到对应哈希值,固件镜像的代码区可以包括uboot、kernel、应用程序、文件系统等,但是不包含计算得到的各签名值;为了实现上述可信性检测,需要预先产生一个安全算法(如RSA)的公钥和私钥,私钥用于对固件镜像的代码区进行哈希计算所得的哈希值进行签名(本申请中的签名均可以为数字签名),并将签名值合并到代码区后面,形成具有签名的固件镜像,U-boot启动时将运行此固件镜像;公钥将存储于u-boot中,用于实现可信性检测时进行签名比对,具体来说,可信检测程序首先读取存储器存储的固件镜像的代码区,对代码区进行哈希计算,并通过公钥对哈希计算所得的值进行签名得到签名值,与存储器中存储的被私钥签名过的签名值进行比对,如果比对通过(两者是匹配的)说明代码区是完整的,则正常启动引导Kernel、文件系统、应用程序等;如果比对未通过,则表示代码区被人篡改过,为了安全将不再启动。
实现写保护的安全退出同理,区别仅在于公钥及私钥用于实现签名时所签名的对象并不是代码区的哈希值,而是根据实际需要设定的任意值;另外,存储器可以提供一个写保护的安全退出标志的上传接口(如Restful接口),在希望升级u-boot时通过此接口将安全退出标志上传到嵌入系统所在的存储器(存于非写保护的区域),从而实现后续的写保护的安全退出。
本发明实施例提供的一种嵌入式系统启动方法,对指定存储器中指定区域设定非写保护,可以包括:
如果当前指定区域为写保护的状态,则改变指定区域的状态为非写保护的状态,否则,拒绝对指定区域设定写保护。
如果在对u-boot所在区域实现写保护之前确定需要退出写保护,那么则可以先确定u-boot所在区域当前是否已经是写保护的状态,如果是,则需要改变u-boot所在区域的状态,否则,直接拒绝对u-boot所在区域设定写保护即可,从而通过这种方式简便有效的实现u-boot所在区域非写保护的设定。
本发明实施例提供的一种嵌入式系统启动方法,对指定存储器中指定区域设定写保护,可以包括:
将引导加载程序的区域信息写入至实现写保护的指定寄存器中;
改变指定区域的状态为非写保护的状态,包括:
将指定寄存器中包含的引导加载程序的区域信息删除。
本实施例中实现写保护的设定可以通过相应寄存器来实现,可以通过配置特定的存储器的寄存器,让u-boot所在区域进入写保护状态,具体可以是将表示u-boot所在区域的信息(位置信息,如逻辑地址、物理地址等)写入到寄存器中;相应的,在改变指定区域的状态为非写保护的状态时,可直接清除寄存器中存储的表示u-boot所在区域的信息即可;从而通过这种方式可以简便有效的实现写保护的设定及改变。
本发明实施例提供的一种嵌入式系统启动方法,对指定存储器中指定区域设定非写保护,可以包括:
对指定存储器中的引导加载程序及与固件镜像对应指定值进行更新,并在更新完成后重启嵌入式系统;引导加载程序中的公钥发生改变,固件镜像对应指定值为基于与引导加载程序中发生改变后的公钥对应私钥得到的。
本实施例中还可以设置升级程序,在对指定区域设定非写保护后,可以由升级程序实现对u-boot的升级,并且,为了进一步保证嵌入式系统的安全性,本实施例还会在实现对u-boot的升级时,更新u-boot中包含的公钥及对应的私钥,为了在后续顺利实现可信性检测,还需利用升级后得到的私钥对固件镜像的哈希值进行签名得到相应的签名值,并利用该签名值替换存储器中已经包含的签名值;另外,u-boot被升级后将自动重启嵌入式系统,进入新升级的u-boot后,u-boot将按照上述流程检查写保护的安全退出标志,此时如果没有可信的安全退出标志,u-boot将根据上述步骤执行写保护等步骤,并使u-boot再次进入写保护状态。其中,私钥及利用私钥得到的各签名值不包含于固件镜像的代码区中。
本发明实施例提供的一种嵌入式系统启动方法,判断指定存储器是否处于可写保护状态,可以包括:
如果指定存储器的状态线为指定电平,则确定指定存储器处于可写保护状态,否则,确定指定存储器未处于可写保护状态。
本实施例中在实现写保护时具体可以采用硬件写保护,通过将与存储器连接的状态线接地,实现指定电平的设置,进而以这种外部置位的方式进入存储器的写保护状态,简单易实现。
在一种具体应用场景中,存储器为Flash,本申请公开的嵌入式系统启动方法包含两部分,分别为嵌入式系统可信启动及写保护安全退出,具体如下:
1、嵌入式系统可信启动:
(1)硬件写保护PIN(状态线)通过硬件方式外部置位的方式进入Flash写保护状态;
(2)开发嵌入式系统的固件代码,具体为在u-boot代码中开发写保护程序,代码实际启动后嵌入式系统检测到外部硬件写保护PIN置位时,将通过配置特定Flash寄存器,让u-boot所在区域进入写保护状态,其他区域为非写保护状态,之所以其他区域为非写保护状态,是因为这样便于嵌入式系统升级存储器中存储的固件镜像;并且写保护状态设置之后,写保护的区域将永久处于写保护状态;
(3)开发嵌入式系统的固件代码,具体为在u-boot代码中开发加入可信检测程序,并在u-boot所在区域中存放公钥;嵌入式系统启动后,u-boot先设置u-boot进入写保护状态,然后进入可信检测程序,可信检测程序首先读取Flash存储的固件镜像的代码区,对代码区进行可信性检测,例如对代码区进行Hash运算,通过公钥对Hash计算所得值进行数字签名得到签名值,并与Flash中存储的被私钥签名过的签名值进行比对,如果比对通过说明代码区是完整的,则正常启动引导Kernel、文件系统、应用程序;如果未比对通过,则表示代码区被人篡改过,为了安全将不再启动。
其中,嵌入式系统的固件镜像是嵌入式系统的软件代码,为了u-boot可信性检测,要预先产生一个安全算法(如RSA)的公钥和私钥,私钥用于对固件镜像的代码区(代码区包括uboot、kernel、应用程序、文件系统等)进行签名,并将签名值合并到代码区后面,形成经过数字签名的固件镜像;U-boot启动时将运行此固件镜像,公钥将存储于u-boot中,用于可信性检测时的签名比对。
2、写保护安全提出,嵌入式通的固件镜像通常要进行固件更新,u-boot在较为特殊的情况下也要进行代码更新,例如u-boot代码存在缺陷,由于u-boot一直处于写保护状态,将无法对u-boot所在区域进行更新,因此需要进行写保护的安全退出。首先可以设置一种u-boot写保护安全退出标志,具体可以是通过上述私钥计算得到一个签名值,这个签名值作为u-boot写保护安全退出的标志;其次开发相应代码,提供一个写保护的安全退出标志上传接口(如Restful接口),在希望升级u-boot时通过此接口将安全退出标志上传到嵌入式系统所在存储器(存于非写保护状态的区域):
(1)开发u-boot代码,在u-boot实际启动时,u-boot先判断是否有写保护安全退出标志,如果存在则通过u-boot中存放的公钥计算一个签名值与写保护安全退出标志的签名值进行比对,如果比对正确则代表u-boot被请求退出写保护,u-boot将通过改变Flash寄存器值对原先的写保护状态进行清除,清除后u-boot区域将改变为可写入状态;如果比对错误,将不会启动退出写保护的程序,u-boot仍处于写保护状态继续执行后续的启动流程。
(2)开发嵌入式系统的固件代码,具体为提供一种升级程序,此升级程序用于升级u-boot代码,此升级程序运行后将Flash中的u-boot代码进行升级,为了安全考虑新的u-boot代码中存放的公钥需要被更换,即安全加密算法的公私钥要进行更新;每次u-boot升级都要更换公私钥对以确保安全程序未被篡改。
(3)u-boot代码被升级后将自动重启嵌入式系统,进入新升级的u-boot代码后,u-boot将按照上述流程检查写保护安全退出标志,此时没有可信的安全退出标志u-boot将根据上述步骤执行写保护程序,并使u-boot再次进入写保护状态。
可见,本发明提出一种简化、易用、可靠的可信启动方案及可信退出方案,以降低成本和设计复杂度,推动关键部件广泛应用可信启动方案及可信退出方案;并且,本发明可应用于所有嵌入式系统,实现可信启动,如服务器、存储、交换机、手机等关键设备中。
本发明实施例还提供了一种嵌入式系统启动装置,如图2所示,具体可以包括:
写保护模块11,用于:当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对指定存储器中指定区域设定写保护,否则,对指定存储器中指定区域设定非写保护;其中,指定存储器为存储有嵌入式系统的固件镜像的存储器,指定区域为存储固件镜像中包含的引导加载程序的区域;
第一检测模块12,用于:利用引导加载程序对嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动嵌入式系统,否则,确定无法继续启动嵌入式系统。
本发明实施例提供的一种嵌入式系统启动装置,还可以包括:
第二检测模块,用于:对指定存储器中指定区域设定写保护之前,如果指定存储器中上传有安全退出标志,则对安全退出标志进行可信性检测,如果检测通过,则对指定存储器中指定区域设定非写保护,否则,执行对指定存储器中指定区域设定写保护的步骤。
本发明实施例提供的一种嵌入式系统启动装置,第一检测模块及第二检测模块均可以包括:
检测单元,用于:确定固件镜像或者安全退出标志为待检测信息,获取引导加载程序中包含的公钥,利用公钥对指定值进行签名,得到相应的待检测签名值,如果待检测签名值与指定存储器中存储的标准签名值匹配,则确定检测通过,否则,确定检测未通过;其中,如果待检测信息为固件镜像,则指定值为对当前的固件镜像进行哈希计算得到的,标准签名值为对可信的固件镜像进行哈希计算后,利用公钥对应的私钥对哈希计算所得值进行签名得到的,如果待检测信息为安全退出标志,则指定值为预先设定的任意值,标准签名值为利用私钥对该任意值进行签名得到的。
本发明实施例提供的一种嵌入式系统启动装置,写保护模块可以包括:
设定单元,用于:如果当前指定区域为写保护的状态,则改变指定区域的状态为非写保护的状态,否则,拒绝对指定区域设定写保护。
本发明实施例提供的一种嵌入式系统启动装置,写保护模块可以包括:
写单元,用于:将引导加载程序的区域信息写入至实现写保护的指定寄存器中;
设定单元可以包括:
删除单元,用于:将指定寄存器中包含的引导加载程序的区域信息删除。
本发明实施例提供的一种嵌入式系统启动装置,还可以包括:
更新模块,用于:对指定存储器中指定区域设定非写保护之后,对指定存储器中的引导加载程序及与固件镜像对应指定值进行更新,并在更新完成后重启嵌入式系统;其中,引导加载程序中的公钥发生改变,固件镜像对应指定值为基于与引导加载程序中发生改变后的公钥对应私钥得到的。
本发明实施例提供的一种嵌入式系统启动装置,写保护模块可以包括:
判断单元,用于:如果指定存储器的状态线为指定电平,则确定指定存储器处于可写保护状态,否则,确定指定存储器未处于可写保护状态。
本发明实施例还提供了一种嵌入式系统启动设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项嵌入式系统启动方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项嵌入式系统启动方法的步骤。
需要说明的是,本发明实施例提供的一种嵌入式系统启动装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种嵌入式系统启动方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种嵌入式系统启动方法,其特征在于,包括:
当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对所述指定存储器中指定区域设定写保护,否则,对所述指定存储器中指定区域设定非写保护;其中,所述指定存储器为存储有所述嵌入式系统的固件镜像的存储器,所述指定区域为存储所述固件镜像中包含的引导加载程序的区域;
利用所述引导加载程序对所述嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动所述嵌入式系统,否则,确定无法继续启动所述嵌入式系统。
2.根据权利要求1所述的方法,其特征在于,对所述指定存储器中指定区域设定写保护之前,还包括:
如果所述指定存储器中上传有安全退出标志,则对所述安全退出标志进行可信性检测,如果检测通过,则对所述指定存储器中指定区域设定非写保护,否则,执行对所述指定存储器中指定区域设定写保护的步骤。
3.根据权利要求2所述的方法,其特征在于,对所述固件镜像及所述安全退出标志进行可信性检测,包括:
确定所述固件镜像或者所述安全退出标志为待检测信息,获取所述引导加载程序中包含的公钥,利用所述公钥对指定值进行签名,得到相应的待检测签名值,如果所述待检测签名值与所述指定存储器中存储的标准签名值匹配,则确定检测通过,否则,确定检测未通过;其中,如果所述待检测信息为所述固件镜像,则所述指定值为对当前的固件镜像进行哈希计算得到的,所述标准签名值为对可信的固件镜像进行哈希计算后,利用所述公钥对应的私钥对哈希计算所得值进行签名得到的,如果所述待检测信息为所述安全退出标志,则所述指定值为预先设定的任意值,所述标准签名值为利用所述私钥对该任意值进行签名得到的。
4.根据权利要求3所述的方法,其特征在于,对所述指定存储器中指定区域设定非写保护,包括:
如果当前所述指定区域为写保护的状态,则改变所述指定区域的状态为非写保护的状态,否则,拒绝对所述指定区域设定写保护。
5.根据权利要求4所述的方法,其特征在于,对所述指定存储器中指定区域设定写保护,包括:
将所述引导加载程序的区域信息写入至实现写保护的指定寄存器中;
改变所述指定区域的状态为非写保护的状态,包括:
将所述指定寄存器中包含的所述引导加载程序的区域信息删除。
6.根据权利要求3所述的方法,其特征在于,对所述指定存储器中指定区域设定非写保护,包括:
对所述指定存储器中的引导加载程序及与所述固件镜像对应指定值进行更新,并在更新完成后重启所述嵌入式系统;其中,所述引导加载程序中的公钥发生改变,所述固件镜像对应指定值为基于与所述引导加载程序中发生改变后的公钥对应私钥得到的。
7.根据权利要求6所述的方法,其特征在于,判断指定存储器是否处于可写保护状态,包括:
如果所述指定存储器的状态线为指定电平,则确定所述指定存储器处于可写保护状态,否则,确定所述指定存储器未处于可写保护状态。
8.一种嵌入式系统启动装置,其特征在于,包括:
写保护模块,用于:当嵌入式系统启动时,判断指定存储器是否处于可写保护状态,如果是,则对所述指定存储器中指定区域设定写保护,否则,对所述指定存储器中指定区域设定非写保护;其中,所述指定存储器为存储有所述嵌入式系统的固件镜像的存储器,所述指定区域为存储所述固件镜像中包含的引导加载程序的区域;
第一检测模块,用于:利用所述引导加载程序对所述嵌入式系统的固件镜像进行可信性检测,如果检测通过,则继续启动所述嵌入式系统,否则,确定无法继续启动所述嵌入式系统。
9.一种嵌入式系统启动设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述嵌入式系统启动方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述嵌入式系统启动方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442634.8A CN111625295A (zh) | 2020-05-22 | 2020-05-22 | 一种嵌入式系统启动方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442634.8A CN111625295A (zh) | 2020-05-22 | 2020-05-22 | 一种嵌入式系统启动方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111625295A true CN111625295A (zh) | 2020-09-04 |
Family
ID=72272348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010442634.8A Withdrawn CN111625295A (zh) | 2020-05-22 | 2020-05-22 | 一种嵌入式系统启动方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625295A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064668A (zh) * | 2021-03-26 | 2021-07-02 | 中国航空无线电电子研究所 | 嵌入式平台可执行文件数据在线加载控制系统 |
CN113849212A (zh) * | 2021-09-30 | 2021-12-28 | 蜂巢能源科技有限公司 | 一种软件升级控制方法、装置及电子设备 |
CN114185606A (zh) * | 2021-12-14 | 2022-03-15 | 上海华信长安网络科技有限公司 | 一种基于嵌入式系统提高系统运行可靠性的方法和装置 |
CN114489834A (zh) * | 2022-01-06 | 2022-05-13 | 上海华信长安网络科技有限公司 | 一种防打断通用引导加载程序运行的方法及装置 |
US20220269787A1 (en) * | 2019-06-24 | 2022-08-25 | Michael Ratiner | A system and method for securing electronic devices |
CN116126753A (zh) * | 2022-12-28 | 2023-05-16 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951405A (zh) * | 2014-03-28 | 2015-09-30 | 三星电子株式会社 | 存储系统以及对存储系统执行和验证写保护的方法 |
CN107609403A (zh) * | 2017-09-19 | 2018-01-19 | 浙江大华技术股份有限公司 | 一种嵌入式设备的安全启动方法、装置、设备及介质 |
CN109657448A (zh) * | 2018-12-21 | 2019-04-19 | 惠州Tcl移动通信有限公司 | 一种获取Root权限的方法、装置、电子设备及存储介质 |
-
2020
- 2020-05-22 CN CN202010442634.8A patent/CN111625295A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951405A (zh) * | 2014-03-28 | 2015-09-30 | 三星电子株式会社 | 存储系统以及对存储系统执行和验证写保护的方法 |
CN107609403A (zh) * | 2017-09-19 | 2018-01-19 | 浙江大华技术股份有限公司 | 一种嵌入式设备的安全启动方法、装置、设备及介质 |
CN109657448A (zh) * | 2018-12-21 | 2019-04-19 | 惠州Tcl移动通信有限公司 | 一种获取Root权限的方法、装置、电子设备及存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220269787A1 (en) * | 2019-06-24 | 2022-08-25 | Michael Ratiner | A system and method for securing electronic devices |
CN113064668A (zh) * | 2021-03-26 | 2021-07-02 | 中国航空无线电电子研究所 | 嵌入式平台可执行文件数据在线加载控制系统 |
CN113064668B (zh) * | 2021-03-26 | 2024-03-15 | 中国航空无线电电子研究所 | 嵌入式平台可执行文件数据在线加载控制系统 |
CN113849212A (zh) * | 2021-09-30 | 2021-12-28 | 蜂巢能源科技有限公司 | 一种软件升级控制方法、装置及电子设备 |
CN113849212B (zh) * | 2021-09-30 | 2024-05-14 | 蜂巢能源科技有限公司 | 一种软件升级控制方法、装置及电子设备 |
CN114185606A (zh) * | 2021-12-14 | 2022-03-15 | 上海华信长安网络科技有限公司 | 一种基于嵌入式系统提高系统运行可靠性的方法和装置 |
CN114185606B (zh) * | 2021-12-14 | 2023-11-28 | 上海华信长安网络科技有限公司 | 一种基于嵌入式系统提高系统运行可靠性的方法和装置 |
CN114489834A (zh) * | 2022-01-06 | 2022-05-13 | 上海华信长安网络科技有限公司 | 一种防打断通用引导加载程序运行的方法及装置 |
CN116126753A (zh) * | 2022-12-28 | 2023-05-16 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
CN116126753B (zh) * | 2022-12-28 | 2024-02-02 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625295A (zh) | 一种嵌入式系统启动方法、装置、设备及存储介质 | |
CN109408153B (zh) | 软件启动方法和软件升级方法 | |
KR100750132B1 (ko) | 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체 | |
JP6054908B2 (ja) | 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ | |
US20140250290A1 (en) | Method for Software Anti-Rollback Recovery | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN106775610B (zh) | 一种电子设备启动方法及一种电子设备 | |
US8819330B1 (en) | System and method for updating a locally stored recovery image | |
CN107678762B (zh) | 一种系统版本升级方法及装置 | |
CN107609403B (zh) | 一种嵌入式设备的安全启动方法、装置、设备及介质 | |
CN110162429B (zh) | 系统修复方法、服务器及存储介质 | |
CN113254048B (zh) | 引导程序更新方法、装置、设备及计算机可读介质 | |
US20130227262A1 (en) | Authentication device and authentication method | |
CN113127011A (zh) | 电子设备及电子设备的操作方法 | |
WO2012031567A1 (zh) | 文件系统的容错方法及其装置 | |
CN113127879B (zh) | 一种固件可信启动方法、电子设备及可读存储介质 | |
CN115344434B (zh) | 用于打补丁的方法及装置、电子设备、存储介质 | |
CN111488589A (zh) | 基于硬件写保护的安全可信启动及固件升级系统和方法 | |
CN111221553A (zh) | 一种固件升级的方法及装置 | |
CN113626792B (zh) | PCIe Switch固件安全执行方法、装置、终端及存储介质 | |
US11663299B2 (en) | Method and apparatus for preventing rollback of firmware of data processing device, and data processing device | |
CN114579971A (zh) | 一种安全控制模组的启动方法及相关装置 | |
CN114995852A (zh) | 一种设备升级方法、设备及计算机可读存储介质 | |
CN109460262B (zh) | 验证主系统镜像合法性的方法、系统、安卓设备及介质 | |
CN114003915A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200904 |
|
WW01 | Invention patent application withdrawn after publication |