终端启动方法和装置与流程

文档序号:11831282阅读:286来源:国知局
终端启动方法和装置与流程

本发明涉及安全通信技术领域,特别是涉及一种终端启动方法和装置。



背景技术:

随着科学技术的发展,山寨企业也越来越多,很多电子产品都很容易被仿制,如电视,电脑,pad或手机等设备,电子产品被山寨企业仿制生产,会给企业带来较大的损失。

传统技术中对终端设备的验证,通常是在终端启动后通过安全软件进行安全认证,或者仅仅是配置相关的硬件以及软件数据,将软硬件都配置成功后即可启动终端并运行,终端启动过程中的安全性不能保证,进而整个终端运行后的安全性能更加不能保障。



技术实现要素:

基于此,有必要针对上述的问题,提供一种安全认证强度更高的终端启动方法和装置。

一种终端启动方法,所述方法包括:

当检测到终端的启动指令时,启动所述终端的只读存储器和安全芯片;

获取所述安全芯片中的密钥信息,判断所述密钥信息是否与所述只读存储器的验证信息匹配,若是,执行操作系统启动进程;

计算操作系统的待加载文件的Hash值;

将待加载文件的Hash值送入所述安全芯片中以使所述安全芯片将所述待加载文件的Hash值与安全芯片预存的安全测量值进行匹配;

获取安全芯片得到的匹配结果,当所述匹配结果为待加载文件的Hash值与安全芯片中所述安全测量值匹配时,加载所述待加载文件,直至完成操作系统的所有文件的加载,系统启动完成。

在一个实施例中,所述判断所述密钥信息是否与所述只读存储器的验证信息匹配;若是,进行操作系统启动进程的步骤,包括:

获取所述安全芯片中预存的安全芯片签名值和特征量数据,其中,所述安全芯片签名值为硬件认证私钥对所述特征量数据的签名值;

获取所述只读存储器中的硬件认证公钥;

判断所述硬件认证公钥和所述特征量数据是否与所述安全芯片签名值对应;

若是,则所述只读存储器和所述安全芯片为授权的终端硬件,执行进行操作系统启动进程。

在一个实施例中,所述操作系统为嵌入式操作系统,所述操作系统的待加载文件包括操作系统的底层文件和操作系统的可执行文件。

在一个实施例中,所述安全测量值包括操作系统的文件签名值,其中,所述文件签名值是指系统认证私钥对操作系统各个标准文件的Hash值预先计算的签名值;

当所述匹配结果为待加载文件的Hash值与安全芯片中所述安全测量值匹配时,加载所述待加载文件的步骤为:

获取所述系统认证公钥,判断所述系统认证公钥和计算的所述待加载文件的Hash值是否与所述签名值对应;

若是,则执行所述加载所述待加载文件的步骤。

在一个实施例中,当系统启动完成后,所述方法还包括:

对待加载的系统应用和第三方应用进行安全认证。

一种终端启动装置,所述装置包括:

终端上电模块,用于当检测到终端的启动指令时,启动所述终端的只读存储器和安全芯片;

安全芯片安全认证模块,用于获取所述安全芯片中的密钥信息,判断所述密钥信息是否与只读存储器的验证信息匹配,若是,执行操作系统启动进程;

系统文件Hash值计算模块,用于计算操作系统的待加载文件的Hash值;

数据匹配模块,用于将待加载文件的Hash值送入所述安全芯片中以使所述安全芯片将所述待加载文件的Hash值与安全芯片预存的安全测量值进行匹配;

系统启动模块,用于获取安全芯片得到的匹配结果,当所述匹配结果为待加载文件的Hash值与安全芯片中所述安全测量值匹配时,加载所述待加载文件,直至完成操作系统的所有文件的加载,系统启动完成。

在一个实施例中,所述安全芯片安全认证模块包括:

安全芯片数据获取模块,用于获取所述安全芯片中预存的安全芯片签名值和特征量数据,其中,所述安全芯片签名值为硬件认证私钥对所述特征量数据的签名值;

只读存储器数据获取模块,用于获取所述只读存储器中的硬件认证公钥;

