可信度量的实现方法及装置与流程

文档序号:25021952发布日期:2021-05-11 16:46阅读:196来源:国知局
本说明书一个或多个实施例涉及可信计算
技术领域
:,尤其涉及一种可信度量的实现方法及装置。
背景技术
::可信计算(trustedcomputing)是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性。可信计算的核心是信任问题。在相关技术中,提出了多种基于可信计算芯片实现可信计算的硬件解决方案。例如,由可信计算组(tcg,trustedcomputinggroup)提出的基于tpm(trustedplatformmodule,可信平台模块)芯片的解决方案。再例如,基于tpcm(trustedplatformcontrolmodule,可信平台控制模块)芯片的解决方案。技术实现要素:有鉴于此,本说明书一个或多个实施例提供一种可信度量的实现方法及装置。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种可信度量的实现方法,包括:在检测到设备上电后,基本输入输出系统bios读取各个硬件模块,以获得相应的硬件模块信息;bios向可信计算芯片获取针对被读取的硬件模块的目标度量参数;bios从所述硬件模块信息中确定出所述目标度量参数对应的度量数据,并提供至所述可信计算芯片,以由所述可信计算芯片对所述被读取的硬件模块进行可信度量。根据本说明书一个或多个实施例的第二方面,提出了一种可信度量的实现方法,包括:可信计算芯片针对设备中被基本输入输出系统bios读取的硬件模块,向bios发送相应的目标度量参数;其中,各个硬件模块在设备上电后被bios读取,以使bios获得相应的硬件模块信息;所述可信计算芯片根据bios提供的对应于所述目标度量参数的度量数据,对所述被读取的硬件模块进行可信度量,所述度量数据属于所述硬件模块信息的至少一部分。根据本说明书一个或多个实施例的第三方面,提出了一种可信度量的实现装置,包括:读取单元,在检测到设备上电后,使基本输入输出系统bios读取各个硬件模块,以获得相应的硬件模块信息;获取单元,使bios向可信计算芯片获取针对被读取的硬件模块的目标度量参数;提供单元,使bios从所述硬件模块信息中确定出对应于所述目标度量参数的度量数据,并提供至所述可信计算芯片,以由所述可信计算芯片对所述被读取的硬件模块进行可信度量。根据本说明书一个或多个实施例的第四方面,提出了一种可信度量的实现装置,包括:发送单元,使可信计算芯片针对设备中被基本输入输出系统bios读取的硬件模块,向bios发送相应的目标度量参数;其中,各个硬件模块在设备上电后被bios读取,以使bios获得相应的硬件模块信息;度量单元,使所述可信计算芯片根据bios提供的对应于所述目标度量参数的度量数据,对所述被读取的硬件模块进行可信度量,所述度量数据属于所述硬件模块信息的至少一部分。根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如第一方面和/或第二方面所述的方法。根据本说明书一个或多个实施例的第六方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面和/或第二方面所述方法的步骤。根据本说明书一个或多个实施例的第七方面,提出了一种电子设备,包括:若干硬件模块;输入输出系统bios,在检测到设备上电后读取各个硬件模块,以获得相应的硬件模块信息;根据从可信计算芯片处获得的针对被读取的硬件模块的目标度量参数,从所述硬件模块信息中确定出所述目标度量参数对应的度量数据;可信计算芯片,根据bios提供的对应于所述目标度量参数的度量数据,对所述被读取的硬件模块进行可信度量。附图说明图1是一示例性实施例提供的一种实现可信度量的示意图。图2是一示例性实施例提供的一种可信度量的实现方法的流程图。图3是一示例性实施例提供的另一种可信度量的实现方法的流程图。图4是一示例性实施例提供的一种在开机阶段通过tpcm芯片对硬件模块实现主动可信度量的交互流程图。图5是一示例性实施例提供的一种设备的结构示意图。图6是一示例性实施例提供的一种可信度量的实现装置的框图。图7是一示例性实施例提供的另一种设备的结构示意图。图8是一示例性实施例提供的另一种可信度量的实现装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。在一实施例中,本说明书的可信度量的实现方案可以应用于计算设备中,该计算设备可以包括如图1所示的手机11、pc12、服务器13等,而其他类型的诸如平板设备、笔记本电脑、掌上电脑(pdas,personaldigitalassistants)、可穿戴设备(如智能眼镜、智能手表等)等同样可以作为本说明书中的计算设备,本说明书并不对此进行限制。如图1所示,在所列举的手机11、pc12和服务器13等计算设备中,硬件结构上增加了tpcm芯片,该tpcm芯片可以在相应计算设备的开机启动过程中,通过与设备主板上的bios之间进行数据交互,实现对计算设备中的各个硬件模块的可信度量。图2是一示例性实施例提供的一种可信度量的实现方法的流程图。如图2所示,该方法可以包括以下步骤:步骤202,在检测到设备上电后,bios读取各个硬件模块,以获得相应的硬件模块信息。在一实施例中,计算设备在上电启动后首先读取bios。bios是固化在主板rom(read-onlymemory,只读存储器)芯片中的一组程序(bios镜像)。其中,rom芯片在一些场景下完全不能实现数据更改,使得上述程序需要在rom芯片的制造过程中烧录进去。而为了提升灵活度,在一些场景下可以采用其他形式的rom芯片,比如可擦除可编程rom(erasableprogrammablerom,eprom)芯片、电可擦除可编程rom(electricallyerasableprogrammablerom,eeprom)芯片、快闪存储器(flashmemory)芯片等,可以实现对bios程序的修改或更新。例如,flash芯片可以包括spiflash芯片,比如spinorflash芯片。在一实施例中,硬件模块信息可以包括与相应的硬件模块相关的任意信息,本说明书并不对此进行限制。例如,该硬件模块信息可以包括相应的硬件模块的属性信息,比如当硬件模块为cpu时,属性信息可以包括cpu的型号、步进、微代码版本等,再比如当硬件模块为内存时,属性信息可以包括内存的spd信息、序列号、大小等。bios可以向硬件模块读取上述的属性信息。再例如,该硬件模块信息可以包括相应的硬件模块的驱动,该驱动具体可以通过代码的形式记录于bios镜像文件中。步骤204,bios向可信计算芯片获取针对被读取的硬件模块的目标度量参数。在一实施例中,可信计算芯片可以为tpcm芯片。或者,由于tpm芯片所采用的处理逻辑,使得相关技术中的tpm芯片尚未实现在设备开机阶段对硬件模块的可信度量功能,但可能通过对tpm芯片的功能逻辑进行修改、扩展或升级后,也可以用作本说明书中的可信计算芯片,本说明书并不对此进行限制。在一实施例中,通过在bios中添加相应的功能代码,使得计算设备在读取并执行bios中的这部分功能代码后,即可实现与可信计算芯片之间的交互操作,从而实现本说明书中的可信度量方案,使得可信计算芯片可以在设备开机阶段对硬件模块进行主动的可信度量。因此,关于“bios读取硬件模块的信息”、“bios获取目标度量参数”、“bios提供度量数据”等描述,实际上是指计算设备运行这部分添加的功能代码,以实现上述的操作功能。在一实施例中,不同的硬件模块之间可以存在相同或部分相同的目标度量参数,或者完全不同的目标度量参数。bios预先无法获知被读取的硬件模块对应的目标度量参数,这些目标度量参数仅记录于可信计算芯片中,避免这些目标度量参数被从bios中读取。在一实施例中,设备中的部分硬件模块需要进行可信度量、其他硬件模块不需要可信度量,那么需要可信度量的硬件模块可以被预定义为待度量模块,并且在可信计算芯片中预先记录有这些待度量模块的信息。在一种情况下,bios可以获知可信计算芯片中记录的待度量模块,比如这些待度量模块的信息可以记录于bios的配置信息(setup)中。那么,在读取各个硬件模块时,如果发现被读取的硬件模块属于上述的待度量模块,则bios向可信计算芯片发起参数获取请求,使得可信计算模块可以确定出该被读取的硬件模块对应的目标度量参数,而bios可以接收可信计算芯片返回的针对被读取的硬件模块的目标度量参数。在另一种情况下,bios并不了解哪些硬件模块属于待度量模块。那么,bios在读取每个硬件模块时,均可以向可信计算芯片发起参数获取请求,并由可信计算芯片进行筛选。例如,可信计算芯片可以维护待度量模块的信息列表,如果参数获取请求对应的硬件模块的信息未处于该信息列表中,则可信计算芯片无需查找和返回目标度量参数;再例如,可信计算芯片可以尝试查找与参数获取请求对应的硬件模块适用的目标度量参数,如果查找到则可信计算芯片可以返回查找到的目标度量参数,且此时可以确定被读取的硬件模块属于待度量模块,如果未查找到则可信计算芯片不会返回目标度量参数,且此时可以确定被读取的硬件模块并非待度量模块。因此,bios可以为发起的参数获取请求设置一定时器,如果定时器超时前收到目标度量参数,则针对该目标度量参数执行后续步骤(例如提供相应的度量数据等),如果直至定时器超时仍未收到目标度量参数,则确定被读取的硬件模块不需要进行可信度量,可以继续读取下一个硬件模块。步骤206,bios从所述硬件模块信息中确定出所述目标度量参数对应的度量数据,并提供至所述可信计算芯片,以由所述可信计算芯片对所述被读取的硬件模块进行可信度量。在一实施例中,通过上述步骤的交互过程,bios可以配合于可信计算芯片,使得可信计算芯片能够获得针对硬件模块的度量数据,并基于该度量数据对相应的硬件模块进行主动的可信度量,确保这些硬件模块可信。在一实施例中,本说明书的技术方案可以适用于相关技术中采用x86架构的计算设备;当然,其他架构的计算设备也可以采用本说明书的技术方案来实现可信计算,本说明书并不对此进行限制。在一实施例中,bios在收到可信计算芯片提供的目标度量参数后,可以针对被读取的硬件模块准备该目标度量参数对应的度量数据,即从相应的硬件模块信息中识别出匹配于目标度量参数的那些信息,以作为上述的度量数据,并向可信计算芯片返回已准备的度量数据的大小(size),使可信计算芯片申请相应的内存空间;然后,将已准备的度量数据写入所述内存空间(例如获取该内存空间的地址,并将度量数据写入该地址),以供可信计算芯片进行读取。在一实施例中,可信计算芯片在计算设备中可以处于关闭状态或使能状态,bios可以通过读取配置信息中的使能关闭情况,确定可信计算芯片处于关闭状态还是使能状态。实际上,用户可以根据实际需求对bios的配置信息进行修改,以切换可信计算芯片所处的状态。当使能关闭情况表明可信计算芯片处于关闭状态时,bios跳过可信计算芯片的可信度量过程并继续运行以触发设备启动,即无需实现本说明书中bios与可信计算芯片之间的交互操作,即可正常开机。当使能关闭情况表明可信计算芯片处于使能状态时,bios通过可信计算芯片对被读取的待度量模块进行可信度量。在一实施例中,当可信计算芯片处于使能状态时,可以进一步向可信计算芯片请求芯片运行状态;当芯片运行状态为非正常状态时,表明可信计算芯片可能由于受到攻击等而存在异常,bios应当终止读取各个硬件模块,避免计算设备开机;当芯片运行状态为正常状态时,bios通过可信计算芯片对被读取的待度量模块进行可信度量。在一实施例中,bios可以获取可信计算芯片返回的可信度量结果,并根据可信度量结果继续或终止读取后续的硬件模块。例如,当可信度量结果为可信时,可以继续读取后续的硬件模块,直至所有硬件模块均被读取,并且如果所有硬件模块的可信度量结果均为可信,计算设备可以顺利开机。当可信度量结果为不可信时,可以终止读取后续的硬件模块,判定计算设备未通过可信度量,计算设备可以避免开机。图3是一示例性实施例提供的另一种可信度量的实现方法的流程图。如图3所示,该方法可以包括以下步骤:步骤302,可信计算芯片针对设备中被bios读取的硬件模块,向bios发送相应的目标度量参数;其中,各个硬件模块在设备上电后被bios读取,以使bios获得相应的硬件模块信息。在一实施例中,与bios、rom芯片、硬件模块相关的描述可以参考图2所示的实施例,此处不再赘述。在一实施例中,可信计算芯片可以为tpcm芯片。或者,由于tpm芯片所采用的处理逻辑,使得相关技术中的tpm芯片尚未实现在设备开机阶段对硬件模块的可信度量功能,但可能通过对tpm芯片的功能逻辑进行修改、扩展或升级后,也可以用作本说明书中的可信计算芯片,本说明书并不对此进行限制。在一实施例中,不同的硬件模块之间可以存在相同或部分相同的目标度量参数,或者完全不同的目标度量参数。bios预先无法获知被读取的硬件模块对应的目标度量参数,这些目标度量参数仅记录于可信计算芯片中,避免这些目标度量参数被从bios中读取。在一实施例中,设备中的部分硬件模块需要进行可信度量、其他硬件模块不需要可信度量,那么需要可信度量的硬件模块可以被预定义为待度量模块,并且在可信计算芯片中预先记录有这些待度量模块的信息。bios可以获知可信计算芯片中记录的待度量模块,比如这些待度量模块的信息可以记录于bios的配置信息(setup)中,那么bios在读取各个硬件模块时,如果发现被读取的硬件模块属于上述的待度量模块,就向可信计算芯片发起参数获取请求,而不属于待度量模块时则不发起参数获取请求;或者,bios并不了解哪些硬件模块属于待度量模块,那么计算设备在读取bios中的每个硬件模块时,均可以向可信计算芯片发起参数获取请求,并由可信计算芯片进行筛选。相应地,可信计算芯片接收bios针对被读取的硬件模块发起的参数获取请求后,可以查找相匹配的目标度量参数。如果查找到相匹配的目标度量参数,可以将查找到的目标度量参数返回至bios;如果未查找到相匹配的目标度量参数,可以返回错误、返回空集或无操作。因此,对于bios并不了解哪些硬件模块属于待度量模块的情况下,可以为发起的参数获取请求设置一定时器,如果定时器超时前收到目标度量参数,则bios针对该目标度量参数执行后续步骤(例如提供相应的度量数据等),如果直至定时器超时仍未收到目标度量参数,则确定被读取的硬件模块不需要进行可信度量,可以继续读取下一个硬件模块。而对于bios已知待度量模块为哪些硬件模块的情况下,同样可以设置一定时器,使得直至定时器超时仍未收到目标度量参数时,判定可信计算芯片发生异常并终止读取后续的硬件模块,阻止计算设备开机,防止产生安全性风险。步骤304,所述可信计算芯片根据bios提供的对应于所述目标度量参数的度量数据,对所述被读取的硬件模块进行可信度量,所述度量数据属于所述硬件模块信息的至少一部分。在一实施例中,通过上述步骤的交互过程,bios可以配合于可信计算芯片,使得可信计算芯片能够获得针对硬件模块的度量数据,并基于该度量数据对硬件模块进行主动的可信度量,确保硬件模块可信。在一实施例中,本说明书的技术方案可以适用于相关技术中采用x86架构的计算设备;当然,其他架构的计算设备也可以采用本说明书的技术方案来实现可信计算,本说明书并不对此进行限制。在一实施例中,在收到可信计算芯片提供的目标度量参数后,bios可以针对被读取的硬件模块准备该目标度量参数对应的度量数据,即硬件模块信息中对应于目标度量参数的信息,并向可信计算芯片返回已准备的度量数据的大小(size);相应的,可信计算芯片确定bios为目标度量参数准备的度量数据的大小后,可以根据该度量数据的大小而申请相应的内存空间,并且可以将譬如该内存空间的地址返回至bios,以使bios将度量数据写入该内存空间;然后,可信计算芯片可以从该内存空间读取度量数据。在一实施例中,通过在bios中添加相应的功能代码,使得计算设备在读取并执行bios中的这部分功能代码后,即可实现与可信计算芯片之间的交互操作,从而实现本说明书中的可信度量方案,使得可信计算芯片可以在设备开机阶段对硬件模块进行主动的可信度量。在一实施例中,可信计算芯片在计算设备中可以处于关闭状态或使能状态,bios可以通过读取配置信息中的使能关闭情况,确定可信计算芯片处于关闭状态还是使能状态。实际上,用户可以根据实际需求对bios的配置信息进行修改,以切换可信计算芯片所处的状态。当使能关闭情况表明可信计算芯片处于关闭状态时,bios跳过可信计算芯片的可信度量过程并继续运行以触发设备启动,即无需实现本说明书中bios与可信计算芯片之间的交互操作,即可正常开机。当使能关闭情况表明可信计算芯片处于使能状态时,bios通过可信计算芯片对被读取的待度量模块进行可信度量。在一实施例中,当可信计算芯片处于使能状态时,可信计算芯片可以接收bios发起的运行状态获取请求,而可信计算芯片可以向bios返回芯片运行状态,当芯片运行状态为非正常状态时,表明可信计算芯片可能由于受到攻击等而存在异常,bios应当终止读取各个硬件模块,避免计算设备开机;当芯片运行状态为正常状态时,bios通过可信计算芯片对被读取的待度量模块进行可信度量。在一实施例中,可信计算芯片可以向bios返回可信度量结果,而bios可以根据可信度量结果继续或终止读取后续的硬件模块。例如,当可信度量结果为可信时,bios可以继续读取后续的硬件模块,直至所有硬件模块均被读取,并且如果所有硬件模块的可信度量结果均为可信,计算设备可以顺利开机。当可信度量结果为不可信时,可以终止读取后续的硬件模块,判定计算设备未通过可信度量,计算设备可以避免开机。在一实施例中,可信计算芯片在可信度量结果为不可信时,可以主动通知设备下电。例如,当计算设备中通过诸如cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)芯片或其他控制芯片实现电力管理时,可以主动向该cpld芯片发送下电通知消息,使得该cpld芯片可以协助计算设备完成下电,阻止计算设备开机。图4是一示例性实施例提供的一种在开机阶段通过tpcm芯片对硬件模块实现主动可信度量的交互流程图。当计算设备中装配有tpcm芯片时,该tpcm芯片可以通过如图4所示的实施例,与计算设备的bios实现数据交互,从而在bios进行上电自检(power-on-self-test,post)的过程中,由tpcm芯片对计算设备中的各个硬件模块实现主动的可信度量。如图4所示,该交互流程可以包括以下步骤:步骤402,bios在计算设备上电启动后,读取配置信息中的tpcm使能关闭情况;如果使能关闭,转入步骤404a,否则转入步骤404b。在一实施例中,当计算设备上的开机键被触发后,计算设备上电并进入启动流程,而运行bios为相关技术中启动流程的一个步骤。本说明书在相关技术的基础上,使得bios可以在上电自检的过程中,配合tpcm芯片对计算设备中的硬件设备进行可信度量,并在确定通过度量之后,才允许计算设备执行后续开机流程。在一实施例中,bios的配置信息中记录有tpcm使能关闭情况,该tpcm使能关闭情况可由用户根据实际需求对bios进行配置,以使得tpcm芯片被关闭或使能。步骤404a,bios设置参数pcdtpcmstatus=0。步骤404b,bios获取tpcm芯片的运行状态。步骤406,tpcm芯片接收指令,返回当前运行状态。在一实施例中,bios可以向tpcm芯片发送oemgettpcmstatus指令,使得tpcm芯片可以基于该指令返回自身的当前运行状态,该当前运行状态可以包括正常或异常。步骤408,bios识别tpcm芯片的当前运行状态;当状态正常时,转入步骤410,否则停止上电自检。在一实施例中,当tpcm芯片的当前运行状态为异常时,表明tpcm芯片当前无法正常实施对bios的可信度量,若计算设备继续启动可能遭受安全风险,因而bios可以停止上电自检。步骤410,bios设置pcdtpcmstatus=1。步骤412,bios依次读取计算设备中的硬件模块,以获取相应的硬件模块信息,当读取到待度量模块时,转入步骤414。在一实施例中,计算设备中包含若干硬件模块,比如cpu、内存、硬盘等,bios在上电自检的过程中依次读取这些硬件模块、获取相应的硬件模块信息,并配合tpcm芯片对这些硬件模块实施可信度量。tpcm芯片可能仅需要针对部分硬件模块实施可信度量,这些硬件模块即待度量模块。在一实施例中,bios中预先记录了待度量模块的信息。那么,bios在依次读取各个硬件模块时,可以根据预先记录的信息确定当前被读取的硬件模块是否属于待度量模块,并针对读取到的待度量模块实施相关操作,以使得tpcm芯片能够针对待度量模块进行可信度量。在一实施例中,bios中并未预先记录待度量模块的信息。那么,bios可以将读取的每一硬件模块均视为待度量模块;而在后续过程中,譬如通过步骤416-418,tpcm芯片可以针对确实属于待度量模块的硬件模块进行正确反馈、而针对实际并非待度量模块的硬件模块进行异常反馈或不反馈,这在后续步骤中将会详述。在一实施例中,bios在读取硬件模块信息时,该硬件模块信息可以包括两部分:硬件模块的属性信息、硬件模块的驱动。bios可以从硬件模块处读取属性信息,比如当硬件模块为cpu时,属性信息可以包括cpu的型号、步进、微代码版本等,再比如当硬件模块为内存时,属性信息可以包括内存的spd信息、序列号、大小等。而硬件模块的驱动可以包含于bios自身的代码中,比如可以从bios镜像文件中读取。步骤414,bios在确定pcdtpcmstatus=1时,转入步骤416。在一实施例中,当bios确定pcdtpcmstatus=0时,表明计算设备并不需要通过tpcm芯片提供可信计算(包括对硬件模块进行可信度量等),可以跳过本实施例的剩余步骤并正常启动,比如无需对硬件模块进行可信度量的情况下实现开机。步骤416,bios向tpcm芯片请求参数。在一实施例中,bios可以向tpcm芯片发送oemtpcmgettable指令,以指示tpcm芯片返回参数列表(table)。步骤418,tpcm芯片接收指令,返回参数列表。在一实施例中,tpcm芯片并不需要关注bios是否预先获知哪些硬件模块属于待度量模块,只需要确定所接收的指令对应于哪一硬件模块,并查找该硬件模块对应的参数列表即可。如果能够查找到对应的参数列表,就表明该硬件模块属于待度量模块,而tpcm芯片返回查找到的参数列表即可;如果未能查找到对应的参数列表,就表明该硬件模块并不属于待度量模块,tpcm芯片可以返回空或不响应即可。相应地,如果bios预先并未获知待度量模块的信息,在发送oemtpcmgettable指令后,可以设置一计时器。若直至计时器超时仍未收到tpcm芯片返回的参数列表,bios确定相应的硬件模块并非待度量模块,无需针对该硬件模块进行可信度量。如果bios预先了解待度量模块的信息,bios仍然可以设置一计时器;那么,若直至计时器超时仍未收到tpcm芯片返回的参数列表,bios确定tpcm芯片产生异常,可以停止上电自检,避免计算设备在不安全的条件下开机运行。步骤420,bios根据收到的参数列表准备度量数据,并向列表内写入数据大小,发送至tpcm芯片。在一实施例中,tpcm芯片可以维护一列表,该列表中包含表征各个待度量模块的maintype,相当于各个待度量模块在列表中的id信息。同时,列表中还包含对应于各个maintype的subtype,而subtype的取值对应于相应待度量模块的目标度量参数。例如,当bios读取的硬件模块对应于maintype=0x00时,在上述列表中对应的subtype的取值可以包括0x00、0x01、0x02等,譬如maintype=0x00表明相应的硬件模块为cpu,而subtype的取值0x00表示processortype(处理器型号)、取值0x01表示cpustepping(cpu步进)、取值0x02表示microcodeversion(微代码版本)。再例如,当bios读取的硬件模块对应于maintype=0x01时,在上述列表中对应的subtype的取值可以包括0x00、0x01、0x02等,譬如maintype=0x01表明相应的硬件模块为内存,而subtype的取值0x00表示spdinfo(spd(serialpresencedetect串行预设侦测)信息)、取值0x01表示memorysn(内存序列号)、取值0x02表示memorysize(内存大小)。因此,tpcm芯片可以针对bios所提供的硬件模块的maintype,从所维护的列表中查找到对应的subtype并生成上述的参数列表,并将该参数列表返回至bios,由bios准备subtype所指示的参数对应的度量数据,并确定出这些度量数据的数据大小(subtypesize),然后bios可以向tpcm芯片发送oemtpcmsettable指令,该指令中包含所准备的度量数据的大小。步骤422,tpcm芯片接收指令,根据数据大小申请内存空间,返回内存地址。在一实施例中,tpcm芯片根据bios提供的subtypesize计算所需占用的内存空间大小,并申请相应大小的内存空间。在申请成功后,tpcm芯片可以将所申请的内存地址返回bios。步骤424,bios向内存地址写入度量数据,并调用tpcm度量指令。在一实施例中,bios将步骤420中准备的度量数据写入tpcm芯片提供的内存地址。当然,bios也可能重新生成度量数据并写入该内存地址,而并不一定使用步骤420准备的度量数据。在一实施例中,在完成度量数据的写入后,bios可以调用oemtpcmmeasure指令,使得tpcm芯片根据已写入的度量数据进行可信度量。步骤426,tpcm芯片被oemtpcmmeasure指令所调用,从前述的内存空间读取度量数据,实施可信度量。步骤428a,bios接收tpcm芯片提供的可信度量结果;若结果为可信,则返回步骤412,继续对后续的硬件模块进行可信度量;若结果为不可信,则停止上电自检。步骤428b,tpcm芯片确定可信度量的结果为不可信时,控制设备下电。在一实施例中,当计算设备通过cpld芯片进行电力管理时,tpcm芯片可以主动向cpld芯片发送下电指令,使得cpld芯片控制计算设备下电,从而终止计算设备的开机启动,避免在不可信条件下运行。图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510、可信计算芯片512,当然还可能包括其他应用所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成可信度量的实现装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图6,在软件实施方式中,该可信度量的实现装置可以包括:模块读取单元601,在检测到设备上电后,使基本输入输出系统bios读取各个硬件模块,以获得相应的硬件模块信息;参数获取单元602,使bios向可信平台控制模块可信计算芯片获取针对被读取的硬件模块的目标度量参数;提供单元603,使bios从所述硬件模块信息中确定出所述目标度量参数对应的度量数据,并提供至所述可信计算芯片,以由所述可信计算芯片对所述被读取的硬件模块进行可信度量。可选的,还包括:信息读取单元604,使bios读取配置的所述可信计算芯片的使能关闭情况;常规启动单元605,当使能关闭情况表明所述可信计算芯片处于关闭状态时,使bios跳过所述可信计算芯片的可信度量过程并继续运行以触发设备启动;可信启动单元606,当使能关闭情况表明所述可信计算芯片处于使能状态时,使bios通过所述可信计算芯片对所述被读取的硬件模块进行可信度量。可选的,还包括:状态请求单元607,当所述可信计算芯片处于使能状态时,使bios向所述可信计算芯片请求芯片运行状态;终止单元608,当所述芯片运行状态为非正常状态时,使bios终止读取各个硬件模块;度量单元609,当所述芯片运行状态为正常状态时,使bios通过所述可信计算芯片对所述被读取的硬件模块进行可信度量。可选的,参数获取单元602具体用于:当所述被读取的硬件模块为所述可信计算芯片中预定义的待度量模块时,使bios向所述可信计算芯片发起参数获取请求;使bios接收所述可信计算芯片返回的针对所述被读取的硬件模块的目标度量参数。可选的,参数获取单元602具体用于:使bios针对被读取的每一硬件模块,分别向所述可信计算芯片发起参数获取请求;使bios接收所述可信计算芯片返回的针对所述被读取的硬件模块的目标度量参数,所述目标度量参数由所述可信计算芯片在所述被读取的硬件模块为所述可信计算芯片中预定义的待度量模块时返回。可选的,发送单元603具体用于:使bios准备所述目标度量参数对应的度量数据;使bios向所述可信计算芯片返回已准备的度量数据的大小,使所述可信计算芯片申请相应的内存空间;使bios将已准备的度量数据写入所述内存空间,以供所述可信计算芯片进行读取。可选的,还包括:结果获取单元610,使bios获取所述可信计算芯片返回的可信度量结果;处理单元611,使bios根据所述可信度量结果,继续或终止读取后续的硬件模块。图7是一示例性实施例提供的一种设备的示意结构图。请参考图7,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710、可信计算芯片712,当然还可能包括其他应用所需要的硬件。可信计算芯片712中存储有计算机程序,该计算机程序运行后可在逻辑层面上形成可信度量的实现装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图8,在软件实施方式中,该可信度量的实现装置可以包括:发送单元801,使可信计算芯片针对设备中被基本输入输出系统bios读取的硬件模块,向bios发送相应的目标度量参数;其中,各个硬件模块在设备上电后被bios读取,以使bios获得相应的硬件模块信息;度量单元802,使所述可信计算芯片根据bios提供的对应于所述目标度量参数的度量数据,对所述被读取的硬件模块进行可信度量,所述度量数据属于所述硬件模块信息的至少一部分。可选的,还包括:请求接收单元803,使所述可信计算芯片接收bios发起的运行状态获取请求,所述状态获取请求由bios在确定所述可信计算芯片被配置为使能状态时发起;状态返回单元804,使所述可信计算芯片向bios返回芯片运行状态,使bios在所述芯片运行状态为非正常状态时终止读取各个硬件模块。可选的,发送单元801具体用于:使所述可信计算芯片接收bios针对所述被读取的硬件模块发起的参数获取请求;使所述可信计算芯片在查找到相匹配的目标度量参数时,将查找到的目标度量参数返回至bios;使所述可信计算芯片在未查找到相匹配的目标度量参数时,返回错误、返回空集或无操作。可选的,度量单元802通过下述方式使可信计算芯片获取bios提供的对应于所述目标度量参数的度量数据:使所述可信计算芯片确定bios为所述目标度量参数准备的度量数据的大小;使所述可信计算芯片根据所述度量数据的大小,申请相应的内存空间,以使bios将所述度量数据写入所述内存空间;使所述可信计算芯片从所述内存空间读取所述度量数据。可选的,还包括:结果返回单元805,使所述可信计算芯片向bios返回可信度量结果,使bios根据所述可信度量结果继续或终止读取后续的硬件模块。可选的,还包括:通知单元806,使所述可信计算芯片在可信度量结果为不可信时,通知设备下电。可选的,所述硬件模块信息包括以下至少之一:所述被读取的硬件模块的属性信息、所述被读取的硬件模块的驱动。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1