可信计算系统构建方法、装置、可信计算系统及处理器与流程

文档序号:18886526发布日期:2019-10-15 21:00阅读:376来源:国知局
可信计算系统构建方法、装置、可信计算系统及处理器与流程

本申请涉及可信计算领域,具体而言,涉及一种可信计算系统构建方法、装置、可信计算系统及处理器。



背景技术:

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

为解决当前网络空间安全面临的问题,国际上tcg组织提出了可信计算的方法,提出了以tpm和bios起始代码为信任根,一级度量一级,进而构建起计算机的信任链,保护计算机重要资源不被非法篡改和破坏,起到了较好的效果。tpm是作为计算机的外部设备,以被动挂接的方式,通过主机软件调用来发挥作用,仅能对计算机的固件和可执行程序等资源进行静态度量。以tpm方式所实现的可信计算平台实质是单系统架构,只有被主机程序调用才会发挥作用,其安全能力完全依赖于主机系统的安全性,并不能实质上提升计算机系统的主动防御能力,一旦主机被攻击者控制,tpm的作用就会无从发挥,导致tcg的可信计算架构在面对黑客利用计算机系统逻辑缺陷进行攻击时,基本难以抵御。例如windows10完全实现了tcg的可信计算架构,但是却未能阻止wannacry勒索病毒的攻击。

此外,以tpm方式所实现的可信计算平台实质是单系统架构,tpm在对计算机的资源访问、控制上都有局限性。tpm仅能对计算机的固件和可执行程序等资源进行静态度量,无法对应用执行及其所依赖的执行环境进行动态度量。

针对相关技术中以tpm方式所实现的可信计算系统难以提升计算机系统的防御能力的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请提供一种可信计算系统构建方法、装置、可信计算系统及处理器,以解决相关技术中以tpm方式所实现的可信计算系统难以提升计算机系统的防御能力的问题。

根据本申请的一个方面,提供了一种可信计算系统构建方法。该方法包括:建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量。

进一步地,通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接包括:可信计算模块通过预置接口控制计算机主板上的时序控制电路,使得目标芯片在计算机主板上的中央处理器启动前启动;可信计算模块通过预置接口读取计算机主板上的固件存储区中的bios固件;可信计算模块通过pcie接口读取计算机主板上的内存数据。

进一步地,该方法还包括:在目标芯片启动时,目标芯片加载可信平台控制模块固件,并利用可信平台控制模块固件对目标芯片的固有固件进行可信性度量,在度量结果可信的情况下加载目标芯片的固有固件。

根据本申请的一个方面,提供了一种可信计算系统。该系统包括:可信计算模块,至少包括互相连接的目标芯片与外接持久化存储区,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;计算机主板,通过pcie接口和预置接口与可信计算模块连接。

进一步地,预置接口用于通过第一总线控制计算机主板上的时序控制电路,和/或通过第二总线读取bios固件,和/或通过第三总线控制计算机主板上的外置设备。

进一步地,可信计算模块还包括:同步动态随机存取内存,与目标芯片连接,用于对数据进行存储。

进一步地,目标芯片还包括:第一接口,用于与同步动态随机存取内存进行数据传输;第二接口,用于与持久化存储区进行数据传输。

进一步地,持久化存储区包括:用户存储区,用于存储目标芯片的目标用户的行为数据;可信存储区,用于至少存储目标芯片的固有固件、可信平台控制模块固件、可信软件基、可信密码模块固件以及度量日志,其中,度量日志为可信计算模块对计算机主板进行可信度量时产生的日志。

根据本申请的另一方面,提供了一种可信计算系统构建装置。该装置包括:第一构建单元,用于建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;第二构建单元,用于通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量。

为了实现上述目的,根据本申请的另一方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一种可信计算系统构建方法。

通过本申请,采用以下步骤:建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量,解决了相关技术中以tpm方式所实现的可信计算系统难以提升计算机系统的防御能力的问题。通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,进而达到了提高可信计算系统对计算机系统进行防御的能力的效果。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例提供的可信计算系统构建方法的流程图;

图2是根据本申请实施例提供的可信计算系统的示意图;

图3是根据本申请实施例提供的另一种可信计算系统的示意图;以及

图4是根据本申请实施例提供的可信计算系统构建装置的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:

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

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

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

