服务器可信平台度量控制系统及其运行方法与流程

文档序号:15616106发布日期:2018-10-09 21:25阅读:199来源:国知局

本发明总体上涉及信息安全领域,具体而言涉及一种服务器可信平台度量控制系统以及一种运行服务器可信平台度量控制系统的方法。



背景技术:

基本输入输出系统(英文:basicinputoutputsystem,bios)以下统称启动代码,是一组固化到计算机内主板上的rom芯片上的程序,它保存着计算机最重要的用于基本输入输出的程序、开机后自检程序和系统自启动程序。通过bios可从cmos中读写系统设置的具体信息。bios的主要功能是为计算机提供最底层的、最直接的硬件设置和控制。当今,bios已成为一些病毒木马的目标。一旦bios被破坏篡改,往往造成严重后果,甚至硬件损坏。

基板管理控制器(英文:baseboardmanagementcontroller,bmc)是服务器的一个重要硬件组件,它利用传感器来监视服务器或者其它硬件驱动设备的状态,并且通过独立的连接线路与系统管理员通信,运行在bmc上的软件称为bmc代码。bmc是智能平台控制接口(英文:intelligentplatformmanagementinterface,ipmi)的一部分并且通常被设置在服务器主板上。bmc代码如果被诸如黑客之类的恶意方例如通过病毒攻击篡改,则恶意方就可以通过远程控制整个服务器系统。

可信平台模块(trustedplatformmodule,tpm)是一种硬件设备,其与计算机主板相连,用于验证身份和处理由计算机在可信计算环境中使用的变量。tpm和存储在其中的数据通常与计算机的所有其它组件分开。

然而,现有技术中的用于服务器的可信平台模块是受服务器主板支配的一个单独模块,因此其无法保证安装在服务器主板上的bios及bmc代码的完整性。而在bios及bmc越来越容易受到攻击和篡改的今天,传统的tpm已不能保证服务器平台的可信性。

最近,提出了用于对服务器的bmc进行度量(即鉴定或验证)的可信平台控制模块(trustedplatformcontrolmodule,tpcm)和相应方法,例如在名称为“一种基于tpcm实现bmc完整性度量的方法”的中国专利公开cn105550579a中就公开了一种这样的方法,其中调用tpcm的sm3算法模块对bmc的启动程序进行完整性度量以判断bmc程序是否完整,如果不完整则提示用户平台是不可信的并执行异常处理。然而,这样的tpcm或方法所具有的缺点是,1)没有对bmcflash的供电进行预期的控制(例如控制上电的先后次序),这一方面会造成上电的bmcflash电路可能对tpcm的度量产生干扰,另一方面,bmc可能在其代码被度量以前就已经读取了相应代码,使得bmc仍然可能执行经篡改的代码,从而威胁平台的可信度;2)在对一个主控设备进行度量时没有对其它主控设备进行隔离,这可能会造成主控设备的异常状态,例如在未隔离的情况下,当tpcm作为bmcflash主控设备读取bmc代码时,南桥也会处于主控设备状态,这样同一个flash设备同时存在两主控设备连接是无法正常工作的,其后果也难以预料。



技术实现要素:

从现有技术出发,本发明的任务是提供一种服务器可信平台度量控制系统及其运行方法,通过该系统或该方法,可以防止上电的bmc或南桥芯片对tpcm模块产生干扰,并且防止bmc和cpu对未经度量的代码进行不期望的读取,从而保证服务器的可信运行环境,此外,还能降低采用可信平台度量方案所需的改造成本。

在本发明的第一方面,该任务通过一种服务器可信平台度量控制系统来解决,该系统包括:

第一开关,其布置在基板管理控制器与第一spi闪存之间,其中第一spi闪存用于存储用于基板管理控制器的第一代码;

第二开关,其布置在南桥芯片与第二spi闪存之间,其中第二spi闪存用于存储用于南桥芯片的第二代码;以及

tpcm模块,其与第一spi闪存和第二spi闪存连接并被配置为执行下列动作:

在tpcm模块上电以后断开第一开关和第二开关;

从第一spi闪存中读取第一代码的至少一部分并且从第二spi闪存中读取第二代码的至少一部分,并且生成第一代码的所述至少一部分的第一散列值和第二代码的所述至少一部分的第二散列值;

将第一散列值与第一参考散列值相比较并且将第二散列值与第二参考散列值相比较;以及

在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时闭合第一开关和第二开关,使得基板管理控制器能够加载第一代码并且南桥芯片能够加载第二代码。

根据本发明的服务器可信平台度量控制系统或方法至少具有下列优点:(1)通过本发明的系统或方法,可以对服务器的bmc和启动代码进行度量,从而防止因运行经篡改的代码而影响系统工作环境的可信度;(2)通过在tpcm度量第一代码期间断开bmc与第一spi闪存之间的信号连接并且在tpcm度量第二代码期间断开南桥芯片与第二spi闪存之间的信号连接,可以防止上电的bmc或南桥芯片对tpcm模块产生干扰并同时防止bmc和南桥芯片对未经度量的代码的读取,从而保证了可信运行环境;(3)通过在bmc与第一spi闪存之间的信号连接上布置第一开关并且在南桥芯片与第二spi闪存之间的信号连接上布置第二开关来中断和接通所述信号连接,可以降低采用可信平台度量方案所需的改造成本,这是因为与对主板的电源控制模块进行修改来推迟bmc和南桥芯片的上电相比,通过开关来断开信号连接无需对主板芯片进行较大改变,而是可以简单地实现,由此降低了改造成本。

在本发明的一个优选方案中规定,tpcm模块的第一读取端口与第一spi闪存连接并且tpcm的第二读取端口与第二spi闪存连接,并且tpcm还被配置为执行下列动作:

在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时通过禁用第一读取端口来断开tpcm模块与第一spi闪存之间的连接并且通过禁用第二读取端口来断开tpcm模块与第二spi闪存之间的连接。

通过该优选方案,可以实现tpcm模块对bmc代码和启动代码的并行(同时)度量,从而提高度量速度;同时,通过在度量成功以后禁用第一读取端口和第二读取端口,可以防止tpcm模块干扰bmc和南桥芯片对相应代码的读取。但是该方案需要tpcm模块配备有两个读取端口。

在本发明的另一优选方案中规定,服务器可信平台度量控制系统还包括选择开关,所述选择开关的第一选择输入端与第一spi闪存连接,并且所述选择开关的第二选择输入端与第二spi闪存连接,并且所述选择开关的输出端与tpcm模块的闪存读取端口连接,并且tpcm模块还被配置为执行下列动作:

激励选择开关的信号选择控制端以将tpcm模块的闪存读取端口与第一spi闪存连接,使得tpcm模块能够从第一spi闪存中读取第一代码的至少一部分;

激励选择开关的信号选择控制端以将tpcm模块的闪存读取端口与第二spi闪存连接,使得tpcm模块能够从第二spi闪存中读取第二代码的至少一部分;以及

在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时激励选择开关的信号选择控制端以将tpcm模块的闪存读取端口从第一spi闪存和第二spi闪存断开。

通过该优选方案,可以实现tpcm模块对bmc代码和启动代码的相继度量,该方案尽管与并行方案相比度量速度较慢,但是却只需要tpcm模块配备单个闪存读取端口即可;此外,通过在度量成功以后将tpcm模块的闪存读取端口从第一spi闪存和第二spi闪存断开,也可以防止tpcm模块干扰bmc和南桥芯片对相应代码的读取。

在本发明的一个扩展方案中规定,第一代码的所述至少一部分是第一代码中的关键代码和/或第二代码的所述至少一部分是第二代码中的关键代码。关键代码例如可以是第一代码和第二代码中的核心部分。通过该扩展方案,可以减小数据处理量,从而提高度量速度。

在本发明的另一扩展方案中规定,第一开关、第二开关和选择开关为2选1选通器,其中第一开关和第二开关的两个选择输入端之一被悬空,而选择开关的两个选择输入端分别与第一spi闪存和第二spi闪存连接。通过该优选方案,可以用统一器件实现上述三个开关元件,从而降低硬件成本。

在本发明的第二方面,前述任务通过一种服务器来实现,所述服务器包括根据本发明的服务器可信平台度量控制系统。

通过该服务器,同样可以实现前述优点,即可以防止上电的bmc或南桥芯片对tpcm模块产生干扰,并且防止bmc对未经度量的代码进行不期望的读取,从而保证服务器的可信运行环境,此外,还能降低采用可信平台度量方案所需的改造成本。

在本发明的第三方面,前述任务通过一种用于运行服务器可信平台度量控制系统的方法来解决,其中该服务器可信平台度量控制系统包括:第一开关,其布置在基板管理控制器与第一spi闪存之间,其中第一spi闪存用于存储用于基板管理控制器的第一代码;第二开关,其布置在南桥芯片与第二spi闪存之间,其中第二spi闪存用于存储用于南桥芯片的第二代码;以及tpcm模块,其与第一spi闪存和第二spi闪存连接,该方法包括:

对tpcm模块上电;

断开第一开关和第二开关;

由tpcm模块从第一spi闪存中读取第一代码的至少一部分并且从第二spi闪存中读取第二代码的至少一部分并且生成第一代码的所述至少一部分的第一散列值和第二代码的所述至少一部分的第二散列值;

由tpcm模块将第一散列值与第一参考散列值相比较并且将第二散列值与第二参考散列值相比较;以及

在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时闭合第一开关和第二开关,使得基板管理控制器能够加载第一代码并且南桥芯片能够加载第二代码。

通过该方法,同样可以实现前述优点,即可以防止上电的bmc或南桥芯片对tpcm模块产生干扰,并且防止bmc对相应代码进行不期望的读取,从而保证服务器的可信运行环境,此外,还能降低采用可信平台度量方案所需的改造成本。

在本发明的一个优选方案中规定,tpcm模块的第一读取端口与第一spi闪存连接并且tpcm的第二读取端口与第二spi闪存连接,并且该方法还包括:

在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时禁用第一读取端口以断开tpcm模块与第一spi闪存之间的连接并且禁用第二读取端口以断开tpcm模块与第二spi闪存之间的连接。

通过该优选方案,可以实现tpcm模块对bmc代码和启动代码的并行(同时)度量,从而提高度量速度;同时,通过在度量成功以后禁用第一读取端口和第二读取端口,可以防止tpcm模块干扰bmc和南桥芯片对相应代码的读取。但是该方案需要tpcm模块配备有两个读取端口。

在本发明的另一优选方案中规定,所述选择开关的第一选择输入端与第一spi闪存连接,并且所述选择开关的第二选择输入端与第二spi闪存连接,并且所述选择开关的输出端与tpcm模块的闪存读取端口连接,并且该方法还包括:

激励选择开关的信号选择控制端以将tpcm模块的闪存读取端口与第一spi闪存连接,使得tpcm模块能够从第一spi闪存中读取第一代码的至少一部分;

激励选择开关的信号选择控制端以将tpcm的闪存读取端口与第二spi闪存连接,使得tpcm模块能够从第二spi闪存中读取第二代码的至少一部分;以及

在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时激励选择开关的信号选择控制端以将tpcm的闪存读取端口从第一spi闪存和第二spi闪存断开。

通过该优选方案,可以实现tpcm模块对bmc代码和启动代码的相继度量,该方案尽管与并行方案相比度量速度较慢,但是却只需要tpcm模块配备单个闪存读取端口即可;此外,通过在度量成功以后将tpcm模块的闪存读取端口从第一spi闪存和第二spi闪存断开,也可以防止tpcm模块干扰bmc和南桥芯片对相应代码的读取。

在本发明的一个扩展方案中规定,第一代码的所述至少一部分是第一代码中的关键代码和/或第二代码的所述至少一部分是第二代码中的关键代码。关键代码例如可以是第一代码和第二代码中的核心部分。通过该扩展方案,可以减小数据处理量,从而提高度量速度。

附图说明

图1示出了根据本发明的服务器可信平台度量控制系统的第一实施例;

图2示出了根据本发明的服务器可信平台度量控制系统的第二实施例;

图3示出了根据本发明的用于运行服务器可信平台度量控制系统的方法的第一实施例;以及

图4示出了根据本发明的用于运行服务器可信平台度量控制系统的方法的第二实施例。

具体实施方式

图1示出了根据本发明的服务器可信平台度量控制系统100的第一实施例。

如图1所示,服务器可信平台度量控制系统100包括第一开关101,其布置在基板管理控制器bmc106与第一spi闪存104之间,其中第一spi闪存104用于存储用于基板管理控制器的第一代码。第一开关101既可以为普通开关,也可以为2选1选通器,其中在2选1选通器的情况下第一开关101的两个选择输入端之一被悬空,并且通过在两个选择输入端之间切换来实现开关操作。

服务器可信平台度量控制系统100还包括第二开关102,其布置在南桥芯片107与第二spi闪存105之间,其中第二spi闪存105用于存储用于南桥芯片的第二代码。第二开关102既可以为普通开关,也可以为2选1选通器,其中在2选1选通器的情况下第一开关102的两个选择输入端之一被悬空,并且通过在两个选择输入端之间切换来实现开关操作。

此外,服务器可信平台度量控制系统100还包括tpcm模块(可信平台控制模块)103。tpcm模块103具有第一读取端口109和第二读取端口110,其分别与第一spi闪存104和第二spi闪存105连接以用于在端口109和110被使能(enabled)的情况下对所述闪存104和105进行读取。而在端口109和110被禁用(disabled)的情况下,tpcm模块103与第一spi闪存104和第二spi闪存105断开。

tpcm模块103被配置为执行下列动作:

·在tpcm模块103上电以后断开第一开关101和第二开关102,从而防止上电的bmc106和南桥芯片107对tpcm模块的操作(例如闪存读取和代码度量)产生干扰并且防止上电的bmc106和南桥芯片107从第一spi闪存104和第二spi闪存105中读取未经度量的代码。

·从第一spi闪存104中读取第一代码的至少一部分并且从第二spi闪存105中读取第二代码的至少一部分,并且生成第一代码的所述至少一部分的第一散列值和第二代码的所述至少一部分的第二散列值。第一代码的所述至少一部分优选地为第一代码中的关键代码(例如代码中的核心部分)并且第二代码的所述至少一部分优选地为第二代码中的关键代码,从而减小数据处理量,从而提高度量速度。

·将第一散列值与第一参考散列值相比较并且将第二散列值与第二参考散列值相比较。

·在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时通过禁用第一读取端口109来断开tpcm模块103与第一spi闪存104之间的连接并且通过禁用第二读取端口110来断开tpcm模块103与第二spi闪存105之间的连接,从而防止tpcm模块103干扰bmc106和南桥芯片107对相应代码的读取。

·闭合第一开关101和第二开关102,使得bmc106能够加载第一代码并且南桥芯片107能够加载第二代码。在此,当第一开关101或第二开关102闭合以后,可以由例如tpcm模块103分别向bmc106和南桥芯片107发送代码读取指令,例如向bmc106和南桥芯片107的复位端口发送复位信号以指示它们分别从第一闪存103和第二闪存中读取代码。

当度量成功并且bmc106和南桥芯107加载相应代码以后,cpu108执行相应代码,并使服务器主板的其它设备上电,系统然后进入可信运行环境。

相反,如果对第一代码或第二代码的度量不成功,则执行异常处理或者使服务器下电或重启。

从上面可以得知,在第一实施例中,可以实现tpcm模块103对bmc106的代码和南桥芯片107的代码的并行(同时)度量,从而提高度量速度;同时,通过在度量成功以后禁用第一读取端口109和第二读取端口110,可以防止tpcm模块103干扰bmc106和南桥芯片107对相应代码的读取。但是该方案需要tpcm模块103配备有两个读取端口109和110。

图2示出了根据本发明的服务器可信平台度量控制系统100的第二实施例。

