计算机启动方法与流程

文档序号:21000199发布日期:2020-06-05 22:36阅读:171来源:国知局
计算机启动方法与流程

本发明涉及计算机安全技术领域,特别涉及一种计算机启动方法。



背景技术:

计算机启动安全对整个计算机系统的安全至关重要,是系统其它安全机制起作用的基础。传统的计算机启动方式中,中央处理器(cpu,centralprocessingunit)没有对启动程序代码以及用户数据进行验签,黑客等攻击者可以通过篡改程序代码来夺取cpu的执行权限,加载恶意程序、获取用户数据,威胁计算机系统安全。



技术实现要素:

本发明提供了一种计算机启动方法,其目的是为了解决计算机在启动过程中计算机系统的安全性低的问题。

为了达到上述目的,本发明的实施例提供了一种计算机启动方法,计算机的cpu内设有可信根,所述计算机启动方法包括:

在所述计算机加电后,执行所述可信根的程序代码;

所述可信根对所述计算机的基础固件进行验签;

当所述可信根对所述基础固件验签成功时,执行所述基础固件的当前程序代码,使所述基础固件完成对所述cpu的硬件的初始化;

所述基础固件对所述计算机的第三方固件进行验签;

当所述基础固件对所述第三方固件验签成功时,执行所述第三方固件的当前程序代码,使所述第三方固件加载所述计算机的操作系统。

其中,所述可信根内存储有用于访问所述基础固件的密钥证书的第一公钥;

所述可信根对所述计算机的基础固件进行验签的步骤,包括:

所述可信根利用所述第一公钥访问所述基础固件的密钥证书,从所述基础固件的密钥证书中获得用于访问所述基础固件的内容证书的第二公钥;

所述可信根利用所述第二公钥访问所述基础固件的内容证书,从所述基础固件的内容证书中获得第一哈希值;所述第一哈希值是使用hash算法对所述基础固件的原始程序代码、原始用户数据以及所述基础固件的容量大小进行计算得到的;

所述可信根根据所述第一哈希值,对所述计算机的基础固件进行验签。

其中,所述可信根根据所述第一哈希值,对所述计算机的基础固件进行验签的步骤,包括:

所述可信根使用hash算法,对所述基础固件的当前程序代码、当前用户数据以及所述基础固件的容量大小进行计算,得到第二哈希值;

所述可信根对所述第一哈希值和所述第二哈希值进行比对;

当所述第一哈希值和所述第二哈希值相同时,所述可信根对所述基础固件验签成功;

当所述第一哈希值和所述第二哈希值不相同时,所述可信根对所述基础固件验签失败。

其中,在所述可信根对所述基础固件验签失败的步骤之后,所述计算机启动方法还包括:

显示一用于提示所述可信根对所述基础固件验签失败的报错信息。

其中,所述基础固件内存储有用于访问所述第三方固件的密钥证书的第三公钥;

所述基础固件对所述计算机的第三方固件进行验签的步骤,包括:

所述基础固件利用所述第三公钥访问所述第三方固件的密钥证书,从所述第三方固件的密钥证书中获得用于访问所述第三方固件的内容证书的第四公钥;

所述基础固件利用所述第四公钥访问所述第三方固件的内容证书,从所述第三方固件的内容证书中获得第三哈希值;所述第三哈希值是使用hash算法对所述第三方固件的原始程序代码、原始用户数据以及所述第三方固件的容量大小进行计算得到的;

所述基础固件根据所述第三哈希值,对所述计算机的第三方固件进行验签。

其中,所述基础固件根据所述第三哈希值,对所述计算机的第三方固件进行验签的步骤,包括:

所述基础固件使用hash算法,对所述第三方固件的当前程序代码、当前用户数据以及所述第三方固件的容量大小进行计算,得到第四哈希值;

所述基础固件对所述第三哈希值和所述第四哈希值进行比对;

当所述第三哈希值和所述第四哈希值相同时,所述基础固件对所述第三方固件验签成功;

当所述第三哈希值和所述第四哈希值不相同时,所述基础固件对所述第三方固件验签失败。

其中,在所述基础固件对所述第三方固件验签失败的步骤之后,所述计算机启动方法还包括:

显示一用于提示所述基础固件对所述第三方固件验签失败的报错信息。

其中,所述基础固件位于所述计算机的片外非易失性存储介质上。

本发明的上述方案至少有如下的有益效果:

