基于双体系结构的可信计算平台的静态度量方法与流程

文档序号:18886520发布日期:2019-10-15 21:00阅读:149来源:国知局
基于双体系结构的可信计算平台的静态度量方法与流程

本发明涉及网络安全领域,特别地,涉及一种基于双体系结构的可信计算平台的静态度量方法及装置、存储介质及处理器。



背景技术:

当前的网络空间极其脆弱,震网、wannacry勒索病毒、mirai等造成较大影响的网络攻击事件层出不穷,且日益猖獗。究其根源,在于并没有从网络安全风险的实质原因入手解决问题,一味采用以“防火墙”、“病毒查杀”、“入侵检测”等为代表的“封堵查杀”被动防御手段,防不胜防,特别在面对针对目标系统的漏洞发起的攻击时,根本无法有效防御。

为解决当前网络空间安全面临的问题,国际上tcg组织提出了可信计算的方法,提出了以tpm和bios起始代码为信任根,一级度量一级,进而构建起计算机的信任链,保护计算机重要资源不被非法篡改和破坏,起到了较好的效果。但是,tpm本质上只是计算机上一个被动挂接的外部设备,只有被主机程序调用才会发挥作用,一旦主机被攻击者控制,tpm的作用就会无从发挥,导致tcg的可信计算架构在面对黑客利用可信计算平台逻辑缺陷进行攻击时,基本难以抵御。



技术实现要素:

为了克服现有技术的不足,本发明提供一种保护计算机重要资源不被非法篡改和破坏的基于双体系结构的可信计算平台的静态度量方法及装置、存储介质及处理器。

本发明解决其技术问题所采用的技术方案是:

一种基于双体系结构的可信计算平台的静态度量方法,所述可信计算平台包括并行运行的防护子系统和计算子系统,所述计算子系统包括:主机cpu、内存、以及主板上除主机cpu和内存之外的其他模块,用于完成计算任务,所述防护子系统包括:可信平台控制模块,用于对所述计算子系统进行主动度量和主动控制,所述主动度量包括静态度量,所述可信平台控制模块通过pcie接口和预置接口与所述主板相连接,所述pcie接口用于所述可平台控制模块与主机cpu及内存之间的通信,所述预置接口用于所述可信平台控制模块与所述主板上除主机cpu和内存之外的其他模块之间的通信;

所述方法包括:

在所述可信计算平台上电后,所述可信平台控制模块先于主机cpu启动,来确定是否控制主机cpu启动;

如果确定控制所述主机cpu启动,所述可信平台控制模块对所述计算子系统启动过程中各阶段需要加载并执行的启动代码进行度量,并依据度量结果进行相应处理。

进一步地,所述在所述可信计算平台上电后,所述可信平台控制模块先于主机cpu启动,来确定是否控制主机cpu启动,包括:

所述可信平台控制模块通过所述预置接口向所述主板上的时序控制电路发送控制信号,所述控制信号用于指示所述时序控制电路控制上电时序,使得所述可信平台控制模块先于所述主机cpu启动;

所述可信平台控制模块通过所述预置接口读取所述主板上的固件存储区中的bios代码进行度量,若所述bios代码的度量结果可信,则确定控制所述主机cpu启动,加载并执行bios代码。

进一步地,所述可信平台控制模块对所述计算子系统启动过程中各阶段需要加载并执行的启动代码进行度量,并依据度量结果进行相应处理,包括:

在当前阶段的启动代码执行过程中,通过所述当前阶段的启动代码的度量代理模块,对与下一阶段启动代码相关的一处理步骤进行拦截,同时所述可信平台控制模块获取所述下一阶段的启动代码,并进行度量,如果对所述下一阶段的启动代码的度量结果为可信,则所述可信平台控制模块通过所述pcie接口向所述当前阶段的启动代码的度量代理模块发送控制指令,以使所述当前阶段的启动代码的度量代理模块解除拦截,以允许所述与下一阶段启动代码相关的一处理步骤的执行;

其中,所述当前阶段包括:bios代码执行阶段、osloader代码执行阶段、os内核代码执行阶段和os系统服务代码执行阶段中的任一者。

进一步地,所述可信平台控制模块获取所述下一阶段的启动代码,包括:

所述当前阶段的启动代码的度量代理模块直接读取硬盘或内存中的所述下一阶段的启动代码,并通过所述pcie接口发送给所述可信平台控制模块,以使所述可信平台控制模块获取所述下一阶段的启动代码;或者,

所述当前阶段的启动代码的度量代理模块将所述下一阶段的启动代码的地址信息通过所述pcie接口发送给所述可信平台控制模块,以使所述可信平台控制模块根据接收到的所述地址信息通过所述pcie接口从内存中或者通过所述预置接口从所述主板上的硬盘中获取所述下一阶段的启动代码,所述地址信息为所述下一阶段的启动代码在硬盘中或者内存中的地址信息。

进一步地,所述对与下一阶段启动代码相关的一处理步骤进行拦截,包括:

对所述当前阶段的启动代码加载所述下一阶段的启动代码进行拦截;或者,

在所述当前阶段的启动代码将所述下一阶段的启动代码加载到内存后,拦截所述下一阶段的启动代码的执行。

进一步地,在所述计算子系统的启动流程执行到一指定阶段时,通过所述指定阶段对应的启动代码的度量代理模块,拦截所述指定阶段对应的启动代码加载所述下一阶段的启动代码,同时所述可信平台控制模块获取内存数据,并进行度量;如果内存数据度量结果为可信,则允许所述可信平台控制模块获取所述下一阶段的启动代码;如果内存数据度量结果为不可信,则禁止所述可信平台控制模块获取所述下一阶段的启动代码,和/或,报警。

进一步地,所述可信平台控制模块对所述计算子系统启动过程中各阶段需要加载并执行的启动代码进行度量,并依据度量结果进行相应处理,包括:

在bios代码执行过程中,bios代码中的度量代理模块首先拦截bios加载osloader代码,然后通过pcie接口向所述可信平台控制模块发送通知消息,通知osloader代码的地址信息,之后所述可信平台控制模块通过预置接口从主板上的硬盘中读取osloader代码进行可信度量,若osloader代码度量结果可信则所述可信平台控制模块通过pcie接口向bios代码中的度量代理模块发送控制指令,bios代码中的度量代理模块解除拦截,bios对osloader代码进行加载并执行;

在osloader代码执行过程中,osloader代码中的度量代理模块首先拦截osloader代码加载os内核代码,然后通过pcie接口向所述可信平台控制模块发送通知消息,所述可信平台控制模块首先通过pcie接口直接访问内存,读取内存数据进行度量,若内存数据度量结果可信,则所述可信平台控制模块按照通知消息中携带的os内核代码在硬盘中的地址信息,通过所述预置接口从硬盘中直接读取os内核代码进行度量,若os内核代码度量结果可信则所述可信平台控制模块通过pcie接口向osloader代码中的度量代理模块发送控制指令,osloader代码中的度量代理模块解除拦截,osloader代码对os内核代码进行加载并执行;

在os内核代码执行过程中,os内核代码中的度量代理模块首先拦截os内核代码加载os系统服务代码,然后通过pcie接口向所述可信平台控制模块发送通知消息,通知os系统服务代码的地址信息,之后所述可信平台控制模块通过预置接口从主板上的硬盘中读取os系统服务代码进行可信度量,若os系统服务代码度量结果可信则所述可信平台控制模块通过pcie接口向os内核代码中的度量代理模块发送控制指令,os内核代码中的度量代理模块解除拦截,os内核代码对os系统服务代码进行加载并执行;

在os系统服务代码执行过程中,os系统服务代码中的度量代理模块首先拦截os系统服务代码加载应用程序代码,然后通过pcie接口向所述可信平台控制模块发送通知消息,通知应用程序代码的地址信息,之后所述可信平台控制模块通过预置接口从主板上的硬盘中读取应用程序代码进行可信度量,若应用程序度量结果可信则所述可信平台控制模块通过pcie接口向os系统服务代码中的度量代理模块发送控制指令,os系统服务代码中的度量代理模块解除拦截,os系统服务代码对应用程序代码进行加载并执行。

一种基于双体系结构的可信计算平台的静态度量装置,所述可信计算平台包括并行运行的防护子系统和计算子系统,所述计算子系统包括:主机cpu、内存、硬盘以及主板上除主机cpu和内存之外的其他模块,用于完成计算任务,所述防护子系统包括:可信平台控制模块,用于对所述计算子系统进行主动度量和主动控制,所述主动度量包括静态度量,所述可信平台控制模块通过pcie接口和预置接口与所述主板相连接,所述pcie接口用于所述可信平台控制模块与主机cpu及内存之间的通信,所述预置接口用于所述可信平台控制模块与所述主板上除主机cpu和内存之外的其他模块之间的通信,所述装置包括:

启动控制模块,用于在所述可信计算平台上电后,所述可信平台控制模块先于主机cpu启动,来确定是否控制主机cpu启动;

度量处理模块,用于如果确定控制所述主机cpu启动,所述可信平台控制模块对所述计算子系统启动过程中各阶段需要加载并执行的启动代码进行度量,并依据度量结果进行相应处理。

一种存储介质,所述存储介质用于存储程序,所述程序用于实现上述任一项所述方法的步骤。

一种处理器,所述处理器用于执行程序,所述程序用于实现上述任一项所述方法的步骤。

有益效果:

本发明技术方案提供了一种基于双体系结构的可信计算平台的静态度量方法,在可信计算平台上电时,可信平台控制模块先于主机cpu启动,对bios固件及主机启动过程中各阶段需要加载并执行的启动代码进行度量,能够实现可信平台控制模块对主机的启动过程进行主动安全防御的目的,由于可信平台控制模块相对独立且具有较高的控制权限,可信平台控制模块的安全防御功能并不依赖主机系统安全性能,进而达到了提高主机安全性能的技术效果。

附图说明

图1是本发明实施例提供的一种基于双体系结构的可信计算平台的结构示意图;

图2是本发明实施例提供的一种基于双体系结构的可信计算平台的静态度量方法的流程图;

图3是本发明实施例提供的一种基于双体系结构的可信计算平台的静态度量装置的结构示意图。

具体实施方式

术语解释:

tcm:可信密码模块,可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间。

tpcm:可信平台控制模块,一种集成在可信计算平台中,用于建立和保障信任源点的硬件核心模块,为可信计算提供完整性度量、安全存储、可信报告以及密码服务等功能,在本发明中用作防护子系统。

tsb:可信软件基,为可信计算平台的可信性提供支持的软件元素的集合。

下面结合附图和实施例对本发明进一步说明。

本发明实施例提供一种基于双体系结构的可信计算平台的静态度量方法。

图1是本发明实施例提供的一种基于双体系结构的可信计算平台的结构示意图,如图1所示,双体系结构的可信计算平台包括并行运行的防护子系统和计算子系统,计算子系统包括:主机cpu、内存、以及主板上除主机cpu和内存之外的其他模块(例如时序控制电路、固件存储区、硬盘、i/o外设等),用于完成计算任务;防护子系统包括:可信平台控制模块,用于对计算子系统进行主动度量和主动控制,主动度量包括静态度量和动态度量。可信平台控制模块通过pcie接口和预置接口与主板相连接,pcie接口用于可平台控制模块与主机cpu及内存之间的通信,预置接口用于可信平台控制模块与主板上除主机cpu和内存之外的其他模块之间的通信。

作为一种可选的实施例,本发明的双体系结构的可信计算平台可以通过以下步骤构建得到:

步骤s1,将可信计算处理器、可信计算内存、可信计算持久化存储区、可信密码模块进行封装,构建可信平台控制模块;

步骤s2,在可信平台控制模块上设置pcie接口和预置接口;

步骤s3,利用pcie接口和预置接口将可信平台控制模块与主板相连接,得到双体系结构的可信计算平台。

作为对上述实施例的进一步说明;上述实施例中的可信平台控制模块主要用于执行可信计算任务,可以包括:tpcm硬件平台、tpcm操作系统及其上运行的可信软件基tsb。可信计算处理器、可信计算内存、可信计算持久化存储区、可信密码模块tcm共同构成了tpcm硬件平台。可信计算持久化存储区中可以存储有:tpcm操作系统:用于管理可信平台控制模块的资源信息,例如进程、内存、文件系统、网络协议、i/o设备和接口等;tsb:用于对计算子系统进行静态度量、动态度量和控制处理;密钥,用于与可信密码模块tcm配合使用为可信计算平台提供加密或解密功能。

需要说明的是,本实施例中的可信平台控制模块中还可以包括其他结构,此处不再一一赘述。本实施例对构建可信平台控制模块时所采用的封装技术也不作具体限定。

上述实施例中的pcie接口可以用于可信平台控制模块与主机cpu及内存之间的通信。可信平台控制模块与主机cpu之间可以进行数据传输和命令交互,可信平台控制模块可以直接访问内存数据进行度量,可信平台控制模块也可以对内存中的进程进行相应控制。

上述实施例中的预置接口可以用于所述可信平台控制模块与主板上除主机cpu和内存之外的其他模块之间的通信。主板上可以包括但并不限于主机cpu、内存、时序控制电路、固件存储区、硬盘、i/o外设等。预置接口可以用于可信平台控制模块与主板上的时序控制电路、固件存储区、硬盘、i/o外设等之间的通信。需要说明的是,本实施例对预置接口的形式不做具体限定,例如预置接口可以基于主板插针、接插件、插槽、金手指等方式实现。

上述实施例中利用pcie接口和预置接口可以将可信平台控制模块与主板相连接,具体可以包括:

利用预置接口可以将可信平台控制模块与主板上的时序控制电路相连接,可信平台控制模块用于控制时序逻辑控制电路的上电顺序,以使可信计算平台上电后可信平台控制模块先于主机cpu启动。这样可以保证以可信平台控制模块为信任根,对主机的启动过程进行全面安全防护。

利用预置接口可以将可信平台控制模块与主板上的固件存储区相连接,可信平台控制模块用于通过预置接口从固件存储区中读取bios固件,以实现对bios固件进行度量,进而保证主机启动过程安全可信。

利用预置接口可以将可信平台控制模块与主板上的硬盘相连接,可信平台控制模块用于通过预置接口从硬盘中读取启动镜像数据,启动镜像数据可以为主机启动过程中各启动阶段主机cpu待加载执行的数据,启动镜像数据至少包括:osloader代码、os内核代码、os系统服务代码以及应用程序代码。可信平台控制通过预置接口读取硬盘中的启动镜像数据进行度量,可以实现对主机启动过程的主动度量,进而保证主机启动过程安全可信。

上述实施例中利用pcie接口和预置接口可以将可信平台控制模块与主板相连接,还可以包括:

利用pcie接口将可信平台控制模块与内存相连接,用于读取内存数据;

利用pcie接口将可信平台控制模块与主机cpu相连接,用于读取主机cpu的运行状态数据;

利用预置接口将可信平台控制模块与主板上的i/o外设相连接,用于读取i/o外设的运行状态数据。

基于可信平台控制模块可以通过pcie接口和预置接口与主机cpu、内存以及i/o外设进行通信,可信平台控制模块能够对计算子系统进行动态度量。

通过pcie接口,tpcm与主板上的cpu之间可以进行数据传输和命令交互,tpcm与cpu之间通过pcie接口的pcie总线从cpu内进行数据的传输;cpu通过南桥芯片从固件存储区里获取的固件,tpcm也可以直接访问主板上的内存。例如通过pcie的dma机制获取主板内存信息,以读取主板内存数据进行度量,以及对主板内存中的进程进行相应控制。

tpcm和主板上设置有预置接口,主板预置接口实现主板时序电路的控制,并为tpcm需要度量的固件提供通路。tpcm预置接口实现控制和获取度量对象的信息,tpcm与主板的预置接口是统一的,是互联互通的。

通过该预置接口,tpcm可以通过gpio总线控制主板上的时序控制电路cpld,预置接口内部中实现控制获取的方式,预置接口来传递使用这种控制,通过cpld控制tpcm先于主板上的cpu启动,以实现tpcm对计算子系统进行静态度量,建立静态信任链。通过该预置接口,tpcm还可以通过spi总线访问固件存储区读取bios固件,以实现在计算子系统启动过程中对bios进行度量。通过该预置接口,tpcm还可以根据度量结果通过smbus总线,利用bmc对主板上的外设进行控制。

通过pcie接口和预置接口,可信平台控制模块可以实现对主机的启动和运行过程进行全面的安全防护,且并不依赖于主机系统的安全性能。

基于双体系结构的可信计算平台,本发明的基于双体系结构的可信计算平台的静态度量方法如图2所示,具体包括以下步骤:

步骤s201,在可信计算平台上电后,可信平台控制模块先于主机cpu启动,来确定是否控制主机cpu启动;

步骤s202,如果确定控制主机cpu启动,可信平台控制模块对计算子系统启动过程中各阶段需要加载并执行的启动代码进行度量,并依据度量结果进行相应处理。

作为一种可选的实施例,步骤s201可以包括:可信平台控制模块通过预置接口向主板上的时序控制电路发送控制信号,控制信号用于指示时序控制电路控制上电时序,使得可信平台控制模块先于主机cpu启动;可信平台控制模块通过预置接口读取主板上的固件存储区中的bios代码进行度量,若bios代码的度量结果可信,则确定控制主机cpu启动,加载并执行bios代码;若bios度量结果不可信,则可信平台控制模块可以通过pcie接口或预置接口控制可信计算平台强制重启或者断电。

作为一种可选的实施例,步骤s202可信平台控制模块对计算子系统启动过程中各阶段需要加载并执行的启动代码进行度量,并依据度量结果进行相应处理,可以包括:在当前阶段的启动代码执行过程中,通过当前阶段的启动代码的度量代理模块,对与下一阶段启动代码相关的一处理步骤进行拦截,同时可信平台控制模块获取下一阶段的启动代码,并进行度量,如果对下一阶段的启动代码的度量结果为可信,则可信平台控制模块通过pcie接口向当前阶段的启动代码的度量代理模块发送控制指令,以使当前阶段的启动代码的度量代理模块解除拦截,以允许与下一阶段启动代码相关的一处理步骤的执行;如果对下一阶段的启动代码的度量结果不可信,则依据相应的控制策略进行处理,可以包括但并不限于:禁止下一阶段启动代码的一处理步骤的执行。

其中,当前阶段包括:bios代码执行阶段、osloader代码执行阶段、os内核代码执行阶段和os系统服务代码执行阶段中的任一者。该当前阶段的启动代码可以是bios代码、osloader代码、os内核代码和os系统服务代码中的任一者。

在一些实施例中,可信平台控制模块获取下一阶段的启动代码,可以包括:当前阶段的启动代码的度量代理模块直接读取硬盘或内存中的下一阶段的启动代码,并通过pcie接口发送给可信平台控制模块,以使可信平台控制模块获取下一阶段的启动代码;

在另一些实施例中,可信平台控制模块获取下一阶段的启动代码,可以包括:当前阶段的启动代码的度量代理模块将下一阶段的启动代码的地址信息通过pcie接口发送给可信平台控制模块,以使可信平台控制模块根据接收到的地址信息通过pcie接口从内存中或者通过预置接口从主板上的硬盘中获取下一阶段的启动代码,地址信息为下一阶段的启动代码在硬盘中或者内存中的地址信息。

在一些实施例中,对与下一阶段启动代码相关的一处理步骤进行拦截,可以包括:对当前阶段的启动代码加载下一阶段的启动代码进行拦截;或者,在当前阶段的启动代码将下一阶段的启动代码加载到内存后,拦截下一阶段的启动代码的执行。

在一些实施例中,在计算子系统的启动流程执行到一指定阶段时,通过指定阶段对应的启动代码的度量代理模块,拦截指定阶段对应的启动代码加载下一阶段的启动代码,同时可信平台控制模块获取内存数据,并进行度量;如果内存数据度量结果为可信,则允许可信平台控制模块获取下一阶段的启动代码;如果内存数据度量结果为不可信,则禁止可信平台控制模块获取下一阶段的启动代码,和/或,报警。通过该实施例,在静态度量过程中,通过对主机内存进行度量,可以保证内存中的数据不被非法篡改,保障了加载下一阶段程序的内存环境可信,提高了安全性。

作为一种可选的实施例,该基于双体系结构的可信计算机平台的静态度量方法的具体步骤包括:

步骤s11,在可信计算平台上电后,可信平台控制模块通过预置接口向主板上的时序控制电路发送控制信号,控制信号用于指示时序控制电路控制上电时序,使得可信平台控制模块先于主机cpu启动;

步骤s12,可信平台控制模块通过预置接口读取主板上的固件存储区中的bios代码进行度量,若bios代码的度量结果可信,则确定控制主机cpu启动,加载并执行bios代码;

步骤s13,在bios代码执行过程中,bios代码中的度量代理模块首先拦截bios加载osloader代码,然后通过pcie接口向可信平台控制模块发送通知消息,通知osloader代码的地址信息,之后可信平台控制模块通过预置接口、按照地址信息从主板上的硬盘中读取osloader代码进行可信度量,若osloader代码度量结果可信则可信平台控制模块通过pcie接口向bios代码中的度量代理模块发送控制指令,bios代码中的度量代理模块解除拦截,bios对osloader代码进行加载并执行;

步骤s14,在osloader代码执行过程中,osloader代码中的度量代理模块首先拦截osloader代码加载os内核代码,然后通过pcie接口向可信平台控制模块发送通知消息,可信平台控制模块首先通过pcie接口直接访问内存,读取内存数据进行度量,若内存数据度量结果可信,则可信平台控制模块按照通知消息中携带的os内核代码在硬盘中的地址信息,通过预置接口从硬盘中直接读取os内核代码进行度量,若os内核代码度量结果可信则可信平台控制模块通过pcie接口向osloader代码中的度量代理模块发送控制指令,osloader代码中的度量代理模块解除拦截,osloader代码对os内核代码进行加载并执行;

步骤s15,在os内核代码执行过程中,os内核代码中的度量代理模块首先拦截os内核代码加载os系统服务代码,然后通过pcie接口向可信平台控制模块发送通知消息,通知os系统服务代码的地址信息,之后可信平台控制模块通过预置接口、按照地址信息从主板上的硬盘中读取os系统服务代码进行可信度量,若os系统服务代码度量结果可信则可信平台控制模块通过pcie接口向os内核代码中的度量代理模块发送控制指令,os内核代码中的度量代理模块解除拦截,os内核代码对os系统服务代码进行加载并执行;

步骤s16,在os系统服务代码执行过程中,os系统服务代码中的度量代理模块首先拦截os系统服务代码加载应用程序代码,然后通过pcie接口向可信平台控制模块发送通知消息,通知应用程序代码的地址信息,之后可信平台控制模块通过预置接口、按照地址信息从主板上的硬盘中读取应用程序代码进行可信度量,若应用程序度量结果可信则可信平台控制模块通过pcie接口向os系统服务代码中的度量代理模块发送控制指令,os系统服务代码中的度量代理模块解除拦截,os系统服务代码对应用程序代码进行加载并执行。

