一种计算机的可信性检测方法

文档序号:6600194阅读:390来源:国知局
专利名称:一种计算机的可信性检测方法
技术领域
本发明涉及计算机领域,尤其涉及一种计算机的可信性检测方法。
背景技术
在基于网络和资料共享的信息系统中,终端计算机系统最常用的是微机。对于最常用的微机,只有从芯片、主板等硬件、BI0S(Basic Input OutputSystem,基本输入输出系统)、操作系统及上层应用软件综合采取措施,才能有效地提高其安全性,单纯依靠软件代码静态完整性度量确保软件代码动态运行的可信性是有缺陷的,这是因为入侵者可以在不破坏软件代码静态完整性情况下使软件处于非可信的状态,从而达到攻击的目的。正是基于这一技术问题催生了可信计算的诞生,其基本思想是在计算机系统中建立起一个信任, 然后通过接力的方式,将信任一级一级往上传递,最终完成整个计算机平台可信性报告,而这个最初信任的建立是依赖于TCM(TrustedCryptography Module,可信密码模块)的。目前,国际上通用的信任链模型是线性的,它的度量起点是TCM,信任链建立后, 也就约定好了整个平台的执行流程,在链路上任一端点发生度量失败,安全机制无法生效, 平台也就无法启动。典型的信任链应用流程如图1。图1中,步骤a为度量初始引导模块 Boot Block,步骤d为度量主板MainBlock,步骤g为度量平台启动部件及操作系统装载器OS Loader,步骤j为度量操作系统内核OS Kernel, c、f、i、1为信任链传递流程,b、e、 h、k 为执行流程,其中,RTM(Root of Trusted Measurement,可信度量根)、EMMl (Expanded Measurement Module,扩展度量模块)、EMM2、EMM3为ft~e_0S阶段。信任链从开机到操作系统内核装载之前的建立过程应满足如下要求TCM作为信任链的信任根,EMM作为度量代理端点,通过完整性度量,实现信任传递与扩展。传统信任链的建立是一种线性的模式,这种度量的机制中,度量的发起者是可信度量根RTM,必须默认(保证)RTM是可信的,所有部件是被动度量的,建立好信任链后,每个部件的度量特征值是确定的,这个特征值必须传递给度量它的上一个度量模块保存,以保证在执行度量时做比较参考。一旦确认信任链建立起来后,整个执行路径就变成一个确定的一条路线,中间不允许存在断节,也很难在这其中插入一个端点,缺乏相对灵活性。传统链式信任链实现虽然比较简单,但这种模型下的计算机缺乏相对灵活性,不便于系统的扩展。链路上的部件都是被动度量的,一旦某个端点发生改变,位于该端点下的度量部件全部要做新的调整,极大的提高了系统的维护更新成本。综上,现有的信任链存在以下的问题1)现有的信任链,如果需要对链路上的某个端点做更新维护,位于该端点下的所有部件需要全部做更新调整,极大的提高系统的维护更新成本;2)现有信任链是一个单方向线性传递的过程,一旦链路上某个端点发生异常,如果没有很好的异常处理机制,系统可能陷入瘫痪;3)传统的链式信任链一旦建立,必须严格遵照执行流程,不能动态的添加新的组件,不便于系统的扩展。

发明内容
本发明所要解决的技术问题是提供一种计算机的可信性检测方法,提高计算机平台的安全性和验证灵活性,减少计算机系统的维护更新成本,并能够方便计算机系统的扩展。为解决上述技术问题,本发明提出了一种计算机的可信性检测方法,包括组建环形信任链,所述环形信任链上的端点顺次为可信密码模块TCM、基本输入输出系统BIOS的初始引导模块Boot Block、主板Main Block,、操作系统装载器OS Loader 和操作系统内核OS Kernel ;所述环形信任链上的任一端点发起完整性度量,沿所述环形信任链的顺时针或逆时针方向依次进行完整性度量,直至所述环形信任链上的所有端点均度量完毕;所述环形信任链上最后一个进行完整性度量的端点度量完毕后将信任传递给 TCM,由TCM完成最终的计算机平台可信性报告。进一步地,上述方法还可具有以下特点,所述环形信任链基于可信度量根RTM建立,通过扩展度量模块EMM实现信任传递。进一步地,上述方法还可具有以下特点,所述完整性度量的流程包括步骤a,RTM或者EMM使用杂凑算法对端点i的二进制代码进行计算;步骤b,RTM或者EMM生成在步骤a中对端点i的计算结果_度量事件i描述,度量事件i描述包括度量值i和度量事件i上下文,其中,度量值i为杂凑算法的结果,度量事件i上下文为本次度量事件的上下文信息;步骤c,RTM或者EMM通过接口调用TCM,将度量值i扩展存储到预先定义于端点i 相关的PCR[i]中;步骤d,RTM或者EMM将度量事件i描述存储于度量事件日志中。进一步地,上述方法还可具有以下特点,所述环形信任链上的任一端点均能够对其相邻端点进行完整性度量。进一步地,上述方法还可具有以下特点,在计算机可信性的一次检测过程中,除发起端点和终点的TCM外,每个端点都对相邻的端点进行完整性度量,即每个端点都对相邻的端点进行2次完整性度量,也被相邻的端点进行2次完整性度量。进一步地,上述方法还可具有以下特点,当发起完整性度量的端点不是TCM时,在每一次进行完整性度量时都重置平台配置寄存器PCR。进一步地,上述方法还可具有以下特点,所述环形信任链上的端点进一步包括应用程序App或应用程序集App集,所述应用程序App或应用程序集App集在所述环形信任链上处于操作系统内核OS Kernel和可信密码模块TCM之间。进一步地,上述方法还可具有以下特点,所述环形信任链上的端点包括应用程序集App集,则所述完整性度量的发起端点为应用程序集App集,在所述应用程序集App集发起完整性度量之前,App集对该App集中的子应用程序进行完整性度量。进一步地,上述方法还可具有以下特点,所述可信密码模块TCM内部集成有可信计算根、可信存储根和可信报告根。本发明计算机的可信性检测方法,提高了计算机平台的安全性和验证灵活性,减少了计算机系统的维护更新成本,并能够方便计算机系统的扩展。


图1为现有技术中典型的信任链应用流程图;图2为本发明中完整性度量流程图;图3为本发明中环形信任链的执行流程图;图4为本发明中环形信任链的实现图;图5为本发明中环形信任链动态添加应用程序App的示意图;图6为本发明中交叉验证模型及信任链的传递流程图。
具体实施例方式本发明的主要构思是环形信任链结构为支持,使用独立的硬件TCM作为整个计算机平台的可信测量控制器。TCM内部采用物理方式及软件辅助的方法集成可信计算根、可信存储根和可信报告根,对其本身具备平台身份认证的功能。对计算机进行可靠性测试时, 环形信任链上的部件(也称为端点)利用TCM可信计算度量功能,相邻的部件利用交叉度量的机制,将信任最终传递到TCM,由TCM完成平台可信性报告。如果度量的起点是TCM,就可完成传统链式信任链平台安全引导的需求,不过需要要求被度量的最后一个部件将信任传递给TCM,由TCM完成最终的平台可信性报告。首先对本发明中的环形信任链进行说明。环形信任链是在计算机系统启动和运行过程中,使用完整性度量方法在部件之间所建立的信任传递关系;环形信任链上的端点顺次为可信密码模块TCM、基本输入输出系统BIOS的初始引导模块Boot Block、主板Main Block,、操作系统装载器OS Loader和操作系统内核OS Kernel0环形信任链就是将线性信任链上的首尾相连,形成一个闭环,及允许度量的最后一个实体(部件或端点)可以度量可信度量根RTM,同时RTM需要提供一种向外报告TCM芯片本身当前可信状态的机制。环形信任链基于可信度量根RTM建立,通过扩展度量模块EMM实现信任传递。RTM和EMM采用杂凑算法对部件代码进行完整性计算,并存储度量结果,实现完整性度量。一次完整的度量流程如图2所示。完整性度量流程包括步骤a2,RTM或者EMM使用杂凑算法对“部件i ”的二进制代码进行计算;步骤1^2,RTM或者EMM生成在步骤a中对“部件i”的计算结果“度量事件i描述”; 该描述包括杂凑算法的结果,“度量值i”,以及本次度量事件的上下文信息“度量事件i上下文,,;步骤c2,RTM或者EMM通过接口调用TCM,将“度量值i ”扩展存储到预先定义于部件i相关的PCR[i]中;步骤d2,RTM或者EMM将“度量事件i描述”存储于度量事件日志中。完成上述四个步骤的整个过程为一次完整性度量事件。图3为本发明中环形信任链的执行流程图。如图3所示,本发明中环形信任链的执行流程包括
步骤a3,TCM先于Boot ROM被执行前启动,由TCM中的RTM度量Boot ROM中的初始引导模块Boot Block,生成度量结果和日志,并存储于TCM中;步骤b3,TCM发送控制信号,使CPU、控制器和动态存储器等复位,平台加载并执行 Boot ROM 中的 Boot Block 代码;步骤c3,Boot Block中的EMMl获得系统执行控制权,信任从RTM传递到EMMl ;步骤d3,EMMl度量Boot ROM版本信息和Main Block中的EMM2代码;EMMl存储度量结果到TCM中的PCR,存储度量日志到Boot Block中;步骤e3,平台加载并执行Main Block的代码; 步骤f3,Main Block中的E匪2获得系统执行控制权,信任从E^l传递到E匪2 ;步骤g3,EMM2将在步骤a中存储在TCM中的日志存储到ACPI中;E匪2将在步骤d 中存储在Boot Block中的日志存储到ACPI中;EMM2度量平台启动部件,包括显示卡、硬盘、 网卡等外部设备;在完成对平台启动部件度量后,EMM2度量存储在外存中的操作系统装载器OS Loader ;EMM2生成对平台启动部件和OS Loader的度量结果和日志,度量结果存储到 TCM的PCR中,度量事件日志保存到ACPI中;步骤h3,平台加载并执行OS Loader的代码;步骤i3,OS Loader中的EMM3获得系统执行控制权,信任从EMM2传递到EMM3 ;步骤j3,EMM3度量操作系统内核,生成度量结果和日志,度量结果存储到TCM的 PCR中,度量事件日志保存到ACPI中;步骤k3,平台加载并执行OS Kernel的代码;步骤13,OS Kernel中的EMM4获得系统执行控制权,信任从EMM3传递到EMM4 ;步骤m3,从OS Kernel的执行代码跳转回到BIOS TCM执行代码;步骤π3,ΕΜΜ4把执行控制权暂时交还给RTM,RTM对TCM硬件进行校验,生成的度量的结果反馈给ΕΜΜ4中的校验模块并跳转回ΕΜΜ4,如果校验失败,ΕΜΜ4不能将信任继续向上传递并使计算机死机,等待用户的处理措施,如果执行成功,正常加载OS应用程序。上述流程中步骤m3、n3是这种环形信任链的关键,它们负责将信任链组成一个闭环的系统。在这里,作为可信度量根的核心元素TCM,需要提供一个命令接口,以满足RTM对 TCM硬件本身可靠性的验证。为了证明TCM本身的可信,而不是被伪造的,需要硬件实体芯片提供平台身份认证的功能。这个功能可以通过固件报告芯片的唯一序列号来实现。上面闭环信任链的建立,可以增加整个平台的安全性,不过由于它的单向传递性跟被度量的部件需要将自己的特征值保存到度量它的前一个部件可信存储区,很难在这条链路上增加一个端点,并且一旦某个环节发生度量失败,整条链路即会脱节,信任无法传递。为了解决这个问题,我们需要完善上述环形信任链建立的方式。使度量的部件具有度量临近的部件的完整性的能力,这种关系能保证环形信任链能朝多个方向传递,保证了一定的灵活性。图4是环形信任链实现图。图4中,内环是计算机的执行流程,外环是信任链的传递流程。从图4可以发现,每个部件中的EMM都具备度量临近部件的能力(除开RTM),如图4中所示的BIOS模块中的EMMl就具备度量相邻两个模块TCM和OS Loader的能力,同时OS Loader也具备度量BIOS及相邻的部件OSKernel的能力,通过这一交叉,相邻的部件就具备了相互度量的能力。RTM只具备度量它的顺序执行部件BIOS的能力,这是由于最高一级的度量对象为OS的应用程序,它在一个平台上的扩展具有不确定性,RTM无法做到去全部兼容这些应用程序的完整性度量,而只能由这些应用程序去主动校验TCM本身的可靠性,信任链的传递在这里变成了一条由App指向TCM的单向线。基于环形信任链动态添加应用程序App的方法为首先由App集完成对App[i]的校验(即完整性度量),然后由App集发起信任链传递,完成平台可信度量,如图5所示。下面说明环形信任链的传递方式——交叉度量传递。如果发起者是环形信任链上的某个端点(不是TCM),那我们还需要解决下面这个问题。度量过程中需要使用平台配置寄存器PCR,任何其他部件都不可能直接写它的值。如果信任链的发起者是TCM,PCR在上电之初有个确定的值,能保证后续的度量过程中对PCR扩展时可以以该值作为参照。而如果换成是环形信任链上其他端点,此时并不能保证PCR中的值是某些具体的值,这对完整性度量来说是禁止的。为了解决这个问题,TCM的 PCR_RESET命令可以帮助完成这一任务。由于不能确认到是具体的某一个端点,也就意味着任何一个端点都有可能成为环形信任链传递的出发点。从度量的起点,必须保证PCR中的值是确定的值,如果将信任链传递下去,不同的起点,到达同一个端点时PCR的值是不确定的,这对完整性校验是一件很麻烦的事情。举个例子,假如信任链的发起者是OS Kernel,一开始我们必须重置PCR的值,经过OS Loader度量后,在传递到BIOS,此时PCR的存储值应该是对OS Kernel和OS Loader 度量后的散列值。BIOS的EMM需要对这个度量散列值进行校验。而如果信任链的发起者换成是App集,传到BIOS后,PCR的存储值应该是对App集、OSKernel和OS Loader度量后的散列值,BIOS的EMM又需要对这个散列值校验。如果环路上的端点越多,到达同一个端点时PCR的值就越不确定,这对每个部件的EMM度量校验是很难实现的。为了解决这个问题, 提出下面的解决方案。环形信任链上的每个端点都有校验相邻端点的能力,借助这一特性,提出下面的交叉验证的模型。假设环路中的发起者是OS Kernel0如图6所示,发起者是OS Kernel时环形信任链的执行流程包括步骤a6,度量开始,重置PCR ;步骤M,OS Kernel中的EMM3度量OS Loader,校验完成后并加载OSLoader代码;步骤c6, OS Loader 中的 EMM2 度量 OS Kernel ;步骤d6,E匪3交还系统控制权给E匪2,信任从E匪3传递到E匪2 ;步骤e6,重置PCR,开始对BIOS的度量;步骤f6,OS Loader中的EMM2度量BIOS,校验完成后并加载BIOS代码;步骤g6, BIOS 中的 EMMl 度量 OS Loader ;步骤h6,E匪2交还系统控制权给E^l,信任从E匪2传递到E^l ;步骤i6,重置PCR,开始对TCM的度量;步骤j6,BIOS中的EMMl度量TCM,校验完成后加载TCM代码;步骤k6,TCM 中的 RTM 度量 BIOS ;
步骤16,E^l交还系统控制权给RTM,信任从E^l传递到RTM ;步骤m6,由TCM向外报告芯片物理实体的可信性。这种模型的建立很好的解决了由环路上任一端点发起的度量怎样将信任链往下传递的问题。从图6这种模型可以发现,除了发起端点跟终点的TCM,每个部件都对邻近的部件进行了校验(即完整性度量),即每个部件需要校验2次,也被相邻的部件校验了 2次,这样极大的提高了系统的安全性可靠性,同时更加灵活的完成了信任链的建立及传递。由上可见,本发明具有以下优点1)可以由环路上的任一端点主动发起完整性度量,通过这条环路可以传递到 TCM,最终由TCM完成平台可信度量的报告,这样可以提高整个平台安全性;2)由于信任链的传递具有双向性,当度量过程中有一个端点发生异常,可以走另一条路径完成信任链的传递,这样可以保证系统可信性的前提下,提高系统验证的灵活度。3)方便的在环路上动态添加新的应用程序App。 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种计算机的可信性检测方法,其特征在于,包括组建环形信任链,所述环形信任链上的端点顺次为可信密码模块TCM、基本输入输出系统BIOS的初始引导模块Boot Block、主板Main Block,、操作系统装载器OS Loader和操作系统内核OS Kernel ;所述环形信任链上的任一端点发起完整性度量,沿所述环形信任链的顺时针或逆时针方向依次进行完整性度量,直至所述环形信任链上的所有端点均度量完毕;所述环形信任链上最后一个进行完整性度量的端点度量完毕后将信任传递给TCM,由 TCM完成最终的计算机平台可信性报告。
2.根据权利要求1所述的计算机的可信性检测方法,其特征在于,所述环形信任链基于可信度量根RTM建立,通过扩展度量模块EMM实现信任传递。
3.根据权利要求1所述的计算机的可信性检测方法,其特征在于,所述完整性度量的流程包括步骤a,RTM或者EMM使用杂凑算法对端点i的二进制代码进行计算; 步骤b,RTM或者EMM生成在步骤a中对端点i的计算结果-度量事件i描述,度量事件i描述包括度量值i和度量事件i上下文,其中,度量值i为杂凑算法的结果,度量事件 i上下文为本次度量事件的上下文信息;步骤c,RTM或者EMM通过接口调用TCM,将度量值i扩展存储到预先定义于端点i相关的PCR[i]中;步骤d,RTM或者EMM将度量事件i描述存储于度量事件日志中。
4.根据权利要求1所述的计算机的可信性检测方法,其特征在于,所述环形信任链上的任一端点均能够对其相邻端点进行完整性度量。
5.根据权利要求1所述的计算机的可信性检测方法,其特征在于,在计算机可信性的一次检测过程中,除发起端点和终点的TCM外,每个端点都对相邻的端点进行完整性度量, 即每个端点都对相邻的端点进行2次完整性度量,也被相邻的端点进行2次完整性度量。
6.根据权利要求1所述的计算机的可信性检测方法,其特征在于,当发起完整性度量的端点不是TCM时,在每一次进行完整性度量时都重置平台配置寄存器PCR。
7.根据权利要求1所述的计算机的可信性检测方法,其特征在于,所述环形信任链上的端点进一步包括应用程序App或应用程序集App集,所述应用程序App或应用程序集App 集在所述环形信任链上处于操作系统内核OSKernel和可信密码模块TCM之间。
8.根据权利要求7所述的计算机的可信性检测方法,其特征在于,所述环形信任链上的端点包括应用程序集App集,则所述完整性度量的发起端点为应用程序集App集,在所述应用程序集App集发起完整性度量之前,App集对该App集中的子应用程序进行完整性度量。
9.根据权利要求1所述的计算机的可信性检测方法,其特征在于,所述可信密码模块 TCM内部集成有可信计算根、可信存储根和可信报告根。
全文摘要
本发明涉及一种计算机的可信性检测方法,包括组建环形信任链,所述环形信任链上的端点顺次为TCM、BIOS的初始引导模块Boot Block、MainBlock,OS Loader和OS Kernel;所述环形信任链上的任一端点发起完整性度量,沿所述环形信任链的顺时针或逆时针方向依次进行完整性度量,直至所述环形信任链上的所有端点均度量完毕;所述环形信任链上最后一个进行完整性度量的端点度量完毕后将信任传递给TCM,由TCM完成最终的计算机平台可信性报告。本发明计算机的可信性检测方法,提高了计算机平台的安全性和验证灵活性,减少了计算机系统的维护更新成本,并能够方便计算机系统的扩展。
文档编号G06F21/00GK102214278SQ20101013970
公开日2011年10月12日 申请日期2010年4月6日 优先权日2010年4月6日
发明者刘鑫, 周超 申请人:国民技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1