用于证明虚拟机完整性的方法和设备与流程

文档序号:19877639发布日期:2020-02-08 06:36阅读:326来源:国知局
用于证明虚拟机完整性的方法和设备与流程

本发明大体涉及虚拟化计算机系统的证明领域。更具体地说,本发明涉及用于证明虚拟机完整性的方法和设备。



背景技术:

可信计算组织(trustedcomputinggroup,简称tcg)已经定义了一些手段,通过这些手段可以度量平台的软件完整性,并且随后由远程验证程序或证明服务器进行验证。验证平台完整性的过程称为证明或远程证明(请参阅“常规bios的tcgpc客户端特定实施规范”,http://www.trustedcomputinggroup.org/wp-content/uploads/tcg_pcclientimplementation_1-21_1_00.pdf),以便强调所述完整性度量的验证应该由不在将要证明的平台上运行的实体执行这一事实。

随着虚拟化软件的出现,已经出现了远程证明研究的新方向,即虚拟平台的远程证明。尤其是,tcg已经定义了(参见“虚拟化可信平台架构规范”,http://www.trustedcomputinggroup.org/wpcontent/uploads/tcg_vpwg_architecture_v1-0_r0-26_final.pdf)虚拟平台远程证明的两个基本要求:深度证明和层绑定。

为更好地说明如何执行虚拟平台的远程证明,图1示出了服务器不同组件的示意图,其中支持虚拟可信平台模块(virtualtrustedplatformmodule,简称vtpm)和虚拟可信度量核心根(virtualcorerootsoftrustformeasurement,简称vcrtm)的虚拟机监视器(hypervisor,简称hv)在支持物理可信度量核心根(physicalcorerootoftrustformeasurement,简称pcrtm)和物理可信平台模块(physicaltrustedplatformmodule,简称ptpm)的物理平台(计算节点)上运行。此外,两台虚拟机(virtualmachine,简称vm)将在所述虚拟机监视器上运行。

所述虚拟机(virtualmachine,简称vm)依赖虚拟可信根(virtualrootoftrust,简称vrot),其在软件中实现并且等同于物理平台的物理可信(physicalrootoftrust,简称prot)。所述vrot在所述虚拟机监视器上运行,并协助执行分配给它们的虚拟机或平台的证明过程。它们在所述虚拟平台本身也被视为具有内在可信性,因为(如在prot的情况下)它们使用与其应该证明完整性的其中一种软件不同的执行域。对于所述prot,通过所述prot在不同芯片(即,ptpm)内执行这一事实提供执行域分离。对于所述vrot,通过所述虚拟机监视器或虚拟化层的功能提供所述执行域分离,以将所述虚拟平台代码与执行所述vrot的hv代码的执行分开。此外,所述ptpm和所述vtpm分别提供实现物理平台或虚拟平台远程证明所需的prot/vrot实现方式。

如上所述,所述vrot是在与应予以证明的其中一种软件不同的执行环境中运行的软件组件。根据所述深度证明要求,对于虚拟平台或虚拟机的远程证明,不仅需要验证其软件度量,还需要验证实现所述vrot的底层虚拟化层的度量。这可以通过对所述虚拟化层或hv和所述虚拟平台或vm使用远程证明来实现,并且仅基于其度量验证和虚拟化层的综合结果来判断后者的完整性状态。

根据深度证明的要求,通过远程证明对虚拟化层度量的成功验证提供了一些保证,即所述vrot(在所述虚拟化层或hv中实现)未被篡改,并且所述虚拟化层按预期方式运行。

根据该验证结果,还可以推断出所述虚拟化层已经将正确的一组vrot实例(例如,vcrtm和vtpm实例)分配给所述虚拟平台。然而,由于以下原因,这还不够。所述虚拟化层负责运行多个虚拟平台的vrot实例集,但没有提供有关将特定vrot实例集分配给特定虚拟平台的明确保证。甚至没有以下明确保证:分配给所述虚拟平台的vrot实例集确实在该虚拟化层上运行。tcg还将此问题称为层绑定问题(请参阅上面提到的参考文件“虚拟化可信平台架构规范”)。应提供远程验证程序,证明所述虚拟平台正在使用在指定虚拟化层上运行的指定vrot实例集。在没有这种证明的情况下,所述完整性验证结果的可靠性会降低,因为用于生成完整性报告的vrot存在不确定性,并且验证结果本身无法完全可信。

鉴于上述情况,不满足深度证明和层绑定要求的远程证明过程仍然能够计算虚拟平台的完整性状态,但是该状态的相关性可能会令人质疑。特别是,在缺乏深度证明和层绑定提供的保证的情况下,可能难以确定所述虚拟平台所依赖的虚拟可信根(virtualrootoftrust,简称vrot)是否已被篡改或伪造。

相反,满足深度证明和层绑定要求的远程证明过程可确保对所述vrot(以及由它们生成的完整性报告)的信任,因为它们可以有效地成为从硬件rot开始的信任链的一部分,例如,物理可信度量核心根(physicalcorerootoftrustmeasurement,简称pcrtm)和物理tpm(参见“tcg证明pts协议:绑定到tncif-m”,http://www.trustedcomputinggroup.org/resources/tcg_attestation_pts_protocol_binding_to_tnc_ifm)。

然而,尚未提供允许以有效的可扩展方式在软件级别实现深度证明和层绑定要求的解决方案。

在wo2016085592a1中,描述了一种解决深度证明和层绑定问题的可扩展解决方案,其中该解决方案基于安全区域(即,英特尔sgx技术)以提供vtpm在指定hv上运行的证据。该解决方案可以同时扩展并满足深度证明和层绑定的要求,但是它高度依赖于所述物理平台中的特定硬件支持(即sgx支持、txt支持、一次写入寄存器等)。

因此,需要用于证明虚拟机完整性的改进方法和设备。



技术实现要素:

本发明的目的在于提供用于证明虚拟机完整性的改进方法和设备。所述设备可以是计算设备,例如数据中心服务器、个人计算机或终端设备。在整个说明书中,“服务器”一词指的是上文定义的设备。

上述和其它目的通过独立权利要求的主题来实现。根据从属权利要求、说明书以及附图,进一步的实现形式是显而易见的。

根据第一方面,本发明涉及一种通过证明服务器来证明服务器上运行的虚拟机监视器(hypervisor,简称hv)支持的虚拟机(virtualmachine,简称vm)的完整性的方法。所述方法包括以下步骤:使用虚拟签注密钥(virtualendorsementkey,简称vek)加密第一随机数;向所述vm发送vm证明请求并向所述hv发送hv证明请求,其中所述vm证明请求包括所述已加密第一随机数;从所述vm接收vm证明报告并从所述hv接收hv证明报告,其中所述vm证明报告和所述hv证明报告分别由所述vm和所述hv生成;验证所述vm证明报告是否基于所述第一随机数;基于所述vm证明报告的验证和所述hv证明报告确认所述vm的完整性。

根据所述第一方面,在所述方法的第一种可能的实现方式中,所述方法还包括以下步骤:验证所述hv证明报告是否包括所述vek和所述第一随机数;如果所述vm证明报告基于所述第一随机数且所述hv证明报告包括所述vek和所述第一随机数,则确认所述vm的完整性。

根据所述第一方面或其第一种实现方式,在所述方法的第二种可能的实现方式中,根据可信计算组织(trustedcomputinggroup,简称tcg)定义的隐私ca(privacycertificateauthority,简称pca)协议来执行所述第一随机数的加密。

根据第二方面,本发明涉及一种通过服务器上运行的虚拟机(virtualmachine,简称vm)和虚拟机监视器(hypervisor,简称hv)生成证明报告的方法。所述方法包括以下步骤:所述vm接收vm证明请求,且所述hv接收hv证明请求,其中所述vm证明请求包括使用虚拟签注密钥(virtualendorsementkey,简称vek)加密的已加密第一随机数;所述hv上运行的虚拟可信平台模块(virtualtrustedplatformmodule,简称vtpm)根据存储在所述vtpm中的vek解密所述已加密第一随机数,以响应来自所述vm的解密请求;所述vm从所述vtpm接收第一引用,其中所述第一引用使用存储在所述vtpm中的虚拟证明标识密钥(virtualattestationidentitykey,简称vaik)签名并包括所述第一随机数;所述vm生成有关所述vm的vm证明报告,其中所述vm证明报告包括所述第一引用;所述hv生成有关所述hv的hv证明报告。

根据所述第二方面,在所述方法的第一种可能的实现方式中,所述方法还包括以下步骤:所述vtpm存储所述第一随机数和所述vek,所述已存储的第一随机数和vek可通过所述hv访问;所述hv读取所述已存储的第一随机数和vek,其中所述已生成的hv证明报告包括所述已存储的第一随机数和vek。

根据所述第二方面或其第一种实现方式,在所述方法的第二种可能的实现方式中,所述方法还包括以下步骤:所述vm对所述第一随机数进行散列;所述vm根据所述已散列的第一随机数生成第一引用;所述hv对所述第一随机数和所述vek进行散列;所述hv从所述服务器的物理可信平台模块(physicaltrustedplatformmodule,简称ptpm)接收第二引用,其中所述第二引用是基于所述已散列第一随机数和所述vek生成的,所述第二引用使用物理证明标识密钥(physicalattestationidentitykey,简称paik)签名;所述hv将所述第二引用包含在有关所述hv的hv证明报告中。

根据第三方面,本发明涉及一种证明服务器,用于证明服务器上运行的虚拟机监视器(hypervisor,简称hv)支持的虚拟机(virtualmachine,简称vm)完整性,其中所述证明服务器包括:处理器,用于使用虚拟签注密钥(virtualendorsementkey,简称vek)加密第一随机数;发送单元,用于向所述vm发送vm证明请求并向所述hv发送hv证明请求,其中所述vm证明请求包括所述已加密第一随机数;接收单元,用于从所述vm接收vm证明报告并从所述hv接收hv证明报告,其中所述vm证明报告和所述hv证明报告分别由所述vm和所述hv生成。所述处理器还用于验证所述vm证明报告是否基于所述第一随机数,并基于所述vm证明报告的验证和所述hv证明报告确认所述vm的完整性。所述发送单元和接收单元可以通过收发器或单独的独立单元来实现。

根据所述第三方面,在所述证明服务器的第一种可能的实现方式中,所述证明服务器包括所述vek的公共部分(vekpub)、虚拟证明标识密钥(virtualattestationidentitykey,简称vaik)的公共部分(vaikpub)、物理签注密钥(physicalendorsementkey,简称pek)的公共部分(pekpub)和物理证明标识密钥(physicalattestationidentitykey,简称paik)的公共部分(paikpub);所述处理器还用于:通过所述vm证明报告、所述vaikpub和所述vekpub确认所述vm的完整性,并通过所述hv证明报告、所述paikpub和所述pekpub确认所述hv的完整性。

根据第四方面,本发明涉及一种服务器,其用于运行虚拟机(virtualmachine,简称vm)和虚拟机监视器(hypervisor,简称hv)。所述虚拟机vm用于接收vm证明请求,其中所述vm证明请求包括使用虚拟签注密钥(virtualendorsementkey,简称vek)加密的已加密第一随机数。所述虚拟机监视器(hypervisor,简称hv)用于:接收hv证明请求;由所述hv上运行的虚拟可信平台模块(virtualtrustedplatformmodule,简称vtpm)根据存储在所述vtpm中的vek解密所述已加密第一随机数,以响应来自所述vm的解密请求。所述虚拟机vm还用于:从所述vtpm接收第一引用,其中所述第一引用使用存储在所述vtpm中的虚拟证明标识密钥(virtualattestationidentitykey,简称vaik)签名并包括所述第一随机数;生成有关所述vm的vm证明报告,其中所述vm证明报告包括所述第一引用。所述虚拟机监视器hv还用于生成有关所述hv的hv证明报告。

根据第五方面,本发明涉及一种包括证明服务器和服务器的系统。所述证明服务器包括:处理器,用于使用虚拟签注密钥(virtualendorsementkey,简称vek)加密第一随机数;收发器,用于:向所述vm发送vm证明请求并向所述hv发送hv证明请求,其中所述vm证明请求包括所述已加密第一随机数;用于从所述vm接收vm证明报告并从所述hv接收hv证明报告,其中所述vm证明报告和所述hv证明报告分别由所述vm和所述hv生成。所述处理器还用于验证所述vm证明报告是否基于所述第一随机数,并基于所述vm证明报告的验证和所述hv证明报告确认所述vm的完整性。所述服务器包括在所述服务器上运行的虚拟机(virtualmachine,简称vm)和虚拟机监视器(hypervisor,简称hv)。所述虚拟机vm用于接收vm证明请求,其中所述vm证明请求包括使用虚拟签注密钥(virtualendorsementkey,简称vek)加密的已加密第一随机数。所述虚拟机监视器hv用于:接收hv证明请求;由所述hv上运行的虚拟可信平台模块(virtualtrustedplatformmodule,简称vtpm)根据存储在所述vtpm中的vek解密所述已加密第一随机数,以响应来自所述vm的解密请求。所述虚拟机vm还用于:从所述vtpm接收第一引用,其中所述第一引用使用存储在所述vtpm中的虚拟证明标识密钥(virtualattestationidentitykey,简称vaik)签名并包括所述第一随机数;生成有关所述vm的vm证明报告,其中所述vm证明报告包括所述第一引用。所述虚拟机监视器(hypervisor,简称hv)还用于生成有关所述hv的hv证明报告。

根据第六方面,本发明涉及一种计算机程序,其包括程序代码,用于在计算机上运行时,执行所述第一方面或其实现方式中的任一种所述的方法,或所述第二方面或其实现方式中的任一种所述的方法。

本发明可以硬件和/或软件的方式来实现。

附图说明

本发明的具体实施例将结合以下附图进行描述,其中:

图1示出了包括虚拟机监视器和两台虚拟机的服务器的示意图;

图2示出了实施例提供的包括证明服务器和服务器(包括虚拟机监视器和虚拟机)的系统的示意图;

图3示出了实施例提供的包括证明服务器和服务器(包括虚拟机监视器和虚拟机)的系统的示意图;

图4示出了实施例提供的包括证明服务器和服务器(包括虚拟机监视器和虚拟机)的系统的示意图;

图5示出了实施例提供的用于证明虚拟机完整性的方法的若干步骤的示意图;

图6示出了实施例提供的用于证明虚拟机监视器完整性的方法的若干步骤的示意图;

图7示出了实施例提供的用于证明虚拟机完整性的方法的示意图;

图8示出了实施例提供的用于通过服务器上运行的虚拟机和虚拟机监视器生成证明报告的方法的示意图。

在各附图中,相同的或至少功能等同的特征使用相同的标号。

具体实施方式

以下结合附图进行描述,所述附图是本发明的一部分,并通过图解说明的方式示出可以实施本发明的具体方面。可以理解的是,在不脱离本发明范围的情况下,可以利用其它方面,并做出结构或逻辑上的改变。因此,以下详细的描述并不当作限定,本发明的范围由所附权利要求书界定。

例如,可以理解的是,与所描述方法有关的披露对于用于执行所述方法的对应设备或系统也同样适用,反之亦然。例如,如果描述了特定方法步骤,则对应设备可以包括用于执行所描述的方法步骤的单元,即使此类单元没有在图中明确描述或图示。此外,应理解,本文所描述的各种示例性方面的特性可以相互组合,除非另外明确说明。

图2示出了实施例提供的包括证明服务器230和服务器210(包括虚拟机监视器214和虚拟机212)的系统200的示意图。

在一实施例中,所述证明服务器230和所述服务器210可以通过通信信道220(例如,有线或无线通信信道220)进行通信。

所述证明服务器230可以证明所述服务器210上运行的虚拟机监视器(hypervisor,简称hv)214支持的虚拟机(virtualmachine,简称vm)212的完整性。在一实施例中,所述证明服务器230包括:处理器232,用于使用虚拟签注密钥(virtualendorsementkey,简称vek)加密第一随机数;收发器234。所述收发器234可以用于:向所述vm212发送vm证明请求并向所述hv214发送hv证明请求,其中所述vm证明请求包括所述已加密第一随机数;从所述vm212接收vm证明报告并从所述hv214接收hv证明报告,其中所述vm证明报告和所述hv证明报告分别由所述vm212和所述hv214生成。此外,所述处理器232还用于验证所述vm证明报告是否基于所述第一随机数,并基于所述vm证明报告的验证和所述hv证明报告确认所述vm212的完整性。

虽然前一段落中提到了收发器,但可以明确的是这并非唯一可能的实现方式。该实施例和以下实施例中的发送和接收功能也可以由单独的独立单元执行,例如发送器(发送单元)和接收器(接收单元)。

所述服务器210可以通过所述vm和所述hv生成在所述服务器210上运行的虚拟机vm212和所述虚拟机监视器hv214的证明报告。在一实施例中,所述虚拟机vm212和所述虚拟机监视器hv214用于分别从所述证明服务器230接收所述vm证明请求和所述hv证明请求。

所述vm证明请求可以包括使用虚拟签注密钥(virtualendorsementkey,简称vek)加密的已加密第一随机数。此外,所述hv214可用于由所述hv214上运行的虚拟可信平台模块(virtualtrustedplatformmodule,简称vtpm)根据存储在所述vtpm中的vek解密所述已加密第一随机数,以响应来自所述vm212的解密请求。所述虚拟机vm212还可用于:从所述vtpm接收第一引用,其中所述第一引用使用存储在所述vtpm中的虚拟证明标识密钥(virtualattestationidentitykey,简称vaik)签名并包括所述第一随机数;生成有关所述vm的vm证明报告,其中所述vm证明报告包括所述第一引用。

所述虚拟机监视器hv214还可用于有关所述hv214的hv证明报告。

在本发明的实施例中,在所述证明服务器230或远程验证程序收到所述vm证明报告或完整性报告之后,启动所述hv214的证明。在本发明的实施例中,不同的信道用于证明所述vm212和所述hv214,即所述证明服务器230独立连接至vm212和hv214,如图3中的示意图所示。本发明的该实施例允许进行多个信道的独立深度证明并且具有以可扩展的方式执行所述vm212和所述hv214的深度证明的优点。

此外,在本发明的实施例中,所述服务器210可以支持在同一hv214上运行的多个vm,并且所述证明服务器230一次可以证明多个vm。所述远程验证程序或证明服务器230收到多个vm的所有完整性报告或证明报告之后,所述证明服务器230即可启动所述hv214的证明。由于所述hv214的证明是在所有vm的证明之后执行的,因此可以扩展该解决方案。

本发明的实施例还允许在前述多信道独立深度证明中实现可扩展的层绑定。为实现这一目标,在本发明的实施例中,层绑定机制适合多信道独立深度证明的架构,并且可扩展性有利地保持不变,如以下步骤中的解释。

首先,使用vm证明期间的已加密随机数,其只能由vrot(即,所述hv214上运行的vtpm)解密,所述vrot保存所述vrot实例标识密钥和所述vrot实例完整性报告签名密钥的私有部分。

其次,在所述vrot实例(在hv214上运行)解密所述随机数期间,所示标识密钥的公共部分(用于解密的密钥)和所述已解密随机数被添加到hv214中维护的列表中。

再次,在所述hv证明期间,多次执行上述步骤创建的列表包含在所述hv完整性报告或hv证明报告中,并且随后在验证所述vm完整性报告或vm证明报告期间将考虑该列表,以确定是否满足层绑定要求。

因此,本发明的实施例提供了解决方案的优点:该解决方案允许以有效的可扩展方式在软件级别实现深度证明和层绑定要求。

图4a-4b示出了所述系统200的实施例的示意图,所述系统包括实施例提供的证明服务器230和实施例提供的服务器210,所述服务器210包括所述虚拟机监视器214、所述虚拟机212和所述物理平台或计算节点216。

在本发明的该实施例中,所述证明服务器230用于根据上述多个信道独立深度证明方法执行所述vm212的vm证明和所述hv214的hv证明。所述vm212和所述hv214中的每一个都可以作为独立平台进行证明,而随后所述证明服务器230可以将每个vm证明结果与所述hv214(vm在其上运行)中的一个关联。该实施例具有以下优点:适当地满足了深度证明要求,并且所述vm完整性报告或证明报告建立在基于hv214的prot的cot之上。

由于所述vm和所述hv214可以视为独立平台,根据本发明的实施例,用于签署每个平台的完整性报告及其黄金度量的密钥(aik–证明标识密钥)在所述证明服务器230中预注册,其中所述黄金度量定义一组测量值,所述测量值描述被视为未被篡改的平台软件状态。有几种现成的方法可用于收集和注册所述证明服务器230中的黄金度量,这些方法在本发明的范围之外,注册aik的方法也是如此。

满足上述前提条件后,即可执行tcg定义的证明协议(参见“tcg证明pts协议:绑定到tncif-m”:http://www.trustedcomputinggroup.org/resources/tcg_attestation_pts_protocol_binding_to_tnc_ifm),以便为每个平台创建完整性报告或证明报告并将其传递到所述证明服务器230,以进行评估。

在本发明的实施例中,此类证明协议的主要步骤可以总结如下:

首先,所述证明服务器230通过所述通信信道220与目标平台(即,vm212或hv214)上运行的证明代理建立网络连接。

其次,所述证明服务器230生成随机数并将其包含在发送至所述vm212或hv214的证明代理的证明请求中(图4a中的步骤1.1和2.1)。

再次,所述证明代理收集完整性数据并从所述ptpm/vtpm请求签名或引用(图4a中的步骤1.3和2.3)。然后,它还会提供从所述证明服务器230接收的随机数,以使其也包括在所述签名数据中。这确保了信息的新鲜度(即,反重放保护)。最后,所述完整性数据与所述引用(共同构成所述完整性报告)将一起发送回所述证明服务器230,以进行评估(图4a中的步骤1.4和2.4)。

根据深度证明要求,只有在所述证明服务器230成功收到在其上运行的所有目标vm的完整性报告之后,才应该执行所述hv证明。所述证明服务器230的处理器232可以用于执行该序列,即仅在所述vm证明完成后才启动所述hv证明。如果所述处理器232无法执行该序列,则所述vm完整性报告或证明报告可能无法完全可信,因为潜在的攻击者可以具有(可以说是短的)时间窗口来危害所述vrot而不在当前证明周期内被检测到。

在本发明的实施例中,所述证明服务器230收到所述vm完整性报告和相应的hv完整性报告后,所述证明服务器230即可验证两种平台类型(即vm和hv214)的完整性状态。在开始验证在其上运行的vm的任何完整性报告之前,验证所述hv的完整性报告。这确保仅在通过所述hv完整性报告验证可以表明其各自vrot未被篡改的情况下才验证vm的完整性报告。

上述tcg规范“tcg证明pts协议:绑定到tncif-m”中描述了用于执行平台完整性报告验证的过程的一个示例,并且下文给出了该过程的主要步骤。

第1步:使用之前为该特定平台注册的aik公共部分验证所述引用的签名。这可以有效地证明(或反驳)所述完整性报告中其余数据的完整性。

第2步:根据所述证明服务器230在证明请求的证明过程开始时发送的值,来检查作为所述引用中签名数据的一部分的随机数(图4b中的步骤3.2.1和步骤3.1.1)。

第3步:如果已签名引用和随机数的验证成功,则所述证明服务器230将根据为该平台注册的黄金度量或适用于该平台的配置文件(它通常不能扩展至为每个平台注册黄金度量,因为多个平台具有相同的软件配置)验证所述完整性报告中的测量值。

根据本发明的实施例生成的证明报告提供强深度证明和层绑定证明。

图5示出了实施例提供的用于证明虚拟机vm212完整性的方法的若干步骤的示意图。

在该实施例中,首先,所述证明服务器230或证明机构(attestationauthority,简称aa)使用虚拟签注密钥(virtualendorsementkey,简称vek)的公共部分来加密发送至所述vm212的随机数。类似于ptpm的ek的vek在创建所述vtpm实例时生成(分配给所述vm212)并且无法删除。其目的在于充当所述vtpm实例的标识符(另请参见图4a中的步骤1.1)。可以根据tcg定义的隐私ca(privacycertificateauthority,简称pca)协议来执行所述加密,tpm1.2系列(参见tpm主规范第3部分“命令”第15.2条:“tpm_activateidentify”:http://trustedcomputinggroup.org/wp-content/uploads/tpm-main-1.2-rev94-part-3.pdf)和tpm2.0系列(可信平台模块库第3部分:命令,第12.5条:“tpm2_activatecredential”:http://www.trustedcomputinggroup.org/wp-content/uploads/tpm-rev-2.0-part-3-commands-01.16-code.pdf)规范支持该协议。解密只能在包含vek和vaik私有部分的vtpm中执行(之后可用于对所述引用进行签名)。

其次,所述vm212的vm证明代理使用vtpm对所述随机数进行解密,所述vtpm可包含vek和vaik私有部分。仅当所述vm212可以访问指定的vtpm实例时,它才能成功执行该步骤(另请参见图4a中的步骤1.2)。此外,所述vtpm可以在hv文件系统中存储(例如,写入文件)所述已解密的随机数和用于解密该随机数的vek(vekpub)的公共部分。

再次,所述vm212的vm证明代理从使用所述vaik签名的vtpm请求引用(另请参见图4a中的步骤1.3)。此外,所述vm证明代理可以向vtpm提供先前解密的随机数的散列,以包括在所述引用中。对所述随机数进行散列可以提供以下优点:即使在非安全连接上执行协议(攻击者无法重放证明序列),只有所述证明服务器230或aa以及可以访问正确的vtpm实例的vm212了解实际的随机数值。

图6示出了实施例提供的用于证明虚拟机监视器214完整性的方法的若干步骤的示意图。

在该实施例中,首先,在所述hv证明过程期间,所述hv214上运行的证明代理可以创建列表,该列表具有与每个活动vtpm实例的vek公共部分以及用于解密的随机数相关的信息(另请参见图4a中的步骤2.2)。所述列表由所述hv证明代理基于每个vtpm实例导出至所述hv文件系统的数据创建(另请结合图5做出的步骤1.2的描述)。

其次,可以对所述vekpub列表和相关的已解密随机数列表进行散列,并且该散列可以包含在作为所述hv完整性报告的一部分的ptpm签名引用中(另请参见图4a中的步骤2.3)。所生成的散列可以与所述证明服务器230提供的随机数或所述hv证明请求中的aa组合(对两者进行的散列)。这可以提供以下优点:与此同时,攻击者无法执行重放攻击,且所述引用签名也证明了所述列表的完整性。

再次,发送回所述证明服务器230或aa的完整性报告还可以包括vek和随机数的列表(另请参见图4a中的步骤2.4)。

所述hv证明代理可以确保从所述文件系统中删除由vtpm实例导出的vekpub和随机数,其包含在作为所述hv完整性报告一部分发送的列表中。由于所述随机数仅与一个(当前)证明周期相关,因此随着时间的推移积累该信息没有优势。这还可以减少所述hv完整性报告中的数据负载。

此外,在所述hv214完整性报告验证期间,可以使用包含vek公共部分和它们可以在所述hv214上解密的随机数的列表内容来更新数据库。所述数据库可以记录hv身份、vek和由vek解密的随机数之间的链接,作为已识别hv上运行的vtpm实例的一部分(参见图4b中的步骤3.1.3)。

此外,在所述vm完整性报告验证期间,可以执行两项额外的检查。可以检查所述引用中的随机数是否实际上是在所述证明请求中加密的已发送随机数的散列。成功验证所述随机数意味着,所述vm212可以访问包含vek和vaik私有部分的适当vtpm实例(另请参见图4b中的步骤3.2.1)。在所述hv完整性报告验证期间,还可以根据图4所示步骤3.1.3中更新的数据库检查所述随机数(另请所述hv214验证方法的上述步骤)。如果在所述数据库中发现使用预期vek并在预期hv214上处理的随机数,则可以提供足够的证据证明层绑定已得到妥善处理(另请参见图4b中的步骤3.2.3)。

本发明实施例提供的vm212和hv214证明方法的优点在于:它提供了加密证明,即vm证明中使用的vtpm在所述预期hv214上运行。这是因为只有具有适当vek和vaik的vtpm可以解密由所述证明服务器230或aa加密的已发送随机数。此外,所述hv证明协议通过在该特定hv214上执行随机数解密操作的引用来提供签名证明。

虚拟机和hv214证明方法的实施例的另一个优点在于:它可以扩展,支持在同一hv214上运行的大量vm的部署。这使得在多个不同vm的证明之后,仅需要一个hv证明,且对安全性没有任何影响。

此外,所述证明方法还有助于限制攻击面,因为它不需要其它hv组件对vtpm敏感内部数据进行侵入性内省。所述hv可以通过简单的“推送”机制收集源自所述vtpm实例的vekpub和随机数:所述vtpm实例可以将这些值写入所述hv文件系统的指定区域。这可以是有效的单向、只写通信信道,所述通道可以通过现有的限制技术(例如,selinux)来实施和保护。相反,通过所述vtpm实例与另一hv组件(可能是所述hv证明代理)之间的基于请求/响应的数据交换接口来执行此操作可能会增加vm212和hv214上的攻击面。此接口中的任何漏洞都可能导致未经授权的内省(hv到vm攻击)或vm突破(vm到hv攻击)。

图7示出了实施例提供的用于证明虚拟机vm212完整性的方法700的示意图。

所述方法700包括以下步骤:使用虚拟签注密钥(virtualendorsementkey,简称vek)加密(702)第一随机数;向所述vm发送(704)vm证明请求并向所述hv发送hv证明请求,其中所述vm证明请求包括所述已加密第一随机数;从所述vm接收(706)vm证明报告并从所述hv接收hv证明报告,其中所述vm证明报告和所述hv证明报告分别由所述vm和所述hv生成;验证(708)所述vm证明报告是否基于所述第一随机数;基于所述vm证明报告的验证和所述hv证明报告确认(710)所述vm的完整性。

所述方法700可以由图2的上下文中描述的证明服务器230来执行。所述方法700的其它特征直接来自所述证明服务器230的功能及其不同的实现方式。

图8示出了实施例提供的用于通过服务器210上运行的虚拟机vm212和虚拟机监视器hv214生成证明报告的方法800的示意图。

所述方法800包括以下步骤:所述vm212接收(802)vm证明请求,且所述hv214接收hv证明请求,其中所述vm证明请求包括使用虚拟签注密钥(virtualendorsementkey,简称vek)加密的已加密第一随机数;所述hv214上运行的虚拟可信平台模块(virtualtrustedplatformmodule,简称vtpm)根据存储在所述vtpm中的vek解密(804)所述已加密第一随机数,以响应来自所述vm212的解密请求;所述vm212从所述vtpm接收(806)第一引用,其中所述第一引用使用存储在所述vtpm中的虚拟证明标识密钥(virtualattestationidentitykey,简称vaik)签名并包括所述第一随机数;所述vm212生成(808)有关所述vm212的vm证明报告,其中所述vm证明报告包括所述第一引用;所述hv214生成(810)有关所述hv214的hv证明报告。

所述方法800可以由图2的上下文中描述的服务器210执行。所述方法800的其它特征直接来自所述服务器210的功能及其不同的实现方式。

尽管本发明的特定特征或方面可能已经仅结合几种实施方式或实施例中的一种进行公开,但此类特征或方面可以和其它实施方式或实施例中的一个或多个特征或方面相结合,只要对任何给定或特定的应用有需要或有利即可。而且,在一定程度上,术语“包括”、“有”、“具有”或这些词的其它变形在详细的说明书或权利要求书中使用,这类术语和所述术语“包括”是类似的,都是表示包括的含义。同样,术语“示例性的”、“例如”和“如”仅表示为示例,而不是最好或最佳的。可以使用术语“耦合”和“连接”及其派生词。应当理解,这些术语可以用于指示两个元件彼此协作或交互,不管是直接物理接触还是电接触,或者彼此不直接接触。

尽管本文中已说明和描述特定方面,但本领域普通技术人员应了解,多种替代和/或等效实现形式可在不脱离本发明的范围的情况下替代所示和描述的特定方面。本申请旨在覆盖本文论述的特定方面的任何修改或变更。

尽管以上权利要求书中的元件是利用对应的标签按照特定顺序列举的,但是除非对权利要求的阐述另有暗示用于实施部分或所有这些元件的特定顺序,否则这些元件不必限于以所述特定顺序来实施。

通过以上启示,对于本领域技术人员来说,许多替代、修改和变化是显而易见的。当然,本领域技术人员容易认识到除本文所述的应用之外,还存在本发明的众多其它应用。虽然已参考一个或多个特定实施例描述了本发明,但本领域技术人员将认识到在不偏离本发明的范围的前提下,仍可对本发明作出许多改变。因此,应理解,只要是在所附权利要求书及其等效物的范围内,可以用不同于本文具体描述的方式来实施本发明。

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