CN104200153A - 一种启动验证方法和系统 - Google Patents
一种启动验证方法和系统 Download PDFInfo
- Publication number
- CN104200153A CN104200153A CN201410464893.5A CN201410464893A CN104200153A CN 104200153 A CN104200153 A CN 104200153A CN 201410464893 A CN201410464893 A CN 201410464893A CN 104200153 A CN104200153 A CN 104200153A
- Authority
- CN
- China
- Prior art keywords
- uboot
- authorization information
- pki
- recovery
- kernel
- 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
Links
Classifications
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明的启动验证方法和系统,预先在主芯片的CPU中集成包括第一验证信息的miniboot,在主芯片的falsh中存放用于验证uboot的第二验证信息,在uboot中嵌入用于验证kernel和recovery的第三验证信息。在启动主芯片时,可首先利用miniboot中的第一验证信息对第二验证信息进行验证,在验证通过时,利用第二验证信息对uboot进行验证,并在uboot合法时启动uboot,之后,uboot可利用其第三验证信息对kernel和recovery进行验证,并在两者合法时,对其进行启动。而如果任意一个环节验证未通过,则启动失败。本发明通过采用多级串联验证为智能终端带来了更高的安全保障。
Description
技术领域
本发明属于信息安全技术领域,尤其涉及一种启动验证方法和系统。
背景技术
为防止终端产品被非法复制,防止恶意刷机,同时为保证终端上涉及支付、认证、版权内容等各种运营业务的安全,对智能终端提出了较高的安全要求。
智能终端的安全程度取决于其主芯片的安全程度,目前,仅采用简单的基于版权芯片标识信息的硬件验证来保障智能终端的安全性,即具体地,在智能终端电路板上焊接一版权芯片作为主芯片,该芯片能够返回一个唯一的标识信息,例如ID(Identity,身份标识号码),后续通过依据所述标识信息判定其片内Flash中存储的uboot、kernel及recovery等原始代码的合法性,来保证移动终端的安全。然而,上述验证方式的判定条件较为简单,易被通过反汇编等方式破解,安全程度较低。
发明内容
有鉴于此,本发明的目的在于提供一种启动验证方法和系统,以克服现有验证方式易被破解、安全程度较低的缺陷,进而为智能终端提供更高的安全保障。
为此,本发明公开如下技术方案:
一种启动验证方法,应用于电子设备,所述电子设备包括主芯片,所述方法包括:
启动微引导程序miniboot,所述miniboot预先集成在所述主芯片的中央处理器CPU中,所述miniboot中包括第一验证信息;
利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证;
在所述uboot通过验证时,启动所述uboot,所述uboot中内嵌有第三验证信息;
利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证;
在所述Kernel及所述Recovery通过验证时,启动所述Kernel及所述Recovery,其中,所述第二验证信息、uboot、Kernel及Recovery存储在所述主芯片的存储器flash中。
上述方法,优选的,所述利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证,包括:
基于预先采用第一私钥对第二公钥进行签名所生成的第一签名数据,利用第一公钥对所述第二公钥进行验证;
在所述第二公钥通过验证时,基于预先采用第二私钥对所述uboot进行签名所生成的第二签名数据,利用所述第二公钥对所述uboot进行验证,其中,所述第一公钥、第一私钥为相互匹配的一对秘钥,所述第二公钥、第二私钥为相互匹配的一对秘钥。
上述方法,优选的,所述利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证,包括:
基于预先采用第三私钥对所述Kernel及所述Recovery进行签名所生成的第三签名数据,利用第三公钥对所述Kernel及所述Recovery进行验证,其中,所述第三公钥、第三私钥为相互匹配的一对秘钥。
上述方法,优选的,所述第一公钥及所述第一私钥由芯片厂家生成,所述第一私钥由芯片厂家保管;所述第二公钥及所述第二私钥由运营商生成,所述第二私钥由运营商保管;所述第三公钥及所述第三私钥由运营商生成,所述第三私钥由运营商保管。
上述方法,优选的,所述第一签名数据及所述第二签名数据存储在所述主芯片flash中uboot文件的头部,所述第三签名数据存储在所述主芯片flash中的设定区域。
上述方法,优选的,还包括:
在所述第二验证信息或所述uboot未通过验证时,停止运行所述CPU,在所述Kernel及所述Recovery未通过验证时,停止启动,进行相应的出错处理。
一种启动验证系统,应用于电子设备,所述电子设备包括主芯片,所述系统包:
第一启动模块,用于启动微引导程序miniboot,所述miniboot预先集成在所述主芯片的中央处理器CPU中,所述miniboot中包括第一验证信息;
第一验证模块,用于利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证;
第二启动模块,用于在所述uboot通过验证时,启动所述uboot,所述uboot中内嵌有第三验证信息;
第二验证模块,用于利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证;
第三启动模块,用于在所述Kernel及所述Recovery通过验证时,启动所述Kernel及所述Recovery,其中,所述第二验证信息、uboot、Kernel及Recovery存储在所述主芯片的存储器flash中。
上述系统,优选的,所述第一验证模块包括:
第一验证单元,用于基于预先采用第一私钥对第二公钥进行签名所生成的第一签名数据,利用第一公钥对所述第二公钥进行验证;
第二验证单元,用于在所述第二公钥通过验证时,基于预先采用第二私钥对所述uboot进行签名所生成的第二签名数据,利用所述第二公钥对所述uboot进行验证,其中,所述第一公钥、第一私钥为相互匹配的一对秘钥,所述第二公钥、第二私钥为相互匹配的一对秘钥。
上述系统,优选的,所述第二验证模块包括:
第三验证单元,用于基于预先采用第三私钥对所述Kernel及所述Recovery进行签名所生成的第三签名数据,利用第三公钥对所述Kernel及所述Recovery进行验证,其中,所述第三公钥、第三私钥为相互匹配的一对秘钥。
上述系统,优选的,还包括:
故障处理模块,用于在所述第二验证信息或所述uboot未通过验证时,停止运行所述CPU,在所述Kernel及所述Recovery未通过验证时,停止启动,进行相应的出错处理。
综上,本发明的启动验证方法和系统,提供了一种多级串联验证的验证方式,即具体预先在主芯片的CPU中集成包括根秘钥(第一验证信息)的miniboot,miniboot不可被更改、拷贝,并在主芯片的falsh中存放用于对uboot进行验证的第二验证信息,在uboot代码中嵌入用于对kernel和recovery进行验证的第三验证信息。基于此,在启动主芯片的过程中,可首先利用miniboot中包括的第一验证信息对第二验证信息进行验证,在第二验证信息合法时,利用第二验证信息对uboot进行验证,并在uboot合法时启动uboot,之后uboot可利用其内嵌的第三验证信息对kernel和recovery进行验证,并在两者合法时,对其进行启动。而如果任意一个环节验证未通过(如uboot、kernel或recovery被篡改),则启动失败。
可见,相比于现有技术,本发明通过采用多级串联验证为智能终端带来了更高的安全保障,克服了现有验证方式易被破解、安全程度较低的缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一公开的启动验证方法的一种流程图;
图2是本发明实施例一公开的主芯片分区示意图;
图3是本发明实施例二公开的启动验证方法的另一种流程图;
图4是本发明实施例二公开的应用本发明对主芯片进行启动验证的过程流程图;
图5是本发明实施例三公开的启动验证系统的一种结构示意图;
图6是本发明实施例三公开的启动验证系统的另一种结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
CSK:根密钥,主要是由芯片厂商提供。
BSK:私钥,Bootloader开发者管理。
OTP:One Time Programmable,一次性编程存储器。
Uboot:一种通用的cpu引导程序
Kernel:linux操作系统的别称。
Recovery:用于恢复或升级操作系统的程序。
romcode区域:即只读内存Read-Only Memory的代码区域。
签名:这里指数字签名,是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
ChipID:cpu芯片的唯一标识码。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例一公开一种启动验证方法,该方法可应用于诸如智能终端等电子设备,所述电子设备包括主芯片。
参考图1,所述方法可以包括以下步骤:
S101:启动微引导程序miniboot,所述miniboot预先集成在所述主芯片的CPU(Central Processing Unit,中央处理器)中,所述miniboot中包括第一验证信息。
S102:利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证。
其中,本步骤S102包括:
基于预先采用第一私钥对第二公钥进行签名所生成的第一签名数据,利用第一公钥对所述第二公钥进行验证;
在所述第二公钥通过验证时,基于预先采用第二私钥对所述uboot进行签名所生成的第二签名数据,利用所述第二公钥对所述uboot进行验证,其中,所述第一公钥、第一私钥为相互匹配的一对秘钥,所述第二公钥、第二私钥为相互匹配的一对秘钥。
S103:在所述uboot通过验证时,启动所述uboot,所述uboot中内嵌有第三验证信息。
其中,步骤S103具体包括基于预先采用第三私钥对所述Kernel及所述Recovery进行签名所生成的第三签名数据,利用第三公钥对所述Kernel及所述Recovery进行验证,其中,所述第三公钥、第三私钥为相互匹配的一对秘钥。
S104:利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证。
S105:在所述Kernel及所述Recovery通过验证时,启动所述Kernel及所述Recovery,其中,所述第二验证信息、uboot、Kernel及Recovery存储在所述主芯片的存储器flash中。
其中,本实施例基于多级串联验证思想并采用基于公钥、私钥的签名认证机制对主芯片flash中的原始代码uboot、kernel及recovery进行启动验证,以保证主芯片的原始代码在安全合法的前提下才能被正常启动,进而保证智能终端的安全性。
为了更为方便地对本发明进行描述,以下采用Pub表示公钥,采用Pri表示私钥。
本实施例具体采用三套秘钥key:K1=(Pri1,Pub1),K2=(Pri2,Pub2)和K3=(Pri3,Pub3)实现对主芯片的原始代码进行串联验证。
智能终端的物理安全源于主芯片的安全保障,其安全根基为主芯片OTP(One Time Programmable,一次性编程存储器)中内置的根秘钥/公钥。基于此,本发明首先在主芯片OTP(One Time Programmable,一次性编程存储器)内的romcode区域集成了负责对uboot进行验证的miniboot安全程序,并在miniboot中内嵌了作为根秘钥的Pub1,以方便启动安全验证机制,对主芯片的原始代码进行安全验证。应用本发明时,可在芯片出厂前将miniboot固化集成在主芯片CPU中,并保证所述miniboot不可被篡改或拷贝。
其中,如图2所示,Pri1、Pub1由芯片厂家生成,芯片厂家保管pri1,在芯片出厂前Pub1已被作为根秘钥内嵌在芯片的CPU romcode区域中,出厂时,芯片厂家将内嵌了pub1且已烧写ChipID的安全芯片给终端厂家。
Pri2、pub2由运营商生成,运营商保管pri2,并将pub2提供给终端厂家,再由终端厂家将其提供给芯片厂家,芯片厂家使用pri1对pub2进行签名,得到pub2的签名数据;运营商采用pri2对uboot code(uboot代码)进行签名,生成uboot code的签名数据,且芯片厂家、运营商分别将pub2的签名数据、uboot code的签名数据提供给终端厂家,最终由终端厂家将pub2、pub2的签名数据及ubootcode的签名数据保存在uboot文件的头部。
Pri3、pub3由运营商生成,运营商将pub3提供给终端厂家,由终端厂家将其内嵌于uboot code中,同时,运营商保管pri3,采用pri3对kernel和recovery进行签名,生成对应的kernel和recovery签名数据,并将生成的签名数据提供给终端厂家,由终端厂家将其保存在flash的特定区域。
在此基础上,对智能终端上电后,主芯片中的miniboot首先启动,之后miniboot利用其内部的pub1验证pub2的正确性;pub2通过验证后,miniboot再利用pub2验证uboot的正确性,并在uboot合法通过验证后,启动uboot;接下来,uboot利用其内嵌的pub3验证kernel和recovery的正确性,并在kernel和recovery合法通过验证时,启动kernel和recovery。
也就是说,主芯片的CPU启动时会利用K1和K2验证uboot,uboot验证成功后,利用K3验证Recovery和Kernel,整套信任链机制从物理上确保了uboot,kernel和Recovery是安全的,保证了智能终端的安全性。
其中,本发明不直接使用pub1和pri1对uboot进行签名验证,而采用两套key(K1、K2)的验证方式,目的是将验证权下放给pub2,由于pub2存放在flash中,而不是存放在芯片内部的OTP区域中,所以可以更加方便调试和更换pub2。
综上,本发明的启动验证方法,提供了一种多级串联验证的验证方式,即具体预先在主芯片的CPU中集成包括根秘钥(第一验证信息)的miniboot,miniboot不可被更改、拷贝,并在主芯片的falsh中存放用于对uboot进行验证的第二验证信息,在uboot代码中嵌入用于对kernel和recovery进行验证的第三验证信息。基于此,在启动主芯片的过程中,可首先利用miniboot中包括的第一验证信息对第二验证信息进行验证,在第二验证信息合法时,利用第二验证信息对uboot进行验证,并在uboot合法时启动uboot,之后uboot可利用其内嵌的第三验证信息对kernel和recovery进行验证,并在两者合法时,对其进行启动。而如果任意一个环节验证未通过(如uboot、kernel或recovery被篡改),则启动失败。
可见,相比于现有技术,本发明通过采用多级串联验证为智能终端带来了更高的安全保障,克服了现有验证方式易被破解、安全程度较低的缺陷。
实施例二
本实施例中,参考图3,上述方法还包括以下步骤:
S106:在所述第二验证信息或所述uboot未通过验证时,停止运行所述CPU,在所述Kernel及所述Recovery未通过验证时,停止启动,进行相应的出错处理。
也就是说,应用本发明时,当各个验证环节中任意一个环节的验证未通过时,主芯片不能被正常启动。
例如,在主芯片flash中存储的uboot、kernel或recovery等原始代码基于非法目的被复制后,由于主芯片CPU中内嵌了根秘钥的miniboot无法被复制,从而被复制的uboot、kernel或recovery等原始代码因无法启动验证流程而不能被正常启用。
在主芯片flash中相应原始代码被篡改后,基于签名机制被篡改的代码已失去其合法有效性,从而在加电启动时,其不能通过合法验证,进而主芯片启动失败,保证了终端上涉及支付、认证、版权内容等各种运营业务的安全。
参考图4,利用本发明的方法对主芯片进行启动验证的过程如下:
S401:上电,启动、运行miniboot;
S402:miniboot利用其内嵌的pub1验证pub2;
S403:判断pub2是否验证成功,若判断结果为是,则执行步骤S405;否则,若判断结果为否,则执行步骤S404;
S404:CPU halt,即停止运行CPU;
S405:miniboot利用pub2验证uboot;
S406:判断uboot是否验证成功,若判断结果为是,则执行步骤S407;否则,若判断结果为否,则执行步骤S404;
S407:运行uboot;
S408:uboot利用其内嵌的pub3验证Kernel及Recovery;
S409:判断Kernel及Recovery是否验证成功,若判断结果为是,则执行步骤S410;否则,若判断结果为否,则执行步骤S411;
S410:启动应用;
S411:停止启动,进行出错处理。
实施例三
本实施例三公开一种启动验证系统,该系统与实施例一及实施例二公开的启动验证方法相对应。
首先,相应于实施例一,参考图5,所述系统包括第一启动模块100、第一验证模块200、第二启动模块300、第二验证模块400和第三启动模块500。
第一启动模块100,用于启动微引导程序miniboot,所述miniboot预先集成在所述主芯片的中央处理器CPU中,所述miniboot中包括第一验证信息;
第一验证模块200,用于利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证。
其中,第一验证模块200包括第一验证单元和第二验证单元。
第一验证单元,用于基于预先采用第一私钥对第二公钥进行签名所生成的第一签名数据,利用第一公钥对所述第二公钥进行验证。
第二验证单元,用于在所述第二公钥通过验证时,基于预先采用第二私钥对所述uboot进行签名所生成的第二签名数据,利用所述第二公钥对所述uboot进行验证,其中,所述第一公钥、第一私钥为相互匹配的一对秘钥,所述第二公钥、第二私钥为相互匹配的一对秘钥。
第二启动模块300,用于在所述uboot通过验证时,启动所述uboot,所述uboot中内嵌有第三验证信息。
第二验证模块400,用于利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证。
其中,第二验证模块400包括第三验证单元。
第三验证单元,用于基于预先采用第三私钥对所述Kernel及所述Recovery进行签名所生成的第三签名数据,利用第三公钥对所述Kernel及所述Recovery进行验证,其中,所述第三公钥、第三私钥为相互匹配的一对秘钥。
第三启动模块500,用于在所述Kernel及所述Recovery通过验证时,启动所述Kernel及所述Recovery,其中,所述第二验证信息、uboot、Kernel及Recovery存储在所述主芯片的存储器flash中。
相应于实施例二,参考图6,所述系统还包括故障处理模块600,该模块用于在所述第二验证信息或所述uboot未通过验证时,停止运行所述CPU,在所述Kernel及所述Recovery未通过验证时,停止启动,进行相应的出错处理。
对于本发明实施例三公开的启动验证系统而言,由于其与实施例一和实施例二公开的启动验证方法相对应,所以描述的比较简单,相关相似之处请参见实施例一和实施例二中启动验证方法部分的说明即可,此处不再详述。
综上所述,本发明基于多级串联的信任链机制从物理上确保了主芯片中uboot、kernel及recovery是安全的,相比于现有技术,本发明的验证机制不易被破解,安全程度较高,进而为智能终端带来了更高的安全保障。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种启动验证方法,其特征在于,应用于电子设备,所述电子设备包括主芯片,所述方法包括:
启动微引导程序miniboot,所述miniboot预先集成在所述主芯片的中央处理器CPU中,所述miniboot中包括第一验证信息;
利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证;
在所述uboot通过验证时,启动所述uboot,所述uboot中内嵌有第三验证信息;
利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证;
在所述Kernel及所述Recovery通过验证时,启动所述Kernel及所述Recovery,其中,所述第二验证信息、uboot、Kernel及Recovery存储在所述主芯片的存储器flash中。
2.根据权利要求1所述的方法,其特征在于,所述利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证,包括:
基于预先采用第一私钥对第二公钥进行签名所生成的第一签名数据,利用第一公钥对所述第二公钥进行验证;
在所述第二公钥通过验证时,基于预先采用第二私钥对所述uboot进行签名所生成的第二签名数据,利用所述第二公钥对所述uboot进行验证,其中,所述第一公钥、第一私钥为相互匹配的一对秘钥,所述第二公钥、第二私钥为相互匹配的一对秘钥。
3.根据权利要求2所述的方法,其特征在于,所述利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证,包括:
基于预先采用第三私钥对所述Kernel及所述Recovery进行签名所生成的第三签名数据,利用第三公钥对所述Kernel及所述Recovery进行验证,其中,所述第三公钥、第三私钥为相互匹配的一对秘钥。
4.根据权利要求2或3所述的方法,其特征在于,所述第一公钥及所述第一私钥由芯片厂家生成,所述第一私钥由芯片厂家保管;所述第二公钥及所述第二私钥由运营商生成,所述第二私钥由运营商保管;所述第三公钥及所述第三私钥由运营商生成,所述第三私钥由运营商保管。
5.根据权利要求2或3所述的方法,其特征在于,所述第一签名数据及所述第二签名数据存储在所述主芯片flash中uboot文件的头部,所述第三签名数据存储在所述主芯片flash中的设定区域。
6.根据权利要求1所述的方法,其特征在于,还包括:
在所述第二验证信息或所述uboot未通过验证时,停止运行所述CPU,在所述Kernel及所述Recovery未通过验证时,停止启动,进行相应的出错处理。
7.一种启动验证系统,其特征在于,应用于电子设备,所述电子设备包括主芯片,所述系统包:
第一启动模块,用于启动微引导程序miniboot,所述miniboot预先集成在所述主芯片的中央处理器CPU中,所述miniboot中包括第一验证信息;
第一验证模块,用于利用所述第一验证信息对第二验证信息进行验证,并在所述第二验证信息通过验证时,利用所述第二验证信息对引导程序uboot进行验证;
第二启动模块,用于在所述uboot通过验证时,启动所述uboot,所述uboot中内嵌有第三验证信息;
第二验证模块,用于利用所述第三验证信息对操作系统内核Kernel及操作系统的恢复/升级程序Recovery进行验证;
第三启动模块,用于在所述Kernel及所述Recovery通过验证时,启动所述Kernel及所述Recovery,其中,所述第二验证信息、uboot、Kernel及Recovery存储在所述主芯片的存储器flash中。
8.根据权利要求7所述的系统,其特征在于,所述第一验证模块包括:
第一验证单元,用于基于预先采用第一私钥对第二公钥进行签名所生成的第一签名数据,利用第一公钥对所述第二公钥进行验证;
第二验证单元,用于在所述第二公钥通过验证时,基于预先采用第二私钥对所述uboot进行签名所生成的第二签名数据,利用所述第二公钥对所述uboot进行验证,其中,所述第一公钥、第一私钥为相互匹配的一对秘钥,所述第二公钥、第二私钥为相互匹配的一对秘钥。
9.根据权利要求8所述的系统,其特征在于,所述第二验证模块包括:
第三验证单元,用于基于预先采用第三私钥对所述Kernel及所述Recovery进行签名所生成的第三签名数据,利用第三公钥对所述Kernel及所述Recovery进行验证,其中,所述第三公钥、第三私钥为相互匹配的一对秘钥。
10.根据权利要求7所述的系统,其特征在于,还包括:
故障处理模块,用于在所述第二验证信息或所述uboot未通过验证时,停止运行所述CPU,在所述Kernel及所述Recovery未通过验证时,停止启动,进行相应的出错处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410464893.5A CN104200153B (zh) | 2014-09-12 | 2014-09-12 | 一种启动验证方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410464893.5A CN104200153B (zh) | 2014-09-12 | 2014-09-12 | 一种启动验证方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104200153A true CN104200153A (zh) | 2014-12-10 |
CN104200153B CN104200153B (zh) | 2019-04-16 |
Family
ID=52085444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410464893.5A Active CN104200153B (zh) | 2014-09-12 | 2014-09-12 | 一种启动验证方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104200153B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778424A (zh) * | 2015-03-24 | 2015-07-15 | 四川长虹电器股份有限公司 | 基于智能电视防止rom刷机的方法 |
CN106096420A (zh) * | 2016-06-15 | 2016-11-09 | 京信通信技术(广州)有限公司 | 嵌入式设备安全启动的方法和装置 |
CN106295363A (zh) * | 2016-07-29 | 2017-01-04 | 北京小米移动软件有限公司 | 开机校验方法及装置 |
CN106485151A (zh) * | 2016-09-26 | 2017-03-08 | 北京小米移动软件有限公司 | 控制刷机的方法及装置 |
CN107220547A (zh) * | 2016-03-21 | 2017-09-29 | 展讯通信(上海)有限公司 | 终端设备及其启动方法 |
CN107301348A (zh) * | 2017-05-19 | 2017-10-27 | 深圳市同泰怡信息技术有限公司 | 一种检测mbr内容合理性的算法 |
CN108229173A (zh) * | 2016-12-13 | 2018-06-29 | 北京小米移动软件有限公司 | 系统启动的方法及装置 |
CN108509205A (zh) * | 2018-03-07 | 2018-09-07 | 深圳市海浦蒙特科技有限公司 | 变频器软件烧写安全校验方法、装置、存储介质及设备 |
CN108875382A (zh) * | 2018-05-24 | 2018-11-23 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
CN109150813A (zh) * | 2017-06-27 | 2019-01-04 | 武汉海康存储技术有限公司 | 一种设备的验证方法及装置 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
CN109684849A (zh) * | 2017-10-18 | 2019-04-26 | 佳能株式会社 | 信息处理装置、其控制方法和存储介质 |
CN109960520A (zh) * | 2017-12-25 | 2019-07-02 | 浙江宇视科技有限公司 | 程序加载方法、装置及电子设备 |
CN111736892A (zh) * | 2020-06-19 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种uboot启动方法、系统、设备及计算机存储介质 |
TWI725623B (zh) * | 2019-11-15 | 2021-04-21 | 倍加科技股份有限公司 | 基於管理者自發行票券的點對點權限管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972306A (zh) * | 2006-12-01 | 2007-05-30 | 浙江大学 | 安全套接层协议安全代理多重认证的实现方法 |
US20110044451A1 (en) * | 2007-07-25 | 2011-02-24 | Panasonic Corporation | Information processing apparatus and falsification verification method |
CN103679037A (zh) * | 2013-12-05 | 2014-03-26 | 长城信息产业股份有限公司 | 非对称加密认证方法和基于非对称加密认证的嵌入式设备 |
-
2014
- 2014-09-12 CN CN201410464893.5A patent/CN104200153B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972306A (zh) * | 2006-12-01 | 2007-05-30 | 浙江大学 | 安全套接层协议安全代理多重认证的实现方法 |
US20110044451A1 (en) * | 2007-07-25 | 2011-02-24 | Panasonic Corporation | Information processing apparatus and falsification verification method |
CN103679037A (zh) * | 2013-12-05 | 2014-03-26 | 长城信息产业股份有限公司 | 非对称加密认证方法和基于非对称加密认证的嵌入式设备 |
Non-Patent Citations (1)
Title |
---|
郭庆等: "《P4080平台安全启动实现设计》", 《通信技术》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778424A (zh) * | 2015-03-24 | 2015-07-15 | 四川长虹电器股份有限公司 | 基于智能电视防止rom刷机的方法 |
CN104778424B (zh) * | 2015-03-24 | 2017-10-27 | 四川长虹电器股份有限公司 | 基于智能电视防止rom刷机的方法 |
CN107220547A (zh) * | 2016-03-21 | 2017-09-29 | 展讯通信(上海)有限公司 | 终端设备及其启动方法 |
CN107220547B (zh) * | 2016-03-21 | 2020-07-03 | 展讯通信(上海)有限公司 | 终端设备及其启动方法 |
CN106096420A (zh) * | 2016-06-15 | 2016-11-09 | 京信通信技术(广州)有限公司 | 嵌入式设备安全启动的方法和装置 |
CN106295363B (zh) * | 2016-07-29 | 2019-05-14 | 北京小米移动软件有限公司 | 开机校验方法及装置 |
CN106295363A (zh) * | 2016-07-29 | 2017-01-04 | 北京小米移动软件有限公司 | 开机校验方法及装置 |
CN106485151A (zh) * | 2016-09-26 | 2017-03-08 | 北京小米移动软件有限公司 | 控制刷机的方法及装置 |
CN108229173A (zh) * | 2016-12-13 | 2018-06-29 | 北京小米移动软件有限公司 | 系统启动的方法及装置 |
CN108229173B (zh) * | 2016-12-13 | 2022-08-19 | 北京小米移动软件有限公司 | 系统启动的方法及装置 |
CN107301348A (zh) * | 2017-05-19 | 2017-10-27 | 深圳市同泰怡信息技术有限公司 | 一种检测mbr内容合理性的算法 |
CN107301348B (zh) * | 2017-05-19 | 2020-11-13 | 深圳市同泰怡信息技术有限公司 | 一种检测mbr内容合理性的算法 |
CN109150813A (zh) * | 2017-06-27 | 2019-01-04 | 武汉海康存储技术有限公司 | 一种设备的验证方法及装置 |
CN109684849A (zh) * | 2017-10-18 | 2019-04-26 | 佳能株式会社 | 信息处理装置、其控制方法和存储介质 |
CN109960520A (zh) * | 2017-12-25 | 2019-07-02 | 浙江宇视科技有限公司 | 程序加载方法、装置及电子设备 |
CN108509205B (zh) * | 2018-03-07 | 2022-01-07 | 深圳市海浦蒙特科技有限公司 | 变频器软件烧写安全校验方法、装置、存储介质及设备 |
CN108509205A (zh) * | 2018-03-07 | 2018-09-07 | 深圳市海浦蒙特科技有限公司 | 变频器软件烧写安全校验方法、装置、存储介质及设备 |
CN108875382A (zh) * | 2018-05-24 | 2018-11-23 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
CN108875382B (zh) * | 2018-05-24 | 2022-05-10 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
TWI725623B (zh) * | 2019-11-15 | 2021-04-21 | 倍加科技股份有限公司 | 基於管理者自發行票券的點對點權限管理方法 |
CN111736892A (zh) * | 2020-06-19 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种uboot启动方法、系统、设备及计算机存储介质 |
CN111736892B (zh) * | 2020-06-19 | 2022-06-17 | 浪潮(北京)电子信息产业有限公司 | 一种uboot启动方法、系统、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104200153B (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104200153A (zh) | 一种启动验证方法和系统 | |
CN108399329B (zh) | 一种提高可信应用程序安全的方法 | |
CN107463806B (zh) | 一种Android应用程序安装包的签名和验签方法 | |
CN103530534B (zh) | 一种基于签名验证的Android程序ROOT授权方法 | |
CN106503589A (zh) | 区块链交易信息正确性的校验方法、装置及系统 | |
EP3779760B1 (en) | Blockchain-based data processing method and apparatus, and electronic device | |
CN112700246B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN107466455B (zh) | Pos机安全验证方法及装置 | |
CN103186434A (zh) | 恢复基本输入输出系统的方法及系统 | |
CN111984962A (zh) | 固件安全验证方法及装置 | |
CN107430658A (zh) | 安全软件认证及验证 | |
CN101983375A (zh) | 将密码模块绑定到平台 | |
CN107301343A (zh) | 安全数据处理方法、装置及电子设备 | |
CN102650944A (zh) | 一种操作系统安全引导装置及引导方法 | |
CN111160879A (zh) | 一种硬件钱包及其安全性提升方法和装置 | |
CN111147259B (zh) | 鉴权方法和设备 | |
CN105893837A (zh) | 应用程序安装方法、安全加密芯片及终端 | |
CN111046436A (zh) | 基于系统级包管理的签名认证方法及服务器 | |
CN110830257A (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN106156550A (zh) | 一种芯片防破解的方法 | |
CN112955889A (zh) | 安全启动装置及方法 | |
CN114239066A (zh) | 基于区块链的合同处理方法及相关设备 | |
CN111600701B (zh) | 一种基于区块链的私钥存储方法、装置及存储介质 | |
CN105138378B (zh) | 一种bios刷写方法及电子设备 | |
CN109150813A (zh) | 一种设备的验证方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100089, room four, 401 floor, Taixing building, 11 Garden East Road, Beijing, Haidian District Applicant after: BEIJING CYCLE CENTURY TECHNOOGY CO., LTD. Address before: 100191, room 11, 505 Garden Road East, Beijing, Haidian District Applicant before: Beijing Cycle Century Digital Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |