一种信任链的构建方法及系统与流程

文档序号:13137503阅读:1002来源:国知局
一种信任链的构建方法及系统与流程

本发明实施例涉及可信计算技术领域,特别是涉及一种信任链的构建方法及系统。



背景技术:

可信计算(trustedcomputing)是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性。可信计算通过在计算系统中集成专用硬件模块建立信任源点,即可信根,基于可信根建立可信传递机制,通过分级的度量、验证、扩展流程,实现系统运行环境的可信。

在计算机系统中,信任链技术是建立在密码机制基础上的,从信任根开始到硬件平台、操作系统、再到应用,通过密码算法进行一级度量认证一级,一级信任一级,把这种信任扩展到整个计算机系统,从而确保整个计算机系统的可信。

现有技术中,在信任链的构建过程中是采用tcg(trustedcomputinggroup,可信计算组织)规范定义的信任链结构把cpu(centralprocessingunit,中央处理器)作为crtm(corerootoftrustformeasurement,核心度量根),在系统上电时,由crtm度量biosbootblock,然后基于bios(bisicinputoutputsystem,基本输入输出系统)和tpm(trustedplatformmodule,可信平台模块)完成对系统平台各个模块的度量。

bios作为计算机系统中的基础固件,其安全可信直接影响整个计算机系统的安全度。由于现有技术中在构建信任链时,将bios作为信任的起点,且tcg规范的安全性较低,所以使整个信任链的安全性降低,从而使整个系统的安全性降低。

因此,如何提供一种解决上述技术问题的信任链的构建方法及系统成为本领域的技术人员需要解决的问题。



技术实现要素:

本发明实施例的目的是提供一种信任链的构建方法及系统,在使用过程中提高了信任链的安全性,从而提高了系统的安全性。

为解决上述技术问题,本发明实施例提供了一种信任链的构建方法,包括:

s11:在服务器上电之前启动bmc模块和tcm模块;

s12:采用tcm模块对所述bmc模块中的bmc固件进行度量,得到第一度量结果,并依据所述第一度量结果判断所述bmc固件是否未被篡改,如果是,则进入s13;

s13:采用所述bmc固件对biosbootblock进行度量,得到第二度量结果,并依据所述第二度量结果判断所述biosbootblock是否未被篡改,如果是,则进入s14;

s14:控制电源控制模块为所述服务器上电,并采用bios建立后续的信任链。

可选的,所述bmc固件包括引导程序、linux系统的内核、可信代理程序及bmc应用程序;

所述采用tcm模块对所述bmc模块中的bmc固件进行度量,得到度量结果,并依据所述度量结果判断所述bmc固件是否未被篡改,如果是,则进入s13的过程为:

s121:采用tcm模块对所述引导程序进行度量,得到第一度量值,并依据所述第一度量值判断所述引导程序是否未被篡改,如果是,则进入s122;

s122:采用所述引导程序对linux系统的内核和可信代理程序进行度量,分别得到第二度量值和第三度量值,并依据所述第二度量值和所述第三度量值判断所述linux系统的内核和所述可信代理程序是否均未被篡改,如果是,则进入s123;

s123:采用所述可信代理程序对biosbootblock和bmc应用程序进行度量,分别得到第四度量值和第五度量值,并依据所述第四度量值和所述第五度量值判断所述biosbootblock和所述bmc应用程序是否均未被篡改,如果是,则进入s13。

可选的,所述采用tcm模块对所述引导程序进行度量,得到第一度量值的过程为:

采用tcm模块并依据所述tcm模块中的sm3度量算法对所述引导程序进行度量,得到第一度量值。

可选的,所述依据所述第一度量值判断所述引导程序是否未被篡改的过程为:

从tcm模块的寄存器中获取预先存储的、与所述引导程序对应的第一标准值;

将所述第一度量值与所述第一标准值进行匹配,并判断所述第一度量值与所述第一标准值是否一致,如果是,则所述引导程度未被篡改。

可选的,所述采用bios建立后续的信任链的过程为:

s141:采用所述biosbootblock对所述bios的基本信息及biosmainblock进行度量,并当所述基本信息及所述biosmainblock均未被篡改时进入s142;

s142:采用所述biosmainblock对主板的扩展组件进行度量,并当所述主板的度量组件未被篡改时进入s143;

s143:采用所述biosmainblock对bootloader进行度量,并当所述bootloader未被篡改时进入s144;

s144:采用bootloadergrub对其配置文件进行度量,当所述配置文件未被篡改时,对需要加载的oskernel进行度量,并当所述oskernel未被篡改时,进入s115;

s145:通过所述oskernel控制操作系统开启。

可选的,所述主板的扩展组件包括主板的显卡、硬盘、网卡及pci-e卡。

为解决上述技术问题,本发明实施例提供了一种信任链的构建系统,包括:

启动模块,用于在服务器上电之前启动bmc模块和tcm模块;

度量模块,用于采用tcm模块对所述bmc模块中的bmc固件进行度量,得到第一度量结果;用于采用所述bmc固件对biosbootblock进行度量,得到第二度量结果;

判断模块,用于依据所述第一度量结果判断所述bmc固件是否未被篡改,如果是,则触发所述度量模块;用于依据所述第二度量结果判断所述biosbootblock是否未被篡改,如果是,则触发控制模块;

所述控制模块,用于控制电源控制模块为所述服务器上电,并采用bios建立后续的信任链。

可选的,所述bmc固件包括引导程序、linux系统的内核、可信代理程序及bmc应用程序;

所述度量模块包括第一度量单元、第二度量单元和第三度量单元;所述判断模块包括第一判断单元、第二判断单元和第三判断单元;

所述第一度量单元,用于采用tcm模块对所述引导程序(u-boot)进行度量,得到第一度量值;

所述第一判断单元,用于依据所述第一度量值判断所述引导程序是否未被篡改,如果是,则触发所述第二度量单元;

所述第二度量单元,用于采用所述引导程序对linux系统的内核和可信代理程序进行度量,得到第二度量值和第三度量值;

所述第二判断单元,用于依据所述第二度量值和所述第三度量值判断所述linux系统的内核或所述可信代理程序是否均未被篡改,如果是,则触发所述第三度量单元;

所述第三度量单元,用于采用所述可信代理程序对biosbootblock和bmc应用程序进行度量,分别得到第三度量值和第四度量值;

所述第三判断单元,用于依据所述第三度量值和所述第四度量值判断所述biosbootblock和所述bmc应用程序是否均未被篡改,如果是,则触发所述控制模块。

本发明实施例提供了一种信任链的构建方法及系统,包括在服务器上电之前启动bmc模块和tcm模块;采用tcm模块对bmc模块中的bmc固件进行度量,得到第一度量结果,并依据第一度量结果判断bmc固件是否未被篡改,如果bmc固件未被篡改,则采用bmc固件对biosbootblock进行度量,得到第二度量结果,并依据第二度量结果判断biosbootblock是否未被篡改,如果biosbootblock未被篡改,则控制电源控制模块为服务器上电,并采用bios建立后续的信任链。

本发明实施例中的tcm模块是基于我国在可信计算领域自主研发的可信密码模块,其安全性较高,并且在建立信任链的过程中bmc模块和tcm模块是在服务器上电之前启动的,并且通过tcm模块对bmc模块中的bmc固件进行度量,当bmc固件没有被篡改时,再采用bmc固件去度量biosbootblock,并且再确定biosbootblock没有被篡改后再控制电源控制模块为服务器上电,进一步增加了服务器的安全性,并且此时再采用bios建立后续的信任链。本发明实施例在信任链的建立过程中将bmc模块和tcm模块作为信任根的源点,将信任根进行了前移,降低了信任根遭遇攻击的风险,提高了信任链的安全性,从而提高了服务器的安全可信性。

附图说明

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

图1为本发明实施例提供的一种信任链的构建方法的流程示意图;

图2为本发明实施例提供的一种信任链的构建系统的结构示意图。

具体实施方式

本发明实施例提供了一种信任链的构建方法及系统,在使用过程中提高了信任链的安全性,从而提高了系统的安全性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明实施例提供的一种信任链的构建方法的流程示意图。

该方法包括:

s11:在服务器上电之前启动bmc模块和tcm模块;

s12:采用tcm模块对bmc模块中的bmc固件进行度量,得到第一度量结果,并依据第一度量结果判断bmc固件是否未被篡改,如果是,则进入s13;

