详细描述
通过增加系统补救因不包含或使用最新的软件而造成对网络的风险的客户机的能力来提高联网计算机系统的完整性是合乎需要的。然而,保护等级的任何增加不应对网络或网络用户带来不合理的负担,并且应被容易地管理。如以下所描述的,提供了一种改进的隔离管理系统,其中客户计算机比较作为对等通信的一部分的状态和补救信息。
如此处所使用的,隔离强制实施策略指的是用于基于一客户机上的软件的状态(也称为客户机“健康状况”)来确定该客户机是否可被给予对网络的访问的逻辑的实施。该策略可作为客户机为被授予网络访问而必须满足的一组准则或规则被储存在数据结构中。然而,可以使用定义隔离强制实施策略的任何适当的方法。此外,隔离强制实施策略可以仅是更大的访问控制策略的一部分。因此,基于该隔离强制实施策略对网络访问的授予或拒绝的叙述并不排除客户机将出于其它原因而被拒绝或授予访问的可能性。
图1示出了可从在常规计算机系统中使用的设备构造的计算机系统100的略图。然而,计算机系统100与常规计算机系统的不同之处在于,计算机系统100内的设备被编程为实现一改进的隔离管理系统,其中客户机可以在“对等”通信中交换补救信息。
如此处所使用的,“对等”通信指的是网络内的两个客户机之间的通信。该通信可以直接在客户机之间传递,或者可以通过其它网络设备来路由。此外,由于网络中连接的设备可被编程为在不同的时刻执行不同的功能,因此网络“对等点”并不受任何特定的硬件配置的限制。在某些情况中,硬件被编程为用作网络中的服务器或扮演另一角色,而在其它情况中,硬件可被便成为用作网络对等点。
计算机系统100包括受管网络120。在此示例中,受管网络120可以是公司或企业内的网络。或者,受管网络120可以是更大网络的域或其它部分。受管网络120由提供用于网络的访问策略的个人或实体来管理。提供这些网络管理功能的个人或实体一般被称为“网络管理员”。在联网的计算机系统中,可以有提供网络管理功能的多个人或实体,并且其中任何一个或全部一般都可以被称为网络管理员。
如图1所示,受管网络120包括诸如服务器124和客户机110B和110C等网络设备。此处,示出了将网络设备互连的广域网(WAN)122。该配置是出于图示的简单而示出的。受管网络可包含比图1所示的更多的设备。同样,示出了单个WAN 122,但是受管网络可包含不同或其它的互连体系结构。
设备可以通过接入点116连接到受管网络120。受管网络120内的客户机110B和110C中的每一个类似地可以通过接入点116或其它类似的接入点来连接。图1的示例示出客户机110B和110C已经被给予对受管网络120的访问。因此,其通过接入点的连接没有明确示出。客户机110B和110C在网络120内是彼此的对等点。
图1示出了试图通过接入点116连接到受管网络120的客户机110A。接入点116可以是无线接入点、硬连线接入点或任何其它类型的接入点,无论是现在已知的还是以后开发的。在图1的示例中,接入点116包括交换设备118和服务器112。
交换设备118表示可以被结合到接入点中的多种类型的交换设备中的任一种。交换设备118可以是诸如路由器、交换机、集线器、网关或任何其它何时的交换设备等设备。
在操作中,服务器112用作访问控制服务器。服务器112A可以是服务器,并且被方便地称作“RADIUS”服务器、“IAS”服务器或二级访问控制服务器。然而,可使用任何适当编程的服务器。服务器112被编程为根据一隔离强制实施策略来授予或拒绝网络访问。当诸如客户机110A等客户机试图接入受管网络120时,服务器112确定客户机110A是否应被给予对受管网络120的访问。
接入点116此处被示为替换地或另外地允许客户机110A连接到受管网络120外部的网络或设备,即使其被拒绝了对受管网络120的访问(即,客户机被“隔离”)。在图1所示的实施例中,交换设备118可允许客户机110A访问因特网130。通过因特网130,客户机110A可到达诸如服务器150等设备。
服务器150用作更新服务器。在所示的实施例中,服务器150耦合到数据库152。数据库152可包含用于在客户机110A上执行的软件的软件更新。储存在数据库152中的更新可以包括对可更改客户机110A的“健康状况”的反病毒软件、反间谍软件的软件或其它软件的更新。如果客户机110A因其保护性软件过时而被拒绝了对受管网络120的访问,则客户机110A仍可连接到更新服务器150来获得对其保护性软件的更新。
数据库152可包含可被下载以对客户机110A上的保护性软件操作的数据文件形式的软件更新。例如,包含病毒签名或其它威胁签名的数据文件可被下载以用于反病毒或反间谍软件程序。或者,数据库152可包含用于在客户机110A上执行的保护性软件的补丁。补丁是已更新软件的表示,通常采用压缩形式并且通常通过对软件程序的一个版本与稍后版本之间的差异进行编码来产生。
此外,数据库152可以包含用于在客户机110A上执行的操作系统或其它通用软件的补丁。尽管操作系统软件一般不被视为保护性软件,但是操作系统软件的状态可能对客户计算机110A的健康状况有很大的影响。例如,黑客可能试图发现并恶意利用操作系统软件中的弱点。作为响应,当标识出通用软件中的漏洞时,软件厂商可发布修改该软件以去除这些漏洞的补丁或其它更新。因此,客户机安装补丁,尤其是针对去除漏洞的补丁的程度可被视为客户机的健康状况的指示。在某些实施例中,访问服务器112被编程为实现一隔离强制实施策略,其中对受管网络120的访问至少部分地基于针对通用软件中的漏洞的补丁是否已被安装在客户机上来授予或拒绝。在以下示例中,对操作系统软件的补丁将被用作可被应用于客户机以改进客户机的健康状况的软件更新的一个示例。然而,更新可被提供给软件的可执行部分或被提供给由该软件使用的数据。
客户机110A可以响应于来自操作客户机110A的用户的命令来访问来自更新服务器150的软件更新。或者,客户机110A可以被编程为响应于被拒绝对受管网络120的网络而自动访问更新服务器150。以此方式,缺少足够的健康状况来允许进入受管网络120的客户机仍可被“补救”,以使其有资格访问受管网络120。
转向图2,示出了客户机110A和访问服务器112内的软件的软件框图。在所示的实施例中,该软件被实现为多个组件。每一组件可被实现为储存在计算设备可访问的计算机可读介质中的多个计算机可执行指令。组件可以用任何适当的语言来实现,并且可以在任何适当的计算设备上运行。可使用常规的编程技术来实现此处更详细描述的功能。
该软件控制网络中的设备根据一隔离强制实施策略来操作,该策略可由网络管理员来指定。在给出的示例中,客户机软件的更新状态是在确定客户机是否保证根据该策略来访问网络时所考虑的至少一个因素。如果访问服务器112确定客户机110A内的软件的更新状态不符合隔离强制实施策略,则服务器112将对客户机110A拒绝访问。客户机110A然后可从更新服务器150下载补丁以使其符合隔离强制实施策略。为获得补丁,客户机110A包括更新代理214。
更新代理214是访问更新服务器150以获得并安装用于客户机110A内的操作系统软件的补丁的软件组件。更新代理214可以例如周期性地提示客户机110A的用户以获得访问更新服务器150的许可来检查尚未安装在客户机110A中的新补丁。或者,更新代理214可用自动的方式来操作,从而周期性地获得补丁而不要求客户机110A的用户采取任何动作来启动更新过程。
在所示的实施例中,客户机110A包括隔离代理210A。隔离代理210A收集关于客户机110A的状态的信息,并将该状态信息作为健康状况陈述230提供给在访问服务器112内操作的隔离代理210B。健康状况陈述230可以包含隔离代理210B为确定客户机110A是否具有授权其根据隔离强制实施策略来访问受管网络120的健康状况所必需或所期望的任何信息。
在所示的实施例中,在健康状况陈述230中反映的状态信息定义了在客户机110A的操作系统中的软件的更新状态。在该示例性实施例中,健康状况陈述230中的信息的一部分描述了已被安装到客户机110A的操作系统的补丁。然而,隔离强制实施策略可以考虑代替操作系统软件的更新状态或除这些更新状态之外的因素。因此,健康状况陈述230可包含定义多种类型的信息的多个字段。尽管为简明起见,仅明确描述了软件的补丁状态作为健康状况陈述230中的更新信息的一个示例。
在图2所示的示例中,采用了模块化体系结构。示出了多个系统健康状况代理(SHA)216A、216B和216C。每一SHA获得一特定类型的状态信息。例如,一个SHA可以获取关于防火墙软件的状态信息,而另一SHA可获得关于反间谍软件的软件的信息。又一SHA可获得关于客户机110A内的操作系统软件的补丁状态的信息。
每一SHA获得的状态信息通过安全中心212来传递。安全中心212累积状态信息,并将其提供给隔离代理210A。以此方式,可通过加入被设计成获得来自或关于客户机110A内的任何保护性软件的状态信息的SHA来获得关于该保护性软件的状态信息。
至少一个SHA获得关于客户机110A内的操作系统软件的补丁状态信息。这一SHA可以基于更新代理214所生成的信息来确定补丁的状态。可使用确定客户机的补丁状态的任何适当的方法。在图2的示例中,使用补丁注册表222。补丁注册表222可被实现为客户机110A内的数据结构。在安装补丁之后,更新代理214可以在补丁注册表222中形成一条目。除了储存更新代理214应用的补丁的指示之外,补丁注册表222还可储存可用于跟踪客户机110A的补丁状态的其它信息,诸如创建、获得或安装补丁的时间。
关于安装在客户机110A中的补丁的信息的可用性允许SHA通过读取更新代理214在其安装补丁时储存的信息来生成补丁状态信息。因此,关于已安装补丁的信息可被包括在作为客户机110A用于请求对受管网络120的访问的交互的一部分从客户机110A发送到访问服务器112的健康状况陈述230中。
更新代理214可被构造成在安装补丁之前认证它们。在所示的示例中,更新代理214下载作为签名二进制文件220的补丁。签名是一种用证明代理发布的“私钥”来编码数字文件的常规过程。证明代理使得“公钥”可用。公钥不提供足以生成进一步的签名文件的信息。但是,公钥的持有者可以将公钥应用于签名文件来确定该签名文件是用特定私钥生成的,且自从其生成以来没有被更改。
客户机110A可以具有与一个或多个证明代理相关联的多个公钥224。这些密钥可从任何适当的源获得,诸如从证明代理下载它们。或者,来自多个证明代理的公钥通常随操作系统软件一起提供。
当更新代理214下载签名二进制文件220时,它向该文件应用公钥。如果更新代理214成功地将公钥224应用于签名二进制文件220,则验证了该文件的真实性。在验证了签名二进制文件220之后,更新代理214可安装包含在签名二进制文件220中的补丁。在某些实施例中,公钥224是从客户机110A的用户信任的源获得的。通过向用相应的私钥签名的更新应用可信公钥,更新代理214可以确定它应当“信任”该更新,因为它源自一可信源,并且随后没有被修改。
一旦更新代理214安装了补丁,它可储存该签名二进制文件以供将来使用。
服务器112包括适用于对访问请求作出响应的类似的模块化体系结构。服务器112包括从客户机110A接收健康状况陈述230的隔离代理210B。服务器112可包括一个或多个健康状态陈述验证符(SHV),其各自处理包含在陈述230中的信息的一部分。在某些实施例中,服务器112将包括对应于客户机110A中的每一SHA的SHV。在图2的示例中,示出了SHV 226A、226B和226C。在此示例中,服务器112中的一个SHV对应于客户机110A中的一个SHA。然而,客户机110A和服务器112B内的软件可以用任何适当的方式来模块化,并且并不要求每一SHV都对应于一SHA。
在此示例中,服务器112内的SHV接收来自健康状况陈述230的、定义客户机110A内的操作系统软件的补丁状态的信息。该SHV基于该补丁状态来确定客户机110A是否符合隔离强制实施策略。SHV所作出的确定被提供给隔离代理210B。隔离代理210B累积来自所有SHV的输出,并生成指示客户机110A是否有资格根据隔离强制实施策略来进行访问的响应。该判定可由隔离代理210B提供给访问服务器112内根据常规的访问控制技术来管理对受管网络120的访问的其它软件。
另外,隔离代理210B生成健康状况陈述响应232,该响应被发送到客户机110A内的隔离代理210A。如果隔离代理210B确定客户机110A没有被授权访问,则健康状况陈述响应232可指出客户机110A为何不符合隔离强制实施策略的原因。
接收到指示客户机110A被隔离的健康状况陈述响应232之后,隔离代理210A可启动补救。如果客户机110A由于其操作系统软件的补丁状态而被隔离,则隔离代理210A可触发更新代理214以从更新服务器150获得补丁,以便使客户机110A符合隔离强制实施策略。
仅当客户机在最初请求对受管网络120的访问时是过时的情况下,图2所示的软件组件可用于检测不具有最新软件的客户机(称为“过时客户机”)。图2所示的方法不能用于检测因更新在客户机连接到网络120之后变得可用而过时的客户机。此外,根据所示方法的补救要求试图访问网络的每一客户机从服务器下载信息。要求每一客户机从服务器获得更新可能会不合需要地增加网络由于下载而引起的网络通信量的增加在每一客户机通过网关或其它网络瓶颈访问更新服务器150的情况下尤其是不合需要的。图2所示的用于检测和补救过时客户机的方法可通过允许对等更新来改进。
图3示出了更新管理系统的一个替换实施例。作为迫使客户机在试图访问受管网络120时更新软件的替代或补充,对过时客户机的检测和补救可作为在已经被授予对受管网络120的访问的客户机之间建立对等通信的一部分来发生。例如,客户机110B和110C在图1中被示为已经被授予了对受管网络120的访问。此时,在客户机110B和110C被授予对受管网络120的访问,因此每一客户机实际上都符合隔离强制实施策略。然而,如果在客户机110B或110C的任一个被授予对受管网络120的访问的事件之后或者隔离强制实施策略改变,或者有另外的更新变得可用,则客户机110B或110C之一可能包含过时软件。
作为在客户机110B和110C之间建立连接的一部分,客户机可交换健康状况信息,从而允许每一客户机确定另一客户机是否较新。如果一个客户机被确定为与另一客户机相比较新,因此该较新的客户机可将其接收到的更新提供给该较过时的客户机。当网络中的一个客户机从更信服务器或其它源获得更新时,该更新将随着网络中的客户机参加对等通信而从一个客户机传播到另一客户机。以此方式,客户机可在除了最初请求对受管网络120的访问的时间之外的其它时间时常接收更新。
此外,通过在受管网络120内进行对等传递,对更新服务器150施加了较少的负担。部署更新在受管网络120和更新服务器150之间的路径不大会产生瓶颈。
可使用对等更新而不管用于客户机110B和110C之间的通信的特定协议是什么。在所描述的实施例中,客户机110B和110C通过首先经一系列握手消息建立连接来通信。不同的协议以不同的方式建立连接。例如,使用TCP协议的通信建立称为“会话”的连接。或者,使用UDP协议通信的客户机分配之后在通信中使用的端口。其它协议和软件系统以不同的方式建立连接,并且用不同的术语来描述这些连接。连接可以例如被描述为“管道”或“套接字”。不论连接或网络分层结构中建立连接之处的层的具体名称或格式是什么,健康状况陈述的交换都可被结合到建立连接的过程中。
现在转向图3,提供了可用于促进对等更新的软件体系结构的一个示例。在所示的实施例中,每一客户机包含相同的软件。在任何给定时刻,客户机可以或者提供或者接收更新。因此,两个客户机中的软件都适用于提供或接收更新,作为对等更新的一部分。
如图3所示,客户机110B包括生成健康状况陈述330B的隔离代理310B。健康状况陈述330B作为建立连接的过程的一部分被发送到客户机110C。类似地,客户机110C包括生成被发送到客户机110B内的隔离代理310B的健康状况陈述330C。
隔离代理310B和310C的每一个可生成一般如以上结合图2所描述的健康状况陈述。在所示的示例中,客户机110B包括SHA 316B,它可获得来自补丁注册表220B的关于安装在客户机110B中的补丁的数据。该信息可以通过安全中心312B提供给隔离代理310B,以便用于生成健康状况陈述330B。类似地,客户机110C包括SHA 316C,它可获得来自客户机110C中的补丁注册表222C的数据。该信息可通过安全中心312C传递给隔离引擎310C以便用于生成健康状况陈述330C。
在此实施例中,健康状况陈述330B和健康状况陈述330C包含相同的格式,其可以是与健康状况陈述230B(图2)相同的格式。然而,结合发起对等通信而作出的更新状态的确定可涉及检验作为应用结合图2所描述的隔离强制实施策略的一部分而检查的客户机110B和110C中的每一个的操作的更少元素的状态。在其中仅将每一客户机的操作系统的补丁状态认为是对等更新的一部分的实施例中,健康状况陈述330B和330C可以仅包含涉及补丁状态的数据。
在生成健康状况陈述时,隔离代理310B和310C中的每一个执行与客户机110A中的隔离代理210A(图2)的功能可比的功能。因此,每一客户机310B和310C包括至少一个SHA,被示为SHA 316B和316C,以获得关于客户机的状态信息。
另外,隔离代理310B和310C中的每一个处理它接收到的健康状况陈述,并生成响应。因此,隔离代理310B和310C中的每一个执行类似于包含在服务器112中的隔离代理210B的功能的功能。如在图2的实施例中一样,关于由隔离代理生成的响应的信息从SHV中获得。因此,客户机110B和110C分别包括SHV 326B和SHV 326C。在接收到健康状况陈述330B之后,隔离代理310C将来自健康状况陈述330B的状态信息提供给SHC 326C。如同结合图2所描述的SHV一样,SHV 326C将健康状况陈述中的状态信息与准则进行比较,从而允许SHV 326C确定发送健康状况陈述330B的客户机是否需要更新。
SHV 326C可应用与图2中的SHV所应用的算法相比的算法,以确定客户机110B是否符合隔离强制实施策略。或者,SHV 326可应用依照对等更新策略的算法,该算法确定客户机110B或客户机110C中的任一个是否应由另一个更新。在某些实施例中,对等更新策略规定较过时的客户机从较新的客户机接收更新。
例如,如果健康状况陈述330B包含标识客户机110B内的软件的最新近更新时间的字段,可应用这一策略。在接收到这一信息之后,SHV 326C可将客户机110B的最新近更新时间与储存在补丁注册表222C中的最新近更新时间进行比较。然而,SHV 326C可执行任何其它适当的处理来生成由隔离代理310C用于实现对等更新策略的状态信息。
基于由SHV 326C返回给隔离代理310C的状态信息,隔离代理310C生成响应332C。健康状况陈述响应332C将关于客户机110B的更新状态的信息传递给隔离代理310B。在所描述的实施例中,健康状况陈述响应332C向客户机110B指示客户机110B中的软件与客户机110C中的软件相比是否是较过时的。
客户机110B内的隔离代理310B执行类似于隔离代理310C的功能的功能。具体地,隔离代理310B接收描述客户机110C的更新状态的健康状况陈述330C。基于包含在健康状况陈述330C中的信息以及补丁注册表222B中的信息,SHV 336B向隔离代理310B返回关于客户机110C的更新状态的信息。隔离代理310B使用该信息来生成被发送给隔离代理310C的健康状况陈述响应332B。健康状况陈述响应332B向客户机110C指示其软件与客户机110D中的软件相比是否较过时。
如果作为交换状态信息的结果,客户机110B和110C确定一个客户机包含与另一客户机相比较过时的软件,则包含较新软件的客户机可发送所储存的包含该较过时客户机所需的更新的二进制文件。例如,如果客户机110B与客户机110C相比较新,则SHV 326B可读取补丁注册表222B以标识在客户机110C被最后一次更新之后安装在客户机110B中的补丁。SHV 326B然后可向隔离代理310B提供对应于这些补丁的签名二进制文件列表。隔离代理310B可将该补丁列表提供给更新代理310B。
更新代理314B可按类似于更新服务器150上的更新代理的方式来操作,并提供二进制文件。在这一配置中,更新代理314B为更新代理314C提供二进制文件。更新代理314C可接收该二进制文件,并以如同这些更新是从服务器150中下载的相同方式将这些更新安装到客户机110C的软件中。
即使更新文件是通过对等来发送的,但是进行认证以保持更新过程的完整性是可行的。由于客户机110B和110C中的每一个都包括公钥,诸如224B和224C,因此任一客户机可以认证签名二进制文件。更新代理314C可确认二进制文件的来源,并且可确认该二进制文件自从生成以来没有被更改。当客户机是用可信公钥来配置的时候,更新代理314C可以确定是否信任该更新。
更新代理314C可以被配置成仅当从另一客户机接收到的二进制文件为可信的时候安装来自这些文件的更新。
提供包含更新的二进制文件的过程可以在客户机110C包含与客户机110B相比较新的软件时反向执行。在这一情形中,更新代理314C用作更新代理314B的源。更新代理314B接收文件、认证它、并应用包含在该文件中的更新。
图3所示的系统可根据任何适当的对等更新策略来操作。例如,该策略可在确定一个客户机包含过时软件时需要有限形式的隔离。具体地,一个客户机可拒绝与包含过时软件的另一客户机建立连接。然而,其它策略也是可行的,并且关于客户机之一包含与另一客户机相比较过时的软件的判定不一定要导致迫使该过时客户机更新的隔离。过时客户机的更新可以是“自愿”的,使得第一客户机和第二客户机之间的连接不论较过时的客户机是否更新其软件都可以进行。作为替换策略的进一步示例,较过时的客户机缺少的更新的特性可指示更新是通过隔离来强制实施的还是自愿的。例如,某些更新可被提供这些更新的软件厂商分类为“关键的”。最新的客户机可以拒绝与缺少关键更新的过时客户机建立连接,但是也可用其它方式来建立连接。
不论使用了什么对等更新策略,较新的客户机都不一定要向较过时的客户机提供二进制文件。向一客户机指示与其正在建立连接的客户机相比较过时的健康状况陈述响应可以替换地触发该过时客户机以激活其更新代理来从更新服务器下载更新。在另一替换实施例中,该较新的客户机可在其用于更新的二进制文件可用时提供这些文件,但是在较过时的客户机没有二进制文件可用时向过时客户机发送指示该较过时的客户机应从更新服务器进行更新的健康状况陈述响应。作为又一替换,较过时的客户机可以在二进制文件可用时从较新的客户机接收并安装这些文件。但是,如果较过时的客户机没有接收到或不能认证该二进制文件,则该较过时的客户机可自己启动从更新服务器的更新下载。
现在转向图4,示出了图3所示的客户机可用于操作的示例性过程。该过程在框410处开始,在那里客户机1和客户机2启动一对等IPsec连接。尽管图4所示的过程可以与任何格式的通信一起使用,但是使用IPsec连接可能是有利的。IPsec协议要求在建立连接之前认证对等点。认证启动对等通信的客户机是受管网络120的合法部分增加了更新过程管理的完整性。此外,IPsec协议指定了其间可容易地适应状态信息的交换的认证阶段。
不论使用的具体通信协议是什么,该过程都继续到框412,在框412处,从至少一个客户机向另一客户机发送健康状况陈述信息。如图3所示,每一客户机都能够或者作为健康状况陈述信息的源,或者作为接收方。如果客户机交换健康状况陈述信息,两者均可确定哪些客户机是较新的。或者,如果健康状况陈述信息是仅从一个客户机发送到另一个的,则该健康状况陈述信息的接收方可标识哪一客户机是较新的。如果对哪一客户机是较新的判定是由一个客户机作出的,则该判定可在健康状况陈述响应中传递给另一客户机。
不论哪一客户机处理该健康状况陈述信息,都在判定框414处将两个客户机的补丁状态进行比较。如果每一客户机具有相同的补丁状态,则该处理前进到框430。在框430处,客户机可在没有更新任一客户机的进一步工作的情况下进行通信。
或者,如果在判定框414处的处理确定客户机之一与另一客户机相比较新,则处理前进到判定框416。在判定框416处,该过程取决于哪一客户机较过时而进行分支。如果客户机1并不是较过时的,则处理前进到框418。在框418处,客户机1向客户机2发送补丁信息,使得客户机2可获得与客户机1相同的更新状态。
在从客户机1接收到补丁之后,客户机2试图验证该补丁。验证可涉及确定该补丁的原始来源以及该补丁自从创建以来是否被修改。验证可涉及任何适当的过程,诸如使用由证书代理分发的公钥。如果客户机2能够验证该补丁,则处理前进到框424,在框424处,将该补丁安装到客户机2上。之后,客户机2达到了与客户机1相同的更新状态,并且该过程前进到框430,在那里可发生客户机1和客户机2之间的通信。
或者,如果在客户机2处接收的补丁不能被验证,则处理前进到框422。在图4所示的过程中,如果出于任何原因客户机2不能验证由客户机1提供的补丁,则客户机2从下载服务器下载补丁。作为框422中的处理的一部分,客户机2安装该下载的补丁。之后,处理前进到框430,在那里客户机1和客户机2进行通信。
或者,如果在判定框416处的处理确定客户机1相对于客户机2是过时的,则处理前进到框440。在框440处,客户机2向客户机1发送补丁,使得客户机1可获得与客户机2相同的更新状态。在判定框442处,客户机1试图验证由客户机2提供的补丁。如上结合判定框420所描述的,客户机1可使用任何适当的用于验证补丁的方法。如果客户机1能够验证该补丁,则该过程前进到框446,在那里将该补丁安装到客户机1上。另外,如果客户机1不能验证该补丁,则该过程从判定框442前进到框444。在框444处,客户机1从更新服务器下载补丁。
不论客户机1是从客户机2还是下载服务器接收补丁,该过程都前进到框430,在那里客户机1和客户机2进行通信。
如此描述了本发明的至少一个实施例的若干方面之后,可以理解,本领域的技术人员将容易想到各种更改、修改和改进。
例如,定义了其中将更新从一个计算机提供给另一的对等更新策略。对操作系统软件的补丁被描述为可被提供的一种类型的更新的示例。可以提供任何更新信息作为对等更新过程的一部分。对其它软件,不论是完全新的软件还是数据文件的更新,诸如包含在病毒签名中的那一些,都可从一个客户机提供给另一个。
此外,提供了替换的对等更新策略的示例。软件可被构造成根据这些策略中的任何一个来操作。或者,软件可被构造成可由网络管理员来配置,从而允许网络管理员选择这些策略中的任一个或任何组合。
此外,描述了建立连接的客户机基于状态信息的交换来确定一个客户机相对于另一客户机是过时的。可采用任何其它方法来确定一个客户机缺少可以由另一客户机提供的更新。例如,任一客户机或两者都可向诸如更新服务器等外部信息源咨询可用更新。
此外,描述了当两个客户机启动连接时应用对等更新策略。该更新策略可以在两个或更多客户机交互的任一时刻应用。此外,可强制交互,以使客户机应用对等更新策略。这一连接可以通过周期性地使得每一客户机联系网络中的其它客户机来强制进行。这一方法在作为网络中的客户机中的后台进程来执行时是合乎需要的。
这些更改、修改和改进旨在成为本公开的一部分,并且旨在落入本发明的精神和范围之内。因此,以上描述和附图仅作为示例。
以上描述的本发明的实施例可以用多种方式中的任一种来实现。例如,各实施例可使用硬件、软件或其组合来实现。当用软件实现时,软件代码可在任意适当的处理器或处理器集合上执行,不论其是在单个计算机中提供的还是分布在多个计算机之间。
并且,此处所略述的各种方法或过程可被编码为在采用各种操作系统或平台中的任一种的一个或多个处理器上执行。另外,该软件可以使用多种合适的编程语言和/或常规编程或脚本工具中的任一种来编写,并且还可被编译为机器语言代码或在框架或虚拟机上执行的中间代码。
在这一方面中,本发明可被实施为用一个或多个程序编码的计算机可读介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、紧致盘、光盘、磁带等),这些程序当在一个或多个计算机或其它处理器上执行时执行实现以上讨论的本发明的各实施例的方法。计算机可读介质或媒体可以是可转移的,使得其上储存的一个或多个程序可被加载到一个或多个不同计算机或其它处理器上以实现以上讨论的本发明的各方面。
术语“程序”或“软件”在此以一般的意义用于指代可用于对计算机或其它处理器编程以实现以上讨论的本发明的各方面的任何类型的计算机代码或计算机可执行指令集。另外,应当认识到,根据本实施例的一方面,当被执行时执行本发明的方法的一个或多个计算机程序无需驻留在单个计算机或处理器上,而是可以按模块化的方式分布在多个不同的计算机或处理器之中以实现本发明的各方面。
计算机可执行指令可以采用许多形式,诸如由一个或多个计算机或其它设备执行的程序模块等。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可按各实施例中所需地组合或分布。
本发明的各方面可以单独地、组合地、或以以上描述的实施例中未具体讨论的各种安排来使用,并且因此其应用不限于以上描述中所阐明或附图中所示的组件的细节和排列。例如,一个实施例中所描述的各方面可以用任何方式与其它实施例中描述的各方面组合。
在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰一权利要求要素本身并不意味着一个权利要求要素相对于另一权利要求要素的任何优先级、优先次序或顺序,也不意味着执行一方法的各动作的时间顺序,而是仅用作将具有特定名称的一个权利要求要素与具有相同名称(但使用了序数词)的另一要素进行区分以区分各权利要求要素的标记。
并且,此处使用的措词和术语是出于描述的目的,不应被认为是限制。此处对“包括”、“包含”、“具有”、“含有”、“涉及”及其变体的使用意在包含其后列出的项目及其等效项目以及附加项目。