1.一种方法,包括
接收由计算设备的物理令牌生成的认证消息,该认证消息用于证实与 所述计算设备的虚拟令牌相关联的公开密钥以及所述物理令牌;以及
请求某一实体基于所述认证消息,为和所述虚拟令牌相关联的所述公 开密钥签发证书,
其中所述物理令牌和所述虚拟令牌被包括在所述计算设备中,用于实 现完整性度量的受保护存储以及执行各种完整性功能。
2.如权利要求1所述的方法,其中的接收包括
接收由所述实体的公开密钥进行加密的认证消息,并且该认证消息包 括与所述虚拟令牌相关联的所述公开密钥、以及签发给所述物理令牌的证 书这二者的散列值。
3.如权利要求2所述的方法,其中的请求包括
向所述实体发送所述认证消息、与所述虚拟令牌有关的所述公开密 钥、以及签发给所述物理令牌的所述证书。
4.如权利要求3所述的方法,其中的请求还包括
向所述实体发送一个或多个来自所述物理令牌的完整性度量引文、以 及与该完整性度量引文有关的一个或多个日志。
5.如权利要求1所述的方法,还包括
用一种对称密码算法的会话密钥来加密一个或多个完整性度量引文, 以获得第一加密参数;
用与所述实体有关的公开密钥来加密所述认证消息和会话密钥,以获 得第二加密参数;
其中的请求包括向所述实体发送所述第一加密参数和第二加密参数。
6.如权利要求1所述的方法,其中的接收包括
接收由所述实体的公开密钥进行加密的认证消息,该认证消息包括用 于证实与所述虚拟令牌相关联的公开密钥以及签发给所述物理令牌的证书 的散列值。
7.如权利要求1所述的方法,其中的接收包括
接收由所述实体的公开密钥进行加密的认证消息,该认证消息包括与 所述虚拟令牌有关的公开密钥以及签发给所述物理令牌的证书。
8.一种用于计算设备的物理令牌,其用于实现完整性度量的受保护存 储以及执行各种完整性功能,包括
寄存器,用于记录对所述计算设备的虚拟令牌进行量度的完整性度 量,和
一个或多个处理单元,用于生成标识所述寄存器的认证消息以及随机 数,该认证消息由某一实体的密钥进行加密,并且基于所述随机数而具有 唯一性。
9.如权利要求8所述的物理令牌,其中
所述一个或多个处理单元生成所述认证消息,使得该认证消息还包括 用于标识与所述虚拟令牌相关联的密钥以及签发给所述物理令牌的证书的 散列值。
10.如权利要求8所述的物理令牌,其中
所述一个或多个处理单元生成所述认证消息,使得该认证消息还标识 与所述虚拟令牌有关的密钥以及签发给所述物理令牌的证书。
11.如权利要求8所述的物理令牌,其中
所述完整性度量包括虚拟机监控器的散列值,所述虚拟机监控器包括 所述虚拟令牌。
12.如权利要求8所述的物理令牌,其中
所述认证消息包括一个或多个散列值,这些散列值用于证实与所述虚 拟令牌有关的密钥、签发给所述物理令牌的证书、以及指定所述寄存器的 索引。
13.一种用在网络中的计算设备,包括
存储器,其用于存储虚拟令牌,所述虚拟令牌用于记录第一完整性度 量,该第一完整性度量用于量度所述计算设备的完整性;
物理令牌,用于记录第二完整性度量,并且生成用于证实所述第二完 整性度量的认证消息,其中所述第二完整性度量用于量度所述虚拟令牌的 完整性,所述认证消息由某一实体的非对称密钥进行加密,并且具有唯一 性;和
处理器,用于请求所述实体基于所述认证消息,为与所述虚拟令牌相 关联的非对称密钥签发证书,
其中所述物理令牌和所述虚拟令牌被包括在所述计算设备中,用于实 现完整性度量的受保护存储以及执行各种完整性功能。
14.如权利要求13所述的计算设备,其中
所述物理令牌生成所述认证消息,使得该认证消息标识与所述虚拟令 牌相关联的非对称密钥以及签发给所述物理令牌的证书,并且
所述处理器向所述实体发送所述认证消息、与所述虚拟令牌相关联的 非对称密钥、以及签发给所述物理令牌的证书。
15.如权利要求14所述的计算设备,其中
所述处理器还发送一个或多个来自所述物理令牌的完整性度量引文、 以及与该完整性度量引文相关联的一个或多个日志。
16.如权利要求13所述的计算设备,其中,所述处理器
向所述实体发送对称密钥,该对称密钥是用所述实体的非对称密钥进 行加密的,并且
向所述实体发送认证消息、与所述虚拟令牌相关联的非对称密钥以及 签发给所述物理令牌的证书,上述三项信息都用所述对称密钥加密。
17.一种计算设备,包括
物理令牌,用于生成认证消息,以证实所述计算设备的运行环境、以 及签发给所述物理令牌的证书;和
包括虚拟令牌的虚拟机监控器,所述虚拟令牌用于进一步证实所述运 行环境,其中,所述虚拟机监控器请求所述物理令牌提供所述认证消息, 使得该认证消息被传送到某一实体,并响应于将所述认证消息传送到所述 实体而接收用于所述虚拟令牌的证书。
18.如权利要求17所述的计算设备,其中
所述物理令牌生成所述认证消息,使得该认证消息还包括一个或多个 散列值,这些散列值用于标识与所述虚拟令牌相关联的公开密钥以及签发 给所述物理令牌的证书。
19.如权利要求17所述的计算设备,其中
所述物理令牌生成所述认证消息,使得该认证消息还包括与所述虚拟 令牌相关联的公开密钥以及签发给所述物理令牌的证书。
20.如权利要求17所述的计算设备,其中
所述物理令牌将所述认证消息生成为包括代表所述虚拟机监控器的完 整性度量。
21.如权利要求17所述的计算设备,其中
所述物理令牌和虚拟令牌通过提供所记录完整性度量的引文来证实所 述运行环境,并且
所述虚拟机监控器还向所述实体提供所记录的完整性度量的一个或多 个引文。
22.一种方法,包括
接收一个请求,该请求用于使得向计算设备的虚拟令牌签发证书;
通过分析所述请求提供的已签发给所述计算设备的物理令牌的证书和 所述虚拟令牌的完整性度量来确定所述虚拟令牌是否满足签发证书的标 准;以及
如果确定所述虚拟令牌满足所述标准,则响应于此,向所述计算设备 的虚拟令牌签发所述证书,
其中所述物理令牌和所述虚拟令牌被包括在所述计算设备中,用于实 现完整性度量的受保护存储以及执行各种完整性功能。
23.如权利要求22所述的方法,其中的确定还包括
分析一个完整性度量,该完整性度量依赖于监控器的散列值,所述监 控器包含虚拟令牌。
技术领域\n本发明涉及将虚拟令牌连接到物理令牌的方法和设备。\n背景技术\n现有的基于软件的安全服务都隐含地假设计算设备或平台都是可信任 的。假定它们在安全的环境中执行,在此前提下它们提供应用级的安全 性。这种假设对于保证现有的商务模型所需的安全级别而言是成立的,但 是当前的安全功能已在提供最高级别的保护,这些级别的保护无需额外的 硬件支持就能实现。\n到目前为止,可信平台计算联盟(TPCA)在2001年7月31日发布 的TCPA主规范,版本1.1中描述了一种可信平台模块(TPM)或物理令 牌,其提供了更大的可信度,并且实现了现有服务的增强和新服务。TPM 支持对软件过程、平台引导完整性、文件完整性和软件许可的审计 (audit)和写日志(log)。TPM为平台提供了受保护信息存储库,其可 被用来证实由存在的硬件(例如,处理器、芯片集、固件等)定义的平台 的身份。这些特征鼓励着第三方将对某些信息的访问权授予平台,而在不 具有上述特征的情况下,平台将被拒绝访问这些信息。\nTPM包含单独的计算引擎,由于该引擎的过程无法更改,所以这些过 程可被信任。这些过程以及该子系统到平台的绑定,它们结合起来能够可 靠地量度并报告平台内部主计算环境的状态。TPM为平台的引导提供了信 任的根基。向平台提供安全的操作系统是所有者的责任,一旦OS被加 载,它就可以在不可信的软件被加载之前向TPM报告不可信软件的加载 情况。TPM因此可以报告量度数据,这些数据指示出平台中主软件环境的 当前状态。本地或远程实体可以仅仅查询TPM就可靠地获得这些量度结 果,并判断平台的行为是否使得它对于预期目的而言是可信任的。因为 TPM可以证实操作系统的当前状态,所以软件加载中的可信度增大了。\nTPM对保密数据可以起到入口的作用,并且只有在访问权和软件环境 的特定组合下才会允许这种数据的公开或使用。当然,TPM的受保护存储 库可用于任何敏感数据,而不仅仅是身份信息。TPM可将这些服务输出到 系统级的软件安全服务(例如IPSec),所述系统级的软件安全服务自身 也被通常的应用程序称为服务。这种布置带来了对平台身份的更大信任, 并且如果需要可同时允许平台匿名。因此,可以更加信任地来使用调用身 份验证的任何应用程序,并可授予这些应用程序更大的权力。\n发明内容\n本发明公开了可基于签发给计算设备的物理令牌的证书,向该计算设 备的虚拟令牌签发证书,从而将虚拟令牌证书联系到物理令牌证书的方法 和设备。\n根据本发明的第一方面,提供了一种方法,包括接收由计算设备的物 理令牌生成的认证消息,该认证消息用于证实与所述计算设备的虚拟令牌 相关联的公开密钥以及所述物理令牌;以及请求某一实体基于所述认证消 息,为和所述虚拟令牌相关联的所述公开密钥签发证书。\n根据本发明的第二方面,提供了一种用于计算设备的物理令牌,包括 寄存器,用于记录对所述计算设备的虚拟令牌进行量度的完整性度量,和 一个或多个处理单元,用于生成随机数以及指定所述寄存器的认证消息, 该认证消息由某一实体的密钥进行加密,并且基于所述随机数而具有唯一 性。\n根据本发明的第三方面,提供了一种计算设备,包括虚拟令牌,用于 记录完整性度量;物理令牌,用于记录量度所述虚拟令牌的完整性度量, 并且生成用于证实所述完整性度量的认证消息,所述认证消息由某一实体 的非对称密钥进行加密,并且具有唯一性;和处理器,用于请求所述实体 基于所述认证消息,为与所述虚拟令牌相关联的非对称密钥签发证书。\n根据本发明的第四方面,提供了一种计算设备,包括物理令牌,用于 生成认证消息,以证实所述计算设备的运行环境、以及签发给所述物理令 牌的证书;和包括虚拟令牌的虚拟机监控器,所述虚拟令牌用于进一步证 实所述运行环境,其中,所述虚拟机监控器请求所述物理令牌提供所述认 证消息,使得该认证消息被传送到某一实体,并响应于将所述认证消息传 送到所述实体而接收用于所述虚拟令牌的证书。\n根据本发明的第五方面,提供了一种方法,包括接收一个请求,该请 求用于使得向计算设备的虚拟令牌签发证书;基于所述请求的信息来确定 所述虚拟令牌是否满足对适当的虚拟令牌的标准;以及如果确定所述虚拟 令牌满足所述标准,则响应于此,向所述计算设备的虚拟令牌签发所述证 书。\n附图说明\n在附图中以示例的方式而不是以限制的方式图示了这里所描述的发 明。为简单和清楚起见,附图中所示的元件未必是按照比例绘制的。例 如,为了清楚起见,某些元件的尺寸可以相对于其它元件被夸大。此外, 在合适的地方,在附图中用相同的标号来表示对应的或类似的元件。\n图1示出了包括物理令牌和虚拟令牌的计算设备的例子。\n图2示出了图1中的物理令牌和虚拟令牌的例子。\n图3示出了可由图1中的计算设备来实施的可信运行环境的例子。\n图4示出了获得图1中的虚拟令牌的证书(credential)的方法示例。\n具体实施方式\n在下面的详细描述中,描述了很多具体的细节以彻底地理解本发明。 然而,没有这些具体细节也可以实现本发明。此外,没有具体地描述公知 的方法、过程、组件和电路,以免模糊本发明。而且,给出了示例性的尺 寸/模型/值/范围,但是本发明不限于这些具体的示例。\n在说明书中引用“一个实施例”、“实施例”、“示例性实施例”等 都表示所描述的实施例可以包括特定的特点、结构或特征,但不是每个实 施例都要包括这些特定的特点、结构或特征。而且,这些短语指的不一定 是同一个实施例。此外,当关于某个实施例来描述特定的特点、结构或特 征时,我们认为无论是否做出明确的描述,都可以将这样的特点、结构或 特征应用到其它实施例中,这种做法属于本领域技术人员的知识范围之 内。\n图1中所示的示例性计算设备100可以包括一个或多个处理器110。 处理器110可支持一种或多种工作模式,例如实模式、保护模式、虚拟 8086模式和虚拟机器模式(VMX模式)。此外,在每一种支持的工作模 式中,处理器110可支持一个或多个特权级别或环。总之,处理器110的 工作模式和特权级别决定了可用于执行的指令以及执行这些指令的效果。 更具体地说,只有当处理器110处于适当的模式和/或特权级别时,才允许 处理器110执行某些具有特权的指令。\n芯片集120可包括一个或多个集成电路封装或芯片,它们将处理器 110耦合到存储器130、网络接口140、物理令牌150、虚拟令牌160和计 算设备100的其它I/O设备170,例如鼠标、键盘、盘驱动器、视频控制 器等。芯片集120可包括存储器控制器(未示出),用于将数据写入存储 器130或从中读出数据。此外,芯片集120和/或处理器110可将存储器 130的某些区域定义为受保护存储器132,这些区域只有当处于特定的工 作模式(例如保护模式)和特权级别(例如,OP)时才可由处理器110进 行访问。\n网络接口140通常为计算设备100提供通信机制,以经由网络180与 远程代理190和认证机构195通信。例如,网络接口140可包括10Mb或 100Mb的以太网控制器、缆线调制解调器、数字用户线(DSL)调制解调 器、普通老式电话业务(POTS)调制解调器等,从而将计算设备100耦合 到一个或多个远程代理190和/或认证机构195。\n总的来说,计算设备100的物理令牌150包括用于完整性度量、密钥 和机密的受保护存储,并可响应于来自处理器110和芯片集120的请求执 行各种完整性功能。具体地说,物理令牌150可以可信方式来存储完整性 度量,可以可信方式来引用完整性度量,可将机密对于特定的环境(当前 的或以后的)施行保密,并可将机密对于以前施行保密的环境进行解密。 此外,后面将进行解释,物理令牌150可包括一个用于独一无二地标识计 算设备100的标识符或密钥。\n虚拟令牌160以和计算设备100的物理令牌150相类似的方式来操 作。然而,由于虚拟令牌160可利用存储器130和受保护存储器132的存 储能力来存储完整性度量、密钥和机密,所以虚拟令牌160可包括更多的 用于完整性度量、密钥和机密的受保护存储。此外,由于虚拟令牌160可 以利用处理器110的处理能力来执行完整性操作,所以虚拟令牌160相比 物理令牌150可以更快地执行这些完整性操作。\n如图2所示,物理令牌150可包括一个或多个处理单元210,它们可 为计算设备100执行完整性功能。物理令牌150还可以根据非对称密码算 法例如RSA密码算法来生成固定私有密钥220和对应的固定公开密钥 222。在一个示例性的实施例中,物理令牌150生成固定私有/公共密钥对 220、222,使得固定私有密钥220和对应的公开密钥222是独一无二的, 并且一旦激活就不可改变。\n也可以将物理令牌150附接到计算设备100上或合并到计算设备100 当中,以向远程代理190提供某种保证,确保物理令牌150仅与一个计算 设备100相关联。例如,物理令牌150可合并到芯片集120的多个芯片之 一中,和/或表面安装到计算设备100的主板上。由于固定物理令牌150的 独一无二性,并且它还合并到计算设备100中,所以远程代理190可以基 于物理令牌150的固定公开密钥222而有一定把握地识别计算设备100。\n除了固定私有/公共密钥对220、222之外,物理令牌150还可以根据 非对称密码算法来生成一个或多个辅助私有/公共密钥对230、232。在一 个示例性的实施例中,尽管固定私有/公共密钥对220、222是不可改变 的,但是计算设备100可以根据需要生成辅助私有/公共密钥对230、 232。由此,计算设备100一般仅向一小组可信实体例如远程代理190和 认证机构195提供固定公开密钥222。此外,计算设备100一般使用它的 辅助私有/公共密钥对230、232来进行其它大部分加密、解密和数字签名 操作,以减少固定公开密钥222的暴露。\n物理令牌150还包括一个或多个平台配置寄存器(PCR寄存器) 240、242、244,它们可被用来以可信方式记录并报告完整性度量。处理 单元210可支持一种PCR引文操作,该操作返回所标识的PCR寄存器 240、242、244的内容或引文。处理单元210也可以支持PCR扩展操作, 所述操作在所标识的PCR寄存器240、242、244中记录接收到的完整性度 量。具体地说,PCR扩展操作可以(i)将接收到的完整性度量联接或附加到 存储在所标识的PCR寄存器240、242、244中所存储的一个完整性度量 上,以获得一个附加后的完整性度量,(ii)散列(hash)所述附加后的完整 性度量,以获得一个更新后的完整性度量,其代表了接收到的完整性度量 和先前由所标识的PCR寄存器240、242、244记录的完整性度量,以及 (iii)将更新后的完整性度量存储在PCR寄存器240、242、244中。\n用在这里,动词“散列”以及相关的形式指的是在一个操作数或消息 上执行操作,以产生一个值或一个“散列值”。理想情况下,散列操作生 成一个散列值,要想从该散列值中找到具有这个散列值的消息,在计算上 是不可行的,并且也不可能从该散列值中确定出关于具有这个散列值的消 息的任何有用信息。此外,散列操作在理想情况下生成散列值,使得要确 定两个产生同一散列值的消息在计算上是不可能实现的。散列操作在理想 情况下具有以上性质,在实际当中,单向函数例如Message Digest 5函数 (MD5)和Secure Hashing Algorithm(SHA-1)生成一些散列值,要想从 中推导出所述消息是很困难的,在计算上是很密集的和/或在现实中是不可 行的。\n可用多种不同的方式来实现物理令牌150。但是,在一个示例性的实 施例中,遵循可信平台模块(TPM)的规范来实现物理令牌150,所述规 范在可信计算平台联盟(TCPA)主规范,版本1.1,2001年7月31日中 做了详细描述。\n还是参考图2,虚拟令牌160可提供虚拟结构或软件结构,这些结构 提供与物理令牌150类似的功能。具体地说,虚拟令牌160可以包括一个 或多个处理单元250,这些单元可为计算设备100执行完整性功能。虚拟 令牌160还可以根据非对称密码算法生成固定私有密钥260和对应的固定 公开密钥262,使得固定私有密钥260和对应的公开密钥262是独一无二 的,并且一旦激活就不可改变。\n除了固定私有/公共密钥对260、262之外,虚拟令牌160也可以根据 非对称密码算法生成一个或多个辅助私有/公共密钥对270、272。虚拟令 牌160还可以包括一个或多个虚拟PCR寄存器280,这些寄存器可被用于 以可信的方式来记录并报告完整性度量。\n图3中示出了示例性的可信运行环境300。计算设备100可以利用处 理器110的工作模式和特权级别来建立可信的运行环境300。如图所示, 可信运行环境300可以包括可信虚拟机内核或监控器310、一个或多个标 准虚拟机(标准VM)320和一个或多个可信虚拟机(可信VM)330。运 行环境300的监控器310运行在最高特权的处理器环(例如0P)上的受保 护模式中,以管理虚拟机320、330之间的安全和特权屏障。此外,监控 器310可包括实现虚拟令牌160的功能的代码。或者,可用单独的VT软 件模块来实现虚拟令牌160。\n标准VM 320可包括操作系统322和一个或多个应用程序324,所述 操作系统322在VMX模式的最高特权处理器环(例如0D)上运行,所述 应用程序324在VMX模式的较低特权处理器环(例如3D)上运行。因为 监控器310运行所在的处理器环比操作系统322运行所在的处理器环具有 更高的特权,所以操作系统322不具有对计算设备100的随意控制,相 反,却受到监控器310的控制和约束。具体地说,监控器310可以防止操 作系统322及其应用程序324访问受保护的存储器132和物理令牌150。\n监控器310可以对可信内核332执行一种或多种量度,例如内核代码 的散列,以获得一个或多个完整性度量,可使得物理令牌150能用内核 332的完整性度量来扩展所标识的PCR寄存器244,并可将所述完整性度 量记录在存储于受保护存储器132中的关联PCR日志中。监控器310然后 可基于内核332的完整性度量来确定它是否信任内核332。如果确定内核 332是值得信任的,则监控器310可响应于此,在受保护存储器132中建 立可信VM 330,并在建立起来的可信VM 330中启动可信内核332。\n类似地,可信内核332可对小应用程序(applet)或应用程序334进行 一种或多种量度,例如对小应用程序的代码进行散列,以获得一个或多个 完整性度量。可信内核332接着通过监控器310使得物理令牌150用小应 用程序334的完整性度量来扩展所标识的PCR寄存器。可信内核332还可 以将所述完整性度量记录在存储于受保护存储器132中的关联PCR日志 中。可信内核332可基于小应用程序334的完整性度量来确定它是否信任 小应用程序334。如果确定小应用程序334是值得信任的,则可信内核 332可响应于此,在受保护存储器132中已建立的可信VM 330中启动可 信小应用程序334。\n如果启动了图3中的可信运行环境300,则计算设备100可响应于 此,也将对监控器310和虚拟令牌160的完整性度量记录在监控器PCR寄 存器240中,还将对硬件的完整性度量记录在可信支持(TS)PCR寄存器 242中。可响应于各种事件而启动可信运行环境300,例如系统启动、应 用程序请求、操作系统请求等。\n在一个示例性的实施例中,计算设备100如下所述地获得并记录对监 控器310和虚拟令牌160的完整性度量。处理器110散列监控器软件模 块,以获得监控器完整性度量。然后,处理器110使得物理令牌150利用 所述监控器完整性度量来扩展监控器PCR寄存器240,并将所述监控器完 整性度量记录在存储于受保护存储器132中的监控器PCR日志当中。此 外,如果虚拟令牌(VT)功能被实现为单独的软件模块,则处理器110散 列该VT软件模块,以获得VT完整性度量。然后,处理器110使得物理 令牌150利用所述VT完整性度量来进一步扩展监控器PCR寄存器240, 并将所述VT完整性度量记录在监控器PCR日志中。监控器PCR寄存器 240现在包括了一个既代表监控器310又代表虚拟令牌160的值。\n计算设备100还可以将对硬件的完整性度量记录在TS PCR寄存器 242中,以提供对可信运行环境的硬件支持的记录。在一个示例性的实施 例中,处理器110可以获得硬件标识符,例如处理器110、芯片集120和 物理令牌150的处理器系列、处理器版本、处理器微代码版本、芯片集版 本和物理令牌版本。然后,处理器110可以利用所获得的硬件标识符来扩 展TS PCR寄存器242,并将所述硬件标识符记录在存储于受保护的存储 器132中的TS PCR日志中。\n除了在物理令牌150中记录完整性度量之外,计算设备100还可以将 所记录的完整性度量报告给远程代190或认证机构195,以使得远程代 理190和认证机构195能够基于所报告的完整性度量来做出信任判断。例 如,计算设备100可向认证机构195提供完整性度量,从而让认证机构 195向计算设备100签发身份证书,该身份证书用于证实与身份证书所标 识的实体(例如,计算设备100)绑定在一起的身份证书的公开密钥。计 算设备100可以向远程代理190提供所签发的身份证书,从而从该远程代 理190处获得机密。然后,远程代理190可以确定是否向身份证书所标识 的实体公开机密。如果远程代190决定向所述身份证书所标识的实体公 开机密,则远程代理190可以用所述身份证书的公开密钥来加密所请求的 机密,并向发出请求的实体提供加密后的机密。\n在一个示例性的实施例中,认证机构195可以向计算设备100的辅助 公开密钥232签发物理令牌(PT)身份证书。在签发该PT身份证书时, 认证机构195主要证实该PT身份证书的辅助公开密钥232属于该PT身份 证书所标识的物理令牌150。所述PT身份证书可以包括该PT身份证书的 身份标签、与这个PT身份证书绑定在一起的辅助公开密钥232、PT背书 证书的引用、平台证书的引用、一致性证书的引用、以及物理令牌150的 版本标识符,这些都由签发PT身份证书的认证机构195的私有密钥 CAPriv来加密。\nPT身份证书所引用的PT背书证书、平台证书和一致性证书都是认证 机构195签发的证书,它们用于证实计算设备100的多个完整性方面,并 提供用于支持这种证实的信息。具体地说,PT背书证书证实该PT背书证 书的固定公开密钥232是由所识别出的物理令牌150生成的,并且所识别 出的物理令牌150满足为适当的物理令牌150而定义的标准。类似地,平 台证书主要证实与所引用的PT背书证书绑定在一起的平台或计算设备100 所具有的设计和构造满足为适当的平台所定义的标准。此外,一致性证书 用于证实与所引用的PT背书证书绑定在一起的平台或计算设备100所具 有的总体设计符合为适当的平台所定义的标准。\n可以多种不同方式来实现并签发PT身份证书、PT背书证书、平台证 书和一致性证书。然而,在一个示例性的实施例中,所实施并签发的PT 身份证书、PT背书证书、平台证书和一致性证书分别遵循在2001年7月 31日发布的TCPA主规范,版本1.1中所具体描述的“身份证书”、 “TPM背书证书”、“平台证书”和“一致性证书”的要求。\n现在参考图4,描绘了一种方法400,该方法用于从所选择的认证机 构195处获得VT背书证书。计算设备100可以响应于各种事件而执行方 法400,所述事件例如是监控器310、标准VM 320、可信VM 330、远程 代理190和/或认证机构195请求计算设备100建立虚拟令牌160及相应的 VT背书证书。在签发VT背书证书时,所选择的认证机构195证实该VT 背书证书的固定公开密钥262与虚拟令牌160绑定,该虚拟令牌160与所 述计算设备100绑定并唯一地标识它,并且所述虚拟令牌160满足为适当 的虚拟令牌所定义的标准。\n计算设备100和所选择的认证机构195可以响应于执行机器可读介质 的指令而执行方法400的所有步骤或其中一部分,所述机器可读介质例如 是只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光 盘存储介质、闪存器件、和/或以电、光、声或其它形式传播的信号,例如 载波、红外信号、数字信号、模拟信号。另外,虽然方法400将计算设备 100和所选择的认证机构195的操作图示为一序列的操作,但是计算设备 100和所选择的认证机构195可以并行地或以不同的顺序来执行多种不同 的操作。\n在框410,响应于一个请求,监控器310生成和/或获得被提供给物理 令牌150的参数,其中所述请求是请求物理令牌150证实监控器310的身 份,将接收的参数联系到所述请求,并证实计算设备100的当前硬件和/或 软件环境。在框418,监控器310可通过执行请求函数例如 TPM_VirtualTPMCredential函数来对物理令牌150做出这一请求。下面示 出了示例性的TPM_VirtualTPMCredential函数的格式:\nTPM_VirtualTPMCredential(SigH,MQuote,CertM1,H2,AllPCRQuote) 其中,被签名的散列值SigH是一个输入参数,而参数MQuote、CertM1、 H2、AllPCRQuote是由物理令牌150提供的输出参数。\n被签名的散列值SigH向物理令牌150提供一个值,这个值标识出VT 公开密钥262、物理令牌150的PT身份证书PTIdCred和所选择的认证机 构195的公开密钥CAPub。例如,监控器310可生成一个数据集,其包括 有VT公开密钥262、PT身份证书PTIdCred和公开密钥CAPub,并可用 VT私有密钥260对该数据集进行加密,以获得被签名的数据集SigDS。然 后,监控器310可以通过SHA-1散列算法或其它一些算法来散列这个被签 名的数据集SigDS,以获得被签名的散列值SigH,用于证实、对之取指纹 或者标识VT公开密钥262、PT身份证书PTIdCred和公开密钥CAPub。\n响应于所述请求,物理令牌150在框422中向监控器310提供用于证 实监控器310的身份、VT公开密钥262和PT身份证书PTIdCred并且证 实计算设备100的当前硬件和/或软件环境的信息。例如,响应于示例性的 TPM_VirtualTPMCredential函数,物理令牌150向监控器310提供认证消 息CertM1,被签名的索引MQuote,所有PT PCR寄存器240、242、244 的引文AllPCRQuote,以及具备唯一性并用于证实其它参数的散列值H2。 物理令牌150可通过利用与PT身份证书PTIdCred相关联的辅助私有密钥 230来加密用于标识物理令牌150的监控器PCR寄存器240的索引 MPCR,从而生成被签名的索引MQuote。\n在一个示例性的实施例中,物理令牌150基于以下消息格式来生成认 证消息CertM1:\nCertM1=(Format1,H1,H2)CAPub\n这表示认证消息CertM1包括由公开密钥CAPub加密的散列值H1和所述 散列值H2。格式参数Format1可以包括预定义的ASCII字符串,例如 “PT_CertM1”,其用于将所述消息标识为由物理令牌150创建的认证消 息CertM1。公开密钥CAPub对应于所选择的认证机构195的公开密钥, 它可能已经应监控器310的请求而提供,或先前已提供给物理令牌150。\n散列值H1用于标识VT公开密钥262、PT身份证书PTIdCred和公开 密钥CAPub,并具备唯一性以利于防止重放(replay)攻击。在一个示例 性的实施例中,物理令牌150生成一个随机现时值Noncel,例如由它的处 理单元210的随机数发生器生成的160位随机值。然后,物理令牌150可 通过根据某种散列算法例如SHA-1散列算法,散列从监控器310接收的被 签名的散列值SigH以及所生成的随机现时值Noncel,从而生成散列值 H1。\n散列值H2证实散列值H1、索引MPCR、被签名的索引MPCR,并具 备唯一性。在一个示例性的实施例中,物理令牌150可通过对散列值 H1、索引MPCR和被签名的索引MQuote进行散列而生成散列值H2,从 而将散列值H1联系到索引MPCR和被签名的索引MQuote。此外,因为 散列值H2包括散列值H1,所以散列值H2还证实VT公开密钥262、PT 身份证书PTIdCred和公开密钥CAPub,因而还将这些参数联系到索引 MPCR和被签名的索引MPCR。此外,散列值H2通过散列值H1的随机现 时值Noncel而包括唯一性。\n监控器310在框426中可生成证书请求包CredP1,其向认证机构195 提供信息,认证机构195可从所述信息决定签发VT背书证书。在一个示 例性的实施例中,物理令牌150基于以下的包格式来生成证书请求包 CredP1:\nCredP1=(EDS1,CredM1·CAPub)\n这表示证书请求包CredP1包括用所选择的认证机构195的公开密钥 CAPub进行加密的证书请求消息CredM1以及不是用公开密钥CAPub进行 加密的加密数据集EDS1。\n加密数据集EDS1提供关于计算设备100的信息。在一个示例性的实 施例中,监控器310生成数据集DS1,该数据集包括认证消息CertM1, VT公开密钥262,PT身份证书PTIdCred,用于标识TS PCR寄存器242 的索引TSPCR,PCR寄存器240、242、244的引文AllPCRQuote以及 PCR寄存器240、242、244的日志AllPCRLog。监控器310还生成会话密 钥S1,并使用会话密钥S1和对称加密算法例如DES、3DES和/或AES对 数据集DS1进行加密。\n证书请求消息CredM1证实加密数据集EDS1的信息,并提供用于加 密/解密所述加密数据集EDS1的会话密钥S1。在一个示例性的实施例 中,监控器310基于下列消息格式生成证书请求消息CredM1:\nCredM1=(Format2,H2,H3,S1)CAPub 这表示证书请求消息CredM1包括格式参数Format2、由物理令牌150提供 的散列值H2、另一个散列值H3和会话密钥S1,上述信息都用所选择的 认证机构195的公开密钥CAPub进行加密。\n格式参数Format2可包括预定义的ASCII字符串,例如 “Mon_CredM1”,其用于将所述消息标识为由监控器310创建的证书请 求消息。散列值H3用于证实数据集DS1的数据。监控器310可通过使用 散列算法或其它某种算法来散列数据集DS1的参数,从而生成散列值 H3。在一个示例性的实施例中,监控器31使用SHA-1散列算法来散列证 书消息CredM1、VT公开密钥262、PT身份证书PTIdCred、索引 TSPCR、引文AllPCRQuote以及日志AllPCRLog。\n在框430中,监控器310可以请求所选择的认证机构195向虚拟令牌 160签发VT背书证书,并且可以将证书请求包CredP1传送到所选择的认 证机构195以支持所述请求。在一个示例性的实施例中,作为一个事务 (transaction)的一部分,监控器310将证书请求包CredP1传送到认证机 构195,该事务可以提供有关所述请求的进一步信息,例如所使用的加密 算法、所使用的散列算法、所使用的证书请求包格式等。\n在框434中,认证机构195可以拆分所述证书请求包CredP1,以获得 由该证书请求包CredP1提供的信息。例如,认证机构195可以使用它相 应的私有密钥CAPriv来解密证书请求包CredP1,以得到会话密钥S1和证 书请求包CredP1的其它信息。认证机构195还可以使用认证消息CertM1 的会话密钥S1来解密所述加密数据集EDS1,从而获得数据集DS1的数 据。认证机构195还可以使用它的私有密钥CAPriv来解密认证消息 CertM1和证书请求消息CredM1。\n在框438,认证机构195可以验证证书请求包CredP1所提供的信息。 例如,认证机构195可以由数据集DS1所提供的参数来重新计算散列值 H1、H2、H3,以获得计算后的散列值CH1、CH2、CH3。然后,如果计 算后的散列值CH1、CH2、CH3与所提供的散列值H1、H2、H3具有预定 的关系(例如,相等),则认证机构195响应于此,可以确定数据集DS1 的数据正是散列值H1、H2、H3证实的参数。\n如果确定证书请求包CredP1所提供的信息不对应于该证书请求包 CredP1的散列值H1、H2、H3,则响应于此,认证机构195在框442可以 拒绝签发所请求的VT背书证书。认证机构195还可以向计算设备100提 供关于为什么拒绝对VT背书证书VTCred的请求的指示。在一个示例性 的实施例中,认证机构195不提供有关为什么拒绝请求的任何指示,以防 止提供可被用来规避认证过程的信息。\n如果确定证书请求包CredP1所提供的信息对应于该证书请求包 CredP1的散列值H1、H2、H3,则响应于此,认证机构195在框446可以 基于PT身份证书参数PTIdCred来确定它是否不信任物理令牌150。认证 机构195可能由以下原因而确定虚拟令牌160是不值得信任的:所识别出 的物理令牌150的版本已知为易受攻击的、PT身份证书已过期、和/或PT 身份证书所标识的实体是不值得信任的。认证机构195还可以由以下原因 而确定虚拟令牌160是不值得信任的:签发PT身份证书的认证机构195 是不值得信任的、所引用的平台一致性证书是不值得信任的、和/或所引用 的一致性证书是不值得信任的。\n如果基于PT身份证书参数PTIdCred而不信任虚拟令牌160,则响应 于此,认证机构195在框442可以拒绝签发所请求的VT背书证书。否 则,认证机构195在框450中可以基于监控器PCR寄存器240的引文以及 它对应的PCR日志来确定认证机构195是否不信任计算设备100的虚拟令 牌160。如上所述,监控器PCR寄存器240记录监控器310和虚拟令牌 160的完整性度量。此外,监控器PCR日志包括被监控器PCR寄存器240 记录的完整性度量。因此,认证机构195可以基于证书请求包CredP1的 索引MPCR,从引文AllPCRQuote和日志AllPCRLog中获得监控器PCR 寄存器240的引文和日志。然后,认证机构195可确定监控器PCR寄存器 240的引文和日志是否指示出监控器310的一种可信任实现。\n如果基于监控器PCR寄存器240的引文和日志而不信任虚拟令牌 160,则响应于此,认证机构195在框442可以拒绝签发所请求的VT背书 证书。否则,认证机构195在框454可以基于TS PCR寄存器242的引文 以及它对应的PCR日志来确定认证机构195是否不信任计算设备100的虚 拟令牌160。如上所述,TS PCR寄存器242记录对计算设备100的硬件组 件的完整性度量,从中可以确定可信的环境支持能力。此外,TS PCR日 志包括由TS PCR寄存器242记录的完整性度量。因此,认证机构195可 以基于证书请求包CredP1的索引TSPCR,从引文AllPCRQuote和日志 AllPCRLog中获得TS PCR寄存器242的引文和日志。然后,认证机构 195可以确定TS PCR寄存器242的引文和日志是否指示了可信的硬件组 件。\n如果基于TS PCR寄存器242的引文和/或日志而不信任虚拟令牌 160,则响应于此,认证机构195在框442可以拒绝签发所请求的VT背书 证书。否则,认证机构195在框458可以基于证书请求包CredP1的附加信 息来确定是否不信任计算设备100的虚拟令牌160。例如,认证机构195 可以基于由证书请求包CredP1的引文AllPCRQuote和日志AllPCRLog提 供的其它PCR寄存器244的引文和/或日志来确定对虚拟令牌160的不信 任。\n如果基于所述附加信息而不信任虚拟令牌160,则响应于此,认证机 构195在框442可以拒绝签发VT背书证书。否则,认证机构195在框462 可以向监控器310提供所请求的VT背书证书。为此,认证机构195可以 生成VT背书证书,其包括用于将该证书标识为VT背书证书的标签、虚 拟令牌160的固定公开密钥262、对认证机构195的引用,以及关于计算 设备100、物理令牌150和/或虚拟令牌160的其它可能信息。然后,认证 机构195可以用它的私有密钥CAPub给VT背书证书进行数字签名,并且 还用虚拟令牌160的公开密钥262对被签名的背书证书加密。\n计算设备100随后可以向远程代理190提供所获得的VT背书证书, 以证实该VT背书证书的固定公开密钥262被绑定到计算设备100。此 外,计算设备100可以利用VT背书证书从所选择的认证机构195中获得 VT身份证书,这些VT身份证书用于证实辅助公开密钥272被绑定到计算 设备100。认证机构195可以用类似于上述PT身份证书的方式来签发VT 身份证书。\n应当理解,上述方法400仅是一个示例性的方法。例如,方法400利 用一些技术克服了典型的非对称密码算法的大小限制。非对称密码算法一 般只能成功地对某些数据或数据集进行加密,这些数据或数据集的大小要 小于或等于该非对称密码算法的模数(modulus)所定义的最大尺寸。一 种克服非对称密码算法的大小限制的方法就是生成用于对称算法的会话密 钥,使用该会话密钥和所述对称算法对数据集进行加密,并且使用非对称 密钥和非对称加密算法来加密所述会话密钥。随后可由使用对应的非对称 密钥和非对称算法而获取的会话密钥来解密所述数据集。这样,就通过非 对称密钥和非对称加密算法对数据集进行了有效地加密。\n另一种克服非对称密码算法的大小限制的方法则是生成一个或多个用 于证实包含在数据集中的数据的散列值,并对所述一个或多个所生成的散 列值进行非对称加密。一个实体(例如,认证机构195)可以非对称地解 密这些散列值,从所接收的数据集中算出计算后的散列值,并且如果计算 后的散列值与解密后的散列值具有预定的关系(例如,相等),则响应于 此,确定所接收的数据集就是解密后的散列值所证实的数据集。\n另外一种克服所述大小限制的方法是将数据集分割为若干数据子集, 这些子集都小于非对称密码算法的最大尺寸。然后,可以使用非对称密钥 和非对称算法来逐个加密各数据子集。随后,一个实体(例如,认证机构 195)可以使用对应的非对称密钥来解密每一个子集,并由这些数据子集 重建该数据集。\n应当理解,根据数据集的大小和所使用的加密算法的大小限制,可以 实现方法400来使用以上技术中的一些技术,也可不使用它们。此外,应 当理解,所描述的方法400也使用散列值(例如,H1、H2、H3)来减小 各组件(例如,监控器和物理令牌150)和/或各实体(计算设备100和认 证机构195)之间的流量,所述散列值是较大数据集(例如160KByte)的 压缩表示(例如,160比特)。然而,应当理解的是,总的来说,可以用 散列值所代表的数据集的传送来代替散列值的生成和/或传送。\n例如,监控器310可向物理令牌150提供由被签名的散列值SigH来 表示的数据集的一个或多个部分(例如,VT公开密钥262、PT身份证书 PTIdCred、和/或公开密钥CAPub)。因此,被签名的散列值SigH的生成 和传送,或者在被签名的散列值SigH中包含数据集的那些部分,这些操 作都可以被消除。然后,如上所述,物理令牌150可以通过认证消息 CertM1的散列值H1、H2来证实数据集的已接收部分。或者,物理令牌 150可以通过将数据集的所接收部分中的一个或多个包括在认证消息 CertM1中,而证实数据集的所接收部分。这样,就可消除认证消息 CertM1的散列值H1、H2,或者不必包含数据集中的某些部分就可以生成 认证消息CertM1的散列值H1、H2,其中所述数据集中的某些部分仅通过 包含在认证消息CertM1中就可以被证实。应当理解,如果认证消息 CertM1包括数据而不是该数据的散列值,那么由于认证机构195可以从认 证消息CertM1中获得该数据,所以可从数据集DS1中消除这样的数据。\n虽然已参考示例性的实施例对本发明的某些特点进行了描述,但是不 应将这些描述理解为限制性的含义。对于本发明所属领域的技术人员而 言,可以对所述示例性的实施例、以及本发明的其它实施例做出各种修 改,这些修改都被视为落入本发明的精神和范围之内。
法律信息
- 2018-11-09
未缴年费专利权终止
IPC(主分类): G06F 1/00
专利号: ZL 02825303.5
申请日: 2002.11.22
授权公告日: 2007.09.05
- 2007-09-05
- 2005-06-08
- 2005-04-06
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
1999-11-17
|
1999-05-31
| | |
2
| | 暂无 |
1996-09-27
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |