证明的主题的自我调节的制作方法

文档序号:7889071阅读:139来源:国知局
专利名称:证明的主题的自我调节的制作方法
技术领域
本发明涉及计算机系统的健康证明,尤其涉及证明的主题的自我调节。
背景技术
恶意软件(malware),或恶意的软件(malicious software)(例如病毒、螺虫、特洛伊木马、间谍软件、内核级后门软件(rootkits)等)一直是在计算中的严重问题。恶意软件通常在计算系统上执行而不通知用户内容,并在存在时将计算系统置于不健康或未知状态。一旦受到恶意软件的危害,计算系统不能被其自身或其它计算机系统信任而如期望的那样工作。此外,在计算系统处执行的某些软件,虽非恶意软件,但可按未定义或未授权的方式(例如通过bug或设计瑕疵)工作,也可将计算系统置于不健康或未知状态。可信计算技术帮助解决确定计算系统是否可被信任的问题。可信计算技术提供远程证明服务,该服务确认证明客户机的健康,健康是证明的主题。在此模型下,证明客户机将所有相关系统事件的日志保留在日志中,诸如经排序的可信计算组(TCG)日志。为增加的安全性,日志可被做成防篡改的(例如通过被排序或按顺序),并且日志的完整性是可由证明服务验证的。在请求证明时,证明客户机将整个日志发送到证明服务,证明服务审查该日志并确定证明客户机的健康。例如,证明服务可确认在日志被发送时是否仅仅被授权的或可信的代码正在该证明客户机上运行。如果日志通过了证明服务的确认,则证明服务证明可信任该证明客户机在该证明客户机向证明服务发送日志时处于健康状态。此信任信息可与证明客户机共享、与依赖方(诸如第三方)共享、和/或由证明服务自己使用。

发明内容
在此处所描述的一实现中,证明客户机与证明服务一起执行远程证明。此外,证明客户机执行由证明服务信任的自我调节。证明服务发布健康凭证,该凭证证实证明客户机在证明时是健康的,并且该证明客户机被信任以按前述方式使用该健康凭证。例如,此处描述的至少一个实施例与向证明服务请求健康凭证的自我调节证明客户机相关。该请求包括经排序的证明日志以及日志的完整性和新鲜度的证据。随后,证明客户机接收所请求的健康凭证,该凭证代表证明服务的部分上证实证明客户机在其请求健康凭证时是健康的以及证实证明服务信任证明客户机在每次证明客户机使用该健康凭证进行认证时是健康的证书。证明客户机然后接收使用健康凭证认证其为健康的请求、验证其当前为健康、以及,执行所请求的认证。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。


