终端设备及其启动方法与流程

文档序号:12612392阅读:335来源:国知局
终端设备及其启动方法与流程

本发明涉及智能终端领域,特别是涉及一种终端设备及其启动方法。



背景技术:

随着移动终端智能化程度的发展,智能终端操作系统已经可以提供各类应用软件内的运行环境,智能终端的普及和移动互联网应用的繁荣使得越来越多的用户借助智能终端处理各类安全敏感业务,从而使得移动终端面临着各种安全威胁。

所有对智能终端领域的入侵都需要更改系统内容,几乎所有的入侵都需要更改关键的系统文件,因此对系统进行完整性和一致性验证非常有必要,对系统的完整性和一致性的验证在智能终端启动时进行,从而保证智能终端安全启动。请参照图1所示的智能终端芯片的典型结构,芯片主要由负责控制、运算功能的处理器及配套片内只读存储器(Read Only Memory,ROM)、随机存取存储器(Radom Access Memory,RAM)、联合测试工作组制定的测试接口标准(Joint Test Action Group,JTAG)接口和通用输入输出口(General Purpose Input/Out,GPIO)和其他功能模块组成。由于受到片内存储器容量的限制,智能终端的主要程序都放在外部的非易失性存储器(Non-Volatile Memory,NVM)中。外部RAM是芯片运行期间主要系统的正常启动过程为:

1、从片内ROM开始启动;

2、将引导程序从NVM移到处理器的内部RAM中去;

3、运行引导程序,初始化外部RAM,将代码从NVM拷贝至外部RAM

4、程序指针指向外部RAM,开始执行外部RAM中的程序。

上述过程没有对代码进行校验,代码可以随意被更改和破解,无法保障智能终端的安全,比如锁网锁卡很容易被破解,所以需要一种机制来确保代码的完整性和一致性,以提高智能终端启动的安全性。



技术实现要素:

本发明解决的技术问题是提供一种终端设备及其启动方法,保证智能终端启动过程的安全性。

为解决上述技术问题,本发明实施例提供一种终端设备的启动方法,包括:

运行第一安全代码,验证基本安全内容;

当所述基本安全内容验证通过时,运行第二安全代码,验证引导程序;

当所述引导程序验证通过时,运行所述引导程序;

其中,所述基本安全内容和所述引导程序存储于非易失性的第一存储器中,所述第一安全代码和所述第二安全代码存储于只读的第二存储器中。

可选地,所述运行第一安全代码,验证基本安全内容,包括:

运行所述第一安全代码,以计算出所述基本安全内容的第一哈希摘要;

当所述第一哈希摘要与预先保存的哈希摘要相同时,验证所述基本安全内容通过;

其中,所述预先保存的哈希摘要存储于一次性可编程的第三存储器中。

可选地,所述运行第二安全代码,验证引导程序,包括:

运行所述第二安全代码,使用公开密钥算法验证所述引导程序。

可选地,所述运行所述第二安全代码,使用公开密钥算法验证所述引导程序,包括:

运行第二安全代码,以使用所述基本安全内容中的公钥对所述引导程序中的第二哈希摘要的暗文进行解密得到所述第二哈希摘要的明文,并计算所述引导程序中需要验证部分的实际哈希摘要;

当所述引导程序中需要验证部分的实际哈希摘要与解密得到的所述第二哈希摘要的明文相同,则验证引导程序通过

其中,所述第二哈希摘要的暗文预先被第一私钥进行加密,所述第一私钥与所述基本安全内容中的公钥构成一组密钥对。

可选地,所述公开密钥算法为RSA算法或椭圆曲线算法。

可选地,所述基本安全内容还包括以下一个或多个:

国际移动设备识别码、产品号、地区码和语言码。

可选地,所述第二存储器与处理器在同一个晶粒或集成在同一个物理芯片上,所述第一存储器与所述物理芯片片外耦合。

可选地,所述终端设备的启动方法还包括:

当验证所述引导程序通过时,运行所述引导程序,验证映像文件;

其中,所述映像文件存储于非易失性的第一存储器中。

可选地,所述运行所述引导程序,验证映像文件,包括:

运行所述引导程序,以使所述引导程序中的公钥对所述映像文件中的第三哈希摘要的暗文进行解密得到所述第三哈希摘要的明文,并计算所述映像文件中需要验证部分的实际哈希摘要;

当所述映像文件中需要验证部分的实际哈希摘要与解密得到的所述第三哈希摘要的明文相同,则验证所述映像文件通过;

其中,所述第三哈希摘要的暗文预先被第二私钥进行加密,所述第二私钥与所述引导程序中的公钥构成一组密钥对。

本发明实施例还提供一种终端设备,包括:处理器、非易失性的第一存储器、只读的第二存储器和一次性可编程的第三存储器;

所述处理器,适于运行第一安全代码,验证基本安全内容;当验证所述基本安全内容通过时,运行第二安全代码,验证引导程序;当验证所述引导程序通过时,运行所述引导程序;

所述非易失性的第一存储器,适于存储所述基本安全内容和所述引导程序;

所述只读的第二存储器,适于存储所述第一安全代码和所述第二安全代码;

所述一次性可编程的第三存储器,适于存储预先保存的哈希摘要。

可选地,所述处理器适于:

运行所述第一安全代码,以计算出所述基本安全内容的第一哈希摘要;

当所述第一哈希摘要与预先保存的哈希摘要相同时,验证所述基本安全内容通过。

可选地,所述处理器适于运行所述第二安全代码,使用公开密钥算法验证所述引导程序。

可选地,所述处理器适于:

运行第二安全代码,以使用所述基本安全内容中的公钥对所述引导程序中的第二哈希摘要的暗文进行解密得到所述第二哈希摘要的明文,并计算所述引导程序中需要验证部分的实际哈希摘要;

当所述引导程序中需要验证部分的实际哈希摘要与解密得到的所述第二哈希摘要的明文相同,则验证引导程序通过;

其中,所述第二哈希摘要的暗文预先被第一私钥进行加密,所述第一私钥与所述基本安全内容中的公钥构成一组密钥对。

可选地,所述公开密钥算法为RSA算法或椭圆曲线算法。

可选地,所述基本安全内容还包括以下一个或多个:

国际移动设备识别码、产品号、地区码和语言码。

可选地,所述第二存储器与处理器在同一个晶粒或集成在同一个物理芯片上,所述第一存储器与所述物理芯片片外耦合。

可选地,所述处理器还适于:

当验证所述引导程序通过时,运行所述引导程序,验证映像文件;

其中,所述映像文件存储于非易失性的第一存储器中。

可选地,所述处理器还适于:

运行所述引导程序,以使用所述引导程序中的公钥对所述映像文件中的第三哈希摘要的暗文进行解密得到所述第三哈希摘要的明文,并计算所述映像文件中需要验证部分的实际哈希摘要;

当所述映像文件中需要验证部分的实际哈希摘要与解密得到的所述第三 哈希摘要的明文相同,则验证所述映像文件通过;

其中,所述第三哈希摘要的暗文预先被第二私钥进行加密,所述第二私钥与所述引导程序中的公钥构成一组密钥对。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例通过运行第一安全代码,验证基本安全内容,当所述基本安全内容验证通过时,运行第二安全代码,验证引导程序,当所述引导程序验证通过时,运行所述引导程序,其中,所述基本安全内容和所述引导程序存储于非易失性的第一存储器中,所述第一安全代码和所述第二安全代码存储于只读的第二存储器中,从而保证基本安全内容和引导程序的完整性和一致性。在此基础上,本发明实施例通过引导程序验证映像文件的完整性和一致性。因此,本发明实施例的技术方案通过建立自下而上的信任链验证了启动代码的完整性和一致性,进而确保智能终端的安全启动。