安全认证模块,用于判断所述硬件认证公钥和所述特征量数据是否与所述安全芯片签名值对应;若是,则所述只读存储器和所述安全芯片为授权的终端硬件,执行进行操作系统启动进程。

在一个实施例中,所述操作系统为嵌入式操作系统,所述操作系统的待加载文件包括操作系统的底层文件和操作系统的可执行文件。

在一个实施例中,所述安全测量值包括文件签名值,其中,所述文件签名值是指系统认证私钥对操作系统各个标准文件的Hash值预先计算的签名值;

系统启动模块,还用于获取所述系统认证公钥,判断所述系统认证公钥和计算的所述待加载文件的Hash值是否与所述签名值对应;

若是,则执行所述加载所述待加载文件的步骤。

在一个实施例中,当操作系统的系统文件加载完成后,所述方法还包括:

应用认证模块,用于对待加载的系统应用和第三方应用进行安全认证。

上述终端启动方法和装置,当检测到终端启动指令时,启动终端的只读存储器和安全芯片;验证只读存储器安全芯片之间的密钥信息是否匹配;若是,执行操作系统启动进程;计算操作系统的待加载文件的Hash值;将待加载文件的Hash值送入安全芯片中以使安全芯片将待加载文件的Hash值与安全芯片预存的安全测量值进行匹配;获取安全芯片得到的匹配结果,当匹配结果为待加载文件的Hash值与安全芯片中安全测量值匹配时,加载待加载文件,直至完成操作系统的所有文件的加载,系统启动完成,由于只读存储器的只读特性,通过只读存储器与安全芯片密钥信息的匹配,可验证安全芯片的是否为授权的芯片,在安全芯片可靠的基础上进行其他硬件的加载以及操作系统的加载认证,实现了由硬件到操作系统的上级度量认证下级的启动方式,另外通过验证后的安全芯片存储操作系统的验证数据,进一步确保了操作系统安全认证的可靠性,进而确保了整个终端硬件与系统软件的安全性。

附图说明

图1为一个实施例中终端启动方法的流程图;

图2为一个实施例中可执行文件安全认证方法的流程图;

图3为一个实施例中安全芯片安全认证方法的流程图;

图4为一个实施例中终端启动装置的结构框图;

图5为一个实施例中安全芯片安全认证模块的结构框图;

图6为另一个实施例中终端启动装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在一个实施例中,如图1所示,提供了一种终端启动方法,该方法包括:

步骤S102:当检测到终端启动指令时,启动终端的只读存储器和安全芯片。

当终端被上电时,将启动终端处理器中的引导启动程序,处理器执行该引导启动程序以进行终端启动控制。具体的,终端被上电时,启动终端中的只读存储器和安全芯片,其中,终端110为移动终端,移动终端具体可以是平板电脑、智能手机或个人数据助理。

具体的,当终端的上电信号即为终端启动信号,当检测到终端的启动信号时,加载终端中的只读存储器(Read-Only Memory,简称:ROM)。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出。

安全芯片嵌入在终端主板上,安全芯片可独立进行密钥的生成、加密和解密,内部具有独立的处理器和存储器,可存储密钥和特征数据,为终端提供加密和安全认证服务。安全芯片可对芯片内部存储的数据进行高可靠性的加密处理,能够有效防止存储的数据被盗或者破解。

步骤S104:获取安全芯片中的密钥信息,判断密钥信息是否与只读存储器的验证信息匹配,若是,执行操作系统启动进程。

具体的,安全芯片预先存储有密钥信息,只读存储器中预先存储有验证信息,获取安全芯片中的密钥信息和只读存储器中的验证信息,并将两者进行匹配,如果匹配成功,则安全芯片为授权的安全芯片,没有被恶意更改。如果匹配不成功,说明安全芯片中的密钥信息与验证信息不匹配,该验证的安全芯片为非授权安全芯片,该非授权的安全芯片中存储的用于后续的操作系统的密钥信息是不安全的。

