用于多方验证的基于平台的可信性验证服务的方法和系统的制作方法

文档序号:6538100阅读:165来源:国知局
用于多方验证的基于平台的可信性验证服务的方法和系统的制作方法
【专利摘要】用于多方验证的基于平台的可信性验证服务的方法和系统。在一个实施例中,所述方法包括客户端平台访问网络上的服务提供者。一旦访问所述服务提供者,所述客户端平台就从所述服务提供者接收平台测量和验证的请求。所述客户端平台收集平台信息,并执行测量和验证,包括执行完整性清单比较。如果所述完整性清单比较指示良好的客户端平台状况,则所述客户端平台对所述客户端平台状况进行签名,并向所述服务提供者发送许可通知,用于指示所述客户端平台未受损害。然后,所述客户端平台可以接收所述服务提供者的服务。如果所述完整性清单比较指示所述客户端平台状况不好,则所述客户端平台将向所述服务提供者发送故障通知,以指示所述客户端平台受到损害。
【专利说明】用于多方验证的基于平台的可信性验证服务的方法和系统
[0001]本申请是2009年6月30日提交的,申请号为200910139642.9的同名专利申请的
分案申请。
【技术领域】
[0002]本发明一般涉及网络使能计算设备的安全性。更具体地,本发明涉及用于多方验证的基于平台的可信性验证服务的方法和装置。
【背景技术】
[0003]万维网正在向服务模型发展。万维网上的服务提供者控制服务的子集,并利用合同范围内的一组分布式能力将它们提供给消费者。当今,万维网上存在许多恶意用户,并且由于各种原因,许多设备在它们所提供的信息方面并不完全可靠。如果消费者平台被平台上运行的恶意代码或其它原因损害,那么服务提供者和/或它们提供给消费者的服务也可能受到损害。
【专利附图】

【附图说明】
[0004]被并入本文并构成说明书的一部分的【专利附图】
附图
【附图说明】了本发明的实施例,并且与说明书中的描述一起还用来解释本发明的原理,并使相关领域的技术人员能够构造和使用本发明。在附图中,相同的附图标记一般指示相同的、功能类似的和/或结构类似的元件。元件首次出现的附图用对应附图标记中的最左边的数字来指示。
[0005]图1A是说明根据本发明实施例的具有主动管理模块的示例性主机计算平台的框图。
[0006]图1B是说明根据本发明实施例的示例性虚拟技术(VT)使能主机计算平台的框图。
[0007]图2是说明根据本发明实施例的用于基于平台的可信性验证服务的主机处理器和主机操作系统的示例性框图。
[0008]图3是说明根据本发明实施例的用于基于平台的可信性验证服务的示例性代理执行环境(AEE)的框图。
[0009]图4是描述根据本发明实施例的用于基于平台的可信性验证服务的示例性方法的流程图。
【具体实施方式】
[0010]尽管本文参照针对特定应用的说明性实施例对本发明进行了描述,但是应该理解,本发明并不限于此。通过参考本文提供的教导,相关领域的技术人员将认识到落入本发明范围以及本发明的实施例具有显著效用的其它领域内的其它修改、应用和实施例。
[0011]说明书中的对本发明的“ 一个实施例”、“实施例”或“另一实施例”的引用是指结合该实施例而描述的具体特征、结构或特性包含在本发明的至少一个实施例中。因此,在整个说明书不同位置处出现的短语“在一个实施例中”或“在实施例中”不一定全指同一实施例。
[0012]本发明的实施例针对用于多方验证的基于平台的可信性验证服务的方法和系统。这通过利用平台硬件特征识别平台的弱点来实现。因特网或者提供受保护内容或其它私有服务的任何其它网络上的多方可以在没有平台上的额外开销的情况下,以可信方式查明平台的状况。
[0013]本发明的实施例使得授权的服务提供者能够请求测量和验证客户端主机的有关软件和硬件组件的完整性的平台属性,其中,所述软件和硬件组件是客户端主机与服务提供者之间的任何事务的来源。因此,仅仅授权的服务可以查明平台的状况的有效性(即,状况报告)。本发明的实施例使得客户端实体能够确保将数据传送到服务提供者的服务器的软件代理的完整性,所述软件代理包括通过平台上的硬件(例如指纹读取器或其它传感器)获取信息的软件代理。确保平台(包括软件代理)的完整性的能力对于提供在线服务(例如,在线广告服务、基于位置的服务、优质内容传送服务等)的商业服务来说是非常重要的,因为这些服务依赖于由软件代理发送以提供这些服务的数据的准确性。
[0014]本发明的实施例还提供OS (操作系统)不可知能力,该能力使得能够进行保护以免受平台的恶意的授权拥有者和平台上的恶意代码的攻击。
[0015]尽管本发明被描述为可应用于因特网,但是本发明并不限于因特网。相关领域的技术人员将知道,本发明同样可应用于私有网络上的服务,例如,企业IT (信息技术)网络或者传送受保护内容或其它私有服务的商用网络。
[0016]图1A是说明根据本发明实施例的具有主动管理模块的示例性主机平台100的框图。主机平台100表示执行程序的计算平台。在本发明的实施例中,主机平台100可以是客户端平台。例如,主机平台100可以包括桌面计算机、膝上型计算机、平板计算机、机顶盒、个人数字助理(PDA)、电话、智能电话、MID (移动互联网设备)、游戏机、健康监控设备以及其它连接的数字消费性设备。主机平台100包括主机处理器102、具有主动管理模块106的服务处理器104、存储器108、存储设备110、输入/输出设备112以及通信接口 114等。部件102、104、106、108、110、112和114中的每一个通过系统总线116相互耦合,所述系统总线116代表一个或多个总线。在多个总线的情况中,可以通过一个或多个总线桥(未示出)来桥接这些总线。
[0017]主机处理器102可以表示处理器、微控制器、中央处理单元(CPU)等。尽管在图1A中将主机处理器102显示为单个单元,但是主机处理器102可以包括可以提供并行处理能力的一个或多个处理核心或处理单元。下文将参照图2更详细地描述主机处理器102。
[0018]服务处理器104表示用于在主机处理器102的环境外部执行任务的处理器/控制逻辑。在一个实施例中,服务处理器104可以称为“副处理器”(adjunct piOcessor),并且可以是主机处理器102的一部分、嵌入式设备、芯片组部件等。当服务处理器104在安全/可信分区上或在系统管理模式下执行管理代码时,还可以通过主机处理器102来实现服务处理器104。在一个实施例中,服务处理器104可以包括主动管理模块106。或者,主动管理模块106可以作为主机平台100上的、与服务处理器104协同工作的独立实体而存在。主动管理模块106可以包括代理执行环境(AEE) 118,其可以用来确定在主机平台100上执行的程序的完整性。下文将参照图3进一步详细地讨论AEE118。[0019]在本发明的一个实施例中,服务处理器104可以包括带外(OOB )管理模块120。OOB管理模块120涉及在主机处理器102上执行的操作系统(OS)不能访问的通信资源的管理和/或控制。OOB管理模块120可以包括与主机平台100外部的实体(例如,在诸如网络124的网络上的远程服务器122)相连的通信链路126。通信链路126可以是有线链路或无线链路。有线链路可以包括物理导体,例如双绞线、Cat-5、同轴电缆、光纤等。无线链路可以包括但不限于=WiFi (无线保真,其为根据IEEE802.11协议族的天线网络通信的共同名称)、3G (第三代移动通信技术)、WiMax (微波存取全球互通,其为基于IEEE802.16标准的宽带技术)等。在一个实施例中,远程服务器122可以连接到远程OOB管理模块120。
[0020]存储器108可以用来存储/提供指令和/或数据,以用于主机处理器102的直接操作和/或功能的执行。存储器108可以包括随机访问存储器(RAM)、静态RAM (SRAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、双倍数据速率RAM (DDRRAM)等。存储器108可以包括存储在其中的一个或多个代码和/或数据的序列,并且可以称为操作存储器。代码序列可以是表示一个或多个函数调用、一个或多个子例程或者一个或多个操作的机器指令的集合或组。程序在这里可以指这些机器指令中单独的任意一种,也可以指这些机器指令中的一种或多种的结合。存储设备110可以表示用于存储持久性数据的非易失性存储设备。非易失性存储设备指这样的存储介质,即,即使当电源从存储设备移除时,该存储介质仍保留它的值。持久性数据是指当中断到主机平台100的电源时仍期望保留的数据,例如系统文件、操作系统、程序文件、配置文件等。存储设备110可以包括存储盘及关联的驱动器(例如磁盘、光盘)、通用串行总线(USB)存储设备及关联的端口、闪存、只读存储器(ROM)、非易失性半导体驱动器等。
[0021]主机平台100还可以包括输入/输出设备112。输入/输出设备112可以包括但不限于键盘、光标控制器等。
[0022]主机平台100还可以包括通信接口 114。通信接口 114可以包括但不限于:使得主机平台100能够在诸如网络124的网络上与其它实体进行通信的网络接口卡、调制解调
翌坐
-nfrO
[0023]图1B是说明根据本发明实施例的示例性的虚拟技术(VT)主机计算平台130的框图。在本发明的实施例中,需要用于AEE118的安全隔离分区。利用VT计算平台的实现,可以创建用于AEEl 18的隔离分区。
[0024]和主机平台100所指示的一样,主机平台130表示执行程序的计算平台。在本发明的实施例中,主机平台130可以用作客户端平台或服务器平台。主机平台130可以包括例如:桌面计算机、膝上型计算机、平板计算机、个人数字助理(PDA)或者其它手持计算或通信设备等。
[0025]主机平台130包括多个虚拟机监控器(VMM)管理部件132,VMMl34直接在VMM管理部件132之上运行。可以用硬件、软件、固件或它们的组合来实现VMM管理部件132。VMM管理部件132可以包括处理器102、存储器108、存储设备110、I/O设备112以及通信接口114。主机平台130还包括至少一个虚拟机(VM)136。VM136包括下面参照图2描述的操作系统200。主机平台130还包括具有客户操作系统和VT完整性服务(VIS)模块140的辅助VMl38ο VT完整性服务(VIS)模块140包括AEE118。尽管图1B被显示为具有两个VM,SPVMl36和辅助VM138,但是平台130并不限于仅具有两个VM。相关领域的技术人员将知道,在不偏离本发明的范围和精神的情况下,平台130中可以包括更多个VM。
[0026]虚拟机监控器(VMM) 134允许主机平台130同时并且独立地运行多个客户操作系统(OS),其中,每个OS具有自己隔离的环境,即,VMl36和辅助VM138,以用于软件执行。VMMl34直接在VT使能硬件(VMM管理部件132)之上运行,所述VT使能硬件例如是处理器102、存储器108、存储设备110、I/O设备112以及通信接口 114,并且VMM134具有对平台130中所有资源的完全访问权。VMM134可以向独立操作的VM136和辅助VM138呈现VT使能的硬件(132)的多个方面。可以用软件、硬件、固件和/或它们的任意组合来实现VMM134。
[0027]如前所示,VM136和辅助VM138包含在VMM134上运行的客户操作系统(OS)。VMl36和辅助VM138被配置为独立地执行代码,其中,VM136和辅助VM138被安全地相互隔离。也就是说,在VM136和辅助VM138上操作的组件可以分别进行操作,如同它们分别运行在专用计算机上而不是虚拟机上一样。这些VM上的组件可以控制各种事件,并且具有对VT使能的硬件(132)的完全访问权。VMM114可以管理VM对VT使能的硬件(132)的访问。
[0028]辅助VM138可以包括VT完整性服务(VIS)模块140,以提供附加的安全性增强。结合VIS模块140,辅助VM138可以被配置为独立地执行代码,可以与VM136安全地隔离,并且可以防止VM136的组件执行会改变、修改、读取或以其它方式影响辅助VM138的组件的操作。因此,通过使AEE188驻留在VIS模块140上,使得AEE188能够更安全地与在VM136上实现的0S200隔离。在该实施例中,AEEl 18通过通信链路A和VMM134与0S200通信。
[0029]如之前参照图1A所指示的,尽管主机处理器102在图1B中被显示为单个单元,但是主机处理器102可以包括一个或多个处理核心或者处理单元。
[0030]图1A和IB描述了本发明实施例的示例性主动管理和VT实现。本发明并不限于这些实现。相关领域技术人员将知道,可以使用支持本发明实施例的功能的其它实现。这些实现可以包括但不限于,可信计算模块实现或先进RISC机器(ARM)的信任区(Trust Zone)实现。
[0031]图2是说明根据本发明实施例的用于基于平台的可信性验证服务的主机处理器102和主机操作系统200的示例性框图。如前所示,主机处理器102可以是例如处理器、微控制器、中央处理单元(CPU)等。主机处理器102包括主机操作系统200。主机操作系统200是负责为主机平台100或300管理与协调动作和进行资源共享的软件组件。主机操作系统200包括用户应用程序202、策略管理器204以及第三方代码206等。
[0032]用户应用程序202可以包括但不限于:服务提供者特定的支持它们的服务传送的任何应用程序。例如,当今在因特网上支持服务提供者的服务传送的最普遍的用户应用程序可能是浏览器应用程序,例如Microsoft?的Internet Explorer或者目前为AOL的子公司的网景通信公司的Netscape Navigator。也可以使用支持服务提供者的服务传送或者用作客户端与服务提供者之间的接口的其它类型的用户应用程序。例如Netflix (—种提供电影或其它类型的媒体的在线电影租赁服务)需要Netflix媒体播放器应用程序作为用户与Netflix网站之间的接口,以使得用户能够在其个人计算机(PC)上观看电影和电视演出。
[0033]本发明的实施例向服务提供者提供信息,以使服务提供者能够知道客户端上运行的用户应用程序是否已经被篡改或损害。作为主机操作系统200的一部分,策略管理器204提供定义主机平台的状态和用户应用程序的状态的策略。因此,策略管理器204可由用户和服务提供者访问,并且赋予用户/服务提供者为平台和用户应用程序配置默认参数和属性的能力,所述参数和属性可以用来定义主机平台的状态和代表服务提供者的用户应用程序的状态。
[0034]主机操作系统200还包括第三方代码206。第三方代码206包括来自授权的服务提供者和/或其它授权的独立软件供应商(ISV)的代码。第三方代码206可以称为代理,并且更具体地,可以称为测量可下载代理208。向服务提供者提供有标准SDK (软件开发工具包),以在第三方代码206的存储器区域内实现并安装它们的测量可下载代理208。因此,测量可下载代理208可以是服务提供者特定的。它们被用来测量服务提供者特定的用户应用程序。例如,如前所示,用于Netflix的用户应用程序接口是Netflix媒体播放器。用于Netflix的第三方代码是测量Netflix媒体播放器的测量可下载代理(即,用于Netflix媒体播放器的检验器代码,用来确定Netflix媒体播放器代码在正确地操作,没有被修改或损害)。测量可下载代理还被用来测量某些平台特定属性,例如OS版本、反病毒软件版本信息以及适当的功能硬件,并且用来确保将数据传送到服务提供者的服务器的代理的完整性。
[0035]图3是说明根据本发明实施例的用于基于平台的可信性验证服务的示例性代理执行环境(AEE) 118的框图。在本发明的实施例中,代理执行环境(AEE) 118监控并测量受保护的主机软件代理,例如在主机平台100上执行的用户应用程序和第三方代码,从而使得可以防止修改和/或恶意终止这些软件程序。AEE118还测量关键的操作系统组件,该关键的操作系统组件表明整个操作系统的状态及操作系统提供的服务。AEE118可以测量某些平台特定属性,例如操作系统版本、反病毒程序版本以及平台上安装的其它软件程序的版本。
[0036]在本发明的实施例中,可以由代理执行环境(AEE) 118直接监控软件程序和第三方代码206。本发明的实施例通过采用AEEl 18检验第三方代码代理206的方式来使用“对检验器进行检验”的方法。例如,现在使用反病毒软件来检测、移除和阻止平台上的间谍软件与病毒,但是谁来检验反病毒软件的完整性呢?在本发明的实施例中,AEE118可以用来检验反病毒软件的完整性。因此,在该实例中,反病毒软件是检验器,并且AEE118是用来“对检验器进行检验”的检验模块。
[0037]如前所示,AEEl 18可以与操作系统200隔离,以提供能够在操作系统200外部获得高级测量的封闭的测量系统,以验证主机平台(100或130)上的任意软件组件,包括来自服务提供者的软件组件。因此,将AEE118与0S200隔离是重要的,这样使得AEE118能够具有自己的私有区域,其与0S200相分离,用于存储不能被0S200损害的数据和运行时信息。
[0038]AEE118通过将存储的完整性清单(integrity manifest)与运行时的完整性清单进行比较来确保任意软件组件(包括第三方代码206)的完整性。软件程序的身份可以用两种属性来定义:第一,将程序加载到存储器中时发生的重定位修正(relocation fix_up)的列表;第二,代理签名。代理签名包括可以涵盖程序的可执行代码存储、静态配置数据、动态配置数据以及重定位修正的列表的完整性检验值(ICV)或测试值/身份测试/验证值。重定位修正可以被描述为是指应用于程序的源中的位置的偏移,该偏移基于程序被加载到存储器中的位置来定位具有可变位置的程序/例程/函数。总的来说,重定位修正的列表和ICV可以称为软件程序的身份。当它们被一同存储或使用时,它们可以被称为软件程序的“完整性清单”。
[0039]在一个实施例中,完整性检验可以包括生成涵盖表示代理或软件程序的身份的所有区域的加密散列值。代理或软件程序的身份可以包括可执行代码、静态配置数据以及重定位修正。代理或软件的身份的各种组件可以用来生成特定的完整性检验值(lev)。ICV被包括在代理或软件程序的完整性清单中,并且可以被验证以确定代理/软件程序的身份和完整性。将计算的散列值与代理/软件程序的已知/期望值(即,原始的完整性清单)进行比较,所述已知/期望值可以在制造该代理时已经生成。
[0040]在一个实施例中,可以用加密散列算法生成ICV。该算法可以用来生成存储在代理/软件程序的完整性清单中的一个或多个ICV。存储在代理/软件程序的完整性清单中的ICV可以称为“原始ICV”。本文中也可以将原始ICV称为“已知良好的”ICV。AEE118可以使用与用来创建原始ICV的加密散列算法一样的算法来生成ICV,以与原始ICV进行比较。所计算的ICV与已知良好的ICV或原始ICV进行比较。如果这些ICV匹配,那么代理/软件程序未被修改。如果计算的ICV中存在差异,则代理/软件程序被AEE118确定为已被修改,并且可以报告差异。
[0041]除了 ICV之外,完整性清单可以包括涵盖ICV的加密签名。完整性清单签名可以由软件制造者/开发者创建,并与作为软件的一部分的完整性清单一起存储。或者,可以在安装软件程序时从制造者生成和/或接收签名,并将其作为程序的一部分进行存储。该签名可以是软件程序各部分的生成的ICV的加密散列。在一个实施例中,软件开发者可以用公私密钥对中的私钥执行加密散列。因此,软件开发者可以创建并存储完整性清单的签名,然后,诸如AEE118的另一实体可以用软件开发者的公钥来验证该签名。通过验证完整性清单的签名,AEE118可以假设完整性清单中的所有值都是正确的,并将完整性清单的ICV用作由AEEl 18或另一实体进行的验证的期望值。
[0042]AEEl 18还具有对重要的系统表的访问权,例如,系统服务描述符表、中断描述符表以及输入地址表。利用对这些表的特许访问,AEEl 18可以确保第三方代码做出的系统调用被翻译成正确的内核代码,而不会被翻译成根套件(rootkit)代码通过钩子技术进行的任何函数调用。
[0043]AEEl 18包括代理执行完整性检验器302、证书管理器306以及事务管理器308。
[0044]代理执行完整性检验器302持续监视主机操作系统200上的第三方代码206的存储器区域以及该区域内安装的任何软件组件。代理执行完整性检验器302包括清单管理器304。清单管理器304维护第三方代码306和所述区域中任何软件代理的散列值的储存库。清单管理器304还可以与远程服务器(例如远程服务器122)建立安全信道,以当未在本地存储完整性清单时获取其第三方代码的完整性清单。当服务提供者发出测量和验证请求时,代理执行完整性检验器306联合清单管理器304通过以下步骤来执行测量和验证:测量客户端平台的操作状态,确定运行时完整性清单以及执行如上所述的完整性清单比较。
[0045]证书管理器306维护证书存储。由证书管理器306维护的密钥/证书的列表包括
(I)用于AEE188的公开密钥对(当制造硬件(AEEpk)时熔合或者在消费者激活之后生成)以及(2)由服务提供者发布的服务证明密钥(SCK),用来保证客户端和服务提供者之间的协议是适当的,并且在认证第三方代码206中运行的代理时使用所述协议。证书管理器306还提供用于证书的撤销和更新的处理。[0046]事务管理器308指示主机处理器102执行附加操作,以在AEE118和由主机处理器102执行的任何事务之间形成绑定。
[0047]在一个实施例中,事务管理器308和主机处理器102之间的通信链路A可能涉及到现有处理器微码的扩展。可以定义新的处理器寄存器,其可以用来监视主机存储器的特定区域(例如存储器类型范围寄存器(MTRR)),并且如果这些区域被修改,则可以向AEE118发送警报。
[0048]如前所示,本发明的实施例使得服务提供者能够请求客户端平台的测量和验证,以确保在客户端平台上运行的服务提供者的用户应用程序未受损害,并且它们的服务不能被窃取。许多在线商业需要这种服务来防止对它们的服务进行电脑化盗窃。例如,用户从Netflix.com租赁电影,以在用户的客户端平台上的Netflix媒体播放器中观看该电影。然而,如果用户的用于观看电影的客户端平台(即Netflix媒体播放器)被恶意的视频截取者损害,则能够在未从Netflix.com租赁电影的情况下,从Netflix媒体播放器窃取电影。本发明的实施例提供所有必要的组件来测量和验证客户端平台,包括测量服务提供者的用户应用程序,以保证用户应用程序未被损害。例如,利用本发明的实施例,Netflix.com可以请求测量和验证,以确保正在播放电影的Netflix媒体播放器未被损害,并且因此可以保证电影不会被恶意的视频截取者窃取。
[0049]因此,本发明的实施例使得因特网或提供服务的任何其它网络上的多方能够在没有平台上的额外开销的情况下,以可信方式查明平台的状况。如下面参照图4所示出的,本发明的实施例还使得授权的服务仅能查明状况报告的有效性。本发明的实施例还是OS不可知的,并且提供保护以免受平台的恶意的授权拥有者和平台上的恶意代码的侵害。
[0050]图4是描述根据本发明实施例的用于基于平台的可信性验证服务的示例性方法的流程图400。本发明并不限于本文参照流程图400所描述的实施例。相反,在阅读本文提供的指导后,对于相关领域技术人员来说显而易见的是:其它功能流程图也在本发明的范围内。处理在402处开始,其中,处理立即前进到404。
[0051]在可以验证可信性之前,必须首先建立可信性。换言之,在AEE可以对检验器(SP第三方代理)进行检验之前,必须在AEE和第三方代理之间建立可信性。为了建立这种可信性,必须将第三方代理的证书提供给AEE。因此,在404处,通过AEE来执行证书提供。证书提供在本领域是熟知的。如前所示,证书管理器维护证书存储。由服务提供者发布服务证明密钥(SCK),以保证在服务提供者向客户端提供服务之前,服务提供者和客户端之间的协议是适当的。如果已经规定了服务提供者,则应该已经用证书管理器存储了服务证明密钥。然后,服务证明密钥(SCK)可以用来认证第三方代理。
[0052]一旦在406处主机平台访问来自服务提供者的因特网服务,主机平台就在408处从对应的服务提供者接收对于平台测量和验证的请求。不希望在主机已经被损害的情况下被该主机损害的服务提供者在向该主机平台提供任何服务之前发出该请求。
[0053]响应于来自服务提供者的请求,在410处,主机平台测量代理(B卩,代表服务提供者的第三方代码)请求AEE为该服务提供者执行平台测量和验证。平台测量和验证包括测量第三方代码的状态,以及测量表明整个操作系统的状态和其提供的服务的关键的操作系统组件。
[0054]在412处,AEE的清单管理器执行与服务提供者相关联的第三方代码的完整性清单比较。为了执行清单比较,清单管理器必须首先执行如上所述的第三方代码的运行时完整性清单计算。讲运行时完整性清单与存储在清单管理器中的原始完整性清单进行比较。在一个实施例中,如果原始完整性清单未存储在清单管理器中,则如上所述,可以从服务提供者获取原始完整性清单。
[0055]如果原始完整性清单和运行时完整性清单不等同,或者如果客户端平台的整个操作系统状态不令人满意,则在414处,将不认为主机平台状况是良好的,并且AEE将在416处向服务提供者发送故障通知。故障通知使得服务提供者知道主机平台已被损害。在接收到该通知之后,服务提供者必须决定采取什么行动。
[0056]如果原始完整性清单和运行时完整性清单等同,并且客户端平台的整体的操作系统状态令人满意,则在414处,认为主机平台状况是良好的,并且在418处,AEE可以对该平台状况进行签名,并向服务提供者发送许可。
[0057]在420处,因为已经使服务提供者确信主机平台的操作系统状态和该服务提供者的第三方代码未受损害,所以主机平台可以从服务提供者接收服务。
[0058]本发明实施例的某些方面可以使用硬件、软件或它们的组合来实现,并且可以在一个或多个计算机系统或其它处理系统中实现。实际上,在一个实施例中,所述方法可以用在可编程机器上执行的程序来实现,所述可编程机器例如是移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机,以及其它可以包括至少一个处理器、可由所述处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和一个或多个输出设备的电子设备。程序代码被应用到使用输入设备输入的数据,以执行所描述的功能并生成输出信息。输出信息可以应用到一个或多个输出设备。本领域的普通技术人员可以意识到,本发明的实施例可以用各种计算机系统来实现,包括多处理器系统、微型计算机、大型计算机等。
[0059]每个程序可以以高级的过程或面向对象编程语言来实现,以与处理系统通信。然而,如果需要,程序可以以汇编或机器语言来实现。在任何情况下,所述语言可以被编译或解释。
[0060]程序指令可以被用来使得用所述指令编程的通用或专用处理系统执行本文描述的方法。或者,所述方法可以由包含用于执行所述方法的硬连线逻辑的特定硬件组件来执行,或由编程的计算机组件和定制的硬件组件的任何组合来执行。本文描述的方法可以作为包括存储有指令的机器可读介质在内的制品或计算机程序产品来提供,所述指令可以用来编程处理系统或其它电子设备以执行所述方法。本文使用的术语“机器可读介质”或“机器可访问介质”应该包括能够存储或编码指令序列的任何介质,所述指令序列由机器执行并且使所述机器执行本文所描述的方法中的任何一个。因此,术语“机器可读介质”或“机器可访问介质”应该包括但不限于:固态存储器、光或磁盘以及编码数据信号的载波。此外,本领域中普遍地以一种形式或另一种形式(例如程序、过程、进程、应用程序、模块、逻辑等)来将软件表述为采取动作或导致结果。这种表达仅仅是表述由处理系统执行软件而导致处理器执行动作或产生结果的简便方式。
[0061]尽管上面已经描述了本发明的各种实施例,但是应该理解,仅通过实例而非限制的方式提出了这些实施例。本领域技术人员将理解,在不偏离所附权利要求中定义的本发明的精神和范围的情况下,可以对各实施例的形式和细节做出各种改变。因此,本发明的广度和范围不应该受任何上述示例性的实施例的限制,而应该根据所附权利要求及它们的等价物来定义。
【权利要求】
1.一种用于执行可信性验证的装置,包括客户端设备,其包括: 用于执行第三方证书提供的模块,以在所述客户端设备和服务提供者之间建立可信性; 用于向所述服务提供者发送对于访问由所述服务提供者提供的服务的请求的模块; 用于从所述服务提供者接收对于验证所述客户端设备的平台状况信息的请求的模块,由所述服务提供者提供给所述客户端设备的请求是响应于从所述客户端设备到所述服务提供者的对于访问由所述服务提供者提供的服务的请求的,所述平台状况包括表明驻留在所述客户端设备上的操作系统的状态的测量值; 用于响应于来自所述服务提供者的请求执行操作的模块,包括用于建立与所述服务提供者的安全信道的模块,所述安全信道配置为便于从所述服务提供者获取第三方代码的完整性清单; 用于收集与所述客户端设备上的所述平台状况信息有关的一个或多个测量值的模块; 用于将所述一个或多个测量值与一个或多个预先知道的良好值进行比较的模块;用于基于所述比较确定所述客户端设备具有良好的平台状况的模块;以及用于响应于从所述服务提供者接收的所述请求来向所述服务提供者发送所述平台状况信息的许可的模块;并且 用于基于所述许可的发送来从所述服务提供者接收所述服务的模块,其中,用于执行第三方证书提供的模块和 用于响应于来自所述服务提供者的请求执行操作的模块与所述操作系统隔离并且被配置为包括用于存储与所述平台状况信息相关的测量值的存储器区域,其不能被所述操作系统访问。
2.如权利要求1所述的装置,其中: 所述用于发送请求的模块还用于向另一服务提供者发送对于另一服务的另一请求;所述用于接收验证请求的模块还用于从所述另一服务提供者接收对于验证所述平台状况信息的另一请求; 所述用于确定所述客户端设备具有良好的平台状况的模块还用于确定所述客户端设备具有较差的平台状况; 所述用于向所述服务提供者发送所述平台状况信息的许可的模块还用于向所述另一服务提供者发送故障通知,其中,所述故障通知使所述另一服务提供者知道所述客户端设备已被损害。
3.如权利要求1所述的装置,还包括:用于在所述向服务提供者发送请求之前,规定所述服务提供者的模块。
4.如权利要求1所述的装置,还包括:用于在所述向所述服务提供者发送许可之前,对指示所述许可的所述平台状况信息进行签名的模块。
5.如权利要求1所述的装置,其中,所述用于收集一个或多个测量值的模块包括: 用于测量指示整个操作系统的状态的关键的操作系统组件和应用程序的模块;以及 用于生成完整性清单的模块。
6.如权利要求5所述的装置,其中,所述用于生成完整性清单的模块包括: 用于对代表所述服务提供者的所述第三方代码执行运行时完整性清单计算的模块;以及 其中,所述用于比较所述一个或多个测量值的模块包括: 用于如果所存储的所述服务提供者的完整性清单存在于所述客户端设备上,则将所述运行时完整性清单与所存储的完整性清单进行比较的模块。
7.如权利要求6所述的装置,其中,所述用于比较所述一个或多个测量值的模块还包括: 用于如果存储的完整性清单不存在,则经由所述安全信道从所述服务提供者获取所述第三方代码的完整性清单的模块;以及 用于将所述运行时完整性清单与所述获取的完整性清单进行比较的模块。
8.如权利要求1所述的装置,还包括,用于对所述客户端设备上的代表所述服务提供者的所述第三方代码进行认证的模块。
9.如权利要求1所述的装置,其中,所述用于收集测量值的模块和所述用于比较测量值的模块是操作系统(OS)不可知的。
10.如权利要 求1所述的装置,其中,所述服务提供者包括授权的服务提供者。
【文档编号】G06F21/57GK103763331SQ201410056443
【公开日】2014年4月30日 申请日期:2009年6月30日 优先权日:2008年6月30日
【发明者】D·N·科拉尔孙达尔, H·科斯拉维, D·德拉姆, D·达尔, P·德万 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1