进一步地,由于本发明实施例中验证引导程序的第二安全代码存储于只读的第二存储器中,而不是包含在所述基本安全内容内存储于片外的非易失性存储器中,从而减小对每个产品的基本安全内容作修改和重新编译时可能造成的错误,提高了验证代码的可靠性。

进一步地,通过保存基本安全内容在第一存储器而只保存其哈希摘要于一次性可编程的第三存储器中,从而降低一次性可编程存储器的成本。

进一步地,通过采用公开密钥算法验证引导程序和映像文件,从而保证软件的可升级性。

附图说明

图1是现有技术中一种典型的终端设备芯片的结构示意图;

图2是本发明实施例中的一种终端设备的启动方法的流程图;

图3是本发明实施例中的一种已签名引导程序的结构示意图;

图4是本发明实施例中的另一种终端设备的启动方法的流程图;

图5是本发明实施例中的一种终端设备的结构示意图。

具体实施方式

如背景技术所言,所有对智能终端领域的入侵都需要更改系统内容,几乎所有的入侵都需要更改关键的系统文件,因此对系统进行完整性和一致性验证非常有必要,对系统的完整性和一致性的验证在智能终端启动时进行,从而保证智能终端安全启动。而现有技术中的终端设备的启动过程并没有对代码进行校验,代码很可能已经被更改和破解,从而威胁系统安全。

本发明实施例通过运行第一安全代码,验证基本安全内容,当所述基本安全内容验证通过时,运行第二安全代码,验证引导程序,当所述引导程序验证通过时,运行所述引导程序,其中,所述基本安全内容和所述引导程序存储于非易失性的第一存储器中,所述第一安全代码和所述第二安全代码存储于只读的第二存储器中,从而保证基本安全内容和引导程序的完整性和一致性。在此基础上,本发明实施例通过引导程序验证映像文件的完整性和一致性。因此,本发明实施例的技术方案通过建立自下而上的信任链验证了启动代码的完整性和一致性,进而确保智能终端的安全启动。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图2是本发明实施例中的一种终端设备的启动方法的流程图。如图2所示的终端设备的启动方法,可以包括如下步骤:

步骤S201:运行第一安全代码,验证基本安全内容;

步骤S202:当所述基本安全内容验证通过时,运行第二安全代码,验证引导程序;

步骤S203:当所述引导程序验证通过时,运行所述引导程序。

其中,所述基本安全内容和所述引导程序存储于非易失性的第一存储器中,所述第一安全代码和所述第二安全代码存储于只读的第二存储器中。

在具体实施中,所述第二存储器与处理器可以在同一个晶粒或集成在同一个物理芯片上,所述第一存储器与所述物理芯片片外耦合。

在步骤S201的具体实施中,基本安全内容(Basal Secure Content,BSC) 由用户数据组成,用户数据包含用户公钥和用户想要加入的不可升级的任何信息,BSC存储于非易失性的第一存储器中,所述非易失性的第一存储器可以是闪存(FLASH)和嵌入式多媒体卡(Embedded Multi Media Card,EMMC)。芯片加电后,系统从只读的第二存储器开始执行,运行只读第二存储器中的第一安全代码,计算出所述基本安全内容的第一哈希摘要,当所述第一哈希摘要与预先保存的哈希摘要相同时,BSC验证通过。其中,所述预先保存的哈希摘要存储于一次性可编程的第三存储器中。

所述一次性可编程的第三存储器可以是微电熔丝等具有一次性可编程功能的模块。所述第三存储器一旦被编程后就不能被修改,第三存储器还可以存储本终端设备的芯片唯一标识(Unique Identifier,UID),芯片的UID为产品唯一却不重复的编号,UID在产品出厂前写入,对用户只读,保证UID不被篡改。在具体实施中,所述第三存储器中保存的哈希摘要可以占256比特,UID占128比特。

在具体实施中,将第一安全代码存储于第二存储器中,将预先保存的哈希摘要存储于第三存储器中。由于第一安全代码一般没有变化,第二存储器使用只读的类型可以方便按规格批量制造。而所述预先保存的哈希摘要需要在基本安全内容确定后才能确定,基本安全内容有国际移动设备识别码等信息,每个终端都会不同,第三存储器使用一次性可编程存储器(One Time Programmable memory,OTP)可以满足按设备定制的需要。

