一种计算与防护并行双体系结构的可信计算平台
技术领域
本发明涉及可信计算技术领域,具体涉及一种计算与防护并行双体系结构的可信计算平台。
背景技术
当前的网络空间极其脆弱,震网、Wannacry勒索病毒、Mirai等造成较大影响的网络攻击事件层出不穷,且日益猖獗。究其根源,在于并没有从网络安全风险的实质原因入手解决问题,一味采用以“防火墙”、“病毒查杀”、“入侵检测”等为代表的“封堵查杀”被动防御手段,防不胜防,特别在面对针对目标系统的漏洞发起的攻击时,根本无法有效防御。
为解决当前网络空间安全面临的问题,国际TCG组织提出了可信计算的方法,提出了以TPM和BIOS起始代码为信任根,一级度量一级,进而构建起计算机的信任链,保护计算机重要资源不被非法篡改和破坏,起到了较好的效果。但是,TPM本质上只是计算机上一个被动挂接的外部设备,只有被主机程序调用才会发挥作用,一旦主机被攻击者控制,TPM的作用就会无从发挥,而且TPM仅实现了计算机启动时的静态度量,并未实现计算机运行时基于策略的动态度量,所以导致TCG的可信计算架构在面对黑客利用计算机系统逻辑缺陷进行攻击时,基本难以抵御,例如Windows 10完全实现了TCG的可信计算架构,但是却未能阻止Wannacry勒索病毒的攻击。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种计算与防护并行双体系结构的可信计算平台,改变了TPM作为被动挂接设备的传统思路,将可信平台控制模块作为主动度量和主动控制的源点,实现了可信平台控制模块对整个计算子系统的主动度量和主动控制。
为实现上述目的,本发明采用的技术方案如下:
一种计算与防护并行双体系结构的可信计算平台,包括:并行的计算子系统和防护子系统,其中,
所述计算子系统用于完成计算任务;
所述防护子系统用于通过可信平台控制模块,根据可信策略对所述计算子系统进行主动度量和主动控制;所述计算子系统与所述防护子系统之间具有安全隔离机制,通过专用访问通道进行交互;
所述防护子系统根据可信策略对所述计算子系统进行主动度量,包括:
通过可信软件基对所述计算子系统分别进行静态度量和动态度量。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述可信软件基包括基本层和控制层,所述基本层用于对所述计算子系统进行静态度量,所述控制层用于对所述计算子系统进行动态度量和控制处理。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述基本层具体用于建立所述计算子系统的信任链;所述基本层包括:初始环境验证度量模块、系统引导验证度量模块、内核验证度量模块、系统验证度量模块以及应用代码验证度量模块;
所述初始环境验证度量模块用于在所述可信平台控制模块启动后,且在所述计算子系统的CPU启动之前,对所述计算子系统的BIOS、OPROM及硬件配置进行主动度量;
所述系统引导验证度量模块用于在所述BIOS启动之后,在所述计算子系统的OSLoader代码加载之前,对所述OSLoader代码进行主动度量;
所述内核验证度量模块用于在所述OSLoader代码执行之后,在所述计算子系统的操作系统内核代码加载之前,对所述操作系统内核代码进行主动度量;
所述系统验证度量模块用于在所述操作系统内核代码执行之后,在所述计算子系统的系统服务加载之前,对所述系统服务进行主动度量;
所述应用代码验证度量模块用于在所述计算子系统运行过程中,当需要加载应用程序时,对待加载的应用程序进行主动度量。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述控制层具体用于根据可信策略对所述计算子系统中的应用执行的相关信息进行度量,所述相关信息包括以下至少之一:主体、客体、操作和执行环境;所述执行环境包括:应用执行所依赖的进程环境和应用执行所依赖的系统环境,所述系统环境包括:所述计算子系统的系统服务和所述计算子系统的操作系统内核;所述可信策略由主体、客体、操作和执行环境四元素构成。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述控制层包括两种度量模式,分别为直接度量模式和代理度量模式;在所述控制层采用所述代理度量模式时,所述控制层的代理程序植入到所述计算子系统中,所述控制层的代理程序用于获取所述计算子系统中的相关信息,并对所述计算子系统进行控制处理。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述动态度量包括以下度量方式中的至少之一:实时度量,用于在行为触发和/或事件触发时,根据可信策略进行主动度量;定时度量,用于在达到预定时间点和/或预定度量周期时,根据可信策略进行主动度量。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,在行为触发时,所述控制层采用以下任意一种方式对所述行为进行主动度量和控制处理:
拦截所述行为,若对所述行为的度量结果为可信,则允许所述行为执行,若对所述行为的度量结果为不可信,则根据可信策略对所述行为进行控制;
允许所述行为执行,并对所述行为进行主动度量,若对所述行为的度量结果为不可信,则根据可信策略对所述行为相关的后续行为进行控制。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述可信平台控制模块包括:TPCM硬件平台和TPCM操作系统;
所述TPCM硬件平台包括:中央处理器、专有物理内存、持久存储空间、内置TCM模块;
所述TPCM操作系统用于对所述防护子系统中的以下信息中的至少之一进行管理:进程、内存、文件系统、网络协议、I/O设备和接口。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述TPCM操作系统包括以下至少之一:TSB通信模块、主机资源访问支持模块、TCM管理和调度模块;
所述TSB通信模块用于所述防护子系统与所述可信软件基进行通信;
所述主机资源访问支持模块包括以下至少之一:主机内存访问模块、主机I/O设备访问模块和主机CPU状态访问模块,所述主机内存访问模块用于提供访问所述计算子系统内存的接口,所述主机I/O设备访问模块用于访问所述计算子系统总线上的I/O设备,所述主机CPU状态访问模块用于访问、读取或修改所述计算子系统的CPU寄存器;
所述TCM管理和调度模块用于支持所述可信软件基完成密码运算任务,并用于提供多TCM并存时的并发调度工作。
进一步,如上所述的一种计算与防护并行双体系结构的可信计算平台,所述可信计算平台还包括:所述计算子系统与所述防护子系统共享的可信密码模块,所述可信密码模块用于提供密码资源服务。
本发明的有益效果在于:本发明所提供的可信计算平台,通过并行的计算子系统和防护子系统实现在计算的同时进行主动安全防护。防护子系统是独立的主动防御体系,能够直接访问计算子系统的内存和I/O外设等资源,并依据可信策略对计算子系统实施主动度量和主动控制,保证计算子系统计算全程可测可控,不被干扰和破坏,可抵御各种已知的和未知的攻击。除了建立以可信平台控制模块为信任根逐级度量的静态信任链之外,还设计了基于安全可信策略的动态度量机制,实现了在计算机启动以及运行过程中对整个计算机系统的主动防御。
附图说明
图1为本发明实施例中提供的一种计算与防护并行双体系结构的可信计算平台的结构示意图。
具体实施方式
下面结合说明书附图与具体实施方式对本发明做进一步的详细说明。
目前,国际TCG组织提出的可信计算芯片TPM是作为计算机的外部设备,以被动挂接的方式,通过主机软件调用来发挥作用,对计算机的固件和可执行程序等资源进行静态度量,在资源访问、控制上都有局限性,其安全能力完全依赖于主机系统的安全性,难以防御黑客利用主机系统漏洞进行的攻击,并不能实质上提升计算机系统的主动防御能力。
本发明提出了一种计算与防护并行双体系结构的可信计算平台,该可信计算平台中包括并行的计算子系统与防护子系统。防护子系统与计算子系统是并行运行关系,其安全性和可靠性并不依赖于计算子系统。需要说明的是,本发明的可信计算平台可以通过以下任意一种方式构建:CPU片内构建、主板板载构建、PCI-E插卡构建、USB外接构建,此处本发明对具体构建方式所采取的技术手段不做具体限定。
术语解释
TPM:Trusted Platform Module,可信平台模块。
TCM:Trusted Cryptography Module,可信密码模块,可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间。
TPCM:trusted platform control module,可信平台控制模块,一种集成在可信计算平台中,用于建立和保障信任源点的硬件核心模块,为可信计算提供完整性度量、安全存储、可信报告以及密码服务等功能。
TSB:Trusted Software Base,可信软件基,为可信计算平台的可信性提供支持的软件元素的集合
TSM:TCMServiceModule,TCM服务模块,可信计算密码支撑平台内部的软件模块,为对平台外部提供访问可信密码模块的软件接口。
BIOS:Basic Input Output System,基本输入输出系统,是个人电脑启动时加载的第一个软件。
下面对可信计算平台的基本框架进行描述。
如图1所示,一种计算与防护并行双体系结构的可信计算平台,可信计算平台可以包括:并行的计算子系统和防护子系统,计算子系统用于完成计算任务,防护子系统用于通过可信平台控制模块,根据可信策略对计算子系统进行主动度量和主动控制;计算子系统与防护子系统之间具有安全隔离机制,可以通过专用访问通道进行交互;
防护子系统具体用于通过可信软件基对计算子系统分别进行静态度量和动态度量。
该可信计算平台以可信平台控制模块(TPCM)为信任根,TPCM先于计算子系统中的CPU启动对计算子系统中的BIOS、OPROM及硬件配置进行验证,改变了TPM作为被动挂接设备的传统思路,将TPCM作为主动度量和主动控制的源点,实现了TPCM对整个计算子系统的主动度量和主动控制。
该可信计算平台除了建立以TPCM为信任根逐级度量的静态信任链之外,还设计了基于安全可信策略的动态度量机制,实现了在计算机启动以及运行过程中对整个计算机系统的主动防御。
在该可信计算平台中,计算子系统与防护子系统之间具有安全隔离机制,可以通过专用访问通道进行交互。防护子系统具有比计算子系统更高的控制权限,防护子系统可以不受限制地访问计算子系统的内存以及I/O外设等,同时防护子系统可以对计算子系统进行控制,但计算子系统不能访问防护子系统的内存以及I/O外设等,更无法对防护子系统进行控制。计算子系统和防护子系统有各自独立的硬件资源支撑计算任务和安全任务,硬件资源包括CPU、内存、存储器等。TCM提供密码资源,计算子系统和防护子系统都可以使用,但是优先防护子系统使用。防护子系统的独立运行模式以及相对封闭的访问模式,可以提高防护子系统自身的安全性能。
下面对计算子系统和防护子系统的结构特征进行详细描述。
计算子系统可以包括:CPU(中央处理器)、BIOS(基本输入输出系统)、操作系统和应用软件,操作系统包括系统服务和内核。
防护子系统可以包括:TPCM硬件平台、TPCM操作系统以及可信软件基。
TPCM硬件平台可以包括:中央处理器、专有物理内存、持久存储空间、内置TCM模块。防护子系统并行于计算子系统执行,有自己的中央处理器CPU,专有物理内存。如果需要扩展密码计算能力,TPCM硬件平台还需要提供扩展TCM的总线和接口。
TPCM操作系统可以对防护子系统中的以下信息中的至少之一进行管理:进程、内存、文件系统、网络协议、I/O设备和接口。
TPCM操作系统可以包括以下至少之一:TSB通信模块、主机资源访问支持模块、TCM管理和调度模块。
TSB通信模块用于防护子系统与可信软件基进行通信。
主机资源访问支持模块可以包括以下至少之一:主机内存访问模块、主机I/O设备访问模块和主机CPU状态访问模块,主机内存访问模块用于提供访问计算子系统内存的接口,主机I/O设备访问模块用于访问计算子系统总线上的I/O设备,主机CPU状态访问模块用于访问、读取或修改计算子系统的CPU寄存器。
TCM管理和调度模块用于支持可信软件基完成密码运算任务,并用于提供多TCM并存时的并发调度工作。TCM管理和调度模块包括内置TCM以及扩展TCM,TSB可使用内置TCM完成度量和密码运算任务,扩展TCM可提供访问扩展TCM的驱动和软件接口,在内置TCM计算能力不足时,可使用扩展TCM进行密码计算。
可信计算平台还可以包括:计算子系统与防护子系统共享的可信密码模块,可信密码模块用于提供密码资源服务,具体用于提供基于国密算法的密钥管理、密码计算的密码资源服务,通过TCM服务模块提供调用服务。可信密码模块是一个独立的模块,可信密码模块可以具有自己的硬件和软件,可以包括但并不限于:密码算法引擎、随机数发生器、I/O接口等。
本发明提供的计算与防护并行双体系结构的可信计算平台中,可信密码模块采用自主创新的对称非对称相结合的密码体制作为免疫基因,以可信平台控制模块为信任根,基于安全可信策略,可信软件基通过建立信任链对计算子系统主动进行静态度量,以实现计算子系统的安全启动,并在计算子系统运行过程中主动对应用执行的相关信息进行动态度量,以实现计算子系统的安全运行。需要说明的是,可信平台控制模块可以向可信软件基提供访问计算子系统的资源的接口和防护子系统的可信密码模块的接口。
下面对可信软件基进行静态度量和动态度量的过程进行详细描述。
可信软件基包括基本层和控制层。
基本层
基本层用于对计算子系统进行静态度量。
基本层具体用于建立所述计算子系统的信任链;基本层可以包括:初始环境验证度量模块、系统引导验证度量模块、内核验证度量模块、系统验证度量模块以及应用代码验证度量模块。
初始环境验证度量模块用于在可信平台控制模块启动后,且在计算子系统的CPU启动之前,对计算子系统的BIOS、OPROM及硬件配置进行主动度量,其中,硬件配置可以包括但并不限于CPU、主板芯片组、硬盘、网卡、内存等;如果度量结果为可信则启动BIOS,否则防护子系统根据可信策略对计算子系统进行主动控制。
系统引导验证度量模块用于在BIOS启动之后,在计算子系统的OSLoader代码加载之前,对OSLoader代码进行主动度量;如果度量结果为可信则加载并执行OSLoader代码,否则防护子系统根据可信策略对计算子系统进行主动控制。
内核验证度量模块用于在OSLoader代码执行之后,在计算子系统的操作系统内核代码加载之前,对操作系统内核代码进行主动度量;如果度量结果为可信则加载并执行操作系统内核代码,否则防护子系统根据可信策略对计算子系统进行主动控制。
系统验证度量模块用于在操作系统内核代码执行之后,在计算子系统的系统服务加载之前,对系统服务进行主动度量;如果度量结果为可信则加载并执行系统服务,至此完成计算子系统的启动过程,否则防护子系统根据可信策略对计算子系统进行主动控制。
应用代码验证度量模块用于在计算子系统运行过程中,当需要加载应用程序时,对待加载的应用程序进行主动度量,如果度量结果为可信则计算子系统加载并执行待加载的应用程序,否则防护子系统控制计算子系统对待加载的应用程序进行控制,例如控制计算子系统不加载待加载的应用程序或者进行报警等,至此完成信任链的建立。
如图1所示,计算子系统与防护子系统共享硬件资源可信密码模块,计算子系统的独有硬件资源包括CPU、内存、硬盘、外设等,防护子系统的独有硬件资源包括TPCM硬件平台的CPU、内存、持久性存储等。防护子系统中层由从下至上的初始环境验证度量模块、系统引导验证度量模块、内核验证度量模块、系统验证度量模块组成,分别对BIOS、OPROM和硬件配置、OSLoader代码、操作系统内核代码、系统服务进行主动度量,如果每一环节的度量结果均为可信,则计算子系统启动完成,但是,在计算子系统启动过程中,如果任一环节的度量结果为不可信,则防护子系统会根据可信策略对计算子系统进行控制,例如结束计算子系统启动过程或者在启动过程中进行报警。随后通过上层的应用代码验证度量模块对应用程序进行主动度量,如果度量结果为可信,则计算子系统加载并执行该应用程序,如果度量结果为不可信,则防护子系统控制计算子系统不加载该应用程序或者加载该应用程序并报警。至此,信任链建立完成。
需要说明的是,信任链建立过程也即本发明可信计算平台的静态度量过程,所谓静态度量可以理解为对CPU未加载的程序和数据(例如程序代码、配置文件、关键信息等)进行的度量。
还需要说明的是,信任链建立过程中,基本层中的各个模块是在可信平台控制模块启动之后,在计算子系统的CPU启动之前,一起加载完成的。而且,基本层中的各个模块均位于防护子系统中,防护子系统是相对独立且封闭的系统,故基本层中的各个模块自身均是可信的,无需在信任链建立过程中再对基本层中的各个模块进行度量。
控制层
控制层用于对计算子系统进行动态度量和控制处理。控制层可以包括两种度量模式,分别为直接度量模式和代理度量模式。在控制层采用直接度量模式时,控制层的主程序可以植入到防护子系统中。在控制层采用代理度量模式时,控制层的主程序可以植入到防护子系统中,且控制层的代理程序可以植入到计算子系统中,且该控制层的代理程序可以用于获取计算子系统的相关信息,并对计算子系统进行控制处理。计算子系统的相关信息可以包括但并不限于:计算子系统中的行为信息(例如系统调用行为)、事件等。对计算子系统进行的控制处理可以包括但并不限于:杀死主机进程等。
需要说明的是,防护子系统对计算子系统的控制处理方式可以与控制层所采用的度量模式相关:控制层的主程序进行主动度量后根据度量结果生成控制指令。如果控制层采用直接度量模式,则控制层的主程序向可信平台控制模块发送控制指令,由可信平台控制模块对计算子系统进行控制处理。如果控制层采用代理度量模式,则控制层的主程序可以向控制层的代理程序发送控制指令,由控制层的代理程序对计算子系统进行控制处理;和/或,控制层的主程序可以向可信平台控制模块发送控制指令,由可信平台控制模块对计算子系统进行控制处理。
控制层具体用于根据可信策略对计算子系统中的应用执行的相关信息进行度量,应用执行的相关信息可以包括以下至少之一:主体、客体、操作以及执行环境;所述执行环境可以包括:应用执行所依赖的进程环境和应用执行所依赖的系统环境,所述系统环境可以包括:所述计算子系统的系统服务和所述计算子系统的操作系统内核;可信策略由主体、客体、操作和执行环境四元素构成,不同的可信策略对应不同的度量对象和度量方法,此处对可信策略不做具体限定,本发明可以根据实际需求制定相应的可信策略。
需要说明的是,应用执行可以理解为应用程序的运行过程,应用程序的运行过程中可以涉及到主体、客体、操作、执行环境等信息。
应用执行所依赖的进程环境可以包括以下至少之一:应用程序的主程序代码、使用库函数代码、进程相关的数据结构、应用程序的数据段和关键的配置文件;应用执行所依赖的系统环境可以包括以下至少之一:内核主体代码段、可加载模块代码段、系统调用表、中断描述表、文件系统跳转表、网络协议栈、跳转表、设备驱动跳转表、寄存器值和关键的配置数据。需要说明的是,本发明中的应用执行所依赖的进程环境以及应用执行所依赖的系统环境还可以包括其他内容,此处不再一一举例说明。
动态度量可以包括实时度量和定时度量两种度量方式:
实时度量,可以是在行为触发和/或事件触发时,根据可信策略进行主动度量;定时度量,可以是在达到预定时间点和/或预定度量周期时,根据可信策略进行主动度量。
需要说明的是,本发明中的行为可以包括但并不限于:系统调用行为、应用自身调用行为等。其中,系统调用行为可以包括以下至少之一:程序启动、共享库加载、驱动程序加载、文件访问、I/O设备访问、网络访问和内存映射,本发明中的系统调用行为还可以包括其他行为,此处不再一一举例说明。本发明中的事件可以包括但并不限于中断、设备热插拔、信号等。预定时间点以及预定度量周期可以根据实际需求设定或调整,本发明对其不做具体限定。
需要说明的是,在行为触发时,控制层可以采用以下任意一种方式对所述行为进行主动度量和控制处理:
第一种方式:拦截所述行为,若对所述行为的度量结果为可信,则允许所述行为执行,若对所述行为的度量结果为不可信,则根据可信策略对所述行为进行控制。
第二种方式:先允许所述行为执行,然后对所述行为进行主动度量,若对所述行为的度量结果为不可信,则根据可信策略对所述行为相关的后续行为进行控制。所述行为相关的后续行为可以包括但并不限于:所述行为再次执行、相同主体或者客体相关的行为(例如所述行为中的主体所执行的其他行为)等。
防护子系统对计算子系统进行的主动防御可以包括:度量机制、判定机制以及控制机制。
度量机制依据度量参数查询和解析策略库,并执行策略库中的可信策略,其中,可信策略规定了度量对象、度量方法等内容。
判定机制根据可信基准值判定度量机制得到的度量结果是否符合预期,以此来判定是否可信。
控制机制可以根据判定机制的判定结果并结合可信策略对计算子系统进行主动控制。
本发明提供的一种计算与防护并行双体系结构的可信计算平台至少包括以下优点:
1、并行双体系结构设计可以在计算子系统进行计算的同时主动进行安全防护,在不改变计算子系统的计算逻辑的前提下实现对计算子系统的主动安全防护。
2、防护子系统具有对计算子系统的主动防护能力,其安全防护不是通过计算子系统的主机程序调用执行的,而是以TPCM为信任根,主动对计算子系统发起的主动度量和主动控制。在不修改计算子系统的代码的前提下防护子系统能够为计算子系统的启动、运行等整个生命周期提供安全防护。
3、除了建立以TPCM为信任根逐级度量的静态信任链之外,还设计了基于安全可信策略的动态度量机制,实现了在计算机启动以及运行过程中对整个计算机系统的主动防御。
4、防护子系统可以不受限制的访问计算子系统中的内存以及I/O外设等,但计算子系统不可以访问防护子系统中的内存以及I/O外设等,以确保防护子系统自身的安全性能。
5、防护子系统不对外提供服务,减少了攻击面,使得防护子系统更加难以被外界攻击,提高自身安全性能。
6、防护子系统具有独立的计算、存储等资源,在对计算子系统进行安全防护时可以减少对计算子系统的资源占用,计算子系统的业务应用可以在不影响其性能的同时获得安全防护。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。