在一个实施例中,安全芯片中的密钥信息和只读存储器中的验证信息可以是设定长度的字符串,两者可以是设定为相同,也可以设定为不同,只要两者可相互进行识别和验证即可。例如,安全芯片中的密钥信息为ABC,设定其匹配的数据为123,只要只读存储器中的验证信息为123,即验证通过。

在本实施例中,通过ROM中的验证信息对安全芯片进行验证,由于恶意侵犯者不太容易拿到ROM中的验证信息,也就不能对安全芯片进行伪造,而且伪造的安全芯片进行验证时也不会验证成功,上述对安全芯片的验证方法能够有效的确保安全芯片的可信度,保障了后续操作系统的安全验证。

步骤S106:计算操作系统的待加载文件的Hash值。

具体的,在步骤S106之前还包括:当安全芯片验证通过后,终端将启动其他硬件,如一些输入设备、输出设备等。

其中,Hash(散列)就是把任意长度的输入(又叫做预映射pre-image),通过散列算法,变换成固定长度的输出,该输出就是Hash值(散列值)。

在一个实施例中,系统为嵌入式操作系统,系统文件包括系统底层文件和可执行文件,其中操作系统的底层文件包括BootLoader和Kernel(操作系统内核)。

步骤S108:将待加载文件的Hash值送入安全芯片中以使安全芯片将待加载文件的Hash值与安全芯片预存的安全测量值进行匹配。

具体的,安全芯片中预存有操作系统所包含的文件的安全测量值。由于安全芯片为验证过的可信性的硬件信任根,加之,安全芯片对存入的数据进行高可靠性的加密处理,破解安全芯片获得存储的数据或者修改数据非常困难。因此,该安全芯片中预存的数据也是可信任的,使用已经验证过的安全芯片对操作系统的文件进行安全认证,安全认证强度更高。

步骤S110:获取安全芯片得到的匹配结果,当匹配结果为待加载文件的Hash值与安全芯片中安全测量值匹配时,加载待加载文件,直至完成操作系统的所有文件的加载,系统启动完成。

具体的,当待加载文件的Hash值与安全芯片中对应该待加载文件的安全测量值一致时,在进行待加载文件的加载。

本实施例中,使用安全芯片中存储的数据对操作系统待加载文件进行验证,有效确保了操作系统安全认证的可靠性。

本实施例中,通过只读存储器与安全芯片密钥信息的匹配,可验证安全芯片的是否为授权的芯片,在安全芯片可靠的基础上进行其他硬件的加载以及操作系统的加载认证,实现了由硬件到操作系统的上级度量认证下级的启动方式,另外通过验证后的安全芯片存储操作系统的验证数据,进一步确保了操作系统安全认证的可靠性,进而确保了整个终端硬件与系统软件的安全性。

在一个实施例中,操作系统为嵌入式操作系统,操作系统的待加载文件包括操作系统的底层文件和操作系统的可执行文件。终端启动方法包括对操作系统的底层文件BootLoader和Kernel进行验证和对操作系统的可执行文件进行验证。

具体的,对操作系统的底层文件BootLoader和Kernel的加载方式为:

首先,计算底层文件BootLoader的Hash值。

这里为,通过散列函数计算BootLoader的Hash值。

将该BootLoader的Hash值与安全芯片中BootLoader对应的安全测量值进行对比,如果相同,则验证通过,对系统文件BootLoader进行加载。其中,这里的安全芯片中BootLoader对应的安全测量值是对认定的可信任的BootLoader计算的标准的BootLoader的Hash值,将该标准的BootLoader的Hash值与待加载的BootLoader的Hash值进行匹配,即可判断出待加载的BootLoader的Hash值是否完整,是否被修改,其中,其中标准的标准的BootLoader为可信任的、完整的、未被更改的BootLoader。

底层文件BootLoader验证后,进行底层文件Kernel的验证,具体的验证方法与BootLoader相同,即计算底层文件Kernel的Hash值,将该Kernel的Hash值与安全芯片中Kernel对应的安全测量值进行对比,如果相同,则验证通过,对系统文件Kernel进行加载。

底层文件验证完成后逐一对可执行文件进行验证,具体的验证方法与BootLoader和Kernel相同,即计算待加载可执行文件的Hash值,将该待加载可执行文件的Hash值与安全芯片中与待加载的可执行文件对应的安全测量值进行对比,如果相同,则验证通过,加载该待加载可执行文件。

在一个实施例中,系统文件的安全测量值包括系统文件签名值,其中,系统文件的签名值是指系统认证私钥对各个标准的待加载文件的Hash值预先计算的签名值。在另一个实施例中,上述的系统认证私钥为安全芯片的私钥,相应的系统认证公钥为安全芯片公钥。

对系统文件的验证,包括系统底层文件和可执行文件的验证还可以采用以下方法:

获取系统认证公钥,判断系统认证公钥和计算的待加载文件Hash值是否与待加载文件的签名值对应;若是,则确认待加载文件Hash值与安全芯片中存储的安全测量值匹配,执行加载待加载文件的步骤。

具体的,使用系统认证公钥解密待加载文件对应的签名值,得到签名值中的标准文件Hash值,将该标准文件Hash值与计算的待加载文件Hash值进行对比,如果相同,则说明该待加载文件与标准文件相同,没有被修改,可进行该待加载文件的加载,并对下一个待加载文件进行验证,直至所有系统文件加载完成,操作系统启动完成,其中,标准文件为可信任的、完整的、未被更改的系统文件。

在一个实施例中,获取系统认证公钥,判断系统认证公钥和计算的待加载文件Hash值是否与待加载文件的签名值对应还可以为:将系统认证公钥、计算的待加载文件Hash值和签名值中的第一分量作为计算算法的参数参与计算,得到计算结果,将计算结果与签名值中的第二分量进行对比,如果两者一致,则说明该待加载文件与标准文件相同,没有被修改,可进行该待加载文件的加载。本实施例中,安全测量值为经过安全芯片密钥加密的签名值,进一步加强了安全测量值的安全性。

在另一个实施例中,由于操作系统的可执行文件数量较多,如果将可执行文件的安全测量值均存储在安全芯片中,将会造成芯片的访问压力过大。因此,采用如下方法对操作系统的可执行文件进行安全验证,如图2所示:

将可执行文件的安全测量值存储在终端的存储器中,其中,这里的安全测量文件为可执行文件的签名值,其中,可执行文件的签名值是值系统认证私钥对标准的可执行文件Hash值的签名值。在另一个实施例中,上述的系统认证私钥为安全芯片的私钥,相应的系统认证公钥为安全芯片公钥。

步骤S202:获取待加载可执行文件,计算获取的可执行文件的Hash值。

步骤S204:获取安全芯片公钥以及获取存储器中预存的与待加载可执行文件对应的签名值。

步骤S206:使用安全芯片公钥解密获取的签名值,得到签名值中的标准的可执行文件的Hash值,将该标准的可执行文件的Hash值与计算的待加载可执行文件Hash值进行对比,若相同,则该待加载可执行文件与标准的可执行文件相同,没有被修改,验证通过后,加载该待加载可执行文件,并对下一个待加载可执行文件进行验证,直至所有可执行文件加载完成,操作系统启动完成。其中,标准的可执行文件为可信任的、完整的、未被更改的可执行文件。

步骤S206的验证过程同样也可以采用签名值的第一分量和第二分量的方式进行验证。

本实施例中,将可执行文件的安全测量值存储在存储器,可有效缓解安全芯片的存储压力和被访问压力。由于安全测量值为存储在存储器中,为确保安全测量值不被修改,采用了安全芯片密钥加密的方式,将可执行文件Hash值进行安全芯片私钥的加密处理,由于该系统私钥不能被他人所获取,没有私钥信息将无法生成签名,有效防止了安全测量值的被恶意修改。

在一个实施例中,如图3所示,判断密钥信息是否与只读存储器的验证信息匹配;若是,进行操作系统启动进程的步骤,包括:

步骤S302:获取安全芯片中预存的安全芯片签名值和特征量数据,其中,安全芯片签名值为硬件认证私钥对特征量数据的签名值。

步骤S304:获取只读存储器中的硬件认证公钥。

步骤S306:判断硬件认证公钥和特征量数据是否与安全芯片签名值对应;若是,则只读存储器和安全芯片为授权的终端硬件,执行操作系统启动进程。

具体的,安全芯片预先设定一特征量数据,使用硬件认证私钥对该特征量数据进行签名得到安全芯片的签名值。将硬件认证公钥存储在ROM中。

对安全芯片进行验证时,获取待验证的安全芯片中存储的安全芯片签名值和安全芯片的特征量数据,使用读取的ROM中的硬件验证公钥加密该安全芯片的签名值,获取签名值对应的特征量数据,将该特征量数据与安全芯片单独存储的特征量数据进行对比,如果匹配,则安全芯片为可信任安全芯片。

本实施例中,对安全芯片中的特征量数据进行私钥的签名处理,该签名的私钥不能被他人获知,即使只读存储器中的验证信息(硬件认证公钥)被盗用,由于盗用者不能得到签名私钥,进而不能对安全芯片中的签名进行仿造,进一步加强了安全芯片验证强度,验证后的安全芯片的可信度进一步提高。

在一个实施例中,终端启动方法还包括:系统启动后对待加载系统应用程序与待安装的第三方应用程序的安全认证。

具体的,包括第三方应用程序安装前对应用的安装包进行安全测量以及对系统应用程序和已经通过安全测量的第三方应用程序的加载安装。

对第三方应用的安装包进行安全测量的方法包括:

事先生成应用认证私钥对发布应用的第三方公钥的签名值或者签名文件,将该签名值或者签名文件存储在下载的应用的打包文件内。在安装APP之前,终端首先读取签名值或者签名文件,并使用应用认证公钥验证该下载的打包文件中的发布方公钥是否签名中的公钥一致,如果一致,则认为是授权发布程序,系统可正常安装。对于第三方应用和系统应用的安装与操作系统的安装方式相同,具体参照操作系统安装方法。

本实施例中,对发布方的公钥进行的签名验证,防止了通过修改授权发布方的密钥信息,非授权应用也能通过验证。

在一个实施例中,如图4所示,提供了一种终端启动装置,装置包括:

终端上电模块410,用于当检测到终端启动指令时,启动终端的只读存储器和安全芯片。

安全芯片安全认证模块420,用于获取安全芯片中的密钥信息,判断密钥信息是否与只读存储器的验证信息匹配,若是,执行操作系统启动进程。

系统文件Hash值计算模块430,用于计算操作系统的待加载文件的Hash值。

数据匹配模块440,用于将待加载文件的Hash值送入安全芯片中以使安全芯片将待加载文件的Hash值与安全芯片预存的安全测量值进行匹配。

系统启动模块450,用于获取安全芯片得到的匹配结果,当匹配结果为待加载文件的Hash值与安全芯片中安全测量值匹配时,加载待加载文件,直至完成操作系统的所有文件的加载,系统启动完成。

在一个实施例中,安全芯片安全认证模块420包括:

安全芯片数据获取模块510,用于获取安全芯片中预存的安全芯片签名值和特征量数据,其中,安全芯片签名值为硬件认证私钥对特征量数据的签名值。

只读存储器数据获取模块520,用于获取只读存储器中的硬件认证公钥。

安全认证模块530,用于判断硬件认证公钥和特征量数据是否与安全芯片签名值对应;若是,则只读存储器和安全芯片为授权的终端硬件,执行进行操作系统启动进程。

在一个实施例中,操作系统的待加载文件包括操作系统的底层文件和操作系统的可执行文件。

在一个实施例中,安全测量值包括操作系统的文件签名值,其中,文件签名值是指系统认证私钥对操作系统各个标准文件的Hash值预先计算的签名值。

系统启动模块450还用于获取系统认证公钥,判断系统认证公钥和计算的待加载文件的Hash值是否与签名值对应;

若是,则执行加载待加载文件的步骤。

在一个实施例中,当操作系统的系统文件加载完成后,方法还包括:

应用认证模块610,用于对待加载的系统应用和第三方应用进行安全认证。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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