在本实施例中,如果预先保存公开密钥算法的公钥和用户数据则需要很大的一次性可编程的第三存储器的容量,因此本实施例通过保存BSC的哈希摘要于第三存储器中,使用预先保存的哈希摘要和计算出来的BSC的第一哈希摘要进行比较即可完成验证,从而可以节省OTP的成本。

在具体实施中,任何基本安全内容的改动都会导致开机后实际计算出来的第一哈希摘要发生变动,和第三存储器中预先保存的哈希摘要不一致时,中止开机,如果计算出来的第一哈希摘要和第三存储器中预先保存的哈希摘要一致,那么基本安全内容完整且一致,从而确保基本安全内容没有被更改,提高终端设备启动的安全性。

在步骤S202的具体实施中,当所述基本安全内容验证通过时,也即基本安全内容完整且与初始状态一致时,开始验证引导程序。可以运行所述第二安全代码,使用公开密钥算法验证所述引导程序。

具体地,当程序运行到验证引导程序,运行第二存储器中的第二安全代码,读取保存在引导程序中的第二哈希摘要,使用所述基本安全内容中的公钥对所述引导程序中的第二哈希摘要的暗文进行解密得到所述第二哈希摘要的明文,并计算所述引导程序中需要验证部分的实际哈希摘要。请参考图3,已签名引导程序由数字签名,签名部分和未签名部分组成,所述签名部分为引导程序需校验的部分,所述数字签名包含所述引导程序签名部分的位置信息、长度信息和用私钥签名的哈希摘要,其中长度信息为需校验的引导程序的长度,根据长度信息可以计算出这个长度的引导程序的实际哈希摘要。

当所述引导程序中需要验证部分的实际哈希摘要与解密得到的所述第二哈希摘要的明文相同,则验证引导程序通过。其中,所述第二哈希摘要的暗文预先被第一私钥进行加密,所述第一私钥与所述基本安全内容中的公钥构成一组密钥对。任何引导程序的变动导致的不完整或不一致都会导致实际计算出来的哈希摘要发生变化,从而和公开密钥算法解密出来的第三哈希摘要不一致,程序则中止开机,只有两者一致是验证通过,终端设备才正常启动,从而保证了终端设备启动的安全性。

在具体实施中,所述公开密钥算法可以是RSA算法或椭圆曲线算法。

在具体实施中,所述基本安全内容还可以包括以下一个或多个:国际移动设备识别码、产品号、地区码和语言码。

在具体实施中,所述第二存储器与处理器可以在同一个晶粒或集成在同一个物理芯片上,所述第一存储器与所述物理芯片片外耦合。

本实施例通过运行第一安全代码,验证基本安全内容,当所述基本安全内容验证通过时,运行第二安全代码,验证引导程序,当所述引导程序验证通过时,运行所述引导程序,其中,所述基本安全内容和所述引导程序存储于非易失性的第一存储器中,所述第一安全代码和所述第二安全代码存储于只读的第二存储器中,从而比对出被验证的代码是否发生变动,保证了基本 安全内容和引导程序的完整性和一致性,提高终端设备启动的安全性。

需要说明的是,在验证引导程序时,本领域的技术人员可以不像本实施例这样将验证引导程序的第二安全代码存储于第二存储器中,而是将验证引导程序的代码包含在基本安全内容中,这样,由基本安全内容采用公开密钥算法来验证引导程序,从而同样实现在启动过程中的安全校验。

但是,由于本发明实施例中验证引导程序的第二安全代码存储于只读的第二存储器中,而不是存储于片外的非易失性存储器的所述基本安全内容内,从而可以减小对每个产品的基本安全内容作修改和重新编译时可能造成的错误,提高了验证代码的可靠性。

进一步地,通过保存基本安全内容在第一存储器而只保存其哈希摘要于一次性可编程的第三存储器中,从而降低一次性可编程存储器的成本。