图2的第二实施例与图1的实施例的区别在于,服务器可信平台度量控制系统100还包括选择开关111,所述选择开关111的第一选择输入端112与第一spi闪存104连接,并且所述选择开关111的第二选择输入端113与第二spi闪存105连接,并且所述选择开关111的输出端114与tpcm模块103的闪存读取端口115连接。选择开关111可以是2选1选通器。

tpcm模块103还被配置为执行下列动作:

·在tpcm模块103上电以后断开第一开关101和第二开关102,从而防止上电的bmc106和南桥芯片107对tpcm模块的操作(例如闪存读取和代码度量)产生干扰并且防止上电的bmc106和南桥芯片107从第一spi闪存104和第二spi闪存105中读取未经度量的代码。

·激励选择开关111的信号选择控制端(未示出)以将tpcm模块103的闪存读取端口115与第一spi闪存104连接,使得tpcm模块103能够从第一spi闪存104中读取第一代码的至少一部分。

·从第一spi闪存104中读取第一代码的至少一部分。

·激励选择开关111的信号选择控制端以将tpcm模块103的闪存读取端口115与第二spi闪存105连接,使得tpcm模块103能够从第二spi闪存105中读取第二代码的至少一部分;

·从第二spi闪存105中读取第二代码的至少一部分。

·生成第一代码的所述至少一部分的第一散列值和第二代码的所述至少一部分的第二散列值。第一代码的所述至少一部分优选地为第一代码中的关键代码(例如代码中的核心部分)并且第二代码的所述至少一部分优选地为第二代码中的关键代码,从而减小数据处理量,从而提高度量速度。

·将第一散列值与第一参考散列值相比较并且将第二散列值与第二参考散列值相比较。

·在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时激励选择开关的信号选择控制端以将tpcm模块103的闪存读取端口115从第一spi闪存104和第二spi闪存105断开,从而防止tpcm模块103干扰bmc106和南桥芯片107对相应代码的读取。

·闭合第一开关101和第二开关102,使得基板管理控制器bmc106能够加载第一代码并且南桥芯片107能够加载第二代码。

当度量成功并且bmc106和南桥芯107加载相应代码以后,cpu108执行相应代码,并使服务器主板的其它设备上电,系统然后进入可信运行环境。

相反,如果对第一代码或第二代码的度量不成功,则执行异常处理或者使服务器下电或重启。

从上面可以得知,在第二实施例中,可以实现tpcm模块103对bmc106的代码和南桥芯片107的代码的相继或顺序度量,该方案尽管与并行方案相比度量速度较慢,但是却只需要tpcm模块103配备单个闪存读取端口115即可;此外,通过在度量成功以后将tpcm模块103的闪存读取端口115从第一spi闪存104和第二spi闪存105断开,也可以防止tpcm模块103干扰bmc106和南桥芯片107对相应代码的读取。

根据本发明的服务器可信平台度量控制系统100至少具有下列优点:(1)通过本发明的系统,可以对服务器的bmc106和启动代码进行度量,从而防止因运行经篡改的代码而影响系统工作环境的可信度;(2)通过在tpcm模块103度量第一代码期间断开bmc106与第一spi闪存104之间的信号连接并且在tpcm模块103度量第二代码期间断开南桥芯片107与第二spi闪存105之间的信号连接,可以防止上电的bmc106或南桥芯片对tpcm模块103产生干扰并同时防止bmc106和南桥芯片107对未经度量的代码的读取,从而保证了可信运行环境;(3)通过在bmc106与第一spi闪存104之间的信号连接上布置第一开关101并且在南桥芯片107与第二spi闪存105之间的信号连接上布置第二开关102来中断和接通所述信号连接,可以降低采用可信平台度量方案所需的改造成本,这是因为与对主板的电源控制模块进行修改来推迟bmc和南桥芯片的上电相比,通过开关来断开信号连接无需对主板芯片进行较大改变,而是可以简单地实现,由此降低了改造成本。

图3示出了根据本发明的用于运行服务器可信平台度量控制系统的方法的第一实施例300。

