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