s13:采用bmc固件对biosbootblock进行度量,得到第二度量结果,并依据第二度量结果判断biosbootblock是否未被篡改,如果是,则进入s14;

s14:控制电源控制模块为服务器上电,并采用bios建立后续的信任链。

需要说明的是,tcm(trustedcryptographymodule)模块是我国在可信计算领域自主研制的可信密码模块,tcm模块借鉴了国际可信计算组织的可信平台模块tpm的技术框架,但安全性和计算效率都比tpm有了较大的提高。将tcm模块作为系统平台的可信根,具备对称、非对称密码算法、密码杂凑算法、密钥生成与存储等功能。bmc(baseboardmanagementcontroller)模块为服务器主板监控管理控制器,作为系统平台的可信度量根,在服务器主板上电时首先进行bmc固件的可信引导。

本发明实施例中将bmc模块和tcm模块作为信任根的源点,在服务器上电启动过程中,bmc模块和tcm模块先于服务器启动,再通过tcm模块对bmc模块中的bmc固件进行度量、并确定bmc固件安全可信后,再由bmc固件对bios的完整性进行度量,当bios通过完整性验证之后服务器才上电启动,然后再由bios完成后续信任链的构建。

本发明实施例提供了一种信任链的构建方法,包括在服务器上电之前启动bmc模块和tcm模块;采用tcm模块对bmc模块中的bmc固件进行度量,得到第一度量结果,并依据第一度量结果判断bmc固件是否未被篡改,如果bmc固件未被篡改,则采用bmc固件对biosbootblock进行度量,得到第二度量结果,并依据第二度量结果判断biosbootblock是否未被篡改,如果biosbootblock未被篡改,则控制电源控制模块为服务器上电,并采用bios建立后续的信任链。

本发明实施例中的tcm模块是基于我国在可信计算领域自主研发的可信密码模块,其安全性较高,并且在建立信任链的过程中bmc模块和tcm模块是在服务器上电之前启动的,并且通过tcm模块对bmc模块中的bmc固件进行度量,当bmc固件没有被篡改时,再采用bmc固件去度量biosbootblock,并且再确定biosbootblock没有被篡改后再控制电源控制模块为服务器上电,进一步增加了服务器的安全性,并且此时再采用bios建立后续的信任链。本发明实施例在信任链的建立过程中将bmc模块和tcm模块作为信任根的源点,将信任根进行了前移,降低了信任根遭遇攻击的风险,提高了信任链的安全性,从而提高了服务器的安全可信性。

本发明实施例公开了一种信任链的构建方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:

进一步的,bmc固件包括引导程序、linux系统的内核、可信代理程序及bmc应用程序;

其中,引导程序即u-boot,该u-boot位于bmc模块的启动程序中,u-boot是bmc模块在上电启动时,第一段运行的代码;linux系统的内核即linuxkernel,是位于bmc模块中linux系统中的内核;可信代理程序用于对tcm模块进行调用,对biosbootblock和bmc应用程序进行度量;bmc应用程序也即bmcapps,即运行于bmc模块中的应用软件,如bmc管理软件等。

在上述s12中,采用tcm模块对bmc模块中的bmc固件进行度量,得到度量结果,并依据度量结果判断bmc固件是否未被篡改,如果是,则进入s13的过程,具体可以为:

s121:采用tcm模块对引导程序进行度量,得到第一度量值,并依据第一度量值判断引导程序是否未被篡改,如果是,则进入s122;

具体可以为采用tcm模块并依据tcm模块中的度量算法(例如sm3度量算法)对引导程序进行度量,得到第一度量值;

从tcm模块的寄存器(平台状态寄存器)中获取预先存储的、与引导程序对应的第一标准值;

将第一度量值与第一标准值进行匹配,并判断第一度量值与第一标准值是否一致,如果是,则引导程度未被篡改。如果引导程序被篡改,则暂停启动,如果引导程序没有被篡改,则将系统的控制权转移至该bmc模块中的引导程序上。

s122:采用引导程序对linux系统的内核和可信代理程序进行度量,分别得到第二度量值和第三度量值,并依据第二度量值和第三度量值判断linux系统的内核和可信代理程序是否均未被篡改,如果是,则进入s123;

具体的,在系统的控制权转移至该bmc模块中的引导程序之后,bmc的加载过程中由引导程序u-boot中的度量程序调用tcm模块中的度量算法对linux系统的内核和可信代理程序进行度量,并可以将得到的第二度量值和第三度量值扩展存储到tcm模块的平台状态寄存器pcr0中,具体还可以从平台状态寄存器中读取出预先存储的、分别与linux系统的内核和可信代理程序对应的第二标准值和第三标准值,并将第二度量值和第三度量值分别与第二标准值和第三标准值进行匹配,如果第二度量值和第三度量值分别与第二标准值和第三标准值一致,则说明linux系统的内核和可信代理程序均未被篡改,此时系统的控制权由引导程序转移至linuxkernel的可信代理程序上,如果linux系统的内核和可信代理程序中有一个被篡改,则停止启动。

另外,再实际应用中可以先对linux系统的内核进行度量,当linux系统的内核没有被篡改时,再对可信代理程序进行度量;或者可以先对可以先对可信代理程序进行度量,当可信代理程序没有被篡改时,再对linux系统的内核进行度量。当然,也可以同时对linux系统的内核和可信代理程序进行度量,对于在linux系统的内核和可信代理程序进行度量时的度量顺序本发明实施例不做特殊的限定,能实现本发明实施例的目的即可。

s123:采用可信代理程序对biosbootblock和bmc应用程序进行度量,分别得到第四度量值和第五度量值,并依据第四度量值和第五度量值判断biosbootblock和bmc应用程序是否均未被篡改,如果是,则进入s13。

需要说明的是,biosbootblock表示的是bios中的一段特定的区域,包含用于引导的最小指令集。

具体的,在系统的控制权由引导程序转移至linuxkernel的可信代理程序之后,位于linuxkernel中的可信代理程序可以通过读取biosbootblock的代码对biosbootblock进行度量,得到第四度量值,并将其扩展存储到tcm模块的平台状态寄存器pcr0中,具体还可以从平台状态寄存器中读取出预先存储的、与biosbootblock对应的第四标准值,当第四度量值与第四标准值一致时,则说明biosbootblock没有被篡改,此时再对bmc应用程序进行度量,并将得到的第五度量值与平台状态寄存器中预先存储的、与bmc应用程序的第五标准值进行匹配,若此时第五度量值与第五标准值一致,则说明bmc应用程序没有被篡改,此时将系统的控制权由可信代理程序转移至biosbootblock。当然,在对biosbootblock度量的过程中,若第四度量值与第四标准值不一致,则说明biosbootblock被篡改,则停止启动。

需要说明的是,在实际应用中还可以先对bmc应用程序进行度量,再对biosbootblock进行度量,或者同时对二者进行度量。本发明实施例中对biosbootblock和bmc应用程序的度量顺序不做特殊的限定,能实现本发明实施例的目的即可。

当系统的控制权由可信代理程序转移至biosbootblock之后,则具体可以有bmc模块下发指令至电源控制模块,电源控制模块依据该指令为服务器上电,并由bios建立后续的信任链。

则,在上述s14中,采用bios建立后续的信任链的过程,具体可以为:

s141:采用biosbootblock对bios的基本信息及biosmainblock进行度量,并当基本信息及biosmainblock均未被篡改时进入s142;

其中,biosmainblock为bios的主模块,基础信息包括地址信息等。采用biosbootblock对bios的基本信息及biosmainblock进行度量的过程同样为计算出相应的度量值,并将计算得到的各个度量值与相应的基准值进行匹配,进一步判断基本信息及biosmainblock是否均未被篡改,具体过程与上述判断方法类似,本申请在此不再赘述。当基本信息及biosmainblock均未被篡改时将系统的控制权转移至biosmainblock。s142:采用biosmainblock对主板的扩展组件进行度量,并当主板的度量组件未被篡改时进入s143;

s143:采用biosmainblock对bootloader进行度量,并当bootloader未被篡改时进入s144;