进一步地,通过采用公开密钥算法验证引导程序和映像文件,从而保证软件的可升级性。

图4是本发明实施例中的另一种终端设备的启动方法的流程图。如图4所示的终端设备的启动方法,可以包括以下步骤:

步骤S401:运行第一安全代码,验证基本安全内容;

步骤S402:当所述基本安全内容验证通过时,运行第二安全代码,验证引导程序;

步骤S403:当所述引导程序验证通过时,运行所述引导程序;

步骤S404:当验证所述引导程序通过时,运行所述引导程序,验证映像文件。其中,所述映像文件存储于非易失性的第一存储器中。

上述步骤中,所述基本安全内容和所述引导程序存储于非易失性的第一存储器中,所述第一安全代码和所述第二安全代码存储于只读的第二存储器中。

在具体实施中,所述第二存储器与处理器可以在同一个晶粒或集成在同一个物理芯片上,所述第一存储器与所述物理芯片片外耦合。

在具体实施中,步骤S401至步骤S404的描述和对应参照步骤S201至步 骤S203的描述,在此不再赘述。

在具体实施中,验证映像文件时,同样可以采用公开密钥算法进行验证,可以运行所述引导程序,以使所述引导程序中的公钥对所述映像文件中的第三哈希摘要的暗文进行解密得到所述第三哈希摘要的明文,并计算所述映像文件中需要验证部分的实际哈希摘要,当所述映像文件中需要验证部分的实际哈希摘要与解密得到的所述第三哈希摘要的明文相同,则验证所述映像文件通过。其中,所述第三哈希摘要的暗文预先被第二私钥进行加密,所述第二私钥与所述引导程序中的公钥构成一组密钥对。

具体地,当程序跳转到引导程序,引导程序读取保存在映像文件数字签名中的哈希摘要,使用引导程序内保存的公钥解密预先被第二私钥加密的第三哈希摘要的暗文,得到解密后的第三哈希摘要的明文。运行引导程序读取映像文件数字签名中保存的校验长度,根据该校验长度计算映像文件的实际需要验证部分的哈希摘要,当映像文件中需要验证部分的实际哈希摘要与解密得到的所述第三哈希摘要的明文相同,则验证所述映像文件通过。任何映像文件的变动都会导致实际计算出来的实际哈希摘要相比所述第三哈希摘要的明文发生变动,则程序中止开机,反之,如果计算出来的实际哈希摘要与解密得到的第三哈希摘要的明文相同,则程序执行正常开机流程,从而保证了映像文件的完整性和一致性。

本实施例在引导程序通过验证的基础上,通过引导程序验证映像文件的完整性和一致性。因此,本实施例通过建立自下而上的信任链实现验证启动代码的完整性和一致性,最底层是芯片的第二存储器和第三存储器,最高层是系统应用程序,进而确保智能终端的安全启动。

本发明实施例中验证引导程序的第二安全代码存储于只读的第二存储器中,而不是包含在所述基本安全内容内存储于片外的非易失性存储器中,从而可以减小对每个产品的基本安全内容作修改和重新编译时可能造成的错误,提高了验证代码的可靠性。

进一步地,通过保存基本安全内容在第一存储器而只保存其哈希摘要于一次性可编程的第三存储器中,从而降低一次性可编程存储器的成本。

进一步地,通过采用公开密钥算法验证引导程序和映像文件,从而保证软件的可升级性。

需要指出的是,本领域的技术人员可以基于本实施例的发明构思进行等同的改变,例如区分所述引导程序和映像文件,经所述第二存储器中的第二安全代码验证通过的引导程序,同样使用公开密钥算法验证下一引导程序,由最后一个引导程序使用公开密钥算法验证第一个映像文件,在由前面的映像文件验证下一个映像文件,从而实现使用信任链的逐级信任机制提供终端设备的安全启动过程。