根据本申请的实施例,提供了一种可信计算系统构建方法。

图1是根据本申请实施例的可信计算系统构建方法的流程图。如图1所示,该方法包括以下步骤:

步骤s101,建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件。

需要说明的是,目标芯片为嵌入式芯片,需要在嵌入式芯片中集成tpcm功能,具体地,通过在持久化存储区中存储可信平台控制模块固件、可信软件基以及可信密码模块固件,并建立嵌入式芯片和持久化存储区的连接,构成可信计算模块,通过嵌入式芯片与持久化存储区之间的数据传输,可以实现嵌入式芯片能够运行可信平台控制模块固件、可信软件基以及可信密码模块固件,以使得嵌入式芯片具有tpcm功能。

步骤s102,通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量。

具体地,将可信计算模块通过pcie接口和预置接口与计算机主板相连接,构建得到双体系结构的可信计算系统。在该双体系结构的可信计算系统中,计算机主板上的cpu、内存、cpld、biosflash、外接设备等可以构成计算子系统,以实现执行计算任务,以集成有tpcm功能的嵌入式芯片和持久化存储区为主的可信计算模块构成防护子系统,防护子系统与计算子系统是并行运行关系,防护子系统的安全性和可靠性并不依赖于计算子系统,且防护子系统具有比计算子系统更高的控制权限,以实现防护子系统对计算子系统进行静态度量、动态度量以及主动控制的目的。

需要说明的是,pcie接口为用户数据访问接口,通过pcie接口实现防护子系统与主板上的cpu之间可以进行数据传输和命令交互,预置接口用于通过第一总线控制计算子系统上的时序控制电路,和/或通过第二总线读取bios固件,和/或通过第三总线控制计算子系统上的外置设备,本申请实施例对预置接口的形式不做具体限定,例如预置接口可以为spi方式,基于主板插针、接插件、插槽、金手指等方式实现,具体接口数量根据实际情况可以设计实现。

通过预置接口,防护子系统可以通过gpio总线控制主板上的时序控制电路cpld,控制防护子系统中的嵌入式芯片先于主板上的cpu启动,以实现嵌入式芯片对计算系统进行静态度量,建立静态信任链。通过预置接口,防护子系统还可以通过spi总线访问biosflash读取bios固件,以实现在计算系统启动过程中对bios进行度量。通过预置接口,防护子系统还可以根据度量结果通过smbus总线,利用bmc对主板上的外设进行控制。

可选地,在本申请实施例提供的可信计算系统构建方法中,通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接包括:可信计算模块通过预置接口控制计算机主板上的时序控制电路,使得目标芯片在计算机主板上的中央处理器启动前启动;可信计算模块通过预置接口读取计算机主板上的固件存储区中的bios固件;可信计算模块通过pcie接口读取计算机主板上的内存数据。

具体地,可信计算系统上电之后,通过控制计算机主板上的时序控制电路使得具有tpcm功能的嵌入式芯片先于主板上的cpu启动,并通过spi总线读取bios固件进行可信度量,若bios度量结果可信,则具有tpcm功能的嵌入式芯片会通过flash接口依次读取持久化存储区中的osloader代码、os内核代码、os系统服务代码、应用程序代码进行可信度量,直至建立静态信任链,同时,在静态信任链建立过程中,具有tpcm功能的嵌入式芯片还可以通过pcie总线读取内存数据进行可信度量。

可选地,在本申请实施例提供的可信计算系统构建方法中,该方法还包括:在目标芯片启动时,目标芯片加载可信平台控制模块固件,并利用可信平台控制模块固件对目标芯片的固有固件进行可信性度量,在度量结果可信的情况下加载目标芯片的固有固件。

具体地,具有tpcm功能的嵌入式芯片启动时,首先加载tpcm固件,然后tpcm固件提供tpcm功能,并对嵌入式芯片本身的固件进行可信性度量,度量通过后才加载嵌入式芯片本身的固件。

本申请实施例提供的可信计算系统构建方法,通过建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量,解决了相关技术中以tpm方式所实现的可信计算系统难以提升计算机系统的防御能力的问题。通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,进而达到了提高可信计算系统对计算机系统进行防御的能力的效果。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图2是根据本申请实施例的可信计算系统的示意图。如图2所示,该系统包括:

