基于tpm的多实例动态远程证明方法

文档序号:6464826阅读:237来源:国知局
专利名称:基于tpm的多实例动态远程证明方法
技术领域
本发明涉及一种基于TPM的多实例动态远程证明方法,具体来说,本发明涉及一种基于可信计算平台的并发证明多个RAI实例及其运行环境可信的远程证明方法。本发明属于信息安全技术领域。

背景技术
1999年,Compaq、HP、IBM、Intel、Microsoft几大公司牵头成立TCPA(TrustedComputing Platform Alliance),全球有200多家计算机公司/企业加入其中,2001年该组织推出了可信计算模块(Trusted Platform ModuleTPM)1.1的相关软硬件技术规范。2003年,TCPA改组为TCG(Trusted Computing Group),目标是从产业角度,全方位推广可信计算技术,并推出了TPM1.2技术规范,同时从PC平台扩展到服务器、PDA、移动电话等各类计算平台,并以TPM为根,将可信计算技术渗透到计算平台各个层面。我国也相应的制定了关于可信计算的标准-可信计算密码支撑平台功能与接口规范,简称TCM规范。
可信计算从计算机自身安全的角度出发,解决现有的各类安全问题,它提供了平台状态检测、封装存储、远程证明等功能。TPM作为平台不可篡改的物理信任根,以信任扩展的方式全面的描述系统平台状态,远程证明则是以TPM身份密钥对当前平台状态进行签名,向远程依赖方证明平台处于可信状态。远程证明作为可信计算提供的一项实现平台间信任建立的重要技术,在可信计算中具有重要的研究意义和巨大的实用价值。
国内外研究机构提供众多的远程证明解决方法,大都针对平台静态配置状态进行证明,当平台的软硬件配置发生改变,不管是用户合法的增加、删除、升级软硬件,还是恶意程序非法的篡改系统配置引起,此时原有的远程证明所证明的可信状态将失效,需要重新证明。基本上所有证明方法都是解决平台上单个远程证明实例进行证明的问题,而对复杂多个证明实例并发进行证明很少涉及。本发明就是针对远程证明的动态性和多个远程证明实例的并发性,提出一种新型的证明方法。


发明内容
本发明目的在于克服现有技术中存在的问题,提供一种基于可信计算平台,通过TPM(Trusted Platform Module,可信平台模块)并发证明多个网络应用程序及其运行环境可信的远程证明方法。与其他可信计算平台的远程证明方法相比,本发明拥有平台状态动态证明、多网络程序并发证明、抗重放攻击等特色。
本发明主要包括三方面多个网络应用程序当前运行状态和动态更新状态的度量,多个远程证明程序会话证明数据的创建和维护,多个远程证明程序并发的动态证明其运行状态。
多实例远程证明系统的系统构成及其关系 为了便于描述,定义可信计算平台上TPM向其远程依赖方证明一个网络应用程序自身及其运行环境状态的实例称之为一个远程证明实例(Remote Attestation Instance,RAI),当可信平台上有多个网络应用程序同时向不同的远程依赖方(或同一依赖方)证明自身运行状态可信,就称之为多远程证明实例(Multiple Remote Attestation Instance,MRAI)。现有普通的证明方法都是针对单个RAI,本发明针对MRAI证明时运行环境动态变化、多个状态表示冲突、状态重放等问题而提出。
本发明的多实例远程证明方法运行在包含有TPM的可信计算平台上,系统主要包含安全密码芯片TPM、可信服务软件层、多个远程证明实例,还包括多证明实例实施证明的多个不同远程依赖方,系统构成如附图1所示。
MRAI证明系统是一个硬件层包含TPM安全芯片,运行有可信操作系统的软硬件可信计算平台。MRAI证明系统能够保证运行在系统中的多个RAI的执行环境是安全可信,并且还能够同时向不同的远程依赖方证明RAI的状态及其执行环境的状态是可信的。
■硬件层中的TPM安全芯片是一个符合国际可信计算组织(TCG)可信计算模块1.2标准的专用安全芯片,或者是符合我国的可信密码模块(TCM)标准的安全芯片,它是一个具有一定防物理篡改和硬件破坏攻击,支持SHA-1、RSA、AES等多个密码算法,包含单调单向计数器、平台配置寄存器(PCR)的多功能安全密码芯片。TPM能够真实客观的度量RAI及其运行环境的状态,对MRAI的当前状态进行签名,向各个不同的远程依赖方证明RAI的状态。
■可信服务层包含在可信操作系统中,运行在TPM之上,它对各个RAI的当前状态进行度量,管理RAI与远程依赖方的通讯会话,维护RAI的证明数据和证书。可信服务层主要功能是调用TPM安全芯片完成RAI及其执行环境的度量,实现RAI证明数据和证书的签发。可信服务层分为度量代理模块(Measurement Agent)、证明会话管理模块(AttestationSession Manager)和TPM管理模块(Tpm Manager), ■度量代理模块负责RAI及其执行环境的度量; ■证明会话管理模块负责证明数据的创建和维护、证明会话的管理; ■TPM管理模块负责所有TPM命令请求的处理,例如TPM签名、增加TPM单调计数器、TPM计算Hash值等等。
■应用程序层运行着各种不同类型的网络应用程序,例如网银客户端程序、电子商务支付终端程序、宽带网登陆客户端程序等等。这类程序与远程依赖方通讯时,远程依赖方不仅要求证明其用户身份,还要求证明这些应用程序的状态及其执行环境是安全的,避免遭受病毒、木马、黑客等的攻击。这些应用程序相互独立的运行于各自的进程空间,同时向不同的依赖方动态的证明其当前状态。
MRAI证明方法及主要过程总述 可信计算平台多实例远程证明方法由三部分组成MRAI当前运行状态和动态更新状态的度量,MRAI会话证明数据的创建和维护,MRAI并发的动态证明其运行状态,三部分简称为MRAI度量、MRAI会话管理、MRAI证明。
MRAI度量为MRAI会话管理提供证明数据,主要由可信服务层的度量代理和TPM管理模块完成; MRAI会话管理要统一对各个会话证明数据进行维护,采用合适的数据结构与RAI当前状态相关联,主要由证明会话管理模块完成; MRAI证明是使用MRAI会话管理数据进行证明的过程,主要由度量代理和TPM管理模块完成。
MRAI方法允许多个RAI同时并行不悖的执行MRAI度量、MRAI会话管理、MRAI证明过程,实际的MRAI执行流程是多个RAI实例重叠执行的过程,下面以单个RAI实例优选的远程证明过程为例描述MRAI总体流程。
1.系统初始化 安全芯片TPM生成用于MRAI证明的平台身份密钥AIK(Attestation Identity Key),隔离系统(例如虚拟机系统、NGSCB隔离环境等)启动时完成如下初始化工作TPM管理模块为该隔离系统分配一个TPM芯片物理PCR与之关联,TPM管理模块分配一个TPM芯片内部的单调计数器用于证明计数。
2.RAI会话启动 某RAI实例开始运行,启动远程证明会话试图建立可信通讯信道,证明会话管理模块将记录该会话。远程依赖方要求一定的组件满足特定的安全属性,则该RAI会话与这些组件关联,证明会话管理模块将以这些组件构建组件会话树,也即是一棵以这些组件为叶节点的杂凑树。
3.证明状态判定 证明会话管理模块管理系统中各个会话的状态。若某RAI会话首次启动时,则证明类型为初始证明,执行步骤4;如果RAI会话已经建立,组件会话杂凑树中某些组件发生更新,则证明类型为更新证明,执行步骤5。
4.RAI初始证明流程 a)RAI组件初始度量 证明会话管理模块请求TPM管理模块依次度量会话组件树中包含的全部组件,度量方法为TPM安全芯片度量组件的可执行文件镜像、动态链接库、依赖的系统动态链接库、依赖的内核模块、组件配置数据、组件关键数据结构、以及依赖的其他可执行程序等,将这些度量值通过Hash扩展运算进行聚合得到该组件的度量值。最后TPM管理模块将全部组件度量值返回给会话管理模块。
b)会话组件树初始计算 证明会话管理模块使用度量值填充相应的杂凑树节点,然后从杂凑树的最后一层节点开始依次计算上一层节点值,计算方法是将节点的全部子节点的度量值进行字节串并操作,然后使用Hash函数对该并值进行计算,得到该节点的度量值。这样依次向上递归运算就得到会话组件树的根节点值。
c)RAI初始证明 证明会话管理模块请求TPM管理模块,使用会话组件树根节点扩展系统初始化时分配的PCR寄存器,然后增加系统初始化时分配的单调计数器,紧接着根据PCR寄存器值、单调计数器值、远程依赖方的防重放攻击随机数,TPM管理模块使用AIK密钥为RAI会话生成初始证明凭证。最后证明会话管理模块传输初始证明凭证和相关日志供远程依赖方验证,验证通过则建立可信通讯连接,否则拒绝RAI会话请求。
5.RAI更新证明流程 a)RAI组件更新度量 证明会话管理模块请求TPM管理模块度量在RAI会话过程中发生更新的组件,度量方法为TPM安全芯片度量组件的可执行文件、动态连接库、依赖的系统动态连接库、依赖的内核模块、依赖的其他可执行程序,将这些度量值通过Hash扩展运算进行聚合得到该组件的度量值。最后TPM管理模块将这些更新组件度量值返回给会话管理模块。
b)会话组件树更新计算 证明会话管理模块使用新的度量值更新相应的更新组件节点,然后从这些更新节点出发,依次计算从该节点到根结点路径上的节点度量值,计算方法和4b)的节点计算相同,最后计算得到会话组件树的根节点值。
c)RAI更新证明 证明会话管理模块请求TPM管理模块,使用会话组件树根节点扩展系统初始化时分配的PCR寄存器,然后增加系统初始化时分配的单调计数器,请求TPM为该次更新证明生成防重放攻击的随机数,紧接着根据PCR寄存器值、单调计数器值、TPM生成的防重放攻击随机数,TPM管理模块使用AIK密钥为RAI会话生成更新证明凭证。证明会话管理模块查询该RAI会话前一次证明的证明凭证,获取从该凭证到这次更新凭证之间,单调计数器依次增加的全部证明凭证,最后证明会话管理模块传输初始这一证明凭证序列和相关日志供远程依赖方验证,验证通过则建立可信通讯连接,否则拒绝RAI会话请求。
6.RAI会话关闭 RAI会话关闭时,证明会话管理模块释放为该会话维护的组件会话树和相关记录。
和现有技术相比,本发明的优势在于 1.本发明方法实现了多个实例并发证明其不同的最新关联状态,并发证明时不用锁定当前计算环境,也不干扰其他RAI的证明。
2.本发明方法使用基于Hash树的系统配置表示,采用系统动态度量技术,解决了平台证明的动态性问题,当可信计算环境的软硬件配置和状态改变后,MRAI方法能够动态向远程依赖方证明平台最新的更新状态。
3.本发明方法多个RAI实例同时证明平台状态时,单个实例能够准确无误的证明与它关联环境可信,即使其他实例与此同时改变了平台的运行状态,也无法导致该实例错误地证明最新的平台状态,因此,本发明方法解决了多实例证明的状态一致性。
4.本发明方法可将RAI的每个证明状态与TPM的单调计数器相关联,该单调计数器不可重置和篡改,这防止了不诚实用户或恶意程序重用原有的平台状态证明数据欺骗远程验证方。