需要说明的是,本实施例中的度量代理模块可以是防护子系统在计算子系统中植入的度量代理程序,即钩子函数,该度量代理模块主要用于获取计算子系统的相关信息以及对计算子系统进行相应控制。

作为另一种可选的实施例,该基于双体系结构的可信计算机平台的静态度量方法的具体步骤包括:

步骤21,可信计算平台上电后,tpcm利用预置接口,通过以插针实现为例,用插针中的预置的gpio信号向主板上的时序控制电路cpld发送控制信号,cpld控制上电时序,使得tpcm先于主板上的cpu启动,然后tpcm加载并执行tpcm操作系统和tsb程序。

步骤22,tpcm利用预置接口、通过spi总线访问固件存储区读取bios固件,对bios固件进行度量,并将度量结果存储在tpcm中。若bios度量结果可信,tpcm利用预置接口、通过gpio总线控制cpld,使得主板上的cpu启动,cpu通过南桥芯片加载并执行bios。若bios度量结果不可信,则tpcm可以依据可信策略进行控制处理,例如通过主板上的时序控制电电路控制可信计算平台强制重启、断电等。

步骤23,bios执行过程中,bios代码中的度量代理模块首先拦截bios加载osloader代码,然后bios代码中的度量代理模块直接读取硬盘中的osloader代码文件发送给tpcm,tpcm对osloader代码进行可信度量,可信度量包括代码的完整性检查、签名验签、关键信息检查。若osloader代码度量结果不可信则依据策略进行控制处理,控制处理为拒绝执行和/或报警;若osloader代码度量结果可信则tpcm向bios代码中的度量代理模块发送控制指令,bios代码中的度量代理模块解除拦截,bios对osloader代码进行加载并执行。

或者,bios执行过程中,bios先将osloader加载到内存中,然后bios代码中的度量代理模块拦截osloader代码的执行。然后度量代理模块通过pcie接口向tpcm发送通知消息,通知osloader的内存地址信息,之后tpcm通过pcie接口、按照内地址信息从主板上的内存中读取内存中已经加载的osloader代码进行度量。若osloader代码度量结果不可信则依据策略进行控制处理;若osloader代码度量结果可信则tpcm向bios代码中的度量代理模块发送控制指令,bios代码中的度量代理模块解除拦截,osloader代码执行。

步骤24,osloader代码执行过程中,osloader代码中的度量代理模块首先拦截osloader代码加载os内核代码,然后通过pcie接口向tpcm发送通知消息。之后,tpcm首先通过pcie接口直接访问内存,读取内存数据进行度量,或者,也可以由osloader代码中的度量代理模块将内存数据传给tpcm进行度量。若内存数据度量结果不可信则依据策略进行控制处理。若内存数据度量结果可信,则度量代理模块从主板上的硬盘中读取os内核代码发送给tpcm进行度量,可信度量包括完整性、签名验签、关键信息检查等;或者tpcm按照通知消息中携带的os内核代码在硬盘中的地址信息,通过pcie接口从硬盘中直接读取os内核代码进行度量。若os内核代码度量结果不可信则依据策略进行控制处理;若os内核代码度量结果可信则tpcm向osloader代码中的度量代理模块发送控制指令,osloader代码中的度量代理模块解除拦截,osloader代码对os内核代码进行加载并执行。

步骤25,os内核代码执行过程中,os内核代码中的度量代理模块首先拦截os内核代码加载os系统服务代码,然后通过pcie接口向tpcm发送通知消息,通知os系统服务代码的地址信息,之后tpcm通过pcie接口、按照地址信息从主板上的硬盘中读取os系统服务代码进行可信度量,可信度量包括完整性、签名验签、关键信息检查等;或者度量代理模块直接读取硬盘中的os系统服务代码发送给tpcm进行度量。若os系统服务代码度量结果不可信则依据策略进行控制处理;若os系统服务代码度量结果可信则tpcm向os内核代码中的度量代理模块发送控制指令,os内核代码中的度量代理模块解除拦截,os内核代码对os系统服务代码进行加载并执行。

步骤26,os系统服务代码执行过程中,os系统服务代码中的度量代理模块首先拦截os系统服务代码加载应用程序代码,然后通过pcie接口向tpcm发送通知消息,通知应用程序代码的地址信息,之后tpcm通过pcie接口、按照地址信息从主板上的硬盘中读取应用程序代码进行可信度量,可信度量包括完整性、签名验签、关键信息检查等;或者度量代理模块直接读取硬盘中的应用程序代码发送给tpcm进行度量。若应用程序度量结果不可信则依据策略进行控制处理,例如阻止应用程序代码加载,报警等;若应用程序度量结果可信则tpcm向os系统服务代码中的度量代理模块发送控制指令,os系统服务代码中的度量代理模块解除拦截,os系统服务代码对应用程序代码进行加载并执行。