可信计算模块,至少包括互相连接的目标芯片与外接持久化存储区,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;

计算机主板,通过pcie接口和预置接口与可信计算模块连接。

具体地,目标芯片为嵌入式芯片,建立嵌入式芯片和持久化存储区的连接,构成可信计算模块,通过嵌入式芯片与持久化存储区之间的数据传输,实现嵌入式芯片能够运行可信平台控制模块固件、可信软件基以及可信密码模块固。可信计算模块通过pcie接口以及预置接口和计算机主板连接,构建得到双体系结构的可信计算系统,主板上的cpu、内存、cpld、biosflash、外设等配合以实现执行计算任务,在可信计算机主板上电之后,通过主板上的时序控制电路控制可信计算模块先于主板的cpu启动,实现以可信计算模块为信任根,对主机进行主动度量和主动控制。

其中,嵌入式芯片包括至少包括芯片中央处理器以及存储器,嵌入式芯片中的芯片中央处理器负责运行业务逻辑控制的执行,主要包括tpcm业务和存储业务的逻辑控制,存储器包括多个,分别存储可信计算中产生的不同的数据,例如,otp寄存器负责存储硬件配置信息和芯片唯一的根密钥以及用于验签的部分公钥数据;卡内支持ddr(双倍速率同步动态存储器)扩大了系统的ram(随机存储器)容量;片上内存,主要用于缓存中转数据和内部固件使用;dma(直接内存存取)通过专用总线将存储器与具有dma能力的外置设备连接起来;rom(只读存储器)主要包括量产时候的首次验签功能和量产过后的系统安全引导功能。需要说明的是,本申请与密码密钥相关的操作可以放在嵌入式芯片内的存储区进行,将受tpcm密钥管理机制加密保护的密钥,由sdram(同步动态随机存取内存)解密到片内ocm(片上存储器)区域使用,相比在片外sram(静态随机存取存储器)中明文使用密钥,明文密钥在片内ocm区域使用将会更加安全。ocm与加解密引擎之间通过sdma(数据加解密专用dma)进行数据传输,同理,在tpcm密钥生成阶段,由密码算法引擎生成的明文密钥通过sdma送入ocm中,再经过存储密钥加密之后送到芯片外的sdram中,最终保存于持久化存储区上。

可信平台控制模块固件至少包括:指令处理模块、初始化模块、输入输出驱动模块、可信功能模块和度量模块,指令处理模块负责对外部实体发送的指令进行解析和执行,初始化模块负责模块初始化、模块自检、可信计算系统状态初始化等,输入输出驱动模块主要是模块内输入输出的驱动函数库,主动度量模块负责对内存的主动度量,可信功能模块主要提供基本的可信支撑。

此外,目标芯片包括还包括timer定时器,用于对片内时钟脉冲计数;gpio(通用输入、输出口),负责向外部发出控制信号与状态信号。

需要说明的是,可信计算模块具有独立的计算、存储等资源,在对计算机主板进行安全防护时可以减少对计算机主板的资源占用,计算机主板在业务应用的性能不受影响的同时获得安全防护,且可信计算模块不对外提供服务,使可信计算模块难以被外界攻击,提高自身安全性能。

此外,本申请实施例对可信计算模块的存在形式不做具体限定,例如,可信计算模块可以为兼具可信计算和磁盘控制的硬盘,本申请实施例对双体系结构的可信计算机主板的存在形式也不做具体限定,例如,其可以是服务器、pc等。

可选地,在本申请实施例提供的可信计算系统构建系统中,预置接口用于通过第一总线控制计算机主板上的时序控制电路,和/或通过第二总线读取bios固件,和/或通过第三总线控制计算机主板上的外置设备。

需要说明的是,本申请实施例对预置接口的形式不做具体限定,例如预置接口可以为spi方式,基于主板插针、接插件、插槽、金手指等方式实现,具体接口数量根据实际情况可以设计实现。

如图3所示,通过预置接口,防护子系统可以通过gpio总线控制主板上的时序控制电路cpld,控制防护子系统中的嵌入式芯片先于主板上的cpu启动,以实现嵌入式芯片对计算系统进行静态度量,建立静态信任链。通过预置接口,防护子系统还可以通过spi总线访问biosflash读取bios固件,以实现在计算系统启动过程中对bios进行度量。通过预置接口,防护子系统还可以根据度量结果通过smbus总线,利用bmc对主板上的外设进行控制。

通过本实施例,防护子系统可以不受限制的访问计算系统中的内存以及i/o外设等,而计算系统无法访问防护子系统中的内存以及i/o外设等,以确保防护子系统自身的安全性。

可选地,在本申请实施例提供的可信计算系统构建系统中,可信计算模块还包括:同步动态随机存取内存,与目标芯片连接,用于对数据进行存储。

可选地,在本申请实施例提供的可信计算系统构建系统中,目标芯片还包括:第一接口,用于与同步动态随机存取内存进行数据传输;第二接口,用于与持久化存储区进行数据传输。

具体地,第一接口可以为ddr接口,通过该ddr接口可以实现嵌入式芯片访问sdram。第二接口可以为设置flash接口,通过该flash接口可以实现嵌入式芯片访问持久化存储区,例如flash。

此外,目标芯片上还可以设置第三接口,用于通过数据线进行目标芯片内的各个模块之间的数据传输,第三接口可以为spi接口以及i2c接口,spi接口用于传输度量信息、核心数据等,i2c负责为tpcm提供低速数据访问接口,主要用于自定义命令交互。

可选地,在本申请实施例提供的可信计算系统构建系统中,持久化存储区包括:用户存储区,用于存储目标芯片的目标用户的行为数据;可信存储区,用于至少存储目标芯片的固有固件、可信平台控制模块固件、可信软件基、可信密码模块固件以及度量日志,其中,度量日志为可信计算模块对计算机主板进行可信度量时产生的日志。

具体地,用户存储区用于存储嵌入式芯片的使用用户的行为产生的数据,可信存储区可以用于存储嵌入式芯片本身的固件、tpcm固件、tsb程序、密钥、度量日志等内容。

需要说明的是,可信计算平台上电后,具有tpcm功能的嵌入式芯片利用预置接口,通过gpio总线向主板上的时序控制电路cpld发送控制信号,cpld控制上电时序,使得具有tpcm功能的嵌入式芯片先于主板上的cpu启动,然后具有tpcm功能的嵌入式芯片加载并执行tpcm操作系统和tsb程序。

具有tpcm功能的嵌入式芯片利用预置接口、通过spi总线访问biosflash,对bios固件进行度量,并将度量结果存储在嵌入式芯片中的存储区,或者将度量结果发送给可信计算模块中的持久化存储区、sdram中进行存储。若bios度量结果可信,具有tpcm功能的嵌入式芯片利用预置接口、通过gpio总线控制cpld,使得主板上的cpu启动,cpu通过南桥芯片加载并执行bios。若bios度量结果不可信,则具有tpcm功能的嵌入式芯片可以依据可信策略进行控制处理,例如通过主板上的时序控制电电路控制可信计算平台强制重启、断电等。

bios固件执行过程中,bios代码中的度量代理模块首先拦截bios加载osloader代码,然后通过pcie接口向具有tpcm功能的嵌入式芯片发送通知消息,通知osloader的地址信息,之后具有tpcm功能的嵌入式芯片通过flash接口、按照地址信息从持久化存储区中读取osloader代码进行度量。或者,bios代码中的度量代理模块直接读取持久化存储区中的osloader代码发送给具有tpcm功能的嵌入式芯片,具有tpcm功能的嵌入式芯片对osloader代码进行可信度量,具体地,包括完整性、签名验签、关键信息检查等。若osloader代码度量结果不可信则依据策略进行控制处理;若osloader代码度量结果可信则具有tpcm功能的嵌入式芯片向bios代码中的度量代理模块发送控制指令,bios代码中的度量代理模块解除拦截,bios固件对osloader代码进行加载并执行。

osloader代码执行过程中,osloader代码中的度量代理模块首先拦截osloader代码加载os内核代码,然后通过pcie接口向具有tpcm功能的嵌入式芯片发送通知消息,通知os内核代码的地址信息,具有tpcm功能的嵌入式芯片通过flash接口、按照地址信息从持久化存储区中读取os内核代码进行度量。若os内核代码度量结果不可信则依据策略进行控制处理;若os内核代码度量结果可信则具有tpcm功能的嵌入式芯片向osloader代码中的度量代理模块发送控制指令,osloader代码中的度量代理模块解除拦截,osloader代码对os内核代码进行加载并执行。