图1表示MRAI证明系统体系结构示意图; 图2表示MRAI证明状态示意图; 图3表示RAI证明树结构示意图; 图4表示MRAI证明凭证链示意图。

具体实施例方式 下面结合具体实施例和附图对本发明作进一步描述 本实施例MRAI证明运行周期中的主要状态包括创建新RAI会话、RAI初始证明、RAI状态更新证明和RAI会话关闭,如附图2所示。每个RAI都处于这四种状态之一,多个RAI同时在系统运行,并且并发的使用同一个TPM进行运行状态的证明。在RAI的四种状态中除了状态S2可以不断处于循环状态以外,S0到S3状态都是一个单向转变的过程。
下面将详细的阐述MRAI证明的主要状态及其转化。
1.新建会话状态 当一个RAI实例处于新建会话状态,也即是RAI实例程序刚开始启动运行,此时位于可信服务层的TPM管理模块,将为运行的RAI实例创建一个表示RAI状态的VPCR值,VPCR的初始值为TPM用来描述该RAI实例状态的PCR值,PCR为TPM安全芯片内部用来表示平台状态的寄存器,一般TPM芯片具有24个PCR,VPCR相当于TPM管理模块为RAI创建的一个虚拟PCR。除此之外,证明会话管理模块为新建的RAI会话创建一棵RAI证明树,这是一棵由RAI组件及其关联组件的状态构成的杂凑树,树的节点保存RAI关联的各个组件的状态值,该状态值是由TPM计算得到。
2.初始证明状态 RAI启动完成后试图与远程依赖方建立可信连接通道,此时远程依赖方请求RAI证明其运行状态。证明前,度量代理完成对RAI组件的度量,证明会话管理模块使用度量结果填充RAI证明树的叶节点,然后再根据杂凑树计算规则,计算出RAI证明树根节点。紧接着TPM管理模块使用证明树根节点扩展物理PCR,更新VPCR值。最后证明会话模块为RAI会话生成共享密钥,RAI执行远程证明协议。
3.更新证明状态 在RAI完成初始证明后,RAI将进入更新证明状态。如果有RAI组件在更新证明状态中发生更新,将触发RAI更新证明。度量代理对发生更新的组件进行度量,然后以更新后的度量值重新计算RAI证明树,TPM管理模块使用新的证明树树根更新VPCR。最后证明会话管理模块更新原有的共享会话密钥,RAI执行更新证明协议。
4.关闭会话状态 RAI会话关闭时,TPM管理模块和证明会话管理模块分别清除VPCR和RAI证明树。
本实施例MRAI证明主要方法(MRAI度量、MRAI会话管理、MRAI证明)都在初始证明和更新证明这两个状态中执行,旨在解决MRAI的动态更新和状态交替更新等问题。
MRAI度量 RAI实例及其运行环境可以看作是一个个软硬件组件所构成,衡量这些组件的状态就能证明RAI的运行状态的可信赖性。TPM主要是以组件各个方面的度量值来描述组件的运行状态,MRAI度量选取了下列几种类别来描述RAI组件的状态。
■可执行文件镜像程序运行时,加载到进程空间的可执行文件的内存镜像。
■组件动态链接库组件直接依赖的动态链接库,随组件一起发布,当组件程序运行需要某个链接库,在它动态加载时对其进行度量。
■系统动态链接库组件运行所依赖系统动态链接库,组件需要调用这些动态链接库,动态加载进行度量。
■系统内核模块组件运行所依赖的内核模块,在组件使用时对它进行度量。
■组件配置数据组件运行所依赖配置文件及关键配置数据,当组件启动或者配置更新时进行度量。
■组件关键数据结构在组件运行的进程空间中,对组件状态有较大影响的关键数据结构进行度量。
每个度量类别中包含若干度量点,TPM对这些度量点进行度量,最终将这些度量点的度量值汇聚成整个组件的度量值。度量代理对某个组件进行度量时,只需请求组件ID,然后度量代理对内存中运行的组件进程、依赖的内核模块和依赖的动态链接库等进行度量,度量输出组件度量值χ和度量日志log。设MC={mc1,...,mck}是组件ID为id的组件的全部度量点,