图5是本发明实施例中的一种终端设备的结构示意图。如图5所示的终端设备50,可以包括:处理器501、非易失性的第一存储器502、只读的第二存储器503和一次性可编程的第三存储器504。其中:

所述处理器501,适于运行第一安全代码,验证基本安全内容;当验证所述基本安全内容通过时,运行第二安全代码,验证引导程序;当验证所述引导程序通过时,运行所述引导程序;所述非易失性的第一存储器502,适于存储所述基本安全内容和所述引导程序;

所述只读的第二存储器503,适于存储所述第一安全代码和所述第二安全代码;

所述一次性可编程的第三存储器504,适于存储预先保存的哈希摘要

在具体实施中,所述处理器501可以包括基本安全内容验证单元和引导程序验证单元。

所述基本安全内容验证单元,适于运行所述第一安全代码,以计算出所述基本安全内容的第一哈希摘要;当所述第一哈希摘要与预先保存的哈希摘要相同时,验证所述基本安全内容通过;其中,所述预先保存的哈希摘要存储于一次性可编程的第三存储器504中。

具体实施中,所述第三存储器504可以是微电熔丝等具有一次性可编程功能的模块。

所述引导程序验证单元,适于运行所述第二安全代码,使用公开密钥算 法验证所述引导程序。

在具体实施中,所述引导程序验证单元,适于运行第二安全代码,以使用所述基本安全内容中的公钥对所述引导程序中的第二哈希摘要的暗文进行解密得到所述第二哈希摘要的明文,并计算所述引导程序中需要验证部分的实际哈希摘要;当所述引导程序中需要验证部分的实际哈希摘要与解密得到的所述第二哈希摘要的明文相同,则验证引导程序通过;其中,所述第二哈希摘要的暗文预先被第一私钥进行加密,所述第一私钥与所述基本安全内容中的公钥构成一组密钥对。

在具体实施中,所述公开密钥算法为RSA算法或椭圆曲线算法。

在具体实施中,所述基本安全内容还可以包括国际移动设备识别码、产品号、地区码和语言码中的一个或多个。

在具体实施中,所述第二存储器与处理器在同一个晶粒或集成在同一个物理芯片上,所述第一存储器与所述物理芯片片外耦合。

在具体实施中,所述处理器501还适于当验证所述引导程序通过时,运行所述引导程序,验证映像文件;其中,所述映像文件存储于所述非易失性的第一存储器502中。

在具体实施中,所述处理器501还可以包括映像文件验证单元,适于运行所述引导程序,以使用所述引导程序中的公钥对所述映像文件中的第三哈希摘要的暗文进行解密得到所述第三哈希摘要的明文,并计算所述映像文件中需要验证部分的实际哈希摘要;当所述映像文件中需要验证部分的实际哈希摘要与解密得到的所述第三哈希摘要的明文相同,则验证所述映像文件通过;其中,所述第三哈希摘要的暗文预先被第二私钥进行加密,所述第二私钥与所述引导程序中的公钥构成一组密钥对。

本实施例通过运行第一安全代码,验证基本安全内容,当所述基本安全内容验证通过时,运行第二安全代码,验证引导程序,当所述引导程序验证通过时,运行所述引导程序,其中,所述基本安全内容和所述引导程序存储于非易失性的第一存储器中,所述第一安全代码和所述第二安全代码存储于只读的第二存储器中,从而比对出被验证的代码是否发生变动,保证了基本 安全内容和引导程序的完整性和一致性,提高终端设备启动的安全性。

但是,由于本发明实施例中验证引导程序的第二安全代码存储于只读的第二存储器中,而不是包含在所述基本安全内容内存储于片外的非易失性存储器中,从而可以减小对每个产品的基本安全内容作修改和重新编译时可能造成的错误,提高了验证代码的可靠性。

进一步地,通过保存基本安全内容在第一存储器而只保存其哈希摘要于一次性可编程的第三存储器中,从而降低一次性可编程存储器的成本。

进一步地,通过采用公开密钥算法验证引导程序和映像文件,从而保证软件的可升级性。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1