具体实施方式
现在来看这些附图,特别是图1,图中示出了本发明采用的网络104的方框图。接到网络104上的有一个客户计算机102。接到网络104上的还有一个动态主机配置协议(DHCP)服务器106。虽然DHCP服务器106示为单个服务器,但实际上优选的是DHCP服务器106是由如在下面要结合图3a说明的DHCP服务器组成的网络。
现在来看图2,图中示出了客户计算机102的示范性方框图。客户计算机102包括一个处理器202,接到系统总线208上。在这个示范性实施例中,客户计算机102包括一个也接到系统总线208上的图形适配器204,用来接收供显示器206用的信息。
连接到系统总线208上的还有系统存储器210和输入输出(I/O)总线桥212。I/O总线桥212将I/O总线214与系统总线208连接,从一个总线到另一个总线转发和/或变换(transform)数据事务(transaction)。外围设备(例如,可以是硬盘驱动器、软盘驱动器、光盘只阅读存储器(CD-ROM)、数字通用光盘(DVD)驱动器之类的非易失存储器216和可以包括传统的鼠标、跟踪球之类的输入装置218)接到I/O总线214上。客户计算机102通过一个网络接口卡(NIC)220与网络104连接,如图所示。
网络104可以是因特网、企业范围的内联网、外联网,或者是任何为熟悉计算机技术的人员所知的其他网络系统。然而,在一个优选实施例中,网络104是在一个防火墙内的企业范围的局域网(LAN)。
图2所示的这个示范性实施例只是用来例示本发明的,熟悉该技术的人员可以看到无论在形式上还是在功能上许多改变都是可行的。例如,客户计算机102还可以包括声卡和扬声器、存储器控制器和各种其他任选部件。所有这样的改变都应包括在本发明的精神和范围之内。
来看图2a,图中示出了一些专用于按照本发明的一个实施例设计的服务器106的组件。如图所示,服务器106可以包括一个比较器602,用来将安全性描述符标签与描述客户计算机当前安全性级别的网络安全性描述符相比较,如在下面还要进一步说明的。此外,服务器106还可以包括一个地址提供器604,设计成在一定条件下为客户计算机提供网络地址(或IP地址)。为了通过网络104与客户计算机102及其他一些部件通信,服务器配有一个网络接口606,它可以是例如一个网络接口卡。熟悉该技术领域的人员清楚,以上这些组件可以配置在服务器内,作为可通过软件和/或经适当编程的硬件实现的类似功能的补充或替代。
现在来看图3,图中示出了按照本发明客户计算机要从DHCP服务器获得IP地址需采取的步骤的方框图。客户计算机102向包括DHCP服务器106在内的所有接到网络104上的DHCP服务器发送DHCPDISCOVER分组。DHCP服务器106检验包括客户计算机102的客户机安全性描述符散列302的DHCP DISCOVER分组。客户机安全性描述符散列302的详细情况将在下面结合图4说明。
DHCP服务器106将附着于DHCP DISCOVER分组的客户机安全性描述符散列302与一个企业安全性描述符散列304相比较。企业安全性描述符散列304是一个在被DHCP服务器106授权连接到网络104上前要求客户计算机102具备的包括安全性特征在内的所有特征的散列。这样要求的示范性安全性特征的其他情况将在下面结合图4说明。
按照一个实施例,以上比较可以用一个配置在服务器内的如图2a所示的专用比较器602执行。
如果客户机安全性描述符散列302与企业安全性描述符散列304匹配,就将一个DHCP OFFER消息发送给客户计算机102,提供从DHCP服务器106租出的因特网协议(IP)地址。客户计算机102可能从不同的DHCP服务器接收到多个DHCP OFFER分组,如果是这样的话,客户计算机102从中选择一个优选的DHCP OFFER(它提供一个具有优选租用期和具有与优选子网络的连接的IP地址)。客户计算机102将一个DHCP REQUEST分组发送给发送所选的DHCP OFFER分组的DHCP服务器106。DHCP服务器106于是用一个DHCP ACK分组,提供(租出)一个客户计算机IP地址306。
可能有时候由于客户计算机102没有诸如OS补丁、抗病毒程序(和更新)之类的最新安全性软件从而客户机安全性描述符散列302与企业安全性描述符散列304不匹配。于是参见图3b,如果DHCP服务器106确定客户机安全性描述符散列302没有与企业安全性描述符散列304匹配,DHCP服务器106就向客户计算机102发送由客户机安全性描述符散列302内不充分(inadequate)值表示的安全性更新308。例如,如果客户机安全性描述符散列302具有一个为ABCDx01hex的价值,其中值“x”表示一个所需的抗病毒程序的最新版本还没有在客户计算机102上运行,于是DHCP服务器106就将这个抗病毒程序的最新版本发送给客户计算机102(在其可以装入和运行的的情况下)。客户计算机102于是运行接收到的抗病毒程序,并更新客户计算机描述符散列302。安全性更新308内的其他项包括(但不局限于)软件补丁、公共加密密钥、用来形成描述符散列的散列算法等。
然后,经更新的客户机安全性描述符散列302与客户机的DHCPREQUEST分组(从DHCP服务器106请求IP地址)一起发送。DHCP服务器106将经更新的安全性描述符散列302与企业安全性描述符散列304相比较,如果它们匹配,就在DHCP ACK分组内向客户计算机102发送客户计算机IP地址306和许可证。
现在来看图4a,图中示出了本发明的优选实施例的流程图。启动方框402后,客户计算机启动DHCP过程(方框404)。具体地说,客户计算机广播DHCP DISCOVER分组,从DHCP服务器网络请求IP地址。一个或多个DHCP服务器接收到DHCP DISCOVER分组后,用一个对客户机安全性描述符散列的请求进行响应(方框406)(如果其尚未与DHCP DISCOVER分组一同发送的话,如上面结合图3a-b所说明的那样)。
于是,客户计算机将它的安全性描述符散列发送给DHCP服务器(方框408)。客户机安全性描述符散列被定义为一个表示客户计算机多个安全性属性的散列值。所述散列值是从一串安全性描述记录产生的数,其大大小于这些记录本身。例如,考虑以下记录:
抗病毒程序 NortonTM
上次运行抗病毒程序的时间在过去24小时内
用来加密的公钥 AB28749BC293
数据访问安全性级别 遵从HIPAA
这些记录指出:客户计算机已经安装了一个NortonTM抗病毒程序,而且在过去24小时内已经运行过这个抗病毒程序;加密消息所用的公钥是“AB28749BC293”(属于一个公/私钥对,其中私钥存储在一个最好可由DHCP服务器访问的位置);以及访问数据的安全性级别遵从健康保险流通和责任法案(HIPAA),(如在U.S.FederalRegistry/Volume 63,No.155/Wednesday,August 12,1998/ProporsedRules,pages 43269 to 43271中所说明的,它在这里列为参考全面予以引用),包括数据访问控制、病毒检验、记录清除、数据验证、加密等所需的安全性级别。
可以将以上所示的这些各指出客户计算机的安全性属性的示范性记录优选地用一些各指出每个安全性属性的一个状态的标志散列成单个客户机安全性描述符散列(标签),诸如A93F,其从客户计算机发送给DHCP服务器(如上面对方框408所说明的那样)。在一个优选实施例中,客户机安全性描述符散列标签用它的公钥加密,其与存储在DHCP服务器内的私钥成对,在所述DHCP服务器内对客户机安全性描述符散列标签解密。
注意,所示的这些记录都是示范性的,并没有列出本发明所考虑的所有类型的安全性级别/特征。也就是说,在一个优选实施例中本发明考虑到企业安全性描述符散列304和匹配的客户机安全性描述符散列302(图3a-b中所示)都基于DHCP服务器在将IP地址许可证授予客户计算机前所要求的整个协议。怎样定义和执行这整个协议的优选实施例如图4b所示。
在启动方框418后,定义对于任何要登录到网络上的客户PC的企业安全性要求(方框420)。这些对要加入网络的客户PC的安全性要求包括(但不局限于):装在客户PC上的是什么抗病毒程序,上次什么时候在客户PC上运行过抗病毒程序,在客户PC上安装的是哪些OS服务包,任何要求安装在客户PC上的软件补丁,客户PC上设置了什么策略遵从级别来限制用户访问和/或操作客户PC上的软件(包括数据库和程序)的能力,客户PC所用的加密例程和口令(或密钥),等等。为这些所定义的企业安全性要求指定一个预定义的次序(方框422),以便如在下面所说明的那样使散列结果一致。
一旦定义了企业安全性要求和排定了企业安全性要求的次序,就对每个企业定义安全性要求的完成或遵从状态定义指示符(方框424)。例如,运行一个抗病毒程序的最新版本可以将一个值置入客户PC内的硬盘驱动器(诸如图2中所示的非易失存储器216)上的预定义位置。这个值与在操作(如果适当的话,完成)所有其他企业安全性要求时产生的值一同按照预定义的次序存储在硬盘驱动器的预定义位置上,如方框424所示。
然后,定义用于所存储的(反映企业安全性要求的遵从状态的)这些值的散列例程(方框426)。还定义加密指令(方框428),包括需运行哪个加密程序、需用什么公钥等。
作为散列的例示,考虑反映以上遵从状态的四个记录(1.装有Norton抗病毒程序;2.在过去24小时内在客户PC上运行过Norton抗病毒程序;3.将公钥AB28749BC293用于加密;4.客户PC遵从HIPAA)。如果所有这些条件都满足,这四个记录的一组条件值就可以是一个诸如“E98Ahex”之类的数据串,存储在客户PC的硬盘驱动器内一个特定的预定位置。(注意,虽然为了例示清晰起见表示为一个四字节的值,但散列数据串的优选长度实际为20字节。)
然后,将在方框420-428内所描述的所有特征的指令和定义发送给客户PC(方框430),在终止方框432结束这些步骤。因此,每个客户PC现在具有客户PC在被允许从DHCP服务器获得IP地址前必须具有什么和做什么的概况(基于方框430内所示的这些项)。在本发明的一个优选实施例中,方框420-428内所描述的这些步骤由DHCP服务器执行。
再来看图4a,DHCP服务器于是将发送的客户机散列与存储在DHCP服务器内和/或可由DHCP服务器访问的企业安全性描述符散列相比较。按照一个实施例,以上比较可以用一个配置在服务器内的如图2a所示的专用比较器602执行。企业安全性描述符散列是一个客户计算机要加入由DHCP服务器服务的网络所需要的最少安全性描述符级别的一个散列。也就是说,DHCP服务器将识别安全性特性(诸如上面对客户计算机所说明的那些)的列表。这些安全特性用与上面由客户计算机用的相同的散列程序散列成一个企业安全性要求散列。当且仅当(正在请求使它能够登录到特定网络上的IP地址的)客户计算机具有一个与企业安全性描述符散列匹配的安全性描述符散列标签时(方框410),DHCP服务器才完成DHCP IP地址指配(方框414)。注意,查询方框410内的查询为“最新散列?”,因为客户机安全性描述符散列不仅必须包含在企业安全性描述符散列内描述的最新安全性特性,而且这些特性(特别是抗病毒程序)必须已经在由DHCP服务器所要求的并且在企业安全性描述符散列内所表示的近期时段内运行(安装并执行)过。
如果散列不是最新的,DHCP服务器可以直接就判定这个请求IP地址的客户计算机不应得到IP地址(见从查询方框410出来的虚线),过程结束(终止方框416)。然而,DHCP服务器在认识到没有达到所要求的安全性级别时,可以向客户计算机发送使客户机安全性描述符散列达到DHCP服务器的标准所需的软件(方框412)。例如,客户机的安全性描述符散列可以指示客户计算机仍然在使用一个没有安装最新安全性补丁的操作系统(OS)。DHCP服务器于是将这个OS补丁发送给客户计算机,使客户计算机更新它的安全性描述符散列,指出已经安装了OS补丁。客户机安全性描述符散列现在可以得到更新,并且如果它与DHCP服务器内的企业安全性描述符散列匹配,DHCP服务器就向客户计算机发送IP地址,从而完成DHCP IP地址指配过程(方框416)。
按照一个实施例,IP地址由服务器内的一个地址提供器604提供给客户计算机(图2a)。
如果如上面所说明的散列比较没有向DHCP服务器提供足以知道需要向客户计算机发送什么修复的足够信息,那么客户计算机在接收到DHCP服务器的请求后可以发送有关客户计算机的安全性、策略和软件程序的附加信息。例如,如图5所示,图形用户界面(GUI)502向客户计算机的用户示出了当前在客户计算机上的是什么策略/软件设置。如果客户计算机发送的散列没有与DHCP服务器内的企业安全性描述符散列匹配,DHCP服务器可以向客户计算机请求与业已应用什么安全性级别、软件和策略有关的附加信息,诸如图形用户界面502内所示的那些。
除了在GUI 502内所示的这些一般描述符之外,客户计算机可以发送有关客户计算机内安全性设置的附加信息。这样的信息可以包括(但不局限于):哪个公司编写了特定的软件,软件何时装入客户计算机,软件何时最后一次更新,软件存储在客户计算机的什么位置(文件路径),客户计算机使用什么类型的网络连接器,等等。接收到所有或其中一些(相关部分的)详细信息,DHCP服务器于是就可以将适当的补丁/更新等发送给客户计算机,以使客户计算机遵从网络的安全性要求。
因此,本发明提供了一种定义客户PC在被允许得到使其能加入一个由指定DHCP服务器服务的网络之前,所需要的每个操作的方法和系统。每个成功的操作产生一个值,其存储在客户PC的硬盘驱动器上一个预先确定的位置。从所有的已存储值产生散列,并且在加密后,在请求IP地址时将这个散列发送给DHCP服务器。DHCP服务器具有一个表示任何请求IP地址以加入由DHCP服务器服务的网络的客户PC应该执行的操作的所需状态的散列串。如果DHCP具有的数据串不与客户PC发送的散列匹配,DHCP服务器就不会向客户PC提供必要的IP地址。
可以理解,本发明的至少一些方面也可以以一种程序产品的形式实现。规定本发明的功能的程序可以通过各种承载信号的媒体发给一个数据存储系统或计算机系统,承载信号的媒体包括(但不局限于):非可写存储媒体(例如,CD-ROM),可写存储媒体(例如,软盘、硬盘驱动器、读/写CDROM、光媒体或USB存储部件),以及诸如包括以太网在内的计算机和电话网络之类的通信媒体。因此,可以理解,在这样的承载信号的媒体内,在载有或编有有实现本发明的方法的计算机可读指令时,表示本发明的一些可替代的实施例。此外,可以理解,本发明可以用一种具有如在这里所说明的硬件、软件或软件和硬件的组合形式的装置或与之等效的装置的系统实现。
虽然以上是结合本发明的一个优选实施例对本发明进行说明的,但熟悉该技术的人员可以理解其中无论在形式上还是在细节上都可以作出各种改变,这并不背离本发明的精神和专利保护范围。