os内核代码执行过程中,os内核代码中的度量代理模块首先拦截os内核代码加载os系统服务代码,然后通过pcie接口向具有tpcm功能的嵌入式芯片发送通知消息,通知os系统服务代码的地址信息,之后具有tpcm功能的嵌入式芯片通过flash接口、按照地址信息从持久化存储区中读取os系统服务代码进行可信度量。若os系统服务代码度量结果不可信则依据策略进行控制处理;若os系统服务代码度量结果可信则具有tpcm功能的嵌入式芯片向os内核代码中的度量代理模块发送控制指令,os内核代码中的度量代理模块解除拦截,os内核代码对os系统服务代码进行加载并执行。

os系统服务代码执行过程中,os系统服务代码中的度量代理模块首先拦截os系统服务代码加载应用程序代码,然后通过pcie接口向具有tpcm功能的嵌入式芯片发送通知消息,通知应用程序代码的地址信息,之后具有tpcm功能的嵌入式芯片通过flash接口、按照地址信息从持久化存储区中读取应用程序代码进行可信度量。若应用程序度量结果不可信则依据策略进行控制处理,例如阻止应用程序代码加载,报警等;若应用程序度量结果可信则具有tpcm功能的嵌入式芯片向os系统服务代码中的度量代理模块发送控制指令,os系统服务代码中的度量代理模块解除拦截,os系统服务代码对应用程序代码进行加载并执行。

osloader代码执行过程中,osloader代码中的度量代理模块首先拦截osloader代码加载os内核代码,然后通过pcie接口向具有tpcm功能的嵌入式芯片发送通知消息,通知os内核代码的地址信息,之后,具有tpcm功能的嵌入式芯片首先通过pcie接口直接访问内存,读取内存数据进行度量。或者,也可以由osloader代码中的度量代理模块将内存数据传给具有tpcm功能的嵌入式芯片进行度量)。若内存数据度量结果不可信则依据策略进行控制处理。若内存数据度量结果可信,则具有tpcm功能的嵌入式芯片通过flash接口、按照地址信息从持久化存储区中读取os内核代码进行度量。若os内核代码度量结果不可信则依据策略进行控制处理;若os内核代码度量结果可信则具有tpcm功能的嵌入式芯片向osloader代码中的度量代理模块发送控制指令,osloader代码中的度量代理模块解除拦截,osloader代码对os内核代码进行加载并执行。

具有tpcm功能的嵌入式芯片对内存数据进行度量时,可以由度量代理模块主动将内存数据发送给具有tpcm功能的嵌入式芯片进行度量,也可以由度量代理模块将数据的地址发送给具有tpcm功能的嵌入式芯片,由具有tpcm功能的嵌入式芯片去内存中获取数据进行度量,其中,具有tpcm功能的嵌入式芯片按照地址主动去内存中获取数据时,可以通过pcie总线去内存获取数据。

需要说明的是,本申请实施例中,可以根据可信策略选择在启动流程中的任一阶段获取内存数据并对内存数据进行度量,并不仅限于上述示例中所述的在osloader代码执行过程中、在os内核代码加载之前对内存数据进行度量。

此外,需要说明的是,在满足动态度量的触发条件时,具有tpcm功能的嵌入式芯片可以根据可信策略对内存、cpu、外设、tsb中一个或者多个对象进行度量,综合判断得到控制处理方法,其中,动态度量的触发条件包括但并不限于:行为触发、时间触发等,度量结果和度量日志可以存储于可信计算模块中的持久化存储区或sdram中。

例如,具有tpcm功能的嵌入式芯片对内存进行动态度量,可以保证计算系统内存中的数据不被非法篡改,保障了加载下一阶段程序的内存环境可信,提高了安全性,对内存进行动态度量可以包括定时度量和实时度量,其中,定时度量为在达到预定时间点和/或预定度量周期时,具有tpcm功能的嵌入式芯片根据可信策略对内存进行的主动度量。实时度量为在行为触发和/或事件触发时,具有tpcm功能的嵌入式芯片根据可信策略对内存进行的主动度量。