在步骤302,在tpcm模块103上电以后断开第一开关101和第二开关102,从而防止上电的bmc106和南桥芯片107对tpcm模块的操作(例如闪存读取和代码度量)产生干扰并且防止上电的bmc106和南桥芯片107从第一spi闪存104和第二spi闪存105中读取未经度量的代码。

在步骤304,由tpcm103从第一spi闪存104中读取第一代码的至少一部分并且从第二spi闪存105中读取第二代码的至少一部分。

在步骤306,由tpcm103生成第一代码的所述至少一部分的第一散列值和第二代码的所述至少一部分的第二散列值。第一代码的所述至少一部分优选地为第一代码中的关键代码(例如代码中的核心部分)并且第二代码的所述至少一部分优选地为第二代码中的关键代码,从而减小数据处理量,从而提高度量速度。

在步骤308,由tpcm103将第一散列值与第一参考散列值相比较并且将第二散列值与第二参考散列值相比较。

在步骤310,在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时通过禁用第一读取端口109来断开tpcm模块103与第一spi闪存104之间的连接并且通过禁用第二读取端口110来断开tpcm模块103与第二spi闪存105之间的连接,从而防止tpcm模块103干扰bmc106和南桥芯片107对相应代码的读取。

步骤312,闭合第一开关101和第二开关102,使得bmc106能够加载第一代码并且南桥芯片107能够加载第二代码。

方法300然后结束,并且bmc106和南桥芯107加载相应代码,然后cpu108执行相应代码,并使服务器主板的其它设备上电,系统最后进入可信运行环境。

相反,如果对第一代码或第二代码的度量不成功,则执行异常处理或者使服务器下电或重启。

图4示出了根据本发明的用于运行服务器可信平台度量控制系统的方法的第二实施例400。

在步骤402,在tpcm模块103上电以后断开第一开关101和第二开关102,从而防止上电的bmc106和南桥芯片107对tpcm模块的操作(例如闪存读取和代码度量)产生干扰并且防止上电的bmc106和南桥芯片107从第一spi闪存104和第二spi闪存105中读取未经度量的代码。

在步骤404,激励选择开关111的信号选择控制端(未示出)以将tpcm模块103的闪存读取端口115与第一spi闪存104连接,使得tpcm模块103能够从第一spi闪存104中读取第一代码的至少一部分。

在步骤406,由tpcm103从第一spi闪存104中读取第一代码的至少一部分。

在步骤408,激励选择开关111的信号选择控制端以将tpcm模块103的闪存读取端口115与第二spi闪存105连接,使得tpcm模块103能够从第二spi闪存105中读取第二代码的至少一部分;

在步骤410,由tpcm103从第二spi闪存105中读取第二代码的至少一部分。

在步骤412,由tpcm103生成第一代码的所述至少一部分的第一散列值和第二代码的所述至少一部分的第二散列值。第一代码的所述至少一部分优选地为第一代码中的关键代码(例如代码中的核心部分)并且第二代码的所述至少一部分优选地为第二代码中的关键代码,从而减小数据处理量,从而提高度量速度。

在步骤414,由tpcm103将第一散列值与第一参考散列值相比较并且将第二散列值与第二参考散列值相比较。

在步骤416,在第一散列值与第一参考散列值一致并且第二散列值与第二参考散列值一致时激励选择开关的信号选择控制端以将tpcm模块103的闪存读取端口115从第一spi闪存104和第二spi闪存105断开,从而防止tpcm模块103干扰bmc106和南桥芯片107对相应代码的读取。

在步骤418,闭合第一开关101和第二开关102,使得基板管理控制器bmc106能够加载第一代码并且南桥芯片107能够加载第二代码。

方法400然后结束,并且bmc106和南桥芯107加载相应代码,然后cpu108执行相应代码,并使服务器主板的其它设备上电,系统最后进入可信运行环境。

相反,如果对第一代码或第二代码的度量不成功,则执行异常处理或者使服务器下电或重启。

虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是对本领域技术人员显而易见的是,这些实施方式仅仅是作为示例示出的。本领域技术人员可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并藉此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。

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