为TPM所执行的SHA-1哈希算法。组件度量的算法描述如下 度量算法M(id)=(log,χ) 输入MC={mc1,...,mck} 输出如果成功,返回log,χ 否则返回错误代码 1.log={} 2.MA查找组件进程是否运行,若没有运行,则返回错误。
3.MA度量组件c a.χ=0160 b.FOR each j=1 TO k DO i.MA检查度量变量mcj,计算度量值
ii.添加度量日志,log=log∪{(descj,ωj)},descj为mcj的具体描述信息 iii.更新组件度量值,
c.返回χ 4.返回log MRAI会话管理 MRAI会话管理采用RAI证明杂凑树的数据结构来保存RAI运行状态,RAI证明树是以组件度量值为树节点的杂凑树,既可以采用普通的二叉杂凑树(如错误!未找到引用源。所示),还可以采用认证查找树。RAI证明树的特点1)父节点的值(V)等于其子节点值(V1,V2,...,Vk)的聚合值,计算公式为


为TPM所执行的SHA-1哈希计算,||是字符串的连接操作。RAI证明树的根节点是通过上述计算方法递归计算得到。2)RAI证明树的某个节点值发生改变,不需要对整个证明树进行重新计算,只需要更新从该节点到根结点路径上的全部节点值,就完成对整个证明树的更新。也就是说,当某个节点对应的组件发生更新,此时RAI的运行环境状态发生改变将触发更新证明,RAI状态的改变体现在证明树的更新。RAI证明树的创建、维护、销毁都是由证明会话管理模块来完成,它很好的解决了RAI相关组件的状态表示,便于组件动态更新后的新状态标识。下面将以普通的二叉杂凑树为例来阐述RAI证明树的计算和更新方法。
以普通的二叉杂凑树构建的RAI证明树的叶节点都是是RAI实例关联的组件,叶结点的值为组件的无碰撞哈希值χ,叶节点的值按照组件度量算法M(id)={log,χ}计算得到。RAI组件对象(组件ID分别为id1,...,idm)构成了证明树的叶节点(参照图3所示),如果这些叶节点无法构成满二叉杂凑树,将添加空叶节点Φ构成满二叉树以方便计算。二叉杂凑树的最终计算结果是根节点值θ,它描述了整个RAI所有关联组件的聚集状态。TPM管理器使用根结点值扩展物理PCR,获得标识RAI状态的VPCR值。
RAI实例的关联组件id1,...,idm构成二叉杂凑树TREE(id1,...,idm),计算出的根节点

