本发明涉及信息安全技术,特别涉及一种基于tcm的系统启动方法及系统。
背景技术:
可信计算模块是一种硬件模块,广泛运用于信息安全领域,例如可信平台模块tpm(tpm,trustedplatformmodule)以及可信密码模块tcm(tcm,trustedcryptographymodule)。
例如使用tpm,是为了确保用户存储重要信息的设备的可信,如确定计算机以及服务器等不被非法的入侵者访问和攻击,可以提供一个可以信赖的计算环境。在设备中嵌入tpm芯片,就可以给设备建立起一种可信策略来进行信息的可信传输,保证设备的可信。
考虑到我国信息安全管理的国情,在一些存储有国家重大机密信息的设备中采用tpm芯片可能存在风险,因此我国以国家密码局自主加密算法研制了可信密码模块tcm。利用tcm芯片嵌入存储有重大机密信息的设备中,以保证设备的可信。可惜的是,现在还没有一种具体的利用tcm来进行设备系统可信启动的方法。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于tcm的系统启动方法及系统,以达到利用tcm来进行设备系统可信启动的目的。其具体方案如下:
一种基于tcm的系统启动方法,包括:
当获取到系统启动命令,则利用可信度量文件模板中的文件名信息调取相应的当前目标文件,得到待度量文件;
对所述待度量文件进行哈希运算,得到度量哈希值;
从tcm的与所述待度量文件对应的nv空间中,获取预先创建的可信基准哈希值;
判断所述度量哈希值与所述可信基准哈希值是否一致,如果是,则启动系统。
优选地,所述预先创建的可信基准哈希值的创建过程,包括:
在系统可信状态下对初始可信目标文件进行哈希运算,得到所述可信基准哈希值;
将所述可信基准哈希值存储至所述待度量文件相应的所述nv空间。
优选地,还包括:
将所述度量哈希值进行存储。
优选地,所述将所述度量哈希值进行存储的过程,包括:
将所述度量哈希值存储至所述tcm的pcr寄存器中。
优选地,还包括:
当所述度量哈希值与所述可信基准哈希值不一致,则提示输入特权启动码;
判断输入的特权启动码与预先设定特权启动码是否一致,如果是,则启动系统。
本发明还公开了一种基于tcm的系统启动系统,包括:
待度量文件获取模块,用于当获取到系统启动命令,则利用可信度量文件模板中的文件名信息调取相应的当前目标文件,得到待度量文件;
度量哈希值运算模块,用于对所述待度量文件进行哈希运算,得到度量哈希值;
可信基准哈希值获取模块,用于从tcm的与所述待度量文件对应的nv空间中,获取预先创建的可信基准哈希值;
哈希值判断模块,用于判断所述度量哈希值与所述可信基准哈希值是否一致,如果是,则启动系统。
优选地,还包括:
可信基准哈希值运算模块,用于对初始可信目标文件进行哈希运算,得到所述可信基准哈希值;
可信基准哈希值存储模块,用于将所述可信基准哈希值存储至所述待度量文件相应的所述nv空间。
优选地,还包括:
度量哈希值存储模块,用于将所述度量哈希值进行存储。
优选地,所述度量哈希值存储模块为pcr存储模块,用于将所述度量哈希值存储至所述tcm的pcr寄存器中。
优选地,还包括:
特权启动码输入模块,用于当所述度量哈希值与所述可信基准哈希值不一致,则提示输入特权启动码;
特权启动码判断模块,用于判断输入的特权启动码与预先设定特权启动码是否一致,如果是,则启动系统。
本发明中,基于tcm的系统启动方法包括:当获取到系统启动命令,则利用可信度量文件模板中的文件名信息调取相应的当前目标文件,得到待度量文件;对待度量文件进行哈希运算,得到度量哈希值;从tcm的与待度量文件对应的nv空间中,获取预先创建的可信基准哈希值;判断度量哈希值与可信基准哈希值是否一致,如果是,则启动系统。可见,本发明在系统启动时,获取需要进行度量的待度量文件,为了检验系统中待度量文件有没有被篡改,是否使系统的使用存在不可信的风险,本发明对待度量文件进行哈希运算获得其度量哈希值,然后与待度量文件相应的存储在tcm的nv空间的可信基准哈希值进行一致性比较,如果一致则说明待度量文件没有被篡改,系统是可信的,从而达到可信启动系统的目的。总的来说,利用本发明方法可以达到可信启动系统的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种基于tcm的系统启动方法流程图;
图2为本发明实施例公开的一种具体的基于tcm的系统启动方法流程图;
图3为本发明实施例公开的另一种具体的基于tcm的系统启动方法流程图;
图4为本发明实施例还公开的一种基于tcm的系统启动系统结构示意图;
图5为本发明实施例还公开的一种具体的基于tcm的系统启动系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于tcm的系统启动方法,参见图1所示,该方法包括:
步骤s11:当获取到系统启动命令,则利用可信度量文件模板中的文件名信息调取相应的当前目标文件,得到待度量文件。
本发明实施例中,系统指的是终端设备上的系统,例如,可以是存储有国家、企业以及个人重要信息的云存储设备上的系统,也可以是个人或私有的本地存储设备的系统,以及计算机设备系统。搭载本发明系统启动方法的设备都以tcm作为物理可信根,也就是在设备中嵌入tcm芯片作为设备的可信安全芯片,以便利用tcm对设备进行各种可信安全操作以及可信安全策略的部署。
可信度量文件模板内主要存储了系统启动相关的关键文件的文件名,例如内核文件的文件名等,通过这些文件名可以调取系统中的关键文件。目标文件为系统中存储的文件,可以是系统中的关键文件,被非法篡改后将会严重影响系统的安全性,导致系统的不可信,因此在系统启动的过程中,为了保证系统的可信,需要对这些关键的文件进行度量。在系统启动过程中,可以接管系统的启动权限,利用启动权限调取需要进行度量的目标文件,也就是待度量文件,例如,可以在获取启动权限后,获取系统中的文件模板,该文件模板中包括有系统中文件的文件名,通过这些文件名就可以找到并调取待度量文件。
步骤s12:对待度量文件进行哈希运算,得到度量哈希值。
本发明实施例中,为了通过度量的方式判断调取得到的待度量文件有没有被篡改,需要判断待度量文件与该系统可信状态下相应的目标文件是否一致。考虑到需要快速可信启动系统,减少文件详细比较所带来时间的消耗,可以对待度量文件进行哈希运算,得到待度量文件的哈希值,利用哈希值作为比较的标准。采用哈希值是否一致的标准进行一致性的判断,可以有效提高可行启动系统的速度。
步骤s13:从tcm的与待度量文件对应的nv空间中,获取预先创建的可信基准哈希值。
本发明实施例中tcm中的nv空间(nv,non-volatilestorage,非易失性存储)是一个安全空间,在nv空间中存储的数据都由国家密码局自主加密算法加密存储,因此存储在nv空间的数据是安全可靠不会被篡改的。但是nv空间的容量比较小,无法存储大字节的文件,因此可以采用哈希值判断的标准,在nv空间中存储系统可信状态下目标文件的可信基准哈希值,该目标文件对应的是待度量文件。
tcm的nv空间是有多个的,可以分别存储不同待度量文件对应的可信基准哈希值,因此在获取不同待度量文件对应的可信基准哈希值时,可以采用检索的方法,在tcm的多个nv空间中找到与待度量文件对应的nv空间,获取对应的可信基准哈希值。
步骤s14:判断度量哈希值与可信基准哈希值是否一致,如果是,则启动系统。
本发明实施例中,度量哈希值与可信基准哈希值都是具体的数值,为二进制的数值,因此在判断度量哈希值与可信基准哈希值是否一致时,可以采用算法来实现,例如可以采用二进制的减法,若度量哈希值与可信基准哈希值的差为零,则说明待度量文件没有被篡改,该系统可信,则可以启动系统。如果判断结果为度量哈希值与可信基准哈希值不一致时,系统中待度量文件已经被篡改,系统变得不可信,这时可以向开启系统的用户发出警告提示,提示该系统现在处于不可信状态。
可见,本发明在系统启动时,获取需要进行度量的待度量文件,为了检验系统中待度量文件有没有被篡改,是否使系统的使用存在不可信的风险,本发明对待度量文件进行哈希运算获得其度量哈希值,然后与待度量文件相应的存储在tcm的nv空间的可信基准哈希值进行一致性比较,如果一致则说明待度量文件没有被篡改,系统是可信的,从而达到可信启动系统的目的。总的来说,利用本发明方法可以达到可信启动系统的目的。
本发明实施例公开了一种具体的基于tcm的系统启动方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
预先创建的可信基准哈希值的创建过程,参见图2,包括:
步骤s21:在系统可信状态下对初始可信目标文件进行哈希运算,得到可信基准哈希值。
本发明实施例中,可信初始目标文件进行哈希运算的前提是该系统是处于可信状态并开启运作,也即,当前系统可以处于用户已经确定为可信以及安全的状态下。初始可信目标文件可以是系统中的关键文件,被非法篡改后将会严重影响系统的安全性,导致系统的不可信。
因此在系统的下次启动的过程中,为了保证系统的可信,在系统可信状态下需要对这些关键的初始可信目标文件进行哈希运算,得到可信基准哈希值,利用该可信基准哈希值提供标准来判断下次系统启动中的关键文件有没有被篡改
对于初始可信目标文件的调取,例如,可以获取系统中的文件模板,该文件模板中包括有系统中文件的文件名,通过这些文件名就可以找到并调取初始可信目标文件,然后对其进行哈希运算获取可信基准哈希值。
步骤s22:将可信基准哈希值存储至待度量文件相应的nv空间。
tcm的nv空间是有多个的,在对可信基准哈希值进行存储时,可以分别存储不同初始可信目标文件的可信基准哈希值,以便在系统下次启动时,获取不同待度量文件对应的可信基准哈希值时,可以采用检索的方法,在tcm的多个nv空间中找到与待度量文件对应的nv空间,获取对应的可信基准哈希值。
本发明实施例公开了另一种具体的基于tcm的系统启动方法,参见图3所示,相对于上述实施例,本实施例对技术方案作了进一步的增加。具体的:
步骤s31:当获取到系统启动命令,则利用可信度量文件模板中的文件名信息调取相应的当前目标文件,得到待度量文件;
步骤s32:对待度量文件进行哈希运算,得到度量哈希值;
步骤s33:从tcm的与待度量文件对应的nv空间中,获取预先创建的可信基准哈希值;
步骤s34:判断度量哈希值与可信基准哈希值是否一致,如果是,则启动系统。
关于上述各步骤更加详细的原理可以参考前述实施例中公开的相应内容,在此不再赘述。
本实施例中,还可以进一步包括:将度量哈希值进行存储。
本申请实施例中,在对度量文件进行哈希运算的到度量哈希值后,还可以将度量哈希值进行存储,以便后续如果系统为不可信状态时,可以调取哈希值判断后不一致的度量哈希值,利用不一致的度量哈希值来对系统进行分析,例如,通过不一致的度量哈希值分析度量文件中被篡改的部分,分析其篡改的严重性,从而可以得出一个系统不可信的程度。
上述步骤中,将度量哈希值进行存储的过程,具体包括:将度量哈希值存储至tcm的pcr寄存器中。
上述步骤中,对度量哈希值进行存储,可以存储至tcm的pcr(pcr,platformconfigurationregister,平台配置寄存器)寄存器中。在tcm的pcr寄存器数据,可以保证数据的可信度,因此在分析不可信系统时,获取pcr中的度量哈希值进行分析,使分析结果可以准确以及可信,得到可信的分析报告。
步骤s35:当度量哈希值与可信基准哈希值不一致,则提示输入特权启动码。
本发明实施例中,当判断结果为度量哈希值与可信基准哈希值不一致时,系统中待度量文件已经被篡改,系统变得不可信时,可以向开启系统的用户发出警告提示,提示该系统现在处于不可信状态,还可以在发出经过提示后提示用户输入特权启动码,以便启动当前系统。特权启动码的输入可以是具体的数字,例如输入1234。
步骤s36:判断输入的特权启动码与预先设定特权启动码是否一致,如果是,则启动系统。
本发明实施例中,在启动系统中通过上述步骤判断当前系统为不可信系统,修复人员可以通过输入正确的预先设定的特权启动码进入系统中,以便对不可信的系统进行修复,将篡改的文件修复正确,从而使系统重新可信运作。预先设定特权启动码可以是用户在确定系统可信的状态下设置的一个密码,是一个具体的密码,例如在可信状态下,可以设置特权启动码为1234。
本发明实施例还公开了一种基于tcm的系统启动系统,参见图4所示,该系统包括:
待度量文件获取模块11,用于当获取到系统启动命令,则利用可信度量文件模板中的文件名信息调取相应的当前目标文件,得到待度量文件;
度量哈希值运算模块12,用于对待度量文件进行哈希运算,得到度量哈希值;
可信基准哈希值获取模块13,用于从tcm的与待度量文件对应的nv空间中,获取预先创建的可信基准哈希值;
哈希值判断模块14,用于判断度量哈希值与可信基准哈希值是否一致,如果是,则启动系统。
可见,本发明在系统启动时,获取需要进行度量的待度量文件,为了检验系统中待度量文件有没有被篡改,是否使系统的使用存在不可信的风险,本发明对待度量文件进行哈希运算获得其度量哈希值,然后与待度量文件相应的存储在tcm的nv空间的可信基准哈希值进行一致性比较,如果一致则说明待度量文件没有被篡改,系统是可信的,从而达到可信启动系统的目的。总的来说,利用本发明方法可以达到可信启动系统的目的。
关于上述各个模块和各个单元更加详细的工作过程可以参考前述实施例中公开的相应内容,在此不再赘述。
本发明实施例还公开了一种具体的基于tcm的系统启动系统,参见图5所示,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
还包括:
可信基准哈希值运算模块15,用于对初始可信目标文件进行哈希运算,得到可信基准哈希值;
可信基准哈希值存储模块16,用于将可信基准哈希值存储至待度量文件相应的nv空间。
度量哈希值存储模块,用于将度量哈希值进行存储;
其中,度量哈希值存储模块为pcr存储模块17,用于将度量哈希值存储至tcm的pcr寄存器中。
特权启动码输入模块18,用于当度量哈希值与可信基准哈希值不一致,则提示输入特权启动码;
特权启动码判断模块19,用于判断输入的特权启动码与预先设定特权启动码是否一致,如果是,则启动系统。
关于上述各个模块和各个单元更加详细的工作过程可以参考前述实施例中公开的相应内容,在此不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种基于tcm的系统启动方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。