在一个往返行程中的密钥认证的制作方法

文档序号:7914277阅读:467来源:国知局
专利名称:在一个往返行程中的密钥认证的制作方法
在一个往返行程中的密钥认证
背景技术
密码密钥的使用涉及到信任。当A利用B的密钥来加密数据时,A期望只有B将能够解密该数据。而当A验证利用B的密钥创建的签名时,A期望有效签名的存在以表示B 实际上签署了对其计算该签名的数据。因而,当A使用B的密钥时,A想知道A如何能够肯定B的密钥真正属于B以及A如何能够肯定B的密钥还没有被攻破是合法的。通常通过证书来建立对密钥的信任。当实体创建密钥时,该实体向机构提交该密钥以便认证。该机构确定该密钥及其所有者是否符合该机构用于认证的标准。如果是这样的话,该机构为该密钥颁发证书,其中该证书包含由该机构签署的密钥。机构是其服务的团体(community)所知晓的并且该团体信任其来认证其他实体的密钥的实体。如果公认的机构认证密钥,则信任该机构的团体将信任所认证的密钥。例如,浏览器定期接收更新的机构的列表,并且这些浏览器将信任由该列表上的机构颁发的证书。组织(例如,公司)可以具有被该组织内的机器认可并信任的证书颁发机构(certificate authority)。可信平台模块(TPM)是能够用于为机器提供各种形式的安全性的一种硬件。TPM 能够做的一件事是围绕密钥来维护硬件安全,从而提供该密钥将不被滥用的高保证措施。 在某些情况下,证书颁发机构可能愿意仅认证被绑定到特定TPM的密钥,因为这种绑定确保该密钥将只在包含那个特定TPM的机器上才被使用。因此,为了认证这样的密钥,证书颁发机构必须验证该密钥实际上被绑定到特定机器上的TPM,并且不能被迁移到其他机器。通常,认证这样的密钥的处理涉及到在证书颁发机构和正请求认证密钥的客户端 (client)之间的若干往返行程(round-trip)交换。当客户端想认证利用该客户端的TPM 所保护的新的不可迁移的密钥时,该客户端请求TPM为该新密钥创建被称为证明身份密钥 (Attestation Identity Key) (AIK)的密钥。该客户端随后要求该证书颁发机构认证该 AIK,而该证书颁发机构在验证该AIK实际上是由位于该客户端的机器上的TPM生成之后认证该AIK。该客户端随后要求该TPM利用该AIK来签署新密钥,而该TPM将在该密钥是不可迁移的时候才这样做。该客户端然后向证书颁发机构提交新密钥和AIK生成的签名。 该证书颁发机构信任该TPM,并已将该AIK认证为属于该TPM。因此,基于该TPM已利用该 AIK签署新密钥,该证书颁发机构将信任该新密钥是不可迁移的,所以该证书颁发机构将为该新密钥颁发证书。然而,这种处理具有的问题是它涉及到在客户端和证书颁发机构之间的多个往返行程用于认证AIK的一个行程(trip),以及用于认证客户端正在试图认证的新密钥的另一个行程。

发明内容
不可迁移的密钥可以在证书颁发机构和正在请求该密钥的客户端之间的一个往返行程中被认证。在具有TPM的机器上,客户端要求TPM创建新的不可迁移的密钥(例如, RSA密钥对)。TPM然后创建该密钥,并将新密钥的公用部分提供给客户端。客户端随后为该新密钥创建证书请求,并要求TPM创建被绑定到该证书请求的摘要(digest)的证明身份密钥(AIK)。TPM创建AIK,并返回包含该AIK的公用部分、该摘要以及对AIK的该公用部分和该摘要两者采用的签名的身份绑定。客户端然后要求TPM使用AIK来签署新密钥的公用部分作为该新密钥是不可迁移的指示。TPM签署该新密钥的公用部分,并返回包含该新密钥、该新密钥是不可迁移的TPM声明以及利用AIK的专用部分创建的签名的密钥认证结构。 客户端随后向证书颁发机构发送证书请求;身份绑定;密钥认证结构;和TPM的签注密钥 (endorsement key)的公用密钥证书。(签注密钥是每个TPM具有的识别特定TPM的密钥)。当证书颁发机构从客户端接收到这些项时,它检查TPM的签注密钥的公钥证书, 以验证与该签注密钥相关联的TPM是证书颁发机构了解并信任的TPM。证书颁发机构然后检查该证书,以恢复客户端正要求认证的新密钥。证书颁发机构随后验证身份绑定上的签名、计算证书请求的摘要并比较所计算的摘要与包含在身份绑定中的摘要,以确保这两个摘要相匹配。如果这些摘要相匹配的话,并且如果身份绑定的签名是有效的话,这些事实证实身份绑定中所提及的AIK是特别地为证书颁发机构已接收到的证书请求而创建的。假设这些摘要相匹配且身份绑定上的签名正确地验证,证书颁发机构检查密钥认证结构,并验证该结构上的签名。密钥认证结构表示由拥有AIK的专用部分的一方所作出的、包含在该结构中的新密钥是不可迁移的声明。因而,如果密钥认证结构提到位于证书请求中的相同的密钥,并且如果该签名验证,则证书颁发机构知道拥有AIK的专用部分的一方已声称该密钥是不可迁移的。在这一点上,证书颁发机构为新密钥创建证书并签署该证书。但是,证书颁发机构创建对称密钥并利用对称密钥来加密签名,而不在证书中包括明文签名(clear signature)。证书颁发机构然后利用其随证书请求一起接收到的公用签注密钥来加密该对称密钥,并将该证书(具有利用对称密钥加密的签名)与利用TPM的公用签注密钥加密的对称密钥一起发送给客户端。当证书颁发机构接收到用于TPM的签注密钥的公钥证书,则它确定它信任与该签注密钥相关联的特定TPM。只要该TPM呈现在该客户端在其上面运行的机器上(相对于具有不同签注密钥的其他一些TPM),通过首先要求TPM使用其签注密钥来解密对称密钥并随后使用对称密钥来解密签名,客户端将能够解密该证书中的签名。当客户端利用明文签名来替代加密签名时,该证书将变成可用的。如果不同的TPM呈现在客户端上(例如,不被证书颁发机构信任的TPM),那么该TPM将无法解密该对称密钥,这是因为它将不具有为其加密对称密钥的签注密钥。在那种情况下,客户端将无法对该签名进行解密,并且该证书将是不可用的。提供这个发明内容部分来以简化的形式介绍下面在具体描述中将进一步描述的概念的选择。这个发明内容部分并不打算标识所请求保护的主题的关键特征或基本特征, 也不打算用于限制所请求保护的主题的范围。