需要说明的是,当系统的控制权转移至biosmainblock后,由biosmainblock西安对主板的扩展组件(optionroms)进行度量,例如对主板的显卡、硬盘、网卡及pci-e卡等主板外设进行度量,其中,各个度量值可以扩展存储于tcm模块的寄存器pcr2中,并当主板的度量组件未被篡改时,再对bootloader进行度量,其中,bootloader为服务器操作系统的引导程序,即grub(grandunifiedbootloader,多重操作系统启动管理器)各个阶段的代码,与bootloader对应的度量值可以扩展存储至tcm模块的寄存器pcr5中,并当bootloader没有被篡改时,将系统的控制权转移至bootloadergrub上。

s144:采用bootloadergrub对其配置文件进行度量,当配置文件未被篡改时,对需要加载的oskernel进行度量,并当oskernel未被篡改时,进入s115;

s145:通过oskernel控制操作系统开启。

具体的,当bootloadergrub掌握控制权后,执行与操作系统相关的加载工作,并首先由bootloadergrub对其配置文件(grub.conf)进行度量,并将其度量值扩展存储至tcm模块的寄存器pcr5中,当配置文件未被篡改时,对需要加载的oskernel(operatingsystemkernel,服务器操作系统的内核)进行度量,以验证内核的完整性,并当oskernel未被篡改时,系统的控制权由bootloadergrub转移至oskernel,此时操作系统进行开启。

可选的,主板的扩展组件包括主板的显卡、硬盘、网卡及pci-e卡。

当然,主板的扩展组件不仅限于包括上述组件,还可以包括其他组件,具体的本发明实施例对此不作特殊的限定,能实现本发明实施例的目的即可。

相应的本发明实施例还公开了一种信任链的构建系统,具体请参照图2,图2为本发明实施例提供的一种信任链的构建系统的结构示意图。在上述实施例的基础上:

该系统包括:

启动模块1,用于在服务器上电之前启动bmc模块和tcm模块;

度量模块2,用于采用tcm模块对bmc模块中的bmc固件进行度量,得到第一度量结果;用于采用bmc固件对biosbootblock进行度量,得到第二度量结果;

判断模块3,用于依据第一度量结果判断bmc固件是否未被篡改,如果是,则触发度量模块2;用于依据第二度量结果判断biosbootblock是否未被篡改,如果是,则触发控制模块4;

控制模块4,用于控制电源控制模块为服务器上电,并采用bios建立后续的信任链。

可选的,bmc固件包括引导程序、linux系统的内核、可信代理程序及bmc应用程序;

度量模块2包括第一度量单元、第二度量单元和第三度量单元;判断模块3包括第一判断单元、第二判断单元和第三判断单元;

第一度量单元,用于采用tcm模块对引导程序(u-boot)进行度量,得到第一度量值;

第一判断单元,用于依据第一度量值判断引导程序是否未被篡改,如果是,则触发第二度量单元;

第二度量单元,用于采用引导程序对linux系统的内核和可信代理程序进行度量,得到第二度量值和第三度量值;

第二判断单元,用于依据第二度量值和第三度量值判断linux系统的内核或可信代理程序是否均未被篡改,如果是,则触发第三度量单元;

第三度量单元,用于采用可信代理程序对biosbootblock和bmc应用程序进行度量,分别得到第三度量值和第四度量值;

第三判断单元,用于依据第三度量值和第四度量值判断biosbootblock和bmc应用程序是否均未被篡改,如果是,则触发控制模块4。

需要说明的是,本发明实施例中的tcm模块是基于我国在可信计算领域自主研发的可信密码模块,其安全性较高,并且在建立信任链的过程中bmc模块和tcm模块是在服务器上电之前启动的,并且通过tcm模块对bmc模块中的bmc固件进行度量,当bmc固件没有被篡改时,再采用bmc固件去度量biosbootblock,并且再确定biosbootblock没有被篡改后再控制电源控制模块为服务器上电,进一步增加了服务器的安全性,并且此时再采用bios建立后续的信任链。本发明实施例在信任链的建立过程中将bmc模块和tcm模块作为信任根的源点,将信任根进行了前移,降低了信任根遭遇攻击的风险,提高了信任链的安全性,从而提高了服务器的安全可信性。

另外,对于本发明实施例中所涉及到的信任链的构建方法的具体介绍请参照上述方法实施例,本申请在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其他形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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