为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通
4过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中图I示出了可以用来利用此处所描述的各实施例的示例计算系统;图2示出了用于执行自我调节证明的证明系统;图3示出了用于自我调节证明客户机的状态图的流程图;图4示出了一方法的流程图,该方法用于使自我调节证明客户机使用来自证明服务的证书认证该自我调节证明客户机在请求时当前为健康;以及图5示出了用于为自我调节证明客户机生成健康凭证的方法的流程图。
具体实施例在此处所描述的一实现中,证明客户机与证明服务一起执行远程证明。此外,证明客户机执行由证明服务信任的自我调节。证明服务发布健康凭证,该凭证证实证明客户机在证明时是健康的,并且证实该证明客户机被信任以按前述方式使用该健康凭证。首先,将参考图I来描述关于计算系统的一些引导性讨论。接着,自我调节证明的实施例将参考随后的附图予以描述。参考图I来描述关于计算系统的介绍性讨论。计算系统现在越来越多地采取多种多样的形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型机、 分布式计算系统,或者甚至通常不被视为计算系统的设备。在本说明书以及权利要求书中, 术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能含有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。如图I所示,在其最基本的配置中, 计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处所使用的那样,术语“模块”或“组件” 可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。 计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质计算机存储介质和传输介质。计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到计算机存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实施,这些计算机系统配置包括个人计算机、台式计算机、平板计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、 网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。 在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。首先,参考图2呈现根据本发明的各实施例的自我调节证明的简要概览。接着,自我调节/自我监管证明客户机的更具体的描述将参考图3进行讨论。最后,在自我调节证明客户机和证明服务处执行的示例动作将参考图4和5进行讨论。图2示出了用于执行自我调节证明的证明系统。证明系统200包括至少一个自我调节证明客户机202和至少一个证明服务204。该证明系统200还可包括依赖方206。省略号208A表示证明系统200中可以有任何数量的自我调节证明客户机202。省略号208B 表示证明系统200中可以有任何数量的证明服务204。省略号208C表示证明系统200中可以有任何数量的依赖方206。证明客户机202、证明服务204,以及依赖方206全都可经由网络210或由任何其它合适的通信手段来通信地连接。为开始自我调节证明,证明客户机202通过网络210从证明服务204请求健康凭证,并且证明服务204接收该请求。如此处所使用的“请求”可以是单个请求,或包括诸如证明客户机202和证明服务204之类的双方之间的多个通信。例如,“请求”可包括涉及双方(例如证明客户机202和证明服务204)之间一个或多个请求和/或回答的握手。无论以初始请求进行通信,还是作为握手的一部分来进行通信,对健康凭证的目前的请求均包括证明客户机202将经排序(或顺序)证明日志和该经排序证明日志的完整性和新鲜度的证据传送到证明服务204。经排序的证明日志是防篡改(例如,对过去条目的移除或修改)的。在一些实施例中,证明日志包括可信计算组(TCG)日志。无论证明日志采取何种形式,证明日志包括从客户机通电之时到证明日志被发送到证明服务器204时在证明客户机202上发生的所有与相关证明有关的事件的条目。例如,证明日志可包括关于证明客户机202上所有(或基本上所有)正运行的软件组件的信息。该信息可包括例如,加载在证明客户机202处的所有二进制的顺序日志,以及任何相关联的配置。证明服务204使用完整性和新鲜度的证据来验证证明日志的完整性和新鲜度,并使用证明日志中的信息来验证证明客户机202在证明客户机202将证明日志发送给证明服务204的时刻是健康的。该验证包括验证证明客户机202仅以可信赖的配置运行可信软件组件。换言之,证明服务204使用证明日志来验证在证明客户机202请求健康凭证时,该证明客户机202没有运行恶意软件或其它不可信代码,并且证明客户机202也未以其他方式处于易受攻击状态。此外,证明日志中的信息被证明服务204用来验证可以信任证明客户机202保护其自身免遭攻击以及仅在证明客户机是健康的或“在策略内”时使用该健康凭证。换言之, 证明服务204验证其可信任证明客户机202在证明客户机202变得不健康或落入“策略之外”的情况下将丢弃任何已发布的健康凭证(或拒绝自身对其访问)。如下面更完整地讨论的,证明日志包括关于监视代理和证明客户机202所使用的安全策略的信息。该信息被证明服务204用作前述验证的部分以验证证明客户机202是积极地保护自身免遭恶意软件和其它不可信代码的自我调节客户机,以及验证证明客户机202将仅仅以由安全策略定义的可信方式来使用健康凭证(如果发布了)。如果证明服务204验证证明客户机202的过去的健康并验证证明客户机202自我调节其健康和对健康凭证以可信方式的使用的现在和将来的能力,则证明服务204生成唯一标识证明客户机202并仅可由证明客户机202使用的健康凭证。该健康凭证证实证明客户机202在其请求健康凭证时是健康的,并证实证明服务204信任证明客户机202在每次证明客户机202使用该健康凭证(只要该健康凭证是有效的)进行认证时是健康的。值得注意的是,健康凭证包括期满时间,在期满时间之后健康凭证不再有效。在健康凭证期满之后,证明客户机将需要请求新的健康凭证以再次被证明服务204信任。证明服务204将所生成的健康凭证发送到证明客户机202,且证明客户机202接收该健康凭证。随后,证明客户机202接收使用健康凭证来认证其当前为健康的请求。例如,证明客户机202可从依赖方206接收请求。当然,可以理解依赖方206和证明服务204可以在相同系统中。可以理解依赖方206和证明客户机202也可以在相同系统中,因为依赖方206 可以是单个计算系统处与证明客户机202组件并发运行的组件。因此,接收请求可包括通过网络210 (或任何其它合适的通信机制)从证明服务204或分开的依赖方206接收请求。此外,接收请求可包括接收本地请求。响应于该请求,证明客户机202验证其自己的健康状态,如果为健康,则证明客户机202使用该健康凭证来认证它当前为健康的或“在策略内”。值得注意的是,经典的远程证明服务仅对证明客户机过去的健康进行验证和证明。这些经典的服务缺乏验证证明客户机是自我调节或自我监管的能力,而该能力允许证明服务也证明证明客户机在健康凭证的有效期内的现在或将来的健康。此外,经典的证明客户机缺乏自我调节或自我监管和提供自我证明性能的能力,该能力可由证明服务和依赖方依赖。证明客户机自我调节/自我监管和提供自我证明的能力极大地增加了可寄予证明客户机的信任,因为证明服务可证明证明客户机当前和将来的健康,而非仅过去的健康。此外,这些能力极大地减少了证明的花费,因为,在初始证明之后,证明客户机自身可以证明其自己的健康,而无需进一步涉及证明服务,至少直到健康凭证过期。此外,经典的证明日志随着证明相关的事件在证明的主题的运行时间期间发生而渐渐变得无穷。可以理解,无穷的日志增长也导致无穷的资源利用,这包括对(在证明客户机和在证明服务两方的)存储器和/或存储资源的无穷的消耗、无穷的网络带宽使用(因为日志被发送到证明服务)、以及对(在证明客户机和在证明服务两方的)处理资源的无穷的使用。如参考图3更详细地讨论的,所揭示的自我调节和自我证明机制创造了有限的证明日志,其减轻了无穷资源使用的问题。现在转到图3,示出了诸如证明客户机202的自我调节的证明客户机的状态图300 的流程图。在证明客户机通电后,证明客户机进入启动状态302,其中证明客户机执行标准的引导序列。在标准引导序列期间,证明客户机加载一个或多个可信引导时组件并将标准引导序列的证明相关事件记录到证明日志中。所记录的信息可包括例如,所加载的可信引导时组件的身份、以及它们相应的配置。可信引导时组件可包括任何合适的可信引导时组件,诸如可信硬件驱动器(例如,经签署的固件)、可信操作系统组件、可信安全组件,等。记录在安全日志中的事件可被证明服务(例如,证明服务204)用来验证证明客户机是否在标准引导之后处于健康状态。此外,在加载任何其它第三方或不可信代码之前,证明客户机加载一个或多个可信监视代理。可信监视代理可包括,例如,一个或多个反恶意软件代理和/或一个或多个证明代理。当然,反恶意软件代理和证明代理也可被组合到单个单元。可信监视代理可由操作系统厂商、安全厂商,和/或诸如反恶意软件公司(例如麦卡菲McAfee有限公司、赛门铁克 Symantec公司等)的可信第三方提供。不考虑他们的专门配置,可信监视代理在证明客户机的运行时期间保持驻留并用于自我调节或自我监管。这包括通过积极地防范恶意软件和不可信代码,并通过强制实施一个或多个证明相关的安全策略来在本地保护证明客户机。 关于一个或多个可信监视代理以及一个或多个安全策略的信息也被记录在证明日志中。证明客户机按照前述方式与证明服务一起执行证明事件310,并在接收健康凭证之后达到健康状态304。如所讨论的,证明事件310包括证明客户机将证明日志连同证明日志的完整性和新鲜度的证据发送到证明服务,以及证明服务验证证明日志的完整性和新鲜度。例如,验证证明日志的完整性可包括保护免遭重放攻击。作为请求的一部分,证明服务可向客户机发送唯一标识符,诸如密码的“曾用过一次的数字”(现时值(nonce))。接着, 当证明客户机将证明日志发送到证明服务时,证明日志的完整性的证据可包括证明日志的内容上的签名以及现时值。由于现时值(nonce)按定义仅被使用一次,这提供确保通信不能被重播的期望特性。此外,验证证明日志的新鲜度可包括证明服务验证证明日志反映证明客户机的当前状态,而不是某个先前状态。一旦被验证,证明日志被证明服务用来验证证明客户机在发送证明日志时是健康的,这包括验证证明服务器在标准引导序列之后是健康的。证明日志也被证明服务使用来验证一个或多个可信监视代理和一个或多个安全策略的配置,并通过监视代理和安全策略来验证证明客户机可被信任按可信方式执行自我调节和自我证明。也就是,证明服务验证其可信任证明客户机监管并保护它自身以维持健康状态并仅在它实际上是健康的并且“在策略内”时认证它是健康的。如果所有验证通过,证明服务生成健康凭证,该健康凭证对证明客户机专用并仅在健康凭证的有效期内可被证明客户机使用。生成健康凭证可包括生成密码数字证书或令牌(例如,X. 509证书,安全断言标记语言(SAML)令牌,等)并用证明客户机所提供的公共密码密钥来签署该证书或令牌。例如, 证明客户机可在引导期间或在另一时间生成公共密码密钥以及私有密码密钥。一旦由证明客户机的公共密码密钥签署,健康凭证仅可在结合证明客户机的私有密码密钥使用时被用来认证证明客户机的健康。因此,基于安全策略中指定的条件,证明客户机可通过自愿拒绝用私有密码密钥进行认证或通过完全地放弃对私有密码密钥的访问来拒绝对其健康进行证明。在一些实施例中,私有密码密钥存储在证明客户机处的可信硬件组件中,使得一旦对可信硬件组件的访问已经被证明客户机放弃,对私有密码密钥的访问仅可通过重新引导和重新证明来重新获得。接着可以理解,通过放弃对私有密码密钥的访问,证明客户机有效地丢弃了健康凭证。在一些实施例中,可信硬件组件包括用于提供包括密码密钥的生成、伪随机数生成、封装的/受保护的存储、测量设施、硬件设备的认证等的安全密码功能的可信平台模块 (TPM)。因此,公共和私有密码密钥的生成可包括TPM生成密钥,存储密钥可包括TPM存储密钥,而放弃对私有密码密钥的访问包括放弃对存储在TPM中的密钥的访问。值得注意的是,一旦证明客户机已经执行了初始证明事件310,记录在证明日志中的证明相关事件的数量可被极大地降低,因为证明客户机(使用健康凭证)执行自我调节和自我证明,而非完全依赖证明服务来证明其健康。因此,证明日志的大小可被固定,或其扩展速度与经典证明模式相比可被显著降低,因此解决了前面讨论的无穷资源使用的问题。当然,证明客户机仍然可诸如通过更新事件312,来偶尔与证明服务一起执行证明事件。 更新事件可,例如,在健康凭证已经过期或即将过期时被执行。在健康状态304中,证明客户机使用可信监视代理来执行自我调节以确保证明客户机或者处于“在策略内”或放弃对其私有密码密钥的访问。安全策略可包括关于可运行在证明客户机上的第三方应用的规则、要将证明客户机从健康状态304移除的事件、要将证明客户机恢复到健康状态的事件等。在处于健康状态304时(即当证明客户机“在策略内”时),证明客户机赞成对使用健康凭证来认证其为健康的请求作出响应。例如,如果依赖方(例如依赖方206)请求认证,则证明客户机验证其处于健康状态304并使用健康凭证和私有密码密钥来认证或证明其健康。证明客户机可出于任何数量的理由而离开健康状态304。例如,轻罪事件314可导致证明客户机临时离开健康状态304并进入受损状态306。这可以例如在当前安全策略已经过期时且新的安全策略必须被获得时发生。这也可以在证明客户机相信其自身处于不安全环境中且需要采取补救动作的情况下发生。当处于受损状态306时,证明客户机通过自愿拒绝使用其私有密码密钥来反对对使用健康凭证进行认证的请求作出响应。补救事件316可使证明客户机恢复回健康状态304。值得注意的是,即使证明客户机变得受损,使得不能信任证明客户机自愿拒绝认证,构建到健康凭证中的期满(可以是一段相对短的时间)使证明客户机在很好定义的有限时间内失去其健康凭证(以及其进行认证的能力),除非其通过更新其健康凭证(例如,通过更新事件312)而继续被信任。此外,任何数量的重罪事件318或320可使证明客户机离开健康状态304或受损状态306并进入故障状态308。重罪事件318或320是其中证明客户机相信其已落入“政策之外”的事件,以及是证明客户机不能在没有重新启动和重新证明的情况下从其恢复的事件。当重罪事件318或320发生时,证明客户机彻底放弃对其私有密码密钥的访问,因此消除了证明客户机使用健康凭证来认证或证明其健康的能力。放弃对其私有密码密钥的访问可包括,例如,不可逆地放弃对存储私有密码密钥的可信硬件组件(例如,TPM)的访问。 此外,当重罪事件318或320发生时,证明客户机将事件写到证明日志,这导致向证明服务对健康凭证的任何将来的请求失败。重罪事件318或320可包括例如,健康凭证期满、检测感染、对可疑管理动作的检测、意外或故意错误配置、或当前安全策略期满。图4从证明客户机的角度示出了方法400的流程图,该方法用于使用来自证明服务的健康凭证来认证自我调整证明客户机在请求时是当前健康的。图5从证明服务的角度示出了方法500的流程图,该方法用于为自我调节证明客户机生成健康凭证。尽管方法400 和500可在包括证明客户机和证明服务的任何环境中执行,方法400和500将参考图2的证明系统和图3的状态图表来描述。图4从证明客户机的角度示出方法400可包括请求健康凭证的动作402。动作402 包括证明客户机从证明服务器请求健康凭证,该请求包括经排序的证明日志以及该经排序的证明日志的完整性和新鲜度的证据。例如,证明客户机202可向证明服务204请求健康凭证。请求可以是单个请求或握手操作的部分,且证明客户机202可向证明服务204提供经排序的证明日志,该证明日志包括在计算系统作出请求时被加载在计算系统处的组件(例如,引导时组件)的经排序的日志以及这些组件的配置。日志也可包括运行在证明客户机 202处的一个或多个监视代理的身份以及关于在证明客户机202处强制实施的一个或多个安全策略的信息。在一些示例中,经排序证明日志可以是可信计算组(TCG)日志。证明客户机202也可向证明服务204提供经排序的证明日志的完整性和新鲜度的证据。暂时转到图5,图5从证明服务的角度示出了方法500可包括接收对健康凭证的请求的动作502。动作502包括证明服务从自我调节证明客户机接收对健康凭证的请求,该请求包括经排序的证明日志以及该经排序的证明日志的完整性和新鲜度的证据。例如,证明服务204可从证明客户机202接收对健康凭证的请求。该请求可包括经排序的证明日志和经排序的证明日志的完整性和新鲜度的证据,如前面关于动作402所描述的。图5也示出了方法500可包括验证在请求时的健康的动作504,以及验证信任将来健康的动作506。动作504包括基于经排序的证明日志和经排序的证明日志的完整性和新鲜度的证据来验证自我调节证明客户机在客户机请求健康凭证时是健康的,而动作506包括验证该自我调节证明客户机被信任在每次客户机使用该健康凭证进行认证时是健康的。 例如,动作504和/或动作506可包括证明服务204基于所接收到的完整性和新鲜度的证据来确认所接收的证明日志是有效的,并处理整个证明日志。如前面所讨论的,这可包括通过交换密码现时值以及验证证明日志的新鲜度来保护免遭重播攻击。此外,动作504可包括证明服务204基于证明日志验证加载于证明客户机202的一个或多个组件在证明客户机202发送请求时包括健康状态。这可以包括,例如,验证作为被监视或被管理的引导的部分加载的任何引导时组件使证明客户机202处于健康状态。动作506可包括证明服务204验证在证明客户机202处加载了一个或多个监视代理,以及这些监视代理被证明服务204信任在证明客户机202处强制执行一个或多个安全策略。因此,仅当证明客户机202处于健康状态时,信任证明客户机202保护其自身维持健康状态以及使用任何批准的健康凭证来认证其当前是健康的。因此,证明客户机202被信任如果它不能确保其健康则丢弃或停止使用任何批准的健康凭证。如所示,方法500也可包括生成所请求的健康凭证的动作508。动作508包括生成健康凭证,所生成的健康凭证唯一地标识自我调节证明客户机,并证实在自我调节证明客户机请求健康凭证时自我调节证明客户机是健康的以及证实证明服务信任自我调节证明客户机在每次自我调节证明客户机使用健康凭证进行认证时是健康的。例如,证明服务204 可为证明客户机202生成包括这些证书且在一段特定时间后期满的健康凭证。然后,所生成的健康凭证在有效期内可被证明客户机202使用,以认证依赖方(例如,依赖方206)是健康的。依赖方可依赖此认证,因为证明服务204已经证实其信任证明客户机202在每次该证明客户机202使用健康凭证进行认证时是健康的。期满以后,健康凭证变得无效,证明客户机202必须重新证明并获得新健康凭证以继续向依赖方进行认证。在一些示例中,健康凭证可包括密码数字证书或令牌。证书或令牌可用从证明客户机202接收的公共密码密钥签署。以此方式,所生成的健康凭证唯一地标识证明客户机 202,并且仅可由证明客户机202结合证明客户机202拥有的私有密码密钥来使用。公共密码密钥和私有密码密钥可先前已经由证明客户机202(例如,通过TPM)生成。公共密码密钥可先前已经被发送到证明服务206,或可已经作为对健康凭证的请求的部分发送到证明服务206。如图5所示,方法500也可包括发送所生成的健康凭证的动作510。动作510包括将所生成的健康凭证发送到自我调节证明客户机。例如,证明服务204可向证明客户机 202发送所生成的健康凭证。转回到图4,图4示出了方法400可包括接收所请求的健康凭证的动作404。动作 404可包括从证明服务接收健康凭证,健康凭证唯一地标识证明客户机,并证实在客户机请求健康凭证时客户机是健康的,以及证实证明服务信任客户机在每次该客户机使用该健康凭证进行认证时是健康的。例如,在动作508证明客户机202可接收由证明服务204生产的健康凭证。健康凭证可证实加载于证明客户机202的一个或多个组件在作出请求时包括健康状态,并且可证实在证明客户机202处的监视代理被证明服务204信任强制实施确保证明客户机202仅以前面所讨论的方式使用健康凭证的特定安全策略。图4还示出方法400可包括接收认证请求的动作406。动作406包括证明客户机接收使用健康凭证来认证其当前为健康的请求。例如,证明客户机202可从依赖方206接收使用健康凭证来认证其为健康的请求。如所注意的,依赖方206也可以是证明服务204, 或甚至可以是证明客户机202的部分。因此,依赖方206不限于是分开的实体。
图4还示出方法400可包括验证当前健康的动作408。动作408包括证明客户机验证其当前为健康的。例如,证明客户机202可断定其现在处于健康状态304。这可以包括, 例如,证明客户机202断定它没有违背将把它从健康状态304移除的任何安全策略。附加地或可替换地,证明客户机202可断定它具有对执行认证必需的私有密码密钥的访问。附加地或可替换地,证明客户机202可断定一个或多个监视代理正在运行并报告健康状态。当然,证明客户机202也可断定它不处于健康状态304。例如,证明客户机202可断定作为发生轻罪事件314的结果它处于受损状态306。在此示例中,证明客户机202自愿拒绝认证其当前为健康的。后来,证明客户机202可确定补救状态314已经发生,并将其自己恢复到健康状态304。此外,证明客户机202可断定作为发生重罪事件318或320的结果它处于故障状态308。在这种情况中,当其进入故障状态308时,证明客户机202将放弃对使用健康凭证进行认证所必需的私有密码密钥的访问,因此呈现证明客户机202不能进行认证。证明客户机可放弃以任何合适的方式对可信硬件组件的访问,诸如放弃对存储密码密钥的TPM的访问。此外,证明客户机202将事件写到经排序的证明日志,其使得任何对健康凭证的将来的请求失败。在动作408成功验证之后,图4示出了方法400可包括认证当前健康的动作410。 动作410包括证明客户机使用健康凭证来认证其当前为健康。例如,证明客户机202可结合健康凭证使用私有密码密钥来执行认证。依赖方206可依赖此认证,并信任证明客户机 202当前为健康的,因为证明服务204已经证实其信任证明客户机202在每次该证明客户机202使用健康凭证进行认证时是健康的。当然,可以理解,在可替换情况中,其中对当前健康的验证失败,证明客户机202将自愿拒绝认证(B卩,在处于受损状态306时)或不能认证(即,在处于故障状态308时)。因此,揭示了用于自我调节证明客户机或证明的主题的有效机制。该机制解决了当前证明情形中存在的若干问题,包括可依赖地提供对证明客户机的健康的当前和将来证明,围绕无穷证明日志的问题的缓和,以及围绕证明客户机不能执行至少某些自我调节测量的低效的缓和。本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。
权利要求
1.在自我调节证明客户机计算系统(202)中实现的一种方法,所述计算系统包括一个或多个处理器(102)和存储指令的存储器(104),由所述一个或多个处理器执行所述指令时实现所述方法,所述方法用于使用来自证明服务(204)的健康凭证来认证所述自我调节证明客户机计算系统在请求时是当前健康的,所述方法包括以下动作计算系统(202)从证明服务(204)请求健康凭证,所述请求包括经排序的证明日志以及所述经排序的证明日志的完整性和新鲜度的证据(402);所述计算系统从所述证明服务接收所述健康凭证,所述健康凭证唯一地标识所述计算系统,并证实所述计算系统在所述计算系统请求所述健康凭证时是健康的(304),以及证实所述证明服务信任所述计算系统在每次所述计算系统使用所述健康凭证进行认证时是健康的(404);所述计算系统接收使用所述健康凭证来认证其当前为健康的请求(304,406);所述计算系统验证其当前为健康的(408);以及所述计算系统使用所述健康凭证来认证其当前为健康(410)。
2.如权利要求I所述的方法,其特征在于,证实所述计算系统在所述计算系统请求所述健康凭证时是健康的包括证实加载在所述计算系统处的一个或多个组件在所述计算系统作出所述请求时包括健康状态(304)。
3.如权利要求2所述的方法,其特征在于,证实所述证明服务信任所述计算系统在每次所述计算系统使用所述健康凭证进行认证时是健康的包括证实所述计算系统包括被所述证明服务信任的一个或多个监视代理以强制实施一个或多个安全策略,使得所述计算系统被信任保护其自身维持健康状态,并且使得所述计算系统被信任仅在所述计算系统处于健康状态时使用所述健康凭证来认证其当前为健康。
4.如权利要求3所述的方法,其特征在于,所述计算系统通过自愿拒绝进行认证或通过不可撤消地放弃对认证所必需的私有密码密钥的访问来拒绝使用所述健康凭证来认证其当前为健康。
5.如权利要求I所述的方法,其特征在于其中所述健康凭证唯一地标识所述计算系统包括所述健康凭证包括或基于公共密码密钥;以及其中所述计算系统使用所述健康凭证来认证其当前为健康包括所述计算系统连同健康凭证使用私有密码密钥来执行所述认证。
6.在计算系统(204)中实现的一种方法,所述计算系统包括一个或多个处理器(102) 和存储指令的存储器(104),由所述一个或多个处理器执行所述指令时实现所述方法,所述方法用于生成自我调节证明客户机(202)的健康凭证,所述方法包括以下动作从自我调节证明客户机(202)接收对健康凭证的请求,所述请求包括经排序的证明日志以及该经排序的证明日志的完整性和新鲜度的证据(502);基于所述经排序的证明日志以及所述经排序的证明日志的完整性和新鲜度的证据, 验证所述自我调节证明客户机在所述自我调节证明客户机请求所述健康凭证时是健康的 (304)(504);基于所述经排序的证明日志以及所述经排序的证明日志的完整性和新鲜度的证据,验证所述自我调节证明客户机被信任在每次所述自我调节证明客户机使用所述健康凭证进行认证时是健康的(506);生成所述健康凭证,所生成的健康凭证唯一地标识所述自我调节证明客户机,并证实所述自我调节证明客户机在所述自我调节证明客户机请求健康凭证时是健康的以及证实证明服务(204)信任所述自我调节证明客户机在每次所述自我调节证明客户机使用健康凭证进行认证时是健康的(508);以及将所生成的健康凭证发送到所述自我调节证明客户机(510)。
7.如权利要求6所述的方法,其特征在于,验证所述自我调节证明客户机在所述自我调节证明客户机请求所述健康凭证时是健康的包括证实加载在所述自我调节证明客户机处的一个或多个组件在所述自我调节证明客户机作出所述请求时包括健康状态。
8.如权利要求6所述的方法,其特征在于,验证所述自我调节证明客户机被信任在每次所述自我调节证明客户机使用所述健康凭证进行认证时是健康的包括证实所述自我调节证明客户机包括被所述证明服务信任的一个或多个监视代理以强制实施一个或多个安全策略,使得所述自我调节证明客户机被信任保护其自身维持健康状态,并且使得所述自我调节证明客户机被信任仅在所述自我调节证明客户机处于健康状态时使用所述健康凭证来认证其当前为健康。
9.如权利要求8所述的方法,其特征在于,所述经排序的证明日志包括被加载在所述自我调节证明客户机所述一个或多个的组件的全部在所述自我调节证明客户机作出请求时的经排序的日志,以及所述组件的配置;所述一个或多个监视代理的身份;以及有关所述一个或多个安全策略的信息。
10.如权利要求6所述的方法,其特征在于,还包括从所述自我调节证明客户机接收唯一地标识所述自我调节证明客户机的公共密码密钥;以及使所述健康凭证包括或基于所述公共密码密钥,从而使得所生成的健康凭证唯一地标识所述自我调节证明客户机。
全文摘要
本发明涉及揭示了证明的主题的自我调节,自我调节证明客户机的证明。证明客户机从证明服务请求健康凭证,该凭证包括经排序的证明日志和日志的完整性及新鲜度的证据。证明客户机接收所请求的健康凭证,该凭证证实证明客户机在其请求健康凭证时是健康的,以及证实证明服务信任证明客户机在每次该证明客户机使用该健康凭证进行认证时是健康的。该证明客户机接收使用健康凭证认证其健康的请求、验证其当前为健康、以及执行所请求的认证。
文档编号H04L29/06GK102611698SQ201210027799
公开日2012年7月25日 申请日期2012年2月8日 优先权日2011年2月9日
发明者A·埃弗龙, A·奥塔尔, M·F·诺瓦克, S·汤姆, Y·托儿 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1