图1是在客户端请求证书颁发机构认证密钥时可以使用的各个组件的框图。图2-5 —起是其中可以提出认证密钥的请求并对请求起作用的示例处理的流程图。图6是示例的身份绑定的框图。图7是示例的密钥认证结构的框图。
图8是具有加密签名的示例证书的框图。图9是可以结合此处描述的主题的实现方式来使用的示例组件的框图。
具体实施例方式密码密钥用于计算机安全的各种应用,诸如加密和数字签署。加密是利用加密密钥来加密消息的处理,以便只有拥有解密密钥(其可以与加密密钥相同或可以不相同)的一方才能译码该消息。数字签署是实体(签名者)用于作出有关数据块的断言并且其中签名提供该断言实际上是由拥有密钥的实体作出的密码强度保证(cryptographic-strength assurance) StJ^S0加密和数字签署处理二者涉及到参与这些处理的各方之间的隐式信任关系。例如,当A利用B的密钥来加密数据时,A正在隐式信任(a)A相信是B的密钥的确是B的密钥,和(b)利用B的密钥来加密数据并通过不安全通道发送加密数据将不会导致加密数据以A不能接受的某种方式被使用。例如,对于点(a),A可能从不可靠的来源接收到B的密钥,因而A相信属于B的密钥可能实际上是闯入者的密钥。或者,对于点(b),该密钥可能的确是B的密钥,但是B可能使用如此宽松的安全措施,以致该密钥的安全性已被攻破,从而允许闯入者解密已利用B的密钥加密的消息。类似地,当A接收到据称由B签署的消息(例如,“事实F是真的,B签署”)时,如果A信赖这个消息,则A隐式信任该消息的确由B签署 (即,A确实知道哪个密钥是B的,并且B的密钥还没有被攻破)。此外,A也信任B将不会签署该消息“事实F是真的”,除非到某种程度确定性B已验证事实F确实是真的。当使用密钥时,对密钥的信任通常通过使得机构证明密钥的可信性 (trustworthiness)来建立。这个证明以证书的形式来表示,由此该机构签署密钥作为该机构已发现该密钥是可信的指示。当然,对机构的签名的信赖涉及到上述的相同形式的信任,但是证书颁发机构通常是在其中将建立信任的相关团体所熟知的或者涉及返回到公知机构的短信任链。因而,如果实体想使用密钥来签署或加密,该实体通常将该密钥提交给合适的证书颁发机构并请求该机构签署该密钥。该机构采取任何它认为适当的措施来确定该密钥是足够可信的。例如,该机构可以确定请求实体使用什么类型的安全措施来保护该密钥(例如,该实体是使用硬件还是软件保护)。该机构可以查询请求实体将使用什么策略来确定能够利用该密钥来签署什么。或者,该机构可能只愿意为某些类型的实体认证密钥(例如,该机构可能是公司或其他企业的证书颁发机构,并可能只愿意认证由那个企业中的机器所使用的密钥)。如果该机构确定它能够认证该密钥,则它颁发包含该密钥和该机构的签名的证书。X. 509证书是这样的证书的示例。机器能够帮助确保其密钥的可信性的一种方式是采用被绑定到该机器上的可信平台模块(Trusted Platform Module) (TPM)0 TPM是为其主机执行某些密码功能的芯片。 该主机能够利用这些密码功能来提供各式各样的安全服务。例如,TPM能够将数据密封到特定机器执行状态,以便当机器处于已知的安全状态中时才给该机器提供该数据。这种技术时常用于保护主机上的密码密钥。利用这样的技术,主机使用TPM来密封密钥,并且只有密封的密钥才被存储在机器的磁盘驱动器上。当主机想使用该密钥时,该主机要求TPM启封该密钥,而在该机器处于该密钥已被密封至的执行状态中时,TPM才将启封该密钥。这个执行状态(其通常利用平台配置寄存器(Platform Configuration Register)或“PCR”的特定值来表示)以前已被验证为提供足够的保证以防止该密钥的滥用的安全状态。TPM能够为密钥提供安全性的另一种方式是生成密钥对,并且仅提供该密钥对的公用部分给主机, 以致涉及到那个密钥对的所有的私钥操作在TPM内被执行。TPM能够为这样的密钥提供各种保证。例如,TPM能够保证不离开TPM的密钥是不可迁移的密钥(S卩,该密钥不能在除了采用已密封该密钥的特定TPM的平台之外的任何平台上被使用)。由于不可迁移的密钥利用TPM来保护,所以在该密钥不太可能被闯入者盗用并且也不太可能在主机平台上被恶意软件滥用的意义上,该密钥是相当可信的。为了对相关团体的成员建立这种可信性,主机平台可以将不可迁移的密钥提交给机构,并请求该机构认证该密钥为可信的指示。然而,在获得这个认证时,问题出现。具体来说,在为这样的密钥颁发证书之前,证书颁发机构必须确认被提交用于签名的密钥实际上已利用TPM来保护。例如,主办机构(host authority)可能声称具有不可迁移的密钥。然而,在认证该密钥是不可迁移的之前,证书颁发机构将坚持该TPM声称该密钥是不可迁移的,而不仅仅是主机这样声称。诸如“这个密钥是不可迁移的”的声明通常利用可信实体的签署的声明来建立。 TPM具有被称为“签注密钥”(其被称为“EK”,并且其公用部分和专用部分可以分别地被称为“EK-public (ΕΚ公用部分)”和“EK-private (ΕΚ专用部分)”)的密钥对。给定TPM的签注密钥将那个TPM与其他的TPM区分开来。TPM的公用EK对于信任那个特定TPM的证书颁发机构是已知的。例如,公司可能操作服务器以充当证书颁发机构,并且那个服务器可能知道该公司所拥有的所有笔记本计算机的ΕΚ。因而,如果主机平台创建由TPM密封的密钥,理论上该TPM能够使用EK来签署该密钥作为该TPM相信该密钥是安全的指示。由于证书颁发机构知道它了解并信任的那些TPM的公用ΕΚ,所以证书颁发机构能够使用签名来验证可信TPM已证明该密钥是不可迁移的,并且证书颁发机构能够在此基础上为该密钥颁发证书。然而,实际上,TPM具有防止它利用EK签署任意数据的策略。因而,TPM通常使用EK 来创建其它密钥,并且TPM使用这些其它密钥来签署数据。这样的“其它密钥”的一个示例是证明身份密钥(ΑΙΚ),其中TPM使用AIK来签署其它密钥。典型地,AIK用于以下列方式获得密钥的证书。主机平台上的软件要求TPM创建新的密钥对,其中该软件接收其公用部分。该软件随后要求TPM创建被绑定到新密钥的公用部分的ΑΙΚ,并且然后请求证书颁发机构(“CA”)签署AIK的公用部分(即,“AIK-public”)。 在这个处理期间,CA验证该请求实际上来自它信任的TPM。例如,CA可能通过使用随机数 (nonce)来验证在它自己与TPM之间的通信信道的安全性。一旦使CA确信签署AIK的请求来自CA信任的TPM,CA签署AIK-public并将证书返回到主机平台。主机平台然后生成新密钥,并请求TPM使用AIK的专用部分(“々11(- 1^^切”)来签署新密钥。使用AIK签署新密钥可能代表TPM作出的关于新密钥的某个声明,例如,利用AIK签署新密钥可能指示TPM宣称该新密钥是不可迁移的。主机然后向CA提交新密钥;签名;和CA颁发的AIK的证书;以及CA签署新密钥的请求。CA使用AIK-public来验证新密钥上的签名,并使用AIK-public 的证书来验证以前已建立对AIK的信任。CA随后颁发新证书,并将其返回给主机。上述程序出现的问题是它使用去往CA的多个往返行程一个往返行程用于认证 AIK,而另一个往返行程用于认证TPM已利用AIK签署的密钥。此处描述的主题允许TPM的主机平台请求CA在一个往返行程中认证TPM保护的密钥。此处描述的技术避免使用单独的往返行程来认证AIK。相反,主机平台上的客户端要求TPM创建新的不可迁移的密钥,并要求CA认证新密钥而不首先建立CA信任该AIK。CA 通过认证该密钥来响应,但是以使得证书的后续使用视主机具有CA信任的TPM而定的方式来响应。为了执行这个程序,客户端要求TPM创建客户端希望认证的新密钥。客户端随后创建证书请求,即,使得CA签署新密钥的请求。在将该请求实际发送到CA之前,客户端要求TPM创建被绑定到证书请求的AIK。TPM通过创建包含AIK的公用部分、证书请求的摘要以及签名的身份绑定来响应。客户端随后要求TPM签署新密钥。TPM通过创建包含将要认证的密钥、有关密钥的声明(例如,“这个密钥是不可迁移的”)和利用AIK-private创建的签名的密钥认证结构来响应。客户端然后将证书请求、身份绑定、密钥认证结构和TPM的 EK-public的证书转发到CL·CA随后检查EK-public的证书,以确保它属于CA信任的TPM。CA随后提取证书请求的摘要(digest),将该摘要与包含在身份绑定中的摘要进行比较,并验证身份绑定上的签名。假设这些摘要相匹配且该签名验证,这些事实证实AIK针对CA接收到的证书请求而创建。接下来,CA从证书请求中恢复将认证的密钥,并将其与密钥认证结构中识别的密钥进行比较,以确保该密钥认证结构涉及在证书请求中指定的密钥。CA然后检查在密钥认证结构中作出的声明,以确保有关该密钥的声明与CA的证书颁发策略相一致(例如,如果CA的策略需要仅认证不可迁移的密钥,则CA验证该声明证明该密钥的不可迁移性)。CA随后验证该密钥认证结构上的签名,以确保包含在那个结构中的声明由AIK-private的持有者作出。假设所有的上述验证已妥当,CA此时知道AIK的持有者正宣称新密钥是不可迁移的并正在请求用于那个密钥的证书。CA不知道的是AIK是否与关联于EK-public的可信TPM相关联。因而,CA向客户端颁发有条件的证书。在该证书仅在持有EK-private的TPM (CA信任其)将验证AIK由那个TPM颁发时才能够使用的意义上,该证书是有条件的。为了使得该证书是有条件的,而不是以明文(in the clear)签署该证书,CA创建对称密钥并利用该对称密钥来加密该证书的其签名。因此,CA向客户端提供包含加密签名的证书,并且也提供利用EK-public加密的对称密钥。如果用于证书请求的AIK实际上由持有EK的可信TPM创建的话,则那个客户端将能够要求该TPM使用EK-private来解密该对称密钥,其中对称密钥反过来可以用于解密该证书上的签名。否则,如果CA向没有利用EK-public识别的可信TPM的机器上的客户端提供该证书,则该客户端将无法解密该签名,并将无法使用该证书。这样,CA将验证特定AIK的可信度的工作委派给可信TPM,从而避免在证书颁发机构和客户端之间单独的往返来使得AIK被认证。现在转向附图,图1显示在客户端请求证书颁发机构认证新密钥时可以使用的各个组件以及这些组件之间的示例交互。在附图中,并且在以下的描述中,客户端正请求认证的密钥被称为“新密钥”。在一个示例中,这个密钥是客户端将用作签署数据的处理的一部分的Rivest-aiamir-Adelman (RSA)密钥的公用部分。因而,在典型的场景中,客户端创建新的RSA签署密钥,并寻求使得该密钥由CA认证,以便该签署密钥能够被其他实体信任。然而,在这里描述的技术并不限于签署密钥或RSA密钥的认证。通常,此处的技术在客户端创建密钥并寻求使之由CA认证时适用。因而,客户端正寻求认证的密钥在这里将被称为“新密钥”。此处所述的技术涉及各种密钥的使用,并且这些密钥在文本和附图中将利用适当的标签和/或修饰符来区分。机器102是提供一些计算能力的机器,诸如个人计算机、手持式计算机、机顶盒等等。机器102装备有TPM 104。TPM 104是为TPM 104位于其上的机器102提供各种安全服务的组件。TPM 104具有签注密钥(EK)106,其是分别地具有各自的公用部分和专用部分 108和110 (在这里被称为“EK-Public”和“EK-Private”)的非对称密钥对。每个TPM 104 具有它自己的不被其它TPM共享的EK。EK 106的一个方面是EK_private不暴露(expose) 在TPM 104之外。TPM 104暴露机器102能够使用来请求TPM 104利用EK-private解密数据块的接口,以便TPM 104能够为机器102解密数据而不暴露EK-private的实际值。TPM 104也提供各种其它的安全功能。例如,TPM 104维护记录该机器的当前执行状态的测量的一组寄存器(被称为平台配置寄存器或PCR),并且TPM 104允许机器102将数据块密封到特定的机器状态。这样,机器102能够保持只有TPM 104能够启封的密封数据块,并且TPM 104能够通过拒绝启封该数据来保护这个数据,除非机器102当前处于已知的“安全”状态中。由TPM 104提供的另一个特征是在TPM 104内部能够用于存储密钥的少量的存储器。 因而,TPM 104能够生成密钥对,并且能够将密钥的专用部分保存在它自己的存储器中,以致专用部分不暴露于机器102的非安全部分(即,机器102中位于TPM 104外部的那些部分)。在这个意义上,其私钥被保存在TPM 104内部的密钥对是不可迁移的密钥它不能被迁移到其他机器,这是因为它不暴露于特定机器的TPM之外。客户端112是为了某种目的(例如,签署或加密)而想要创建新密钥的软件组件。 客户端112可以是应用、操作系统的组件或运行在机器102上的任何其它类型的软件组件。 当客户端112决定创建新密钥时,客户端112发出TPM 104创建密钥的请求114。TPM 104 创建所请求的密钥,并返回能够利用来识别该密钥的密钥句柄(key handle) 1160通常,请求114是创建诸如RSA密钥对之类的非对称密钥对的请求,在这种情况下,密钥句柄116包含新密钥的公用部分(专用部分仅被保持在TPM 104内部)。在这个示例中,RSA密钥对的公用部分是客户端正寻求认证的“新密钥”。(技术上,它是用于签署数据的私钥,而公钥被其它各方用来验证签名。由于利用某人稍后将验证签名的期望来签署数据,所以为了此处的目的而能够将公钥视为签署数据的“处理的一部分”)。为了使得新密钥被认证,客户端112创建证书请求118,其是请求证书颁发机构认证密钥的正式数据结构。客户端112此时并不发送证书请求118给证书颁发机构。在这么做之前,客户端112安排由TPM创建各种数据块,以便与证书请求一起发送。这些各种数据块在下面进行描述。首先,客户端112向TPM 104发出对于证明身份密钥(AIK)的请求119。TPM 104 暴露创建被绑定到任意数据块的AIK的功能。例如,TPM 104可能暴露诸如“CreateAIK (blob)”的功能,其以被加密绑定到“blob (块),,的方式返回AIK (其中“blob”是任意数据块)。具体来说,当客户端112发出请求“CreateAIK (blob)”时,TPM 104返回以下形式的数据块
AIK-Public I blob | sig-AIK-Private (AIK-Public | blob) (关于记号,竖线符号“ I,,指的是级联。此外,在整个说明书中,记号 "sig-<key-pair>-private (<data>),,将表示通过使用〈key pair (密钥对)> 的专用部分在〈data (数据)> 上创建的签名)。当客户端112向TPM 104请求AIK时,客户端请求AIK被绑定至的“blob”是证书请求118的摘要。利用AIK创建功能返回的数据被称为身份绑定120,并且身份绑定120的示例在图6中显示。具体来说,身份绑定120包含AIK-Public 602、证书请求的摘要604以及针对AIK-Public 602和摘要604采用的签名606,其中签名 606使用AIK-Private来创建。因而,客户端112从TPM 104接收的身份绑定120是
AIK-Public I digest | sig-AIK-Private (AIK-Public | digest)
身份绑定所做的是将AIK绑定到特定的证书请求(经由那个请求的摘要)。实际上,签名意味着AIK-private的持有者(其是TPM 104)宣称“摘要”是为之创建AIK的数据。具有身份绑定120的任何一方能够使用AIK-public来验证该签名。返回到图1,客户端112接下来向TPM 104发出请求122以使得新密钥利用AIK来签署。当TPM 104利用AIK签署密钥时,TPM 104返回指示适用于该密钥的安全特征的结构。例如,如上所述,客户端112正寻求由CA认证的新密钥是由TPM创建的。在其中新密钥是密钥对的示例中,TPM 104在TPM 104内部保存专用部分,并且不在TPM 104外部泄露该专用部分。在这个意义上,因为新密钥的专用部分不能在除了包含TPM 104的特定机器 (即,机器102)之外的任何机器上使用,所以新密钥是不可迁移的。因而,当TPM 104利用 AIK签署密钥时,它返回实际上包含以下信息的结构
statement | new key | sig-AIK-Private (statement | new key)
其中“statement (声明)”是有关新密钥的声明。例如,声明可以实际上声称“正被签署白勺密書月是不可迁移白勺密書月(The key that is being signed is a non-migratabIe key),,。 (以英文句子的形式写出的声明的示例仅用于说明。通常,该声明可以使用代码来作出。或者,如果TPM具有已知的除非密钥符合特定安全标准否则拒绝签署该密钥的策略,则该声明可能隐含在TPM签署了该密钥的事实中。此外,注意“不可迁移性”是密钥的示例特征, 并且在这里在整个说明书中使用这个示例。因而,说明书频繁提及密钥具有不可迁移的特征,或者AIK被用来签署该密钥是不可迁移的声明,或者CA核实该密钥符合不可迁移性的策略。然而,不可迁移性仅仅是这样的特征的示例。一般而言,密钥可以具有任何特征,在密钥认证结构中包含的声明能够证明任何这样的特征,并且CA能够实行需要密钥具有任何集合的零个或更多特征的策略。因而,虽然这里的说明书提及不可迁移的密钥,但是将明白密钥认证结构仅证明密钥的某一特征,而不论该特征是什么,并且如下所述,CA可以使用密钥认证结构来确定AIK-Private是否已被用来证明CA的策略所需要的无论什么特征)。因而,当TPM 104签署该密钥时,它产生密钥认证结构124,其示例显示在图7中。 示例的密钥认证结构1 包含声明702 (其可以显式表示,如所示的,或可以隐式表示)。密钥认证结构1 也包含将要认证的新密钥704以及使用AIK-Private创建并对该声明和新密钥计算的签名706。密钥认证结构IM证实无论什么实体控制AIK-Private,其声称新密钥704是不可迁移的密钥(或具有AIK-Private的持有者正在证明的无论什么特征)。任何的拥有AIK-public的实体(S卩,已接收到上述的身份绑定的任何实体)能够使用该签名来证实新密钥704和声明702是由拥有AIK-Private的实体签署的。返回到图1,证书颁发机构(CA)U6是客户端112想要求认证新密钥的实体。客户端112现在已准备好向CA 126请求证书。为了请求CA 126认证新密钥,客户端112向CA 126发送证书请求118 ;身份绑定120 ;密钥认证结构124 ;以及EK 106的证书128 (即,TPM 104的签注密钥的公钥证书,其包含EK-Public)。这些项由CA 1 接收。在一个示例中,CA 1 是对颁发证书的请求起作用的服务器。例如,CA 1 可以是公司(或其他企业)内通过认证新机器的密钥而在企业中招收(enroll)新机器的服务器。 CA 1 包括发行组件130,其作出有关将认证哪些密钥的决定。CA 1 可以包含可信TPM 的列表132(例如,CA 1 信任的那些TPM的EK-public的列表)。CA 1 也可以具有包含据此将准许或拒绝证书请求的规则的策略134。例如,CA 1 可能具有仅认证不可迁移密钥的策略,或可能具有某一其它策略。此外,CA 1 可以具有签名验证器136,其允许它验证它接收到的各种数据块上的密码签名。这些组件可以被发行组件130使用。例如,发行组件可以使用签名验证器136来验证身份绑定和密钥认证结构上的签名。发行组件130也可以使用可信TPM的列表132来确定它愿意为哪些TPM认证密钥。此外,发行组件130可以使用策略134来确定它是否将认证特定密钥,即使证书请求来自可信TPM。(例如,发行组件可能信任TPM 104,但如果TPM 104没有声称密钥是不可迁移的话,该发行组件可能不愿意为TPM 104认证该密钥)。当CA 126从客户端112接收到上述项时,它进行以下动作。首先,CA 126检查证书128 (其包含TPM 104的签注密钥的公用部分),以确定CA 1 是否了解并信任客户端 112正在其上面运行的机器上的TPM。例如,如果TPM 104对于CA 1 是未知的(这可以通过将证书1 与列表132进行比较来确定),则CA 126可能不愿意认证其上面安装TPM 104 的机器上的密钥。因而,如果证书1 指示正寻求其认证的密钥被绑定到未知TPM,则CA126 可以拒绝证书请求。假设CA 1 了解并信任其公用签注密钥出现在证书128中的TPM,CA 1 则检查证书请求118,以恢复客户端112正请求认证的新密钥(因为那个密钥被包含在该证书请求中)。接下来,CA 1 检查身份绑定120,以找到证书请求的摘要。CA 1 然后计算证书请求的摘要(使用与用于创建身份绑定120中的摘要相同的摘要算法),并验证包含在身份绑定中的摘要与CA 1 计算的摘要相匹配。如果这些摘要匹配的话,则CA 1 从身份绑定120读取AIK-public,并使用AIK-public来验证身份绑定120上的签名。将回忆起 AIK在其创建时被绑定到特定的数据块。签名的验证证实为其创建这个特定AIK的数据块是证书请求118的摘要。在摘要处理是安全的程度上,为摘要创建AIK的事实证实为证书请求118而创建该AIK。注意如果验证处理失败的话(即,如果AIK是为某证书请求而非当前正提出的这个证书请求而创建的话),这个事实将表明作为某种类型的重放攻击的一部分而正在提出该证书请求,并且CA 1 可以拒绝该请求。接下来,CA 126检查密钥认证结构,以确定AIK-Private的持有者对于包含在安全请求中的新密钥正作出什么声明。CA 1 使用AIK-public来验证密钥认证结构上的签名。如果该签名不验证的话,则CA 1 不能得出AIK-Private的持有者已作出有关CA 126 的任何特别声明的结论,所以CA 1 拒绝该证书请求。假设该签名验证,CA 1 确定新密钥的属性是否与CA 126的策略134相一致。例如,如果CA 126具有仅验证不可迁移密钥的策略,则它可能坚持密钥认证结构显示AIK-Private的持有者声称该密钥是不可迁移的。到目前为止,该处理的描述提到了 “AIK-Private的持有者”而不识别什么实体实际上持有那个密钥。事实上,AIK-Private被TPM 104持有,这是因为正是TPM 104创建了AIK0然而,这一事实对于CA 1 是未知的。CA 1 知道TPM 104的签注密钥的公用部分, 但是CA 1 不能仅从签注密钥中推导出特定TPM和特定AIK之间的关系。换言之,此时在该处理中,CA 1 知道某个实体已为CA 1 接收到的特定证书请求创建了 AIK,以及无论那个实体是谁都已作出了有关满足CA 1 的颁发策略的将要认证的密钥的声明。但是 CA 1 不知道该实体是谁。如上所述,CA 1 已检查了 TPM 104的公用签注密钥,并已确定TPM 104是可信的,因此在控制AIK-Private的实体是TPM 104时,CA 1 将愿意准许该证书请求。但是CA 1 并不知道AIK-Private是由TPM 104还是由其一其他实体控制。 如下所述,CA 126能够以仅在控制AIK-Private的实体实际上是TPM 104时才能够使用的形式颁发有条件的证书。具体来说,该证书的形式是在该证书能够被使用之前TPM 104将不得不执行某个行动。特别地,证书上的签名能够以仅作为由TPM执行的处理的结果才可解密的方式来加密(例如,由TPM进行的签名的解密,或由TPM进行的稍后用于解密签名的密钥的解密)。为了颁发以特定TPM的存在为条件的证书,CA 126按照请求为新密钥创建证书 (例如,X. 509证书)。证书包含将要认证的密钥以及认证该密钥的证书颁发机构的签名。通常,该签名将以明文(即,不加密)的形式位于证书中。然而,当CA 1 创建证书时,它创建对称密钥,并使用该对称密钥来加密该签名。加密的签名替代明文签名而被放置在证书中。 CA 126然后利用TPM 104的公用签注密钥(即,CA 126在证书128中接收的EK-Public)来加密对称密钥。只有EK-private的持有者(即,TPM 104)才能够解密利用EK-Public加密的信息,所以只有TPM 104将能够恢复对称密钥。因此,CA 1 向客户端112发送(a)具有加密签名的证书138,和(b)加密的对称密钥140 (利用EK-Public加密)。当客户端112 接收到加密的对称密钥时,它能够要求TPM 104利用EK-Public来解密它,从而允许客户端 112利用对称密钥来解密该签名。客户端112随后能够将证书138中的加密签名替换为明文签名。在图8中显示证书138。证书138包含新密钥704以及为sig-CA-Private (新密钥)的利用对称密钥加密的加密签名802。(“CA-Private”是CA 1 的私钥)。注意CA 126只希望在TPM 104已证明CA 126正在认证的密钥符合由CA 126实行的适用标准(例如,不可迁移性)时才颁发可用的证书,这仅在TPM 104实际上是生成AIK 的实体时CA 1 才知道是真实的。理论上,AIK可能已由除了 TPM 104之外的某个实体生成了。在那种情况下,CA 1 将仍然颁发具有TPM 104能够解密的加密签名的证书138(因为利用对称密钥来加密该签名,其中能够利用TPM 104的专用签注密钥来恢复对称密钥)。 然而,当CA 126将带有加密签名的证书发送给TPM 104时,CA 126信赖TPM 104不创建具有明文签名的证书,除非利用证书138认证的新密钥实际上是TPM 104利用AIK签署的密钥。实际上,CA 1 将这个确定委派给TPM 104,其中CA 1 因为它已证实TPM 104是CA 126信任的TPM而能够这么做。因而,在TPM 104接收到具有加密签名的证书138之后,TPM 104确定利用证书138认证的新密钥是否是TPM 104已利用AIK签署的密钥。如果是这样的话,则TPM 104解密该签名并利用明文签名来替代加密签名。否则,TPM 104不解密该签名,从而使得该证书是不可用的。除非某一方能够验证密钥证书是由该方信任的适当机构签署的,否则没有一方将信任该密钥证书。如果证书中的签名不能被解密,该证书仍然保持是不可用的,这是因为它不能用于与任何一方建立信任。图2-5以流程图的形式显示可以用于提出认证密钥的请求并对请求起作用的示例处理。在转至图2-5的描述之前,注意包含在这些附图中的流程图参考图1中显示的组件通过示例来描述,尽管这个处理可以在任何系统中完成并且不限于图1中所示的场景。 此外,图2-5中的每个流程图显示其中处理的各阶段以特定顺序来完成的示例,如利用连接这些框的线所指示的,但是这些附图中所示的各个阶段能够以任何顺序或以任何组合或子组合来执行。在202,客户端请求TPM生成新密钥。如上所述,新密钥可以例如是RSA密钥对,其可以用于诸如加密或签署之类的任何密码功能。在其中生成RSA密钥对的示例中,流程图中提及的“新密钥”(即,将要认证的密钥)是密钥对的公用部分。在204,创建对于新密钥的证书请求。创建该请求的摘要(在206),并且客户端然后请求TPM创建被绑定到该摘要的AIK (在208)。TPM随后创建AIK (在210),并返回身份绑定。如上所述,该身份绑定包含AIK-public、摘要以及对AIK-public和摘要采用的签名 (其中该签名利用AIK-Private来创建)。在212,客户端请求TPM利用AIK签署新密钥。TPM然后返回密钥认证结构(在 214),其包含有关新密钥(显式或隐式)的声明(例如,“这个密钥为不可迁移的”)、新密钥本身以及对声明和新密钥采用的签名(其中该签名利用AIK-Private来创建)。在216,客户端向CA发送(a)证书请求;(b)身份绑定;(c)密钥认证结构;和(d)TPM的签注密钥的公钥证书(EK-Public)。在218,这些项由CA来接收。在220,CA对照已知TPM的列表来检验EK_Public。如果CA基于EK-Public确定与EK-Public相关联的TPM或不为CA所知晓或已知来自不可信的TPM (如在222所确定的),则CA中止该处理(在224)并且不颁发证书。如果EK-Public来自已知的、可信的TPM, 则这个处理继续至226,其中CA读取证书请求以获得正被要求认证的新密钥。CA随后验证身份绑定上的签名,从该绑定中恢复摘要,并且还从证书请求中计算摘要本身。如果身份绑定与证书请求不相匹配(即,如果包含在证书请求中的摘要与CA从证书请求计算的摘要不相同,如在2 所确定的),则该处理中止,并且CA不颁发证书(在 230)。否则,这个处理继续至232。在232,CA确定密钥认证结构是否证明新密钥满足适用策略(例如,不可迁移性的策略)。例如,通过验证密钥认证结构上的签名并且随后检查该结构作出的关于该密钥的声明,CA可以作出这个确定。如果该签名无法验证,或者如果该声明指示该密钥不满足CA的认证密钥的策略,则该处理中止,并且CA不颁发证书(在234)。否则,该处理继续至236,其中CA进而颁发证书。在236,CA创建将用于加密证书上的签名的对称密钥。在238,CA为新密钥创建证书。在M0,CA为证书创建签名。在242,CA利用对称密钥来加密签名,并将加密的签名(而非明文签名)包括在证书中。在对4,CA利用EK-Public (位于将对其颁发证书的机器上的 TPM的签注密钥的公用部分)来加密对称密钥。在M6,CA向请求证书的客户端发送该密钥的证书(具有加密的签名)以及利用EK-Public加密的对称密钥。在对8,这些项由客户端来接收。在250,客户端要求TPM利用EK-private解密对称密钥。假设包含在证书中的密钥是TPM利用用于证书请求的AIK签署的相同的密钥,TPM解密对称密钥(在252),并将其返回给客户端。客户端然后使用对称密钥来解密签名,并利用明文签名来替换证书中的加密签名(在256)。客户端现在拥有用于新密钥的可用证书(在258)。图9显示其中可以部署此处描述的主题的各方面的示例环境。计算机900包括一个或多个处理器902和一个或多个数据记忆组件904。(一个或多个)处理器902典型地是微处理器,诸如在个人台式或膝上型计算机、服务器、手持式计算机或另一类型的计算设备中找到的那些微处理器。(一个或多个)数据记忆组件904是能够或短期或长期存储数据的组件。(一个或多个)数据记忆组件904的示例包括硬盘、可移动盘(包括光盘和磁盘)、易失性和非易失性随机存取存储器(RAM)、只读存储器(ROM)、闪存、 磁带等。(一个或多个)数据记忆组件是计算机可读存储媒体的示例。计算机900可以包括显示器912或与显示器912相关联,其中显示器912可以是阴极射线管(CRT)监视器、液晶显示(IXD)监视器或任何其它类型的监视器。软件可以存储在(一个或多个)数据记忆组件904中,并且可以执行在一个或多个处理器902上。这样的软件的示例是密钥认证软件906,其可以实现上面结合附图1-8所述的功能中的一些或全部功能,尽管能够使用任何类型的软件。软件906可以例如通过一个或多个组件来实现,其中组件可以是分布式系统中的组件、单独的文件、单独的功能、单独的对象、单独的代码行等。其中程序被存储在硬盘上、被加载到RAM中并在计算机的(一个或多个)处理器上执行的个人计算机代表图9所述的场景,尽管此处描述的主题并不限于这个示例。此处描述的主题能够作为存储在(一个或多个)数据记忆组件904之中的一个或多个数据记忆组件中且执行在(一个或多个)处理器902之中的一个或多个处理器上的软件来实现。作为另一示例,该主题可以作为存储在一个或多个计算机可读存储媒体上的指令来实现。(有形媒体诸如光盘或磁盘是存储媒体的示例)。这样的指令当由计算机或其他机器执行时可以导致计算机或其他机器执行方法的一个或多个动作。执动这些动作的指令能够存储在一个介质上或者能够遍布于多个媒体上,以致这些指令可能一起出现在一个或多个计算机可读存储媒体上,而不管是否所有的指令碰巧位于同一介质上。此外,此处描述的任何动作(不论是否在图中显示)可以由处理器(例如,一个或多个处理器902)作为方法的一部分来执行。因而,如果此处描述动作A、B和C,则可以执行包括A、B和C的动作的方法。此外,如果此处描述A、B和C的动作,则可以执行包括使用处理器来执行A、B和C的动作的方法。在一个示例环境中,计算机900可以通过网络908而通信连接到一个或多个其他设备。在结构上可以与计算机900相类似的计算机910是能够连接到计算机900的设备的示例,尽管其他类型的设备也可以这样进行连接。尽管以结构特征和/或方法动作特定的语言描述了该主题,但是将明白在所附的权利要求书中定义的主题不一定限于上述的特定特征或动作。相反,上述的特定特征和动作被披露为实现这些权利要求的示例形式。
权利要求
1.一种用于请求第一密钥(704)的证书(138)的方法,该方法包括 创建(204)证书请求(118),以使得所述第一密钥(704)被认证;向可信平台模块(104)请求(208)被绑定到所述证书请求(118)的证明身份密钥; 从所述可信平台模块(104)接收(210)将所述证明身份密钥绑定到所述证书请求 (118)的身份绑定(120);请求(214)所述可信平台模块(104)利用所述证明身份密钥来签署所述第一密钥 (704);从所述可信平台模块(104)接收(216)包含所述第一密钥(704)并利用所述证明身份密钥签署的密钥认证结构(IM);向证书颁发机构(1 )发送(218)包括所述证书请求(118)、所述身份绑定(120)、所述密钥认证结构(124)和所述可信平台模块(104)的公用签注密钥(108)的第一证书(1 ) 的信息;以及从所述证书颁发机构(126)接收(248)所述第一密钥(704)的第二证书(138),所述第二证书(138)采用仅在由所述可信平台模块(104)采取行动之后才是可用的形式。
2.权利要求1的方法,进一步包括 计算所述证书请求的摘要;其中通过将所述证明身份密钥绑定到所述摘要,将所述证明身份密钥绑定到所述证书请求。
3.权利要求1的方法,其中所述第一证书包括所述证书颁发机构的签名,所述签名是仅利用使用所述可信平台模块的专用签注密钥的处理才可解密的,其中所述行动包括使用所述可信平台模块的专用签注密钥。
4.权利要求3的方法,进一步包括从所述证书颁发机构接收利用所述可信平台模块的公用签注密钥加密的对称密钥; 其中所述第二证书以利用所述对称密钥加密的形式包含所述签名,并且其中使用所述可信平台模块的专用签注密钥的所述处理包括使用所述可信平台模块的专用签注密钥来解密所述对称密钥;和使用所述对称密钥来解密所述签名。
5.权利要求1的方法,其中所述第二证书包括以加密形式接收的签名,并且其中所述行动进一步包括利用采用明文形式的签名来替换采用所述加密形式的所述签名。
6.权利要求1的方法,其中所述第一密钥是不可迁移的,并且其中所述密钥认证结构包括所述第一密钥是不可迁移的声明。
7.权利要求1的方法,其中所述第一密钥被用作在所述可信平台模块位于其上的机器上签署数据的处理的一部分。
8.一种计算机可读介质,其具有计算机可执行指令来执行权利要求1-7之中任一权利要求的方法。
9.一种对请求起作用以认证第一密钥的方法,该方法包括 从客户端(112)接收(218)包括以下的信息认证第一密钥(704)的证书请求(118);由所述客户端(112)在其上面运行的机器(102)上的可信平台模块(104)创建的证明身份密钥的身份绑定(120);使用所述证明身份密钥来证明所述第一密钥(704)的特征的密钥认证结构(124);和所述可信平台模块(104)的公用签注密钥(108)的第一证书(1 );基于所述公用签注密钥(108),验证(222)所述可信平台模块(104)被执行所述行动的证书颁发机构(126)信任;验证(2 )所述身份绑定(120)将所述证明身份密钥绑定到所述证书请求(118);由所述证明身份密钥的专用部分的持有者验证(232)所述密钥认证结构(124)代表所述第一密钥(704)具有所述特征的声明(702);和发送(246)所述第一密钥(704)的第二证书(138)到所述客户端(112),其中所述第二证书(704)的使用以所述可信平台模块(104)的存在为条件。
10.权利要求9的方法,其中通过使得所述证书仅在所述可信平台模块的专用签注密钥的使用之后才是可用的,使得所述第二证书的使用以所述可信平台模块的存在为条件。
11.权利要求9的方法,其中所述第二证书包括所述证书颁发机构的签名,所述签名采用仅使用所述可信平台模块的专用签注密钥才可解密的形式。
12.权利要求9的方法,其中所述第二证书包括所述证书颁发机构的签名,所述签名利用对称密钥来加密,并且其中该方法进一步包括发送利用所述可信平台模块的公用签注密钥加密的所述对称密钥到所述客户端。
13.权利要求9的方法,其中所述特征包括所述第一密钥是不可迁移的,并且其中所述密钥认证结构包含所述第一密钥是不可迁移的显式或隐式声明。
14.权利要求9的方法,其中通过包含所述证书请求的第一摘要,所述身份绑定将所述证明身份密钥绑定到所述证书请求,并且其中该方法进一步包括计算所述证书请求的第二摘要;以及验证所述第二摘要与所述第一摘要相匹配。
15.一种计算机可读介质,其具有计算机可执行指令来执行权利要求9-14之中的任一权利要求的方法。
全文摘要
可信平台模块(TPM)已证明为不可迁移的密钥的认证能够在证书颁发机构(CA)与请求证书的客户端之间的单个往返行程中被执行。客户端创建证书请求,并随后使得TPM创建被绑定到证书请求的证明身份密钥(AIK)。客户端然后要求TPM将新密钥签署为不可迁移性的证明。客户端随后将证书请求与不可迁移性的证明一起发送到CA。CA检查证书请求以及不可迁移性的证明。然而,因为CA并不知道该证明是否已由可信TPM作出,所以它认证该密钥仅仅在该证书中包括只能使用可信TPM的签注密钥来解密的加密签名。
文档编号H04L9/14GK102577229SQ201080048694
公开日2012年7月11日 申请日期2010年9月24日 优先权日2009年10月28日
发明者E.L.霍尔特, S.D.安德森, S.托姆 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1