,具体计算方法描述如下 1如果TREE(id1,...,idm)不是满二叉树,添加空节点构成满二叉树。空节点的度量值为φ,它的计算规则(1)

(2)
2从叶节点开始递归计算出根节点的值,不为空的叶节点的值为度量代理的度量值。父节点值为h,它的左子女值为hL,右子女的值为hR,则

依次反复递归计算得到根节点值θ。
3使用根节点值更新RAI对应的TPM管理器中的VPCR,
当某个RAI关联组件发生更新时,只需依次更新该组件节点到根节点路径上的全部节点,就完成RAI状态更新。例如图3中的id2节点发生更新,那么依次更新节点序列为s=(h1→h2→h3→......→root)上的节点,最后以更新后的证明树根节点计算RAI对应的VPCR。
MRAI会话管理维护的证明数据为RAI组件度量结果和日志、RAI证明树、根节点值θ和VPCR值,这些证明数据将和当前RAI实例的运行状态相对应。从RAI初始证明状态、更新证明状态,证明数据保存的是当前RAI实例的最新状态。
MRAI证明 证明会话管理器获得RAI需要证明的证明数据后,RAI就可以请求TPM进行远程证明。普通的远程证明是TPM使用平台身份密钥AIK(Attestation Identity Key)对PCR寄存器进行签名完成,而MRAI证明是TPM使用AIK密钥对证明数据和单调计数器数据颁发证明凭证。初始证明时,颁发初始证明凭证;更新证明时,则颁发更新证明凭证。
RAI证明前需要使用RAI证明树根节点扩展TPM的PCR寄存器,为了区别同一RAI的不同状态,或者多个RAI实例的状态,TPM使用单调计数器来标识RAI证明状态,RAI每进行一次证明,TPM会相应的增加单调计数器的值,以此保证证明状态的一致性,防止恶意攻击者和程序的重放攻击。
RAI实例与远程依赖方建立连接后将进行初始证明,TPM管理器根据证明会话管理器提供的证明数据,请求TPM生成初始证明凭证。当RAI实例已经建立可信通道连接后,如果RAI实例关联组件发生更新,此时将触发更新证明,TPM管理器使用新的证明数据,请求TPM生成更新证明凭证。初始证明凭证和更新证明凭证的格式为[θt,PCR,n,t,Sign(sk,H(n||t||PCR))],PCR为证明时(更新证明或初始证明)物理PCR的值,t为证明时的TPM单调计数器的值,sk为TPM的平台身份密钥AIK的私钥,θt为时刻t对应的RAI证明树的根节点值,n为随机数。初始证明凭证与更新证明凭证唯一不同的就是随机数n,初始证明的随机数是由远程依赖方生成,更新证明的随机数则是由TPM内部随机数发生器生成。初始证明凭证(或更新证明凭证)是TPM使用AIK私钥对相关数据签名的结果。
对于同一个物理PCR而言,存在多个RAI实例不断的初始证明(或更新证明)扩展物理PCR,PCR每扩展一次表明要么某个新的RAI进行初始证明,要么某个旧RAI的状态发生改变进行更新证明,TPM内部的单调计数器将相应的增加,TPM会生成新的证明凭证。这些证明凭证按照单调计数器的顺序构成一条如附图4所示的证明凭证链,凭证链上的凭证对应多个不同的RAI实例,都与同一个物理PCR关联。
对于某个RAI实例进行初始证明,例如图中的实例RAI[a],只需要提供计数器数值为t0时的初始证明凭证和它之前t0-1的证明凭证(显然凭证RAI实例ID≠a),这样就能证明RAI实例运行环境的可信。而在tm时刻RAI[a]实例发生了组件更新,实例RAI[a]则需要提供时刻tj到tm的证明凭证链上的全部凭证,才能证明RAI[a]更新后的状态可信,因为任何攻击者是完全无法伪造TPM提供的从tj到tm的证明凭证。
远程依赖方验证RAI的初始证明时,只需使用平台身份密钥AIK的公钥验证初始证明凭证的签名,然后根据RAI实例传递的证明数据重构RAI证明树,计算证明树根节点值,比较与证明凭证中的根节点值是否相同,紧接着验证VPCRt?=VPCRt-1·θt,如果验证成功远程依赖方则颁发确认信息,并且记录这次证明的单调计数值。
远程依赖方验证RAI更新证明首先用AIK公钥验证更新证明凭证链的签名,验证通过后从凭证链的开始依次验证VPCRt?=VPCRt-1·θt,验证通过则表明PCR的扩展是一个连续未被篡改的过程。然后使用RAI实例传递的更新证明数据重构RAI证明树,计算证明树根节点值,比较与最后一个更新证明凭证中的根节点值是否相同,紧接着验证证明凭证链上的凭证的单调计数器值是否单向递增,比较远程依赖方保存的最新计数器值是否小于最后一个更新凭证的计数器值,以此确保没有遭受重放攻击。验证通过后,远程依赖方向RAI实例应答确认信息,并且记录最后一个凭证的单调计数器值为最新单调计数器值。
上述验证过程中如果RAI更新证明验证失败,表明RAI实例的运行状态不可信,远程依赖方将切断RAI网络通讯连接。
MRAI远程证明提供了一种整体实用的证明网络应用程序可信的方法,在实际应用中对原有的身份认证、访问控制权限验证的重要补充,提供了网络应用程序状态及其运行环境的可信证据,具有广泛的应用价值。
权利要求
1.一种基于TPM的多实例动态远程证明方法,其特征在于,使用单个TPM,单个RAI实例的证明过程依次包括下述步骤
a)RAI实例启动,TPM度量RAI实例并为其颁发初始证明凭证,所述RAI实例的远程依赖方获得并验证该初始证明凭证,验证通过则建立RAI实例和RAI实例的远程依赖方之间的连接;
b)若所述RAI实例的组件发生更新,则TPM重新度量所述RAI实例并为其颁发更新证明凭证,所述RAI实例的远程依赖方获得并验证该更新证明凭证,验证通过则维持所述连接;
c)重复步骤b)直至所述RAI实例关闭,所述连接断开;
且,多个RAI实例的上述各个证明步骤之间互相穿插,形成TPM证明链。
2.如权利要求1所述的方法,其特征在于,所述TPM通过下述方法度量所述RAI实例TPM度量RAI实例的各个组件,并将各个组件的度量结果汇聚后成为RAI实例的度量结果。
3.如权利要求2所述的方法,其特征在于,所述各个组件的度量值通过下述方法汇聚成RAI实例的度量结果以所述各个组件的度量值作为RAI证明树的叶节点,逐层向上递归计算直至得到所述证明树的根节点,并以所述根节点作为所述RAI实例的度量结果;
所述RAI证明树为二叉杂凑树或认证查找树,并通过添加空节点使之构成满二叉树。
4.如权利要求3所述的方法,其特征在于,当所述RAI实例的组件发生更新时,从发生变化的组件所表示的叶节点处开始逐层向上只对发生变化的叶节点作递归计算直至得到根节点。
5.如权利要求2所述的方法,其特征在于,所述TPM通过下述方法度量所述RAI实例的组件TPM度量所述组件中的各个度量点,并将各个度量点的度量结果汇聚后成为所述组件的度量结果。
6.如权利要求5所述的方法,其特征在于,所述度量点包括可执行文件镜像、组件动态链接库、系统动态链接库、系统内核模块、组件配置数据、组件关键数据结构。
7.如权利要求1所述的方法,其特征在于,在RAI实例启动时创建虚拟PCR,其初始值为所述TPM描述所述RAI实例状态的PCR值,并且在度量所述RAI实例后用所述RAI实例的度量值扩展所述TPM的PCR值得到的值更新虚拟PCR;
所述RAI实例的远程依赖方在验证所述证明凭证时包括验证所述TPM证明链中的各个节点的虚拟PCR值是否由该节点对应的RAI实例的度量值扩展前一个节点对应的虚拟PCR值得到,若是则证明所述TPM的PCR扩展连续且未被篡改。
8.如权利要求1所述的方法,其特征在于,所述TPM包含单调计数器,所述初始证明凭证和更新证明凭证均包含凭证颁发时刻的TPM的单调计数器数值,凭证颁发后TPM更新其单调计数器数值;
所述RAI实例的远程依赖方在验证所述初始证明凭证时包括验证当前证明凭证,并验证在所述TPM证明链对应的证明凭证链中,和当前证明凭证相邻的前一证明凭证,验证通过则表明所述RAI实例在建立时可信;
所述RAI实例的远程依赖方在验证所述更新证明凭证时包括验证在所述TPM证明链对应的证明凭证链中,自所述TPM为所述RAI实例颁发的和当前证明凭证相邻的前一个证明凭证到当前证明凭证之间的所有凭证,验证通过则表明所述RAI实例在更新后可信。
9.如权利要求3所述的方法,其特征在于,所述证明凭证包括所述RAI证明树的根节点值,所述RAI实例的远程依赖方重构所述RAI证明树并验证重新计算后的根节点值是否和证明凭证中的根节点值相等。
10.如权利要求8所述的方法,其特征在于,所述RAI实例的远程依赖方在验证通过后则记录证明凭证中的单调计数器数值作为最新单调计数器数值;
所述远程依赖方在验证所述证明凭证时包括验证所述TPM证明链中的各个节点中的单调计数器数值是否按照TPM单调计数器的数值变化规律单调变化,若是则表明没有遭受重放攻击。
全文摘要
本发明公开了一种基于TPM的多实例动态远程证明方法,属于信息安全技术领域。本发明方法包括下述步骤a)RAI实例启动,TPM度量RAI实例并为其颁发初始证明凭证,所述RAI实例的远程依赖方获得并验证该初始证明凭证,验证通过则建立RAI实例和RAI实例的远程依赖方之间的连接;b)若所述RAI实例的组件发生更新,则TPM重新度量所述RAI实例并为其颁发更新证明凭证,所述RAI实例的远程依赖方获得并验证该更新证明凭证,验证通过则维持所述连接;c)重复步骤b)直至所述RAI实例关闭,所述连接断开;且,多个RAI实例的上述各个证明步骤之间互相穿插,形成TPM证明链。与其他可信计算平台的远程证明方法相比,本发明拥有平台状态动态证明、多网络程序并发证明、抗重放攻击等特色。
文档编号G06F21/00GK101344903SQ200810119279
公开日2009年1月14日 申请日期2008年9月2日 优先权日2008年9月2日
发明者宇 秦, 冯等国, 丹 汪 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1