需要说明的是,本发明的静态度量方法,可以根据可信策略选择在启动流程中的任一阶段对内存数据进行度量,并不仅限于上述示例中的在osloader代码执行过程中、在os内核代码加载之前对内存数据进行度量;上述的可信策略为根据实际情况制定的规则,该规则用于在某一结果或情况出现时,主机进行某一操作,例如,当bios程序度量不可信时,进行断电、强制重启操作等。

还需要说明的是,tpcm对内存数据进行度量时,可以由度量代理模块主动将内存数据发送给tpcm进行度量,也可以由度量代理模块将数据的地址发送给tpcm,由tpcm去内存中获取数据进行度量,其中,tpcm按照地址主动去内存中获取数据时,可以通过pcie接口去内存获取数据。

通过对计算子系统启动过程中需要加载并执行的程序一一进行可信度量,保证每一个程序都是可信的进而确保计算机内的重要资源不被破坏和篡改。

本发明还提供了一种基于双体系结构的可信计算平台的静态度量装置,该基于双体系结构的可信计算平台的静态度量装置可以用于执行本发明上述实施例中的基于双体系结构的可信计算平台的静态度量方法。

可信计算平台包括并行运行的防护子系统和计算子系统,计算子系统包括:主机cpu、内存、硬盘以及主板上除主机cpu和内存之外的其他模块,用于完成计算任务,防护子系统包括:可信平台控制模块,用于对计算子系统进行主动度量和主动控制,主动度量包括静态度量,可信平台控制模块通过pcie接口和预置接口与主板相连接,pcie接口用于可信平台控制模块与主机cpu及内存之间的通信,预置接口用于可信平台控制模块与主板上除主机cpu和内存之外的其他模块之间的通信。

图3是本发明实施例提供的一种基于双体系结构的可信计算平台的静态度量装置的结构示意图,如图3所示,该装置包括:

启动控制模块31,用于在可信计算平台上电后,可信平台控制模块先于主机cpu启动,来确定是否控制主机cpu启动;

度量处理模块32,用于如果确定控制主机cpu启动,可信平台控制模块对计算子系统启动过程中各阶段需要加载并执行的启动代码进行度量,并依据度量结果进行相应处理。

可选地,启动控制模块31可以用于:可信平台控制模块通过预置接口向主板上的时序控制电路发送控制信号,控制信号用于指示时序控制电路控制上电时序,使得可信平台控制模块先于主机cpu启动;可信平台控制模块通过预置接口读取主板上的固件存储区中的bios代码进行度量,若bios代码的度量结果可信,则确定控制主机cpu启动,加载并执行bios代码。

可选地,度量处理模块32用于:在当前阶段的启动代码执行过程中,通过当前阶段的启动代码的度量代理模块,对与下一阶段启动代码相关的一处理步骤进行拦截,同时可信平台控制模块获取下一阶段的启动代码,并进行度量,如果对下一阶段的启动代码的度量结果为可信,则可信平台控制模块通过pcie接口向当前阶段的启动代码的度量代理模块发送控制指令,以使当前阶段的启动代码的度量代理模块解除拦截,以允许与下一阶段启动代码相关的一处理步骤的执行;其中,当前阶段包括:bios代码执行阶段、osloader代码执行阶段、os内核代码执行阶段和os系统服务代码执行阶段中的任一者。

可选地,可信平台控制模块获取下一阶段的启动代码,包括:当前阶段的启动代码的度量代理模块直接读取硬盘或内存中的下一阶段的启动代码,并通过pcie接口发送给可信平台控制模块,以使可信平台控制模块获取下一阶段的启动代码;或者,当前阶段的启动代码的度量代理模块将下一阶段的启动代码的地址信息通过pcie接口发送给可信平台控制模块,以使可信平台控制模块根据接收到的地址信息通过pcie接口从内存中或者通过预置接口从主板上的硬盘中获取下一阶段的启动代码,地址信息为下一阶段的启动代码在硬盘中或者内存中的地址信息。

可选地,对与下一阶段启动代码相关的一处理步骤进行拦截,包括:对当前阶段的启动代码加载下一阶段的启动代码进行拦截;或者,在当前阶段的启动代码将下一阶段的启动代码加载到内存后,拦截下一阶段的启动代码的执行。

可选地,在计算子系统的启动流程执行到一指定阶段时,通过指定阶段对应的启动代码的度量代理模块,拦截指定阶段对应的启动代码加载下一阶段的启动代码,同时可信平台控制模块获取内存数据,并进行度量;如果内存数据度量结果为可信,则允许可信平台控制模块获取下一阶段的启动代码;如果内存数据度量结果为不可信,则禁止可信平台控制模块获取下一阶段的启动代码,和/或,报警。

可选地,度量处理模块32用于:在bios代码执行过程中,bios代码中的度量代理模块首先拦截bios加载osloader代码,然后通过pcie接口向可信平台控制模块发送通知消息,通知osloader代码的地址信息,之后可信平台控制模块通过预置接口从主板上的硬盘中读取osloader代码进行可信度量,若osloader代码度量结果可信则可信平台控制模块通过pcie接口向bios代码中的度量代理模块发送控制指令,bios代码中的度量代理模块解除拦截,bios对osloader代码进行加载并执行;在osloader代码执行过程中,osloader代码中的度量代理模块首先拦截osloader代码加载os内核代码,然后通过pcie接口向可信平台控制模块发送通知消息,可信平台控制模块首先通过pcie接口直接访问内存,读取内存数据进行度量,若内存数据度量结果可信,则可信平台控制模块按照通知消息中携带的os内核代码在硬盘中的地址信息,通过预置接口从硬盘中直接读取os内核代码进行度量,若os内核代码度量结果可信则可信平台控制模块通过pcie接口向osloader代码中的度量代理模块发送控制指令,osloader代码中的度量代理模块解除拦截,osloader代码对os内核代码进行加载并执行;在os内核代码执行过程中,os内核代码中的度量代理模块首先拦截os内核代码加载os系统服务代码,然后通过pcie接口向可信平台控制模块发送通知消息,通知os系统服务代码的地址信息,之后可信平台控制模块通过预置接口从主板上的硬盘中读取os系统服务代码进行可信度量,若os系统服务代码度量结果可信则可信平台控制模块通过pcie接口向os内核代码中的度量代理模块发送控制指令,os内核代码中的度量代理模块解除拦截,os内核代码对os系统服务代码进行加载并执行;在os系统服务代码执行过程中,os系统服务代码中的度量代理模块首先拦截os系统服务代码加载应用程序代码,然后通过pcie接口向可信平台控制模块发送通知消息,通知应用程序代码的地址信息,之后可信平台控制模块通过预置接口从主板上的硬盘中读取应用程序代码进行可信度量,若应用程序度量结果可信则可信平台控制模块通过pcie接口向os系统服务代码中的度量代理模块发送控制指令,os系统服务代码中的度量代理模块解除拦截,os系统服务代码对应用程序代码进行加载并执行。

通过本发明实施例中的该装置,在可信计算平台上电时,可信平台控制模块先于主机cpu启动,对bios固件及主机启动过程中各阶段需要加载并执行的启动代码进行度量,能够实现可信平台控制模块对主机的启动过程进行主动安全防御的目的,由于可信平台控制模块相对独立且具有较高的控制权限,可信平台控制模块的安全防御功能并不依赖主机系统安全性能,进而达到了提高主机安全性能的技术效果。

在一个实施例中,本发明提供了一种存储介质,存储介质用于存储程序,程序用于实现上述任一项基于双体系结构的可信计算平台的静态度量方法的步骤。

在一个实施例中,本发明提供了一种处理器,处理器用于执行程序,程序用于实现上述任一项基于双体系结构的可信计算平台的静态度量方法的步骤。

本发明基于双体系结构的可信计算平台的静态度量方法具有以下优点:

在不改变主机cpu的前提下,实现了主机cpu在计算的同时主动对主机cpu进行安全防护的目的。计算与防护并行的双体系结构,使得防护功能不依赖于主机cpu的安全性能。

防护子系统具有对计算子系统的主动防护能力,其安全防护不是通过计算子系统的主机程序调用执行的,而是以tpcm为信任根,主动对计算子系统发起的主动度量和主动控制。

防护子系统可以对计算子系统进行静态度量和动态度量,可以实现为计算子系统的启动、运行等整个生命周期提供安全防护。

防护子系统可以不受限制的访问计算子系统中的内存以及i/o外设等,但计算子系统不可以访问防护子系统中的内存以及i/o外设等,以确保防护子系统自身的安全性能。

防护子系统不对外提供服务,减少了攻击面,使得防护子系统更加难以被外界攻击,提高自身安全性能。

防护子系统具有独立的计算、存储等资源,在对计算子系统进行安全防护时可以减少对计算子系统的资源占用,计算子系统的业务应用可以在不影响其性能的同时获得安全防护。

在静态信任链建立过程中,对计算子系统当前内存进行度量,可以保证计算子系统内存中的数据不被非法篡改,保障了加载下一阶段程序的内存环境可信,提高了安全性。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

关于上述实施例中的存储介质与处理器,其存储的程序操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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