具体地,在定时度量中,按照预定度量周期,具有tpcm功能的嵌入式芯片按照以下方式获取内存数据的方式可以包括但并不限于:tsb代理程序通过pcie总线将数据直接发送给具有tpcm功能的嵌入式芯片,tsb代理程序通过pcie总线将数据地址发送给具有tpcm功能的嵌入式芯片,具有tpcm功能的嵌入式芯片通过pcie总线直接访问内存,从内存中获取数据。度量过程可以包括:步骤1,在达到预定时间点和/或预定度量周期时,具有tpcm功能的嵌入式芯片从内存中获取当前主机内存数据,例如执行环境信息,执行环境信息包括进程环境和系统环境,例如操作系统内核代码、内核数据、进程代码、进程数据等;步骤2,按照匹配到的可信策略对该执行环境信息进行度量,并将度量结果和度量日志存储于tpcm中;步骤3,根据度量结果以及可信策略中的判定方法进行判定,确定控制处理方法,例如是否进行报告或修复,并生成报告;步骤4,根据控制处理方法,对主机进行相应控制。

在实时度量中,由于tpcm具有两种度量模式,分别为直接度量模式和代理度量模式。在代理度量模式下,tsb代理程序可以植入到主机操作系统内核中,该代理程序可以获取到内存中的相关信息(例如行为信息),同时,该代理程序还可以接收tpcm的控制指令,协助对主机进行控制,例如杀死主机进程、关机、进行数据处理、设备控制等。在代理度量模式下,以系统调用行为触发为例,具有tpcm功能的嵌入式芯片对内存的动态度量过程可以包括:步骤1,tsb代理程序检测到系统调用行为时,从上下文信息中获取与系统调用行为相关的四元组信息,即主体、客体、操作以及执行环境,具体包括进程环境和系统环境。tsb代理程序可以直接将获取到的四元组信息通过pcie总线发送给具有tpcm功能的嵌入式芯片进行度量,或者,tsb代理程序也可以将四元组信息的地址通过pcie总线发送给具有tpcm功能的嵌入式芯片,由具有tpcm功能的嵌入式芯片通过pcie总线从内存中获取四元组信息进行度量;步骤2,根据匹配到的可信策略对系统调用行为进行度量,并将度量结果和度量日志存储于tpcm中;步骤3,根据度量结果以及可信策略中的判定方法进行判定,确定控制处理方法,例如是否进行报告或修复,并生成报告;步骤4,根据控制处理方法,对主机进行相应控制。其中,控制处理方式可以包括但并不限于:是否允许计算系统当前系统调用行为执行、直接恢复计算系统被破坏数据、报告度量错误、杀死计算系统的主机进程、协同其它安全机制进行控制等。

需要说明的是,当tsb代理程序检测到系统调用行为时,可以先进行拦截,在具有tpcm功能的嵌入式芯片对系统调用行为进行度量之后,根据度量结果确定是否允许该系统调用行为执行。根据度量结果,具有tpcm功能的嵌入式芯片可以通过pcie总线向tsb代理程序发送控制指令,tsb代理程序可以根据控制指令对系统调用行为进行控制,若内存的度量结果不可信时,具有tpcm功能的嵌入式芯片可以通过pcie总线向tsb代理程序发送控制指令,tsb代理程序根据控制指令协助进行控制。或者,当tsb代理程序检测到系统调用行为时,可以先允许其执行,同时具有tpcm功能的嵌入式芯片对系统调用行为进行度量,并根据度量结果确定对该系统调用行为的后续行为的控制处理方式,例如当确定该系统调用行为不可信时,当该系统调用行为再次发生时阻止其执行。

再例如,具有tpcm功能的嵌入式芯片对cpu的动态度量,具体地,在满足动态度量的触发条件时,具有tpcm功能的嵌入式芯片可以通过pcie(或预置接口)直接读取cpu运行状态数据,实现对cpu的主动度量。若cpu的度量结果不可信时,具有tpcm功能的嵌入式芯片可以直接向主板发送控制指令,例如控制主板上的时序控制电路控制cpu强制重启或者断电等,或由预置接口进行实现,通过spi进行控制实现重启或者断电。

再例如,具有tpcm功能的嵌入式芯片对外设的动态度量,具体地,在满足动态度量的触发条件时,具有tpcm功能的嵌入式芯片可以通过系统管理总线smbus获取外设的运行状态数据,并按照可信策略对外设进行主动度量,若外设的度量结果不可信时,具有tpcm功能的嵌入式芯片可以通过smbus向bmc(基板管理控制器)发送控制指令,以实现对外设的控制。

再例如,具有tpcm功能的嵌入式芯片对tsb的动态度量,具体地,可信软件基tsb运行后,可以将自身运行空间中的核心数据的内存物理地址通过tpcm接口下发给tpcm,自身运行空间核心数据包括策略库、基准库、各功能机制的执行代码段、动态库等。tpcm通过动态度量功能以pcie-dma的方式周期性度量可信软件基内存空间中关键数据的完整性,以保障可信软件基的运行安全,tpcm通过自身的存储空间和加密机制为可信软件基的运行数据提供安全存放空间。可信软件基可以将自身的策略、配置信息、基准库等其他关键数据存放于tpcm中,加强对可信软件基的存储安全保障。

本申请实施例还提供了一种可信计算系统构建装置,需要说明的是,本申请实施例的可信计算系统构建装置可以用于执行本申请实施例所提供的用于可信计算系统构建方法。以下对本申请实施例提供的可信计算系统构建装置进行介绍。

图4是根据本申请实施例的可信计算系统构建装置的示意图。如图4所示,该装置包括:第一构建单元41和第二构建单元42。

具体地,第一构建单元41,用于建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;

第二构建单元42,用于通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量。

可选地,在本申请实施例提供的可信计算系统构建装置中,第二构建单元42包括:控制模块,用于采用可信计算模块通过预置接口控制计算机主板上的时序控制电路,使得目标芯片在计算机主板上的中央处理器启动前启动;第一读取模块,用于采用可信计算模块通过预置接口读取计算机主板上的固件存储区中的bios固件;第二读取模块,用于采用可信计算模块通过pcie接口读取计算机主板上的内存数据。

可选地,在本申请实施例提供的可信计算系统构建装置中,加载单元,用于在目标芯片启动时,目标芯片加载可信平台控制模块固件,并利用可信平台控制模块固件对目标芯片的固有固件进行可信性度量,在度量结果可信的情况下加载目标芯片的固有固件。

本申请实施例提供的可信计算系统构建装置,通过第一构建单元41建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;第二构建单元42通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量,解决了相关技术中以tpm方式所实现的可信计算系统难以提升计算机系统的防御能力的问题,通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,进而达到了提高可信计算系统对计算机系统进行防御的能力的效果。

所述可信计算系统构建装置包括处理器和存储器,上述第一构建单元41和第二构建单元42等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中以tpm方式所实现的可信计算系统难以提升计算机系统的防御能力的问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述可信计算系统构建方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述可信计算系统构建方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量。

通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接包括:可信计算模块通过预置接口控制计算机主板上的时序控制电路,使得目标芯片在计算机主板上的中央处理器启动前启动;可信计算模块通过预置接口读取计算机主板上的固件存储区中的bios固件;可信计算模块通过pcie接口读取计算机主板上的内存数据。

该方法还包括:在目标芯片启动时,目标芯片加载可信平台控制模块固件,并利用可信平台控制模块固件对目标芯片的固有固件进行可信性度量,在度量结果可信的情况下加载目标芯片的固有固件。本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:建立目标芯片与外接持久化存储区之间的连接,以构建可信计算模块,其中,持久化存储区用于存储可信平台控制模块固件、可信软件基以及可信密码模块固件,目标芯片读取可信平台控制模块固件、可信软件基以及可信密码模块固件;通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接,以构建可信计算系统,其中,可信计算模块用于构成可信计算系统的防护子系统,计算机主板用于构成可信计算系统的计算子系统,防护子系统与计算子系统并行运行,用于对计算子系统进行主动度量。

通过pcie接口和预置接口建立可信计算模块与计算机主板之间的连接包括:可信计算模块通过预置接口控制计算机主板上的时序控制电路,使得目标芯片在计算机主板上的中央处理器启动前启动;可信计算模块通过预置接口读取计算机主板上的固件存储区中的bios固件;可信计算模块通过pcie接口读取计算机主板上的内存数据。

该方法还包括:在目标芯片启动时,目标芯片加载可信平台控制模块固件,并利用可信平台控制模块固件对目标芯片的固有固件进行可信性度量,在度量结果可信的情况下加载目标芯片的固有固件。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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