本公开揭示了一种开机校验方法及装置,属于嵌入式技术领域。所述方法包括:检测终端是否为非测试用终端,当确定终端为非测试用终端时,通过Kernel层使用公钥对签名进行校验,签名是根据与公钥不匹配的私钥生成的签名,在校验失败时,指示结束校验;解决了终端因为运行测试版本的Rom包导致安全性较低的问题;通过在终端中设置一套匹配的密钥和一套不匹配的密钥,达到了非测试用终端由于校验失败而无法成功启动,保证了终端的安全性的效果。
【技术实现步骤摘要】
本公开涉及嵌入式
,特别涉及一种开机校验方法及装置。
技术介绍
Android(安卓)系统是一种以Linux为基础的开放源代码的操作系统,Android系统的系统源码可以被打包成为Romimage(ReadOnlyMemoryimage,只读存储器镜像),Romimage也被称为Rom包。当Rom包被写入手机或者平板电脑等终端的Rom中时,终端通过加载该Rom包运行该Rom包中的系统源码。目前的Rom包主要分为官方版本和测试版本两种,Rom中存储有官方版本的Rom包的终端的文件系统通常不支持root(超级用户)权限,Rom中存储有测试版本的Rom包的终端的文件系统通常支持root权限,其中,root拥有系统的最高权限,因此当用户所使用的终端中的Rom中安装有测试版本的Rom时,终端中的任何一个应用程序都可以获取到root权限,并通过root权限来读取终端中存储的用户的隐私数据。
技术实现思路
为了解决终端因为运行测试版本的Rom导致安全性较低的问题,本公开提供一种开机校验方法及装置。所述技术方案如下:根据本公开实施例的第一方面,提供一种开机校验方法,该方法用于终端中,该终端中至少包括硬件层、Kernel(内核)层、Bootloader(启动装载)层和文件系统层,Kernel层中存储有公钥,Bootloader层携带有签名,该方法包括:检测终端是否为非测试用终端;当确定终端为非测试用终端时,则通过Kernel层使用公钥对签名进行校验,签名是根据私钥生成的签名,私钥与公钥不匹配,在校验失败时,指示结束校验。可选的,检测终端是否为非测试用终端,包括:检测终端中是否包含预设电路结构,预设电路结构用于表示终端是测试用终端;若终端中不包含预设电路结构,则确定终端为非测试用终端。可选的,检测终端中是否包含预设电路结构,包括:检测硬件层的可信区域中是否包含预设电路结构,可信区域是硬件层中禁止被应用程序直接访问的区域。可选的,检测终端是否为非测试用终端,包括:检测终端中是否包含预设标识,预设标识为用于表示终端为测试用终端的标识;若终端中不包含预设标识,则确定终端为非测试用终端。可选的,检测终端中是否包含预设标识,包括:检测硬件层的可信存储区域中是否包含预设标识,可信存储区域是硬件层中禁止被应用程序直接访问的区域。根据本公开实施例的第二方面,提供一种开机校验装置,用于终端中,终端中至少包括硬件层、Kernel层、Bootloader层和文件系统层,Kernel层中存储有公钥,Bootloader层携带有签名,该装置包括:检测模块,被配置为检测终端是否为非测试用终端;校验模块,被配置为在终端为非测试用终端时,则通过Kernel层使用公钥对签名进行校验,签名是根据私钥生成的签名,私钥与公钥不匹配,在校验失败时,指示结束校验。可选的,检测模块包括:第一检测子模块,被配置为检测终端中是否包含预设电路结构,预设电路结构用于表示终端是测试用终端;第一确定子模块,被配置为在不包含预设电路结构时,则确定终端为非测试用终端。可选的,第一检测子模块,还被配置为检测硬件层的可信区域中是否包含预设电路结构,可信区域是硬件层中禁止被应用程序直接访问的区域。可选的,检测模块包括:第二检测子模块,检测终端中是否包含预设标识,预设标识为用于表示终端为测试用终端的标识;第二确定子模块,若终端中不包含预设标识,则确定终端为非测试用终端。可选的,第二检测子模块,还被配置为检测硬件层的可信存储区域中是否包含预设标识,可信存储区域是硬件层中禁止被应用程序直接访问的区域。根据本公开实施例的第三方面,提供一种开机校验装置,用于终端中,终端中至少包括硬件层、Kernel层、Bootloader层和文件系统层,Kernel层中存储有公钥,Bootloader层携带有签名,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:检测终端是否为非测试用终端;当确定终端为非测试用终端时,则通过Kernel层使用公钥对签名进行校验,签名是根据私钥生成的签名,私钥与公钥不匹配,在校验失败时,指示结束校验。本公开的实施例提供的技术方案可以包括以下有益效果:通过检测终端是否为非测试用终端,当确定终端为非测试用终端时,通过Kernel层使用公钥对签名进行校验,由于签名是根据私钥生成的签名,而私钥与公钥不匹配,因此终端校验失败,无法开启;解决了终端因为运行测试版本的Rom包导致安全性较低的问题;通过在终端中设置一套匹配的密钥和一套不匹配的密钥,达到了非测试用终端由于校验失败而无法成功启动,保证了终端的安全性的效果。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。图1是根据一示例性实施例示出的一种终端的结构示意图;图2是根据一示例性实施例示出的一种开机校验方法的流程图;图3是根据另一示例性实施例示出的一种开机校验方法的流程图;图4是根据另一示例性实施例示出的一种开机校验方法的流程图;图5是根据另一示例性实施例示出的一种开机校验方法的流程图;图6是根据另一示例性实施例示出的一种开机校验方法的流程图;图7A是根据一示例性实施例示出的一种开机校验方法的示意图;图7B是根据另一示例性实施例示出的一种开机校验方法的示意图;图8是根据一示例性实施例示出的一种开机校验装置的框图;图9A是根据另一示例性实施例示出的一种开机校验装置的框图;图9B是根据另一示例性实施例示出的一种开机校验装置的框图;图10是根据另一示例性实施例示出的一种终端的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。本公开各个实施例提供的开机校验方法,可以由采用Android操作系统的终端来实现,该终端可以是诸如智能手机、智能电视和平板电脑之类的终端。该终端的结构示意图可以如图1所示,终端10中至少包括:硬件层110、Kernel层120、Bootloader层130和文件系统层140。Kernel层120位于硬件层110的上层,Bootloader层130位于Kernel层120的上层,文件系统层140位于Bootloader层130的上层。其中,硬件层110中通常包括处理器、存储器、寄存器、电容、二极管和三极管等硬件器件;终端10中的Kernel是基于Linux的内核,Kernel层120通常用于管理存储器、进程、文件和系统资源等;Bootloader层130主要用于对处理器和相关硬件进行初始化;文件系统用于对终端中的文件信息进行管理和存储。在本公开实施例中,Kernel层120中存储的公钥为第一公钥,Bootloader层130携带的签名为第一签名,该第一签名是根据第一私钥生成的签名。Bootloader层130中还存储有第二公钥,文件系统层140携带有第二签名,该第二签名是根据第二私钥生成的本文档来自技高网...
【技术保护点】
一种开机校验方法,其特征在于,用于终端中,所述终端中至少包括硬件层、内核Kernel层、启动装载Bootloader层和文件系统层,所述Kernel层中存储有公钥,所述Bootloader层携带有签名,所述方法包括:检测所述终端是否为非测试用终端;当确定所述终端为所述非测试用终端时,则通过所述Kernel层使用所述公钥对所述签名进行校验,所述签名是根据私钥生成的签名,所述私钥与所述公钥不匹配,在校验失败时,指示结束校验。
【技术特征摘要】
1.一种开机校验方法,其特征在于,用于终端中,所述终端中至少包括硬件层、内核Kernel层、启动装载Bootloader层和文件系统层,所述Kernel层中存储有公钥,所述Bootloader层携带有签名,所述方法包括:检测所述终端是否为非测试用终端;当确定所述终端为所述非测试用终端时,则通过所述Kernel层使用所述公钥对所述签名进行校验,所述签名是根据私钥生成的签名,所述私钥与所述公钥不匹配,在校验失败时,指示结束校验。2.根据权利要求1所述的方法,其特征在于,所述检测所述终端是否为非测试用终端,包括:检测所述终端中是否包含预设电路结构,所述预设电路结构用于表示所述终端是测试用终端;若所述终端中不包含所述预设电路结构,则确定所述终端为所述非测试用终端。3.根据权利要求2所述的方法,其特征在于,所述检测所述终端中是否包含预设电路结构,包括:检测所述硬件层的可信区域中是否包含所述预设电路结构,所述可信区域是所述硬件层中禁止被应用程序直接访问的区域。4.根据权利要求1所述的方法,其特征在于,所述检测所述终端是否为非测试用终端,包括:检测所述终端中是否包含预设标识,所述预设标识为用于表示所述终端为测试用终端的标识;若所述终端中不包含所述预设标识,则确定所述终端为所述非测试用终端。5.根据权利要求4所述的方法,其特征在于,所述检测所述终端中是否包含预设标识,包括:检测所述硬件层的可信存储区域中是否包含所述预设标识,所述可信存储区域是所述硬件层中禁止被应用程序直接访问的区域。6.一种开机校验装置,其特征在于,用于终端中,所述终端中至少包括硬件层、内核Kernel层、启动装载Bootloader层和文件系统层,所述Kernel层中存储有公钥,所述Bootloader层携带有签名,所述装置包括:检测模块,被配置为检测所述终端是否为非测试用终端;校验模块,被...
【专利技术属性】
技术研发人员:梁博,于淼,赵亚帆,
申请(专利权)人:北京小米移动软件有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。