在本发明的实施例中,通过在计算机的cpu内设置无法被篡改、无需验证、确保可信的可信根,使得在计算机加电后,执行该可信根的程序代码,通过该可信根对计算机的基础固件进行验签,并在基础固件验签成功时,确定基础固件的程序代码和用户数据的来源可靠,没被篡改,执行该基础固件的当前程序代码,使该基础固件完成对cpu的硬件的初始化,然后通过该基础固件对计算机的第三方固件进行验签,并在第三方固件验签成功时,确定该第三方固件的程序代码和用户数据的来源可靠,没被篡改,执行该第三方固件的当前程序代码,使第三方固件加载计算机的操作系统,完成计算机的启动。其中由于在计算机的整个启动过程中,只有当可信的可信根确认基础固件可信、可信的基础固件确认第三方固件可信后,才能完成计算机的启动,从而避免在基础固件(或者第三方固件)的程序代码、用户数据被黑客等攻击者篡改时启动计算机,增强计算机系统的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例的计算机启动方法的流程图;

图2是本发明实施例的图1中步骤12的具体实现方式的流程图;

图3是本发明实施例的图1中步骤14的具体实现方式的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

本发明的实施例提供了一种计算机启动方法,其中,计算机的cpu内设有可信根,该可信根是一个不可篡改、无需验证、确保可信的初始基础启动模块。具体的,如图1所示,上述计算机启动方法包括如下步骤:

步骤11,在所述计算机加电后,执行所述可信根的程序代码。

其中,在本发明的实施例中,上述可信根保存在计算机的cpu芯片内,是无法被篡改的,在计算机加电后,执行该可信根的程序代码,以便该可信根对计算机的基础固件进行验签。其中,该基础固件可位于所述计算机的片外非易失性存储介质上,以便可信根对其进行验签。

步骤12,所述可信根对所述计算机的基础固件进行验签。

其中,在本发明的实施例中,为便于可信根对基础固件进行验签,上述可信根内存储有用于访问所述基础固件的密钥证书的第一公钥。需要说明的是,基础固件具有密钥证书和内容证书,密钥证书中存储有用于访问基础固件的内容证书的第二公钥,内容证书中存储有一第一哈希值,该第一哈希值是预先使用hash算法对所述基础固件的原始程序代码(即最初、确保未被篡改过的程序代码)、原始用户数据(即最初、确保未被篡改过的用户数据)以及所述基础固件的容量大小进行计算得到的。

作为一个优选的示例,上述基础固件的密钥证书和内容证书可通过基础固件自带的工具生成,具体可使用x509格式。

具体的,在本发明的实施例中,可信根可基于上述第一公钥、基础固件的密钥证书和内容证书完成对基础固件的验签,对基础固件的程序代码和用户数据的来源、完整性进行检查,确保在确定基础固件的程序代码和用户数据的来源可靠,没被篡改后,再启动基础固件,增强计算机系统的安全性。

步骤13,当所述可信根对所述基础固件验签成功时,执行所述基础固件的当前程序代码,使所述基础固件完成对所述cpu的硬件的初始化。

其中,在本发明的实施例中,当可信根对基础固件验签成功,即确认基础固件可信后,可启动该基础固件,执行该基础固件的当前程序代码(即在当前时刻基础固件的程序代码),使所述基础固件完成对计算机cpu的硬件(即基本硬件)的初始化。

步骤14,所述基础固件对所述计算机的第三方固件进行验签。

其中,上述第三方固件可以为用于加载计算机的操作系统的程序,主要包括统一可扩展固件接口(uefi,unifiedextensiblefirmwareinterface)、uboot(uboot是一个主要用于嵌入式系统的引导加载程序)等程序。在本发明的实施例中,当基础固件启动后,可通过基础固件对计算机的第三方固件进行验签。为便于基础固件对第三方固件进行验签,该基础固件内存储有用于访问所述第三方固件的密钥证书的第三公钥。需要说明的是,第三方固件具有密钥证书和内容证书,密钥证书中存储有用于访问第三方固件的内容证书的第四公钥,内容证书中存储有一第三哈希值,该第三哈希值是预先使用hash算法对第三方固件的原始程序代码(即最初、确保未被篡改过的程序代码)、原始用户数据(即最初、确保未被篡改过的用户数据)以及所述第三方固件的容量大小进行计算得到的。

作为一个优选的示例,上述第三方固件的密钥证书和内容证书可通过目前通用的证书生成工具生成。

具体的,在本发明的实施例中,基础固件可基于上述第三公钥、第三方固件的密钥证书和内容证书完成对第三方固件的验签,对第三方固件的程序代码和用户数据的来源、完整性进行检查,确保在确定第三方固件的程序代码和用户数据的来源可靠,没被篡改后,再启动第三方固件,增强计算机系统的安全性。

步骤15,当所述基础固件对所述第三方固件验签成功时,执行所述第三方固件的当前程序代码,使所述第三方固件加载所述计算机的操作系统。

其中,在本发明的实施例中,当基础固件对第三方固件验签成功,即确认第三方固件可信后,可启动该第三方固件,执行该第三方固件的当前程序代码(即在当前时刻第三方固件的程序代码),使第三方固件加载所述计算机的操作系统,完成计算机的启动。

需要说明的是,在本发明的实施例中,在计算机的整个启动过程中,形成了一个可信链。该可信链指的是由上一级可信模块(如可信根)对下一级启动流程引入的程序代码、用户数据进行验签,下一级的代码对引入的下下级程序代码和用户数据进行验签,依次类推,构成一个可信链。其中,上述可信根是整个可信链的基础,被可信根验签过的程序代码执行时,会对由其引入的程序代码和用户数据进行验签。以此类推,在整个启动过程中,各个模块必须对由其引入的程序代码和用户数据进行验签,从而完成可信链的传递,保证启动过程执行的所有程序代码都是可信的。如果引入的程序代码或用户数据没有验签通过(如可信根对基础固件验签失败、基础固件对第三方固件验签失败),则会报错,不会再执行之后的程序代码。

值得一提的是,在本发明的实施例中,由于在计算机的整个启动过程中,只有当可信的可信根确认基础固件可信、可信的基础固件确认第三方固件可信后,才能完成计算机的启动,从而避免在基础固件(或者第三方固件)的程序代码、用户数据被黑客等攻击者篡改时启动计算机,增强计算机系统的安全性。

需要说明的是,上述计算机启动方法适用于任何型号的计算平台。

接下来,结合相关附图对上述步骤12,所述可信根对所述计算机的基础固件进行验签的具体实现方式进行说明。

如图2所示,上述步骤12,所述可信根对所述计算机的基础固件进行验签的具体实现方式包括如下步骤:

步骤21,所述可信根利用所述第一公钥访问所述基础固件的密钥证书,从所述基础固件的密钥证书中获得用于访问所述基础固件的内容证书的第二公钥;

步骤22,所述可信根利用所述第二公钥访问所述基础固件的内容证书,从所述基础固件的内容证书中获得第一哈希值;

步骤23,所述可信根根据所述第一哈希值,对所述计算机的基础固件进行验签。

具体的,所述可信根可使用hash算法,对所述基础固件的当前程序代码、当前用户数据(即在当前时刻基础固件的用户数据)以及所述基础固件的容量大小进行计算,得到第二哈希值;然后通过所述可信根对所述第一哈希值和所述第二哈希值进行比对。其中,当所述第一哈希值和所述第二哈希值相同时,所述可信根对所述基础固件验签成功;而当所述第一哈希值和所述第二哈希值不相同时,所述可信根对所述基础固件验签失败。

需要说明的是,当可信根对所述基础固件验签失败时,上述计算机启动方法还包括如下步骤:显示一用于提示所述可信根对所述基础固件验签失败的报错信息,以提示用户计算机启动失败,应采取相关措施解决基础固件验签失败的问题,确保计算机能安全启动。

接下来,结合相关附图对上述步骤14,所述基础固件对所述计算机的第三方固件进行验签的具体实现方式进行说明。

如图3所示,上述步骤14,所述基础固件对所述计算机的第三方固件进行验签的具体实现方式包括如下步骤:

步骤31,所述基础固件利用所述第三公钥访问所述第三方固件的密钥证书,从所述第三方固件的密钥证书中获得用于访问所述第三方固件的内容证书的第四公钥;

步骤32,所述基础固件利用所述第四公钥访问所述第三方固件的内容证书,从所述第三方固件的内容证书中获得第三哈希值;

步骤33,所述基础固件根据所述第三哈希值,对所述计算机的第三方固件进行验签。

具体的,基础固件可使用hash算法,对所述第三方固件的当前程序代码、当前用户数据(即在当前时刻第三方固件的用户数据)以及所述第三方固件的容量大小进行计算,得到第四哈希值;然后通过该基础固件对所述第三哈希值和所述第四哈希值进行比对。其中,当所述第三哈希值和所述第四哈希值相同时,所述基础固件对所述第三方固件验签成功;而当所述第三哈希值和所述第四哈希值不相同时,所述基础固件对所述第三方固件验签失败。

需要说明的是,当基础固件对所述第三方固件验签失败时,上述计算机启动方法还包括如下步骤:显示一用于提示所述基础固件对所述第三方固件验签失败的报错信息,以提示用户计算机启动失败,应采取相关措施解决第三方固件验签失败的问题,确保计算机能安全启动。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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