CN1761209A - 提供网络隔离的***和方法 - Google Patents

提供网络隔离的***和方法 Download PDF

Info

Publication number
CN1761209A
CN1761209A CN 200510089633 CN200510089633A CN1761209A CN 1761209 A CN1761209 A CN 1761209A CN 200510089633 CN200510089633 CN 200510089633 CN 200510089633 A CN200510089633 A CN 200510089633A CN 1761209 A CN1761209 A CN 1761209A
Authority
CN
China
Prior art keywords
client
server
soh
qcc
qpc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200510089633
Other languages
English (en)
Inventor
A·帕勒卡
C·C-H·乔伊
E·D·莱维斯
H·贝克
L·布拉迪克
N·C·吉德瓦尼
T·M·莫利
V·P·卡玛斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1761209A publication Critical patent/CN1761209A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

提供了一种***和方法,用于保证具有无效或破坏状态的机器被限制访问网络资源。位于客户机器上的隔离协作客户端(QCC)从多个隔离策略客户端获取健康声明。QCC封装所述声明并将封装提供给隔离执行客户端(QEC)。QEC向隔离执行服务器(QES)发送封装以及网络访问请求。QES将所述封装传递给隔离协作服务器(QCS),隔离协作服务器解开封装并将各个健康声明传递给相应的隔离策略服务器(QPS)。QPS确认健康声明并通知QCS结果。如果客户端提供了有效的健康声明,则QES准许客户端访问网络。

Description

提供网络隔离的***和方法
技术领域
本发明一般涉及网络访问管理,并更为具体地涉及在允许客户访问网络资源之前检查客户的安全状态。
背景技术
在计算机网络、客户端、服务器和对等设备(peer)中通常使用信任模块(trust model)和机制(mechanism)以确保未授权的用户不能获得对网络资源的访问,所述网络资源例如是文件、打印机、其他计算机、或在网络上可访问的任何资源。这些信任模型和机制用于识别那些没有恶意的用户。然而,用户的机器在用户不知道的情况下对网络构成威胁是可能的。例如,机器可能包含病毒,或具有用户未知的安全漏洞。因此不管用户有没有恶意,用户机器的不安全状态应当从网络脱离直到安全缺陷被修补。该安全问题尤其存在于三个网络环境:动态主机配置协议(DHCP)、虚拟个人网络(VPN)、IEEE802.1X、和网际协议安全(IPsec)。
DHCP是一个网际协议(IP)分配规范,由此分配规范服务器能够将IP地址分配或“租借”给客户一段指定的时间。当DHCP客户第一次将其自身连接于网络时,其广播一个DHCP DISCOVER数据包。在局部段的DHCP服务器截获该广播,并返回一个DHCP OFFER数据包,该DHCP OFFER数据包包含IP地址以及为客户提供网络访问所必需的其他信息。由于客户可以从多个不同服务器接收多个DHCP OFFER数据包,所以客户必须从中选择,并广播一个标识了所选择的明确服务器的DHCP REQUEST数据包。所选择的服务器会返回一个DHCPACK告知客户租借完成了。如果由于某种原因使所述提供(offer)不再有效,这种原因比如是超时或其他客户正在分配该租界,那么所选择的服务器必须利用DHCPNAK信息作出反应。这将导致客户发送另外一个DHCPDISCOVER数据包,并重新开始该过程。
如果客户端已通过一些其他手段(例如,手动配置)获得了网络地址,那么客户端可以使用DHCPINFORM请求信息以获得其他本地配置参数。接收DHCPINFORM信息的服务器构造具有适于客户端的任何本地配置参数的DHCPACK信息。一旦客户端具有了租借,那么在租借期限到达另一个DHCPREQUEST信息之前必须对其更新。如果客户端在其截止日期之前结束使用租借,那么客户端将DHCP RELEASE信息发送给服务器以使租借对其他节点是可用的。如果服务器到租借结束时没有从客户端收到信息,那么服务器将租借标记为未更新,并使其对其他客户端是可用的。
在传统DHCP供应***中,DHCP服务器可以执行一个认证程序以确保请求网络访问的客户端具有已验证的凭证(credentials)。例如,在向客户端提供DHCP OFFER之前,机构局域网(LAN)上的DHCP服务器需要一个访问代码来证明用户有权访问所述LAN。认证程序防止未授权或有恶意的用户对网络资源的访问。然而,传统的认证程序不能阻止不安全,或甚至有恶意的机器访问网络。用户可以具有有效的权利来访问网络,但是用户的机器会被病毒感染,或包含安全漏洞,这些应该在允许该机器访问网络之前予以纠正。
其中处于严重不安全状态的机器对网络构成威胁的另一个环境是VPN。VPN是包含链接到诸如因特网之类的共享或公共网络的个人网络的扩展。VPN使你可以在共享或公共因特网上的两个计算机之间以模拟点到点的私有(private)链接特性的方式发送数据。配置或创建虚拟个人网络的行为称为虚拟个人连网。为了模拟点到点链接,利用一个报头(header)压缩或打包数据,该报头提供路由信息使数据穿过共享或公共传输因特网到达终点。为了模拟私有链接,正被发送的数据为了保密性而被压缩。在共享或公共网络上截获的数据包没有加密密钥是不能破译的。在其中私有数据被压缩的连接部分称为隧道。其中私有数据被加密的连接部分称为虚拟个人网络(VPN)连接。
VPN也使用认证协议。网络访问服务器(NAS)向VPN客户端向远程客户端发送询问,该询问包括一个段落(session)ID和一个任意的询问字符串。远程客户端必须返回用户名和询问字符串的加密形式,通话ID,以及散列的MD4(MD4-hashed)密码。使用密码的MD4散列的散列性这种设计提供了另一级别的安全,因为这种设计允许服务器存储散列的密码而不是明文密码。然而,传统认证程序再一次不能防止不安全、或者甚至有恶意的机器访问网络。VPN客户端可以给出有效证明,但是VPN客户端机器本身会被病毒感染,或包含了一个安全漏洞,这些应该在允许该机器访问VPN之前予以纠正。
其中用户认证不足的另外一个环境是使用IPsec。IPsec定义了确保保密性的两个功能:数据加密和数据完整性。IPsec在不加密的情况下使用认证报头(AH)以提供资源认证和完整性,并连同加密一起使用压缩安全净荷(ESP)来提供认证和完整性。利用IPsec,只有发送者和接收者知道安全密钥。如果认证数据有效,那么该接收者知道通信来自该发送者并且在传送中没有变化。
IPsec能够被想像为TCP/IP叠层(stack)下的一个层。该层由每个计算机上的安全策略和发送者与接收者之间协商的安全关联(association)控制。所述策略包括一组过滤器和相关的安全措施。如果一个数据包的IP地址,协议,和端口号与过滤器匹配,所述数据包则服从相关的安全措施。第一个这样的数据包触发发送者和接收者之间的安全关联的协商。因特网密钥交换(IKE)就是这种协商的标准协议。在IKE协商期间,两个计算机在认证和数据安全方法上达成一致,执行相互认证,并为后来的数据加密产生共享密钥。
在已建立安全关联之后,能够为每个计算机进行数据传送,将数据安全处理应用于向远程客户端传送的数据包。所述处理只能保证所传送数据的完整性,或者它也能将其加密。IP净荷的数据完整性和数据认证可以由位于IP报头和传送报头之间的认证报头提供。认证报头包括认证数据和序列号,其都用于验证发送者,确保信息在传送中未被修改过,并防止重放攻击。
然而,传统的认证程序又一次不能防止不安全,或甚至有恶意的机器访问网络。计算机可以给出有效证明,但是机器本身会被病毒感染,或者包含一个安全漏洞,这些应该在允许机器访问另一个计算机的网络资源之前予以纠正。
IEEE802.1x是基于端口的网络访问控制的标准,所述网络访问控制提供对802.11无线网络和有线以太网的经认证的网络访问。基于端口的网络访问控制利用可切换局域网(LAN)基本构造的物理特性来认证连接于LAN端口的设备并且万一认证过程失败防止对那个端口的访问。
在基于端口的网络访问控制交互过程中,LAN端口采取两个角色中的一个:认证者或请求者(supplicant)。在认证者角色中,LAN端口在其允许用户访问能够通过那个端口访问的设备之前执行认证。在请求者的角色中,LAN端口请求访问通过认证者的端口能够访问的设备。认证服务器,可以是一个独立的实体或者与认证者在一起,代表认证者检查请求者的证书。接着认证服务器响应认证者,指示请求者是否被授权访问认证者的设备。
认证者的基于端口的网络访问控制定义了通过一个物理LAN端口对LAN的两个逻辑访问点。第一逻辑访问点,未受控制的端口,允许认证者和LAN上的其他计算机之间的数据交换,而不管计算机的授权状态。第二逻辑访问点,受控端口,允许经认证的LAN用户和认证者之间的数据交换。IEEE802.1x使用标准的安全协议,例如远程认证拨入(Dial-In)用户设备(RADIUS),来提供集中式用户识别,认证,动态密钥管理,和计费。
然而,传统的认证程序再一次不能防止不安全,或甚至有恶意的机器访问网络。计算机可以给出有效证明,但是机器本身会被病毒感染,或者包含一个安全漏洞,应该在允许机器访问另一个计算机的网络资源之前予以纠正。因此,保证直到客户端是安全的并能够证明他们的安全状态才允许客户端的网络访问的***和方法是本领域的需要。
发明内容
为了上述目的,本发明提供一种用于与执行隔离策略的服务器进行交互的网络隔离客户端,所述网络隔离客户端包括至少一个通过网络协议与服务器通信的执行客户端;以及从至少一个策略客户端获得至少一个健康声明的协作客户端;其中协作客户端提供一个接口,通过所述接口至少一个策略客户端与协作客户端进行通信,并且其中协作客户端将至少一个健康声明集中到健康列表的声明中并向至少一个执行客户端提供健康列表的声明。在发明的一个实施例中,至少一个执行客户端使用健康列表的声明以获得对服务器上的网络资源的访问。为了符合本发明的特点,至少一个执行客户端是动态主机控制协议,虚拟个人网络客户端,和IPsec客户端中的一个。协作客户端通过由至少一个策略客户端提供的接口与至少一个策略客户端通信。协作客户端和执行客户端可以包含在一个计算机的一个操作***中。
本发明的另一个实施例包括一种用于执行网络隔离策略的网络隔离服务器,包括至少一个用于通过网络协议与至少一个客户端通信的执行服务器,以及一个用于从执行服务器接收一个健康声明列表的协作服务器,所述列表包括至少一个健康声明,并用于查询至少一个策略服务器以确认至少一个健康声明。如果每个健康声明都被确认,那么协作服务器指示至少一个执行服务器授权至少一个客户端访问网络资源。如果每个健康声明都没有被确认,那么协作服务器指示至少一个执行服务器执行从至少一个策略服务器获得的隔离策略。为了符合本发明的特点,协作服务器提供一个端口,通过这个端口至少一个策略服务器与协作服务器通信。协作服务器通过由至少一个策略服务器提供的接口与至少一个策略服务器通信。
在发明的另一个实施例中,提供一种用于允许策略客户端与隔离客户端通信的应用程序设计接口,所述接口包括一个用于将策略客户端绑定于隔离客户端的绑定命令(bind call),以及一个通知隔离客户端隔离策略的变化的通知命令。
在发明的另外一个实施例中,提供一种应用程序设计接口,用于允许隔离客户端与策略客户端通信,所述接口包括从策略客户端获取健康声明的获取命令。
在发明的另外一个实施例中,提供一种应用程序设计接口,用于允许策略服务器与隔离服务器通信,所述接口包括一个绑定命令(bind call),用于将策略客户端绑定于隔离客户端,以及一个响应命令,用于表示健康声明是有效的。
在发明的另外一个实施例中,提供一个应用程序设计接口用于允许隔离服务器与策略服务器通信,所述接口包括用于由策略服务器确认健康声明的确认命令。
在发明的另外一个实施例中,一种方法用于网络隔离管理,包括从远程动态主机控制协议(DHCP)服务器接收一个从请求网络资源的客户端获得的健康声明,所述健康声明反映了客户端的***状态;确认所述健康声明;如果健康声明有效,那么指示DHCP服务器授权该请求;并且如果健康声明无效,那么指示DHCP服务器不授权该请求并将客户端隔离。
从以下参照附图对实施例的详细描述中,本发明的其他特点和优势变得更为显而易见。
附图说明
附图引入其中并形成示例本发明几个方面的说明书的一部分,与描述一起用于解释发明的原理。在附图中:
图1A是总体示例本发明在其上运行的示范网络环境的示意图;
图1B是总体示例本发明存在的示范计算机***的方块图;
图2是本发明的部件的示意概图。
图3根据本发明实施例,示出了获得健康清单的方法;
图4示出了本发明实施例的软件部件;
图5根据本发明实施例,示出了客户端与服务器通信的方法;
图6示出了本发明一个实施例的元件的示范交互;
图7示出了根据本发明一个实施例的客户端/服务器结构;
图8示出了使用DHCP的本发明的一个实施例;
图9示出了使用IPsec的本发明的一个实施例;以及
图10示出了使用多个DHCP服务器供应一个客户端的本发明的一个实施例;
其中将结合一些优选实施例来描述本发明,目的不在于将其限制在那些实施例中。相反,目的在于覆盖包括在由所附权利要求定义的发明的精神和范围之内的所有的替换,修改和等同。
具体实施方式
参照附图,其中相同的附图标记表示相同的元件,示出的本发明在适合的处理环境中执行。以下描述基于本发明的实施例并且不应该被认为相对于本文中没有明确描述的可替换实施例而限制本发明。
在以下描述中,本发明是参照由一个或多个处理设备执行的操作的行为或符号表示而描述的,除非另外说明。同样地,可以理解的是这种行为或操作,有时称为被计算机可执行的,包括以结构形式表示数据的电信号的处理设备的处理单元的操作。该操作转换数据或将它们保存在处理设备的存储设备中,所述处理设备以本领域技术人员熟知的方式重新配置或调整设备的操作。数据被保存的数据结构是数据格式所定义的具有特定特性的存储器物理位置。然而,尽管在上文中描述了本发明,但是并不意味着限制本发明,本领域的技术人员会理解下文中所描述的各种行为和操作也可以由硬件实现。
现参照图1A将描述在其中使用本发明的一个网络环境的例子。示例网络包括在网络111上彼此进行通信的几个计算机110,其中网络111由云状表示。网络111可以包括许多公知的部件,例如路由器,网关,网络集线器等,并允许计算机110通过有线和/或无线媒体进行通信。当在网络111上彼此交互时,其中一个或多个计算机可以作为相对其它计算机的客户端,网络服务器,隔离服务器,或同级。因此,本发明的各个实施例可以在客户端,网络服务器,隔离服务器,同级或它们的组合上实现,尽管本文所包含的具体示例不能涉及到所有这些类型的计算机。
图1B示出了在其中可以实施本发明的适合的处理***环境100的例子。处理***环境100只是适合的处理环境的一个例子,而不意味着对本发明的使用或功能的范围的任何限制。处理环境100也不应该被解释为具有与示例处理环境100中所示例的任何一个元件或元件的组合相关的任何依存性或必要性。
本发明是利用多种其他通用或专用处理***环境或配置运行的。适合本发明使用的公知处理***,环境和配置的示例包括,但不仅限于,个人计算机,服务器计算机,手提式或便携式设备,多处理器***,基于微处理器的***,机顶盒,可编程电子消费品(consumer electronic),网络PC,微型计算机,大型机,包括任意上述***和设备的分布式处理环境,等等。
本发明可以以通常计算机可执行的指令的形式描述,例如由计算机执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例行程序,程序,对象,元件,数据结构等。本发明也可以在分布式处理环境中实现,在分布式处理环境中任务由通过通信网络连接的远程处理设备执行。在分布式处理环境中,程序模块既可以存储在包括存储器设备的本地计算机存储介质中,也可以存储在包括存储器设备的远程计算机存储介质中。
参照图1B,用于实现本发明的示例***包括一个计算机ll0形式的通用处理设备,可以作为在本发明范围内的客户端,网络服务器,隔离服务器,或同级。计算机110的部件可以包括,但不限于,一个处理单元120,***存储器130,和将多个***部件连接到处理单元120的***总线121,所述多个***部件包括***存储器130。***总线121可以是几种类型的总线结构的任意一种,包括存储器总线或存储控制器,外设总线,和使用多个总线结构中的任意一种的局部总线。为了举例而非限制,这种结构包括工业标准结构总线,微通道结构总线,增强的ISA总线,视频电子标准协会局部总线,以及外设部件互连总线,也通称为夹层(Mezzanine)总线。
计算机110通常包括多种计算机可读介质。计算机可读介质可以是任何能够由计算机110访问的可用介质,包括易失和非易失介质,移动和非移动介质。为了举例而非限制,计算机可读介质可以包括计算机存储介质和传播介质。计算机存储介质包括在用于存储信息(例如计算机可读指令,数据结构,程序模块,或其他数据)的任何方法或技术中使用的易失和非易失,移动和非移动介质。计算机存储介质包括,但不限于,RAM,ROM,EEPROM,闪存或其他存储器技术,CD-ROM,数字通用光盘(digital versatile disk)或其他光盘存储器,磁带盒,磁带,磁盘存储器或其他磁盘存储设备,或能够用于存储所需信息并能够由计算机110访问的任何其他介质。传播介质通常包含计算机可读指令,数据结构,程序模块,或在已调制的数据信号(例如载波或其他传输机制)中的其他数据,并包括任何信息传递介质。“已调制的数据信号”一词表示具有一个或多个其特征集合或以在信号中编码信息的方式变化的信号。为了举例而非限制,通信介质包括有线介质,例如有线网络或单线连接,以及无线介质,例如声音,RF,红外线,和其他无线介质。任何上述介质的组合也应该包括在计算机可读介质的范围之内。
***存储器130包括易失和非易失存储器形式的计算机存储介质,例如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出***133(BIOS),包含基本例行程序有助于(例如在启动期间)在计算机110之内的部件之间传送信息,通常存储在ROM131中。RAM132通常包含由处理单元120立即可访问或当前正在操作的数据和程序模块。为了举例而非限制,图1B示例了操作***134,应用程序135,其他程序模块136,和程序数据137。
计算机110也可以包括其他可移动/非移动,易失/非易失计算机存储介质。只为了举例,图1B示出了读取或写入非移动、非易失的磁性介质的硬盘驱动器141,读取或写入可移动、非易失的磁盘152的磁盘驱动器151,,以及读取或写入可移动、非易失的光盘156的光盘驱动器155,所述光盘例如是CD ROM或其他光学介质。可以用于示例处理环境100中的其他可移动/非移动,易失/非易失计算机存储介质包括,但不仅限于,磁带盒,闪存卡,数字通用磁盘,数字视频磁带,固态RAM,固态ROM,等等。硬盘驱动器141通常通过例如接口140的非移动存储器接口连接于***总线121,并且磁盘驱动器151和光盘驱动器155通常通过例如接口150的可移动存储器接口连接于***总线121。
图1B中示例的以及上述的驱动器和它们相关的计算机存储介质为计算机110提供计算机可读指令,数据结构,程序模块和其他数据的存储。在图1B中,例如,硬盘驱动器141示例为存储操作***144,应用程序145,其他程序模块146,和程序数据147。注意的是,这些部件也可以与操作***134,应用程序135,其他程序模块136和程序数据137相同或不同。操作***144,应用程序145,其他程序模块146和程序数据147被给定了不同数字以至少说明它们是不同的拷贝。
用户可以通过诸如键盘162和定位设备161的输入设备将命令和信息输入到计算机110中,定位设备通常指的是鼠标,轨迹球,或触摸屏。其他输入设备(未示出)可以包括麦克风,操纵杆,游戏板,圆盘式***天线,等等。这些和其他输入设备通常通过用户输入接口160连接于处理单元120,所述用户输入接口160连接于***总线121,但也可以通过其它接口和总线结构连接,诸如并行端口,游戏端口或通用串行总线。显示器191或其他类型的显示设备也通过诸如视频接口190的接口连接于***总线121。除了显示器191,计算机110也可以包括通过输出外部接口195连接的其它外部输出设备,例如扬声器197和打印机196,。
计算机110可以在使用逻辑连接一个或多个远程计算机(例如远程计算机180)的联网环境中运行。远程计算机180可以是另一个人计算机,服务器,路由器,网络PC,同级设备,或其他普通的网络节点,并通常包括与个人计算机110相关的上述多个或所有部件,尽管图1B中只示例了存储设备181。图1B中所描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其他网络。这种联网环境在办公室,企业范围计算机网络,企业内部互联网,和因特网中是常见的。
当用于LAN联网环境时,个人计算机110通过网络接口或适配器170连接于LAN171。当用于WAN联网环境时,计算机110通常包括调制解调器172或用于在例如是因特网的WAN173上建立通信的其他装置。调制解调器172可以是内部的也可以是外部的,可以通过用户输入接口160或其他适合的机制连接于***总线121。在联网环境中,所述与个人计算机110相关的程序模块,或其部分,可以存储在远程存储设备181中。为了举例并非限制,图1B将远程应用程序185示例为存储在存储设备181中。可以理解的是,所示的网络连接只是示例,并且在计算机之间建立通信连接的其他方式也可以使用。
在以下描述中,本发明是参照由一个或多个计算机执行的操作的行为或符号表示而描述的,除非另外说明。同样地,可以理解的是这种行为或操作,有时称为被计算机执行的,包括以结构形式表示数据的电信号的计算机的处理单元的处理。该处理转换数据或将它们保存在计算机的存储设备中,所述计算机以本领域技术人员熟知的方式重新配置或调整设备的操作。数据被保存的数据结构是数据格式所定义的具有特定特性的存储器物理位置。然而,尽管在上文中描述了本发明,但是并不意味着限制本发明,本领域的技术人员会理解下文中所描述的各种行为和操作也可以由硬件实现。
参照图2,本发明的一个实施例包括至少三个计算机:客户端210,策略服务器220,和隔离执行服务器(QES)230。客户端210到QES230的机器交互有两种形式,其中所述交互包括健康声明列表(SoHs)和SoH响应,其中所述交互包括健康清单(BoH)。本发明的另一个实施例进一步包括修补服务器240,用于向客户端210提供必要的软件和补丁更新以使客户端与从策略服务器220下载的策略一致。
策略服务器220包含检查策略,管理员希望客户端查看,例如操作***(OS)版本,抗病毒标记版本等。策略服务器的例子是Windows更新服务器(WUS)和抗病毒标记更新服务器。策略服务器也改变信息,客户端需要所述信息将客户端改变为正确的配置,例如补丁,抗病毒更新等。网络可以包含多个策略服务器,也就是说,可以有一个补丁的策略服务器和抗病毒服务的另一个策略服务器。客户端检查和配置策略的管理员可以改变策略服务器上的这个策略。策略服务器向客户端下载检查策略以及策略管理员配置到策略服务器中的修补变化。策略服务器允许QES230查看来自客户端210的SoH是有效的。
策略管理员设置将要应用于策略服务器220的客户的策略。该策略被下载并应用于客户端210。当客户端210发出网络资源请求时,例如DHCP,802.1X等,客户端210连同请求一起提供一个SoH列表。QES230验证这些SoH,联系策略服务器220以获得所期望的客户策略并返回网络资源的响应和SoH响应列表。网络管理员能够将隔离策略配置于QES230。如果由于隔离原因机器被拒绝网络资源,则通知客户端210的用户,并且用户可以请求关于客户如何解决该问题的更为详细的信息。用户也可以请求支持信息。
客户端210可以与一个或多个策略服务器通信,例如一个客户端可以从多个不同策略服务器获取策略和配置,所述不同策略服务器例如是补丁的WUS服务器和抗病毒标记服务器。客户端210也与一个或多个QES230通信以请求网络资源。如果客户端被隔离,则客户端在***托盘里向用户显示一个球状提示(balloon)和一个图标。用户可以请求隔离状态的详细情况。该详细情况包括哪个策略是最新的。用户可以请求查看隔离的支持信息。客户端210请求网络资源,包括DHCP发现,请求,802.1X认证,VPN认证和IPsec IKE交换。客户端210提供其SoH列表并且QES230验证SoH列表以确定设定了多少次对网络资源的访问。QES用完全访问网络资源或限制访问网络资源来响应对网络资源的请求。
QES230从客户端接收网络请求,例如DHCP请求,802.1X认证请求,IPsecSA请求等。作为该网络请求的一部分,客户端210发送一个或多个SoH。每个类型的策略有一个SoH,例如有一个SoH描述补丁的健康状态,有另一个SoH描述抗病毒的健康状态等。如果需要,QES230通过与策略服务器通信获得特定类型的策略来验证每个SoH。客户端210在两种情况下与多于一个QES230通信:当使用多个类型的QES230(例如802.1X RADIUS服务器和DCHP服务器)时和当客户端210和QES230之间的协议支持一个类型的多个QES(例如DHCP将广播DHCP发现发送到可以响应的多个DHCP QES)时。网络管理员可以为策略服务器配置QES230,其用于验证来自客户机的SoH以及当验证成功或失败时访问的数量。
修补服务器240可以是能够用于纠正机器状态的任何服务器,例如提供信息改变机器的状态以使其不再被隔离。所述信息可以是软件或配置信息。由于隔离的机器不能与非隔离机器进行通信,所以修补服务器对隔离网络是可用的。通常修补服务器也可与未隔离的机器通信。为了举例而非限制,修补服务器的范例是:(1)www.windowsupdate.com,其中美国微软公司发布视窗OS安全更新(Windows OS Security Updates),并且客户端更新服务和WUS客户端可以从该地址下载安全更新。如果视窗更新被用做一个修补服务器,则因特网需要可以直接或通过浏览器代理访问隔离的机器。(2)SMS服务器,SMS客户端从其中下载配置信息,脚本和软件。(3)域控制器,其具有多种方法以将配置用于客户端。如果其中一种方法被使用,那么域控制器就是一个修补服务器并需要由隔离的机器进行访问。
图3示例了客户端210,策略服务器220,QES230和修补服务器240之间的交互。在步骤310,客户端向QES发送一个表示客户端的安全和软件状态的SoH列表。在步骤320,如果客户端接收了一个包括BoH的SoH响应,则客户端结束并现在可以退出隔离。然而,如果SoH响应不包括BoH,则在步骤330客户端从策略服务器下载策略更新。基于这些策略,在步骤340客户端接着从修补服务器下载必要的更新。在步骤350客户端接着运行***健康检查以生成一个新的SoH列表。该进程接着返回步骤310以重试BoH拦截(acquisition)。
参照图4,客户机包括三个软件部件,隔离策略客户端(QPC)410,隔离协作客户端(QCC)420,和隔离执行客户端(QEC)430。客户机可以包含一个或多个QPS,例如QPC410a,QPC410b,和QPC410c。每个QPC与一个或多个策略服务器440进行通信并为网络提供策略和配置。由于QPC必须了解策略服务器440提供的策略和配置的类型,所以QPC由提供一个或多个策略服务器440的相同实体来提供。每个QPC向QCC420提供一个SoH。当QPC的SoH发生改变时,QPC也通知QCC420,例如当QPC与其策略服务器440通信时,策略服务器440可以改变所需的配置和检查条件。QPC410将执行该新的策略并产生一个不同的SoH。这里只有一个QCC从各个QPC收集SoH。万一QPC不可用(例如,机器启动),则QCC420缓存这些SoH。根据来自QEC的要求,QCC420向一个或多个QEC430提供SoH列表。
客户机可以包含一个或多个QEC,例如DHCP430的QEC,IPsec 430b的QEC,和802.1X 430c的QEC。每个QEC与QES450通信。通常QEC430是利用请求网络资源的协议进行通信的现有部件。隔离是通过限制利用将有关QEC430上客户端的健康状态的信息传送至QES协议而获取资源来实现的,这些例子是DHCP,IEEE802.1X的PEAP和VPN和IPsec。对于DHCP,DHCP协议具有SoH列表。当QEC430需要作出网络请求时,从QCC420获取SoH列表。
参照图5,客户端560能够通过将SoH列表发送到特定协议(protocol-specific)隔离执行服务器(QES)540来与隔离服务器(QS)510通信,其中隔离执行服务器540将列表传递给QCS530。QS510能够与一个或多个策略服务器550通信以为隔离策略服务器(QPS)520获取策略更新。接着QCS530可以确定是否应该通过将BoH列表发送给一个或多个QPS520以验证SoH而发布BoH。QPS520将SoH响应发送给QCS530,QCS530将其发送给相应的QES540,QES540接着将其发送给客户端560。如果将要发布一个BoH,则QCS530包括一个具有SoH响应的BoH。
图6示例了本发明一个实施例的部件的示例***互。在步骤601,QPC将更新的策略下载给客户端。下载的策略特定于QPC的类型,例如补丁客户端或抗病毒客户端。在步骤602,QPC通知QCC关于QPC策略的策略改变。在步骤603,QCC通知一个或多个QEC有关策略的改变。接着在步骤604,QEC从QCC请求SoH列表。在步骤605,QCC从一个或多个QPC请求所有的SoH。在步骤606,每个QPC发送其SoH。在步骤607,QCC接着将SoH列表提交给QEC。在步骤608,QEC将SoH列表传送给QS的QES,并请求一个BoH。在步骤609,QES请求验证SoH。QCS接收SoH并将每个SoH提交给相应的QPS以用于验证。在步骤611,如果QPS没有当前的策略,则从策略服务器下载它们。在步骤612,QPS接着验证SoH并将结果作为SoH响应提交给QCS。在步骤613,QCS收集SoH响应并将它们提交给QES,以使在步骤614QES可以根据它们共享的协议将SoH响应提交给相应的QEC。如果SoH被验证了,则QCS进一步包括具有SoH响应的BoH。
此外,参照图7,整个结构包括作为客户端的部件和作为服务器的部件(注意客户端和服务器部件可以在相同的机器上,例如当向同级发出请求时IPsec可以是客户端而当从同级接收请求时是服务器)。QPC获取并可以改变机器的状态,例如,他们获取管理员已经决定将机器处于“健康”或“非健康”的机器状态。QPC向QCC提供SoH。QCC存储信息以备QEC需要客户端的SoH的时候。无论什么时候QEC需要作出网络请求,其都从QCC获取SoH并将它们发送给QES的QEC。QES将SoH传递给QCS。QCS将SoH传递给正确的QPS。策略服务器/QPS检查机器的状态并通知QCS客户机是“健康”或“非健康”。QEC和QES是能够允许或不允许访问网络资源(例如VPN,DHCP,和IPsec)的多种技术。QES部件依据QCS确定客户机为“健康”或“非健康”和执行器是否应该执行的策略决定而供给或拒绝网络资源,例如,QCS可以选择从QPS记录结果但无论QPS的结果如何都返回成功。
不需要每个QPS都有一个匹配的QPC。QCS调用每个向QCS作出“绑定”调用的QPS。如果SoH不能提供给QPS,则传递一个空SoH并返回一个空SoH响应。QES除了作为提供或拒绝网络资源的网络技术之外,也能够作为独立的隔离服务器。在这个角色中,隔离服务器QES能够接收QPC的“健康状态”,验证多个SoH,并向QCC返回能够由其他QEC/QES使用的BoH而QES不必需要使用自己的QPS来验证客户机的状态。
在QPC和策略服务器之间使用的协议是依据QPC和策略服务器(例如WUS定义其自身协议)而定的。QCC和QCS之间使用的协议传送SoH和SoH响应缓冲器。所述协议是在执行器协议上传送的。QEC和QES之间使用的协议依据执行器技术而定。DHCP QEC/QES使用DHCP协议。SoH和SoH响应是通过DHCP供应选项(vendor option)传送的。PEAP QEC/QES使用PEAPv2协议。SoH和SoH响应是通过PEAP TLV传送的。SoH和SoH响应也可以通过诸如XML的SOAP传送。
参照图8,在本发明的一个实施例中QEC/QES使用DHCP通信。DHCP隔离不向机器提供默认的网关地址,但向所选择的机器(例如DHCP,DNS,补丁服务器(例如WUS))提供静态路线。也向提供给255.255.255.255的IP地址设置网络掩码(netmask),所以不存在到正常本地子网络的路线。因此当应用试图发送任何其他IP地址而不是那些允许的地址时,目的地不能达到的错误将出现在TCP/IP堆栈中。由于DHCP服务器是管理机器,所以可以包括QPS在机器内。
QPC和QPS/策略服务器850,例如SMS或WUS,能够将客户端810的策略从服务器860传送到客户端810。QPC820将以预定的间隔轮询服务器进行更新。无论什么时候机器的“健康状态”发生变化,QPC820都将其SoH发布给QCC830。QCC830将每个QPC820的SoH收集到SoH列表中。无论什么时候SoH发生改变,QCC830都通知所有的QEC。当QEC(DHCP客户端)840想请求一个IP地址或更新一个IP地址时,其通过QCC830从QPC和SoH缓存器中获取SoH列表,并利用一个或多个DHCP选项将其传递给QES(DHCP服务器)890。QES(DHCP服务器)890将SoH列表提供给QCS880,所述QCS880将每个SoH传递给正确的QPS870。每个QPS870可以联系其策略服务器850以验证客户端的SoH对那个客户端来说是正确和当前的,例如,没有补丁被安装在这个客户端。如果客户端是当前并正确的,则QPS870向QCS880返回成功。如果所有的QPS向QCS880返回成功,则QCS880向QES(DHCP服务器)890返回成功。QES(DHCP服务器)890接着将正确的DHCP选项返回到QES(DHCP服务器)840,包括一个BoH。
参照图9,在本发明的一个实施例中QEC/QES使用IPsec协议通信。IPsec隔离执行是通过拒绝从隔离的客户端设立IPsec SA而实现的。未隔离的机器将不会从隔离的机器接受IPsec SA。隔离***需要一种方法以免除一些机器和设备。隔离客户端只支持某些OS,运行其他OS的机器是一直被隔离的,或者网络管理员必须接受,直到该机器被允许与未隔离的机器通信才不再运行策略检测位。由于IPsec客户端直接从另一个客户端请求网络资源,所以同级IPsec客户端不能直接使用QPS。QCC必须使用隔离服务器QEC来获取一个BoH,所述BoH将是一个IPsec没有改变IKE的情况下可以传送到IKE的同级的X.509证明。
QPC和QPS/策略服务器(例如SMS或WUS)960;将客户端910的策略从服务器970传送到客户端910。QPC920将以固定间隔轮询策略服务器进行更新。无论什么时候机器的“健康状态”发生变化,QPC920都将其SoH发布给QCC930。QCC930将每个QPC的SoH收集到SoH列表中。无论什么时候SoH发生改变,QCC930都通知所有的QEC。当接收到这个通知时,QS QEC940获取SoH并将其发送到QS QES976。隔离服务器QES976将SoH列表提供给QCS974,所述QCS974将每个SoH传递给正确的QPS972。每个QPS可以联系其策略服务器960以验证客户端的SoH对那个客户端来说是正确和当前的,例如,没有补丁被安装在这个客户端。如果客户端是当前并正确的,则QPS972向QCS974返回成功。如果所有的QPS向QCS974返回成功,则QCS974向隔离服务器QES976返回成功。如果QCS974向其返回成功,则隔离服务器QES976向QS QEC940返回BoH。QS QEC940接着向缓存BoH的QCC930返回BoH。QCC930接着向所有执行器发出通知BoH已经发生改变。当IPsec被请求向同级设立IKE SA时,QEC(IPsec)950从BoH缓存器获取BoH并将其传递给同级980的QES(IPsec)984。QES(IPsec)984将BoH传递给QCS982,所述QCS982对BoH进行验证并将成功(如果被确认)返回到QES(IPsec)984,QES(IPsec)984接着接受远程IKE通信。
在本发明的另一个实施例中,***使用VPN执行。VPN执行是通过如果客户端应该被隔离则将IP过滤器放置在VPN服务器上来实现的,因此只有能够到达VPN服务器的服务器是DNS,DHCP和修补服务器。SoH和SoH响应的隔离交换实施为不需要新EPA方法的EAP交换,所述新EAP方法是在任何所需的用户或机器认证之后束缚于PEAPv2的。整个EAP部分将直到包括嵌入EAP认证的PEAP部分和EAP隔离部分完成才会完成。如果PEAPv2部分成功完成,则整个EAP部分成功完成。如果所有嵌入的EAP方法都成功完成,则PEAPv2部分成功完成。嵌入的EAP方法运行的顺序是由RADIUS服务器驱动的,所述RADIUS服务器是利用哪个EAP方法必须成功执行并以哪个顺序而配置的。客户端PEAP将配置为其中嵌入的EAP方法允许被RADIUS服务器请求。
在本发明的另一个实施例中,***使用IEEE802.1X执行。夏威夷的IEEE802.1X执行使用EAP中具有的PEAPv2协议,其中EAP是IEEE802.1X中所具有的。IEEE802.1X执行通过如果客户端应该被隔离则将IP过滤器放置在NAS(以太网切换或无线访问点)而实现,因此只有能够通过NAS的服务器是DNS,DHCP,和修补服务器。
参照图10描述了本发明的另一个实施例。在这个实施例中,网络包括多个DHCP服务器,用于提供用户对网络资源的访问。每个DHCP服务器1030都包括一个之前已经描述的QES。网络1020进一步包括远程认证拨入用户服务(RADIUS)服务器1040,所述服务器1040包括之前已经描述的QCS和QPS。因此,在这个实施例中隔离协作和策略管理集中位于整个网络1020的一个RADIUS服务器上。当客户端1010请求从其中一个DHCP服务器1030访问网络资源时,DHCP服务器的QES依赖RADIUS服务器1040的QCS和QPS来认证健康状态。如果RADIUS服务器1040确认了客户端所提供的健康状态,则DHCP服务器1030准许客户端访问网络。如果健康状态没有被确认,则DHCP服务器1030根据RADIUS服务器1040所提供的策略将客户端置于隔离状态。
提供网络基础设施支持的DNS服务器需要可以访问到被隔离的和非隔离机器。网络管理员可以选择使得因特网代理服务器可以访问被隔离的机器以允许那些机器访问因特网。
本发明的结构支持多个QPC,包括:(1)抗病毒QPC,给出关于AV是否在运行,AV的版本,AV正在使用的标记版本,AV是否正在实时检查等的SoH。(2)检查文件或注册登陆存在或不存在的QPC。该QPC允许检查诸如ICF的OS配置和ICS配置,是否安装了malware等。(3)检查每个过程建立的TCP/IP连接的数量的QPC。接着QPS能够隔离具有打开许多连接的应用程序的客户端。除了服务器或端对端应用程序之外,这种类型的行为未必是正确的。也可能在没有QPC的情况下支持QPS。这一点使得网络行为检查提供输入客户端是否应该被隔离。
现在描述用于访问上述软件部件提供的接口的程序设计模型。隔离执行***具有一个公共的API在QPC和QCC之间的客户端上,以及一个公用的API在QPS和QCS之间的服务器端。每个API是一个COM接口而不是远程可调用的。两个API都没有标记为安全用于初始化或安全用于脚本。客户端API是同步的并且服务器API是非同步的。也有用于QEC,QCC,QES,QCS之间的其他COMAPI。
Quarantine Coordination Client<-Quarantine Policy Client(IQuarPolicyClientBinding)
(隔离协作客户端<-隔离策略客户端(IQuarPolicyClientBinding))
该接口是由QCC提供的。由QPC使用。该接口被ACL至局域***和网络服务。这是QPC与隔离平台通信的的主登陆点。是由QPC通过全局接口表(Global Interface Table)访问的。负责与QCC服务的内部过程(inter-process)通信。如果QCC服务没有运行,则COM将配置为启动服务。在QCC服务不能进行更新的情况下,QPC轮询QCCQPC->Bind直到QCC服务运行。
Initialize(QPC_ID,Product GUID,QPCQCC CLSID,QPC_READ CLSID,QPCQCCIF)。该API在运行时间为QPC调用以将其QPCQCC接口提供给QCC。Product GUID对于所有版本的产品来说必须是相同的。如果可能的话,不同版本的产品也应该使用相同的QPC_ID/QPS_ID,并将版本添加到SoH。否则新的版本应该使用不同的QPC_ID/QPS_ID,但是使用相同的Product GUID。QPCQCC CLSID是用于COM对象的CLSID,并且必须支持实施QPCQCC接口的接口。QPC必须利用CoCreateInstance(QPCQCC Class GUID,QPCQCC IFGUID,&Object)创建QPCQCCIF。QPC_READ CLSID是QPC_READ接口的CLSID。该接口支持从QPC查询信息。
Uninitialize(QPC_ID)。该API是当QPC存在时在运行时间调用的。QPC在作出该调用之前应该确认对QCC没有未完成的调用,一旦已作出该调用则不应该再对QCC作出其它调用。在作出该调用以前,QPC不应该破坏QPCQCC和QPC_READ IF。一旦所有对QPCQCC和QPC_READ的调用都已返回,则QCC将返回该调用。当QPC使调用释放时,应该使对QPCQCC和QPC_READ的任何调用都无效。
NotifySoHChange(QPC_ID)。该API通知QCC由QPC保存的SoH状态已经变化。
QuerySystemQuarantineState(QPC_ID,*Q/NQ/Probation,*ProbationTime)。该API允许QPC查询当前的客户端隔离状态。
Quarantine Coordination Client<-Quarantine Enforcement Client(IQuarEnforcementClientBinding)
(隔离协作客户端<-隔离执行客户端(IQuarEnforcementClientBinding))
QCC提供的接口由QEC使用。该接口被ACL至局域***和网络服务。该接口是由QCC提供并由QEC使用。QEC通过全局接口表来访问该接口。它是QEC用于与QCC通信的主登录点。
Initialize(QEC_ID,QECQCC CLSID,QEC_READ CLSID,QECQCCIF)。该API在运行时间为QEC调用以将其QECQCC接口提供给QCC。QECQCCCLSID必须提供类型QECQCC的接口。QECQCCIF是从QECQCC_Class_GUID获取的接口。
Uninitialize(QEC_ID)。该API是当QEC存在并且不再使用QECQCC接口时,在运行时间调用的。
QuerySoHs(QEC_ID,ConnectionState IF)。该API是在QEC需要将SoH列表提供给其QES时由QEC调用的。QEC将不会知晓SoH缓冲器的格式,而显然地必须将SoH缓冲器的格式传递给QES。ConnectionState IF是由QEC分配的并传递到QCC并且如果必要的话接着传递到QPC。QCC和QPC可以设置和查询有关处理(transaction)的信息。一旦该API已经返回了QCC,则QPC可以不访问ConnectionState IF。该函数对于绑定于QCC的QPC都调用QuerySoHs,并接着为QName添加缓冲存储器中可提供的任何其他SoH。在返回该函数之前必须调用ConnectionState IF的TestSoHHash。如果函数返回了S_OK,则QuerySoHs返回S_FALSE以表示没有SoH发生变化,否则该函数通过调用ConnectionState IF的SetSoHHash来更新SoH Hash。QEC应该经常访问QuerySoHs以查看ConnectionState是否具有启动的隔离等。如果对于QEC来说没有隔离工作可做,则QCC将返回一个NO_QUARANTINE_INFORMATION状态。
QuerySoHResponseQuarantineState(QEC_ID,ConnectionState IF,*Q/NQ)。该接口由QEC调用以从QCS SoHResponse获得隔离/未隔离状态。
NotifyConnectionStateUp(QEC_ID,ConnectionState IF)。当其QES返回SoHResponse列表时该API由QEC调用,并且QEC处于读状态以使用所述Response。所述SoHResponse列表已经由QEC设置,并且QEC一定不知晓其缓冲器格式,而显然地必须将缓冲器的格式传递给QCC。SoHResponse可以是空的,因此QES/QEC不能传送SoHResponse。ConnectionState IF是由QEC分配的并传递给QCC,并且如果必要的话接着传递给QPC。QCC和QPC可以设置和查询有关处理的信息。
NotifyConnectionStateDown(QEC_ID,ConnectionState IF)。该API由QEC调用以通知QCC连接已经改变为下降(down)状态,并且QCC可能需要更新***隔离状态。
NotifySoHChangeFailure(QEC_ID)。如果QEC未能执行NotifySoHChange则由QEC调用该API。接着QCC应该启动一个计时器,并当计时器超时的时候调用QECQCC->NotifySoHChange。
Quarantine Policy Client<-Quarantine Coordination Client(IquarPolicyClientCallback)
(隔离策略客户端<-隔离协作客户端(IQuarPolicyClientCallback))
QPC提供一个接口由QCC使用。该接口被ACL至局域***和网络服务,并且不能远程访问。该接口由QPC提供而由QCC使用。包括调用该接口的QCC在内的任何代码必须使用其中QPC不能模仿调用者的语境。当QPC调用QCC上的绑定时,QPC传递一个Class GUID,QCC使用所述Class GUID来产生QPCQCC接口实例。
QuerySoH(QPC_ID,ConnectionStateRead IF)。该API由QCC调用以查询SoH。QPC必须调用ConnectionState->SetSoH以设置它们的SoH。如果QPC经由网络传送不同的SoH,则QPC应该查询ConnectionState IF的QName以返回正确的SoH。
ProcessSoHResponse(QPC_ID,ConnectionStateRead IF,*QPS_Result)。QPC处理来自QCC的SoH响应接口。当ProcessSoHResponse应该已被调用时如果QPC没有绑定于QCC,则SoHResponse被放弃。QName是返回SoH响应的网络的隔离名称。SoHResponse可以是空的,因此QES/QEC不能传送SoHResponse。QPS_Result是从QPS返回的HRESULT返回到其SoHResponse中的QPC。QPS_Result将利用QCC/QEC记录信息记录。
NotifySystemQuarantineStateChange(QPC_ID,Q/NQ)。通知QPC***隔离状态已经改变。
QueryStatus(QPC_ID,*State,*Percentage,*MessageID)。提供QPC的当前状态和描述进程的信息,所述进程趋向于达到其策略配置以及由此达到其SoH。状态(State)是在进程中,成功完成,和未能完成的其中一个。百分比(Percentage)是0到100%,返回-1表示QPC不支持%。所述信息一定是能够和QPC_READIF一起使用的MessageID。
Quarantine Enforcement Client<-Quarantine Coordination Client(IquarEnforcementClientCallback)
(隔离执行客户端<-隔离协作客户端(IQuarEnforcementClientCallback))
QEC提供一个接口由QCC使用。该接口是有QEC提供而由QCC使用的。该接口被ACL至局域***和网络服务,并且不能远程访问。当QEC请求绑定于QCC时,QEC传递一个Class GUID,QCC使用所述Class GUID来产生一个QECQCC接口实例。
NotifySoHChange(QEC_ID)。该API通知QEC由QCC保存的SoH状态已经变化。QEC不应该忽视该调用,但是如果QEC是被占用的则可以,但并不推荐忽略该调用。当***处于隔离时QCC将不时的该API。
QueryConnectionState(QEC_ID,*Number_IF,*ConnectionState[])。该API查询QEC其隔离接口ID的列表。ConnectionState的格式是ConnectionState IF的排列(array)。
ResetQuarantineState(QEC_ID)。当QCC启动或禁止隔离时,由QCC调用此API。QEC将重新配置任何隔离配置。
SoHStateIF
该接口由连接状态(ConnectionState)和交易状态(TransactionState)接口使用。连接状态和交易状态使用此接口的实例来包含SoH的列表以及来包含SoHResponses的列表。
QuerySoHStateRead:该API由QCC和QCS使用以获得SoH状态读取(SoHStateRead)接口。SetListOfSoHResponses(SoHResponse):由QEC使用此API以设置SoHResponses列表。QueryListOfSoHResponses(*SoHResponse):由QES使用此API以查询SoHResponses列表。SetSoHResponse(QPS_ID,SoHResponse):由QCS使用此API以设置SoHResponse。SetListOfSoHs(SoHs):由QES使用此API以设置SoH列表。应将QCC SoH复制出交易ID。如果在SoH列表中没有QCC SoH,那么应该创建和分配交易ID。在使用SoH列表之前,此API应该验证SoH格式列表。QueryListOfSoHs(SoHs):由QES使用此API以查询它们的或另一个SoH。SetSoH(QPS_ID,SoH):由QCC使用此API以设置SoH。SetQCSQPS_IDs:此API用来设置QCS SoHResponse中优选的QPS_IDs。QueryQCSQPS_IDs:此API用于从QCS SoHResponse中读取优选的QPS_IDs。SetQCCClientName:此API用于从QCC SoH中读取客户端名称。QueryQCCCIientName:此API用于从QCC SoH中读取Client Name。SetQCSClientState:此API用于设置QCS已经决定的客户端状态。QueryQCSClientState:该API用于从QCS SoHResponse中读取客户端状态。SetQCCClientState:此API用于在QCC SoH中设置当前客户端状态。QueryQCCClientState:此API用于从QCC SoH中读取客户端状态。SetQCCTransactionID:此API用于在QCC SoH中设置当前客户端状态。QueryQCCTransactionID:此API用于从QCC SoH中读取客户端状态。
SetQCSTransactionID:此API用于在QCC SoH中设置当前客户端状态。QueryQCSTransactionID:此API用于从QCC SoH中读取客户端状态。SetQCCOSVersion:此API用于在QCC SoH中设置当前客户端状态。QueryQCCOSVersion:此API用于从QCC SoH中读取客户端状态。SetQCCOSSPVersion:此API用于在QCC SoH中设置当前客户端状态。QueryQCCOSSPVersion:此API用于从QCC SoH中读取客户端状态。SetQCCProcessorArchitecture:此API用于在QCC SoH中设置当前客户端状态。QueryQCCProcessorArchitecture:此API用于从QCC SoH中读取客户端状态。SetQCSQPS_Results:此API用于在QCC SoH中设置当前客户端状态。QueryQCSQPS_Results:此API用于从QCC SoH中读取客户端状态。SetQCSQName:该API用于在QCC SoH中设置当前客户端状态。QueryQCSQName:此API用于从QCC SoH中读取客户状态。SetQCSQCSName:此API用于在QCC SoH中设置当前客户端状态。QueryQCSQCSName:此API用于从QCC SoH中读取客户端状态。SetQCSProbationTime:此API用于在QCC SoH中设置当前客户端状态。QueryQCSProbationTime:此API用于从QCC SoH中读取客户端状态。SetQCSURL:此API用于在QCC SoH中设置当前客户端状态。QueryQCSURL:此API用于从QCC SoH中读取客户端状态。
SoHStateReadIF
该接口由连接状态和交易状态接口使用。通过此接口传送到QPC和QPS以查询SoH和SoHResponses。
QuerySoHResponse(QPS_ID,SoH):由QCC和QPC使用此API以查询它们的或另一个SoHResponse。QuerySoH(QPS_ID,SoH):由QCS和QPS使用此API以查询它们的或另一个SoH。
Connection Statefor QEC/QCC(IquarClientConnection)
(QEC/QCC的连接状态(IQuarClinetConnection))
QEC使用此接口以管理每一个唯一的网络″接口″状态,所述″接口″具有隔离状态。将此接口ACL至局域***和网络服务,并且不可远程地访问该接口。将此接口提供给QEC和QCC。将连接状态读取(ConnectionStateRead)接口提供给QCC、QEC和QPC。网络″接口″可以映射到物理NIC或可以映射到连向另一个机器的逻辑连接,例如IPsec。
QueryConnectionStateRead:此API允许QCC查询连接状态读取接口。QuerySoHtate:此API允许QEC和QCC查询SoHtate接口。SetMaxSize:允许将QEC设置到SoH列表大小所支持的它的最大值。SetQName:QCC从QCS接收QName并且在连接状态IF上设置QName。SetQCSName:此API允许QCC设置在该连接状态上使用的当前QCS。SetPreferredQPS_IDs:由QCC使用以便为QCS设置优选QPS_IDs。SetURL:由QCC使用以便为QCS设置URL。SetSoHHash:存储在连接状态IF对象中的SoH的散列。SetTransactionID(ConnectionStateID,Length):由QEC使用API以便设置交易ID。QEC应该为连接状态接收ID,例如为DHCP这应该是NIC MAC地址。SetTransactionID应该将此与随机数混编并且产生八字节散列。SetQuarantineState(Quarantine_Enable,Quarantine/Probation/Non-quarantine):依赖从QCS返回的QCS->QCC SoH中的结果设置隔离/非隔离状态。SetProbationTime(ProbationTime):设置在此C连接状态IF上的察看时间。只有当QCS/QCCSoH包含察看时间和察看的隔离状态时才调用它。查看时间是很短的时间。此API保留TestProbationTime的察看终止时间。查看时间0意思是没有设置查看时间。SetQECInfo(EnumType,QECInfo):EnumType包含来自QEC的、关于QEC的信息。QECInfo取决于QEC EnumType但是包含以下:DHCP QEC(Client IP address,Client MAC address、PEAP QEC、和IPsec QEC。Serialize(outputbuffer,*size):此API将连接状态IF配置写入输出缓冲器中。不应该将输出缓冲器安置在任何非管理员可以存取、读取或写入的地方。Deserialize(*inputbuffer,size):此API将输入缓冲器读取到连接状态IF配置中。DHCP QEC能将此API能与串行器一起使用以便将连接状态信息保存和再存入寄存器中。只有管理员能够访问寄存数据。
Connection State for QPC(IQuarPolicyClientConnection)(QPC连接状态(IQuarPolicyClientConnection))
QEC使用此接口以管理每一个唯一的网络″接口″状态,所述″接口″具有隔离状态。将此接口进行ACL至局域***和网络服务,并且不可远程地访问。将此接口提供给QEC、QCC和QPC。网络“接口”可以映射到物理NIC或可以映射到连向另一个机器的逻辑连接,例如IPsec。表格列出了方法以及哪个元件使用每个方法。
QuerySoHStateRead:此API允许QPC查询SoHStateRead接口。QueryMaxSize:最大大小允许QEC指定QCC可以返回的、SoH缓冲的极限大小。QueryQName:QName指定正在SoH里查询的隔离名称。如果QEC不知道QName,那么它应该使用“”。QCC应该返回带有“”公开的QName、或者上次使用的SoH。QueryQCSName:如果知道,那么查询在此连接状态上的当前QCS。QueryPreferredQPS_IDs:由QCC使用以便为QCS查询优选QPS_IDs。QueryURL:由QCC使用以便为QCS查询URL。TestSoHHash:产生仅仅由SetSoH设置的SoH的散列,并且将其与以前存储的散列相比,并且如果散列相配那么返回S_OK否则返回S_FALSE。QueryTransactionID(*ID):此API返回由设置交易ID设置的、由QCC、QEC和QPC使用的交易ID。当他们记录时他们应该将此ID增加到日志中。QueryQECInfo(EnumType QECInfo):EnumType包含来自QEC的、关于QEC的信息。QECInfo取决于QEC EnumType但是包含以下:DHCP QEC(Client IP address,Client MACaddress、PEAP QEC、和IPsec QEC。QueryQuarantineState(*Quarantine_Enable,*Quarantine/Probation/Non-quarantine):返回隔离/察看和非隔离的隔离状态。TestProbationTime(*Passed):因为调用SetProbationTime,它返回查看时间是否已经过去。如果没有设置查看时间则Passed将返回错误。QueryProbationTime(*ProbationTime):在此连接状态IF上查询察看时间。如果没有设置查看时间则返回0。SetQPCInfo(Info,Length of info,Size):QPC可以保留一些有关连接状态IF对象的消息,例如它可以保留与此隔离接口一同使用的策略服务器名/地址。信息的最大大小是256字节。没有应该存储的编号或指针。QueryQPCInfo(*Info,*Length of info):此API允许QPC查询以前保留的、相对连接状态IF的信息。人们期望,返回缓冲器大小至少有256字节,那就是说,可以经由SetQPCInfo设置的极限大小。
隔离协作客户管理IF
QCC提供两个理接口。一个用于读取而一个用于写入。COM对象是单元素集合并且在Com全球的运行表格中提供。它以这样的方式在全球表格中提供:它通向全部的WINSTA实例中的netshell.dll。接口是:
IQuarClientInfo:将此接口ACL到每个人并且不可远距离访问。必须在这样的情形下调用此包括QCC和QCC UI的任何密码:其中QPC无法假冒调用者。EnumQPC(*QPC_IDs,*QPC_READ CLSID[]):列举与QCC and它们的QPC_READ IF寄存的QPC列表。EnumQEC(*QEC_IDs,*QEC_READ CLSID []):列举在QCC和它们的QEC_READ IF里寄存的QEC列表。QuerySystemQuarantineState(*Quarantine_Enable,*Quarantine/Probation/Non-quarantine):查询***的隔离状态。QueryQPCState(QPC_ID,*bind/unbind,*datetime,*SoH):查询QPC_ID的质量控制中心状态。返回绑定/未绑定状态。API返回上次更新SoH的时间/日期并且返回当前SoH。QueryQECQuarantineState(QEC_ID,*bind/unbind,*ConnectionState IF []):查询用于QEC_ID的QCC状态。返回绑定/未绑定状态。如果将清空、如果没有绑定QEC ID,那么返回用于QEC的连接状态IF的列表。QueryStatus(QPC_ID,LANGID,*State,*Percentage,*MessageID):供给QPC的当前状态和描述改正其SoH的进程的信息。状态是以下之一:(1)隔离了但是更新失败。用户不得不从管理员或支持网点得到帮助;(2)隔离了并且更新进行中;和(3)隔离了并且全部的更新成功。百分比是0到100%,返回-1意思是QPC不支持百分比。信息必须是可与QPC_READ IF使用的MessageID。信息也应该是关于QPC是做什么的本地文本加上关于QPS_Result的文本。
IQuarCIientConfig:将此接口ACL到本地***和网络服务,并且不能远距离访问。此接口没有API。
隔离策略客户管理IF
IQuar Policy ClientInfo:将此接口ACL到每个人并且不可远距离访问。必须在这样的情形下调用此包括QCC和QCC UI的任何密码:其中QPC无法假冒调用者。QueryFriendlyName(QPC_ID,*MessageID):此API为QPC的好听的名字返回MessageID。QueryQPSResuIt(QPC_ID,QPS_Result,*MessageID):此API为QPS_RESULT返回MessageID。QueryMessage(QPC_ID,LANGID,MessageID,*Message):此API为MessageID和指定LANGID返回单一码串。如果用于LANGID的串不存在,那么必须返回用于默认***LANGID的串。
IQuarPolicyClientConfig:此接口没有API。
隔离执行客户端管理IF
IQuar Enforcement ClientInfo:将此接口ACL到每个人并且不可远距离访问。QueryFriendlyName(QEC_ID,*MessageID):此API返回用于QEC的好听的名字的信息ID。QueryMessage(QEC_ID,LANGID,MessageID,*Message):此API返回用于信息ID和指定LANGID的单一码串。如果用于LANGID的串不存在,那么必须返回用于默认***LANGID的串。
IQuarEnforcementClientConfig:此接口没有API。
在QEC初始化期间,当QCC为它自己的QECQCC接口传送其类GUID时,QEC调用QCCQEC->Bind。正在接收绑定调用的QCC创建并且查询用于QEC的QECQCC接口。在QPC初始化期间,当QCC为它自己的QPCQCC接口传送其类GUID时,QPC调用QCCQPC->Bind。正在接收绑定调用的QCC创建并且查询用于QPC的QPCQCC接口。另外,QCC使用QECQCC->NotifySoHChange通知QEC可能的SoH变化。
当QPC改变它自己的SoH时,它通过调用QCCQPC接口上的NotifySoHChange来通知QCC。QCC调用与它一起寄存的每个QEC并且调用在每个QECQCC接口上的NotifySoHChange。每个QEC检查其用于任何启动隔离的“接口”的隔离“接口”。对于这些接口中的每个,当QCC为每个隔离“接口”传送连接状态IF时,QEC调用QuerySoH。QCC将为每个已经调用与连接状态IF绑定在一起作为参数的QPC调用QuerySoH。然后QCC将为存储在QCC高速缓冲存储器中的、正确的连接状态IF添加任何SoH,并且返回SoH列表到QEC以便可以在连接状态IF上使用。QCC必须在产生SoH列表之后、在从QuerySoH回来之前也调用QuerySoHHash以便核对SoH列表是否从上次未改变。如果QuerySoHHash返回S_OK即SoH列表是未改变的那么QuerySoH应该返回S_FALSE。如果QuerySoHHash返回S_FALSE那么SoH列表是不同的。然后QCC必须调用SetSoHHash以便更新保留的散列到SoH的新列表。QCC也必须当产生SoH列表时调用QueryMaxSize并且包含SoH列表的缓冲不可比最大大小更大。SoH列表应该截断至在最大大小范围内、完整的SoH的极限数。
然后QEC将SoH列表发送至QES对应部分,QES对应部分将他们发送到其QCS来处理。QCS将传送SoHResponse列表至QES以便返回到QEC。正接收SoHResponse列表的QEC将调用在QCCQEC接口上的ProcessSoHResponses。QCC将分解SoHResponse列表并为每个已经调用了绑定和SoHResponse列表里的SoHResponse的QPC调用ProcessSoHResponse。任何用于没有调用绑的QPC的SoHResponse将被删除。当QCC处理ProcessSoHResponses函数时,它使用传送到ProcessSoHResponses的ConnectionState IF上的许多API。由QEC创建和管理连接状态IF,并且当ProcessSoHResponses完成时,QCC和QPC都不允许使用连接状态IF。QCC可以调用SetQName以在连接状态IF上设置隔离名称。QName是由QCS在QCS->QCC SoH中提供的。
现在描述QEC网络请求API交互作用。当QEC需要作出网络请求时,它需要获得SoH来发送。它调用在QCC上的QuerySoH来做这个工作。除交互作用由QEC引进的,而非由QPC调用NotifySoHChange引进的以外,接口与用与NotifySoHChange的相同。
Quarantine Policy server<-Quarantine Coordination Server(IQuarPolicyServerBinding)
(隔离策略服务器<-隔离协作服务器(IQuarPolicyServerBinding))
将这个APIACL至局域***和网络服务。QPS提供接口以便由QCS使用。QCS调用CoCreatelnstance以获得此接口:Initialize:(QPS_ID);Uninitialize:(QPS_ID);ValidateSoH(QPS_ID,TransactionStateReadIF):由QCS调用此API以请求QPS验证它的SoH。QPS必须调用交易状态读取>查询SoH以获得它的SoH。如果SoH缓冲是空的则在交易状态读取->OnValidateSoHComplete中的SoHResponse缓冲一定是空的。当完成验证时,QPS必须立即返回此调用并且调用交易状态读取->OnValidateSoHComplete。
Quarantine Coordination server<-Quarantine Enforcement Server(IQuarEnforcementServerBinding)(隔离策略服务器<-隔离执行服务器(IQuarEnforcementServerBinding))
将这个接口ACL至局域***和网络服务。由QES经由全球的接口表格对其进行访问。ValidateSoH(QES_ID,TransactionState IF,ResponseTime):由QES调用此API以要求QCS验证SoH列表。QCS必须调用交易状态读取—>QuerySoH以获得它的SoH。QES不会知道SoH缓冲格式并且必须透明地传送到QCS。此调用必须立即返回并且QCS将随隔离状态结果一起调用交易状态->OnValidateSoHComplete。响应时间是QCS必须调用OnValidateSoHsComplete以便结果对QES有用的时间。
QCS/QES的交易状态(IQuarServerTransaction)
将这个接口ACL至局域***和网络服务。将此接口提供于QES和QCS。TransactionStateRead(See Section Error!Reference source not found.)接口提供于QCS、QES和QPS。QueryQCSStateRead(*QCSStateReadIF):此API返回接口至QCSStateRead。QuerySoHState:此API允许QES和QCS查询SoHtate接口。SetQESInterfaces(QEs_ID,QESTransactionStateIF,QES_READ IF):此API设置由此交易状态情况使用的QES交易状态和QES_READ接口。QES必须在使用之后正确地废弃这些接口。SetQCSInterface(QCSTransactionStateIF):此API设置由此交易状态实例使用的QCS交易状态接口。QES必须在使用之后正确地废弃这些接口。OnValidateSoHsComplete:当此接口完成处理ValidateSoH后,QCS将调用此接口。此函数调用QESTransactionState->OnValidateSoHsComplete。SetQuarantineConfig:由QES使用此API以便指定将要用于此ValidateSoH的QCS配置。此API允许QES指定QCS,所述QCS客户做出此请求已经受隔离决定影响的连接性。QCS应该将此信息增加至日志信息。MessageID是由于以下原因而免检的ID,例如:保留、范围、域名匹配、BOOTP。当记录免检时,记录MessageID。SetMaxSize(MaxSize):由QES使用以便指定QCS返回的SoHResponse的最大尺寸。SetClientName(Clientmachine/domain name):由QCS使用以便设置来自被用来记录的QCC SoH的客户机器/域名。SetClientState(Quarantine/Probation/Non-quarantine):由QES或QCS使用以便设置来自QCC SoH的客户隔离状态。如果QES不能设置时只有QCS可以设置这个状态。SetConnectionState(Up/Down):由QES使用以便设置当前连接状态。Clear:如果再使用对象时,可用于重新设定其状态。
QPS的交易状态(IQuarPolicyServerTransactoin)
将此接口ACL至局域***和网络服务。将此接口提供给QES、QCS和QPS。OnValidateSoHComplete(SoHResponse):当此接口完成处理ValidateSoH时,QPS将调用此接口。此函数调用QCSTransactionState->OnValidateSoHsComplete。此函数调用TransactionState->SetSoHResponse以及在SoHResponse中传送的。API在调用SetSoHResponse之前必须验证SoHResponse。QuerySoHStateRead(SoHStateRead):此API用于获取SoHStateRead接口。QueryClientState(*Quarantine/Probation/Non-quarantine):可以由QPS使用以便得到客户隔离状态。QueryQES(*QES_ID,*QES_READCLSID):此API为SetQESInterfaces调用的QES返回QES_ID和QES_READ IF。QueryConnectionState(Up/Down):由QCS使用以便查询当前连接状态。QueryQuarantineConfig:由QCS 使用此API以便获得将用于此连接状态IF的质量检验标准配置。配置参数包括:隔离状态开/关/察看:如果QPS告知客户应该被隔离并且没有使用免检,QCS应该作出决定。试用期:如果察看是客户状态选择,那么使用试用期。Quarantine Logging enabled:应该记录隔离决定但是用户连接性不受影响。Connectivity Exempt Non_Quartine aware clients:免检不设置SoH的任何客户。故障URL:由于故障将返回到客户的URL。正规表达式免检:用于机器/域名以外。免检理由:此交易将从QES被免检的理由。QueryTransactionID(*ID):由QCS、QES和QPS使用此API。当他们记录时他们应该将此ID增加到日志上。QueryMaxSize(*MaxSize):此API允许QCS获得QES可以接受的、SoHResponses列表的极限大小。QueryClientName(*Client machine/domain name):可以由QPS使用以便得到客户机器/域名,例如用于日志。。
Quarantine Coordination server<-TransactionState(IquarPolicyServerCallback)
(隔离协作服务器<-交易状态(IQuarPolicyServerCallback))
QCS提供接口以便由交易状态使用。将此接口ACL至局域***和网络服务。通过QCS->SetQCSInterface API,它给出了交易状态实例。OnValidateSoHCompIete(交易状态IF,Q/NQ,QPS_Result):由在OnValidateSoHCompIete上的交易状态调用此API。QPS_Result是描述QPS为什么返回Q/NQ结果的HRESULT。如果QPS返回INVALID_SOH的HRESULT,QCS应该调用带有INVALID_SOH的HRESULT的TransactionState->OnValidateSoHsComplete。
Quarantine Enforcement server<-TransactionState(IquarEnforcementServerCallback)(隔离执行服务器<-交易状态(IQuarEnforcementServerCallback))
OnValidateSoHsComplete(Transaction IF,Q/NQ):QES不会知道SoHResponse缓冲格式并且必须透明地传送至QEC。如果QPS使OnValidateSoHCompIete与HRESULT INVALID_SOH失败了,或者QCS在SoH列表的验证中失败,那么它应该传送INVALID_SOH的HRESULT。
隔离协作服务器管理IF(QCS)
QCS提供两个管理接口,一个用于读取而且一个用于写入。只有管理员能够访问写入接口。读取接口可以由所有用户访问。COM对象是单元素集合并且在Com全球的运行表格中提供。它以这样的方式在全球表格中提供:它通向全部的WINSTA实例中的netshell.dll。所述接口是:IQuarServerlnfo:将此接口ACL到每个人。EnumQPS(*QPS_IDs,*QPS_READ CLSID[]):列举向QCS登记的QPS的列表。IQuarServerConfig:将此接口ACL至局域***和网络服务,并且不可远程地访问。此接口没有API。
隔离策略服务器管理IF(QPS)
将此接口ACL至局域***和网络服务,并且不可远程地访问。IQuarPolicyServerInfo:QueryFriendlyName(QPS_ID,*MessageID):此API返回用于QPS的好听的名字的MessageID。QueryQPSResult(QPS_ID,QPS_Result,*MessageID):此API返回用于QPS_RESULT的***ID。QueryMessage(QPS_ID,LANGID,MessageID,*Message):此API返回用于MessageID和指定LANGID的单一码串。如果用于LANGID的串不存在,那么必须返回用于默认***LANGID的串。IQuarPoIicyServerConfig:此接口没有API。
隔离执行服务器管理IF(QES)
将此接口进行ACL至局域***和网络服务,并且不可远程地访问。IQuarEnforcementServerInfo:QueryFriendlyName(QES_ID,*MessageID):此API返回用于QES的好听的名字的MessageID。QueryMessage(QES_ID,LANGID,MessageID,*Message):此API返回用于MessageID和指定LANGID的单一码串。如果用于LANGID的串不存在,那么必须返回用于默认***LANGID的串。QueryInfo(EnumType,QESInfo):EnumType包含来自QES关于客户的信息。QESInfo取决于QES但是包含以下:DHCP QES(ProposedClient IP address,Lease time,Client MACaddress)、PEAP QES(RADIUS Attributes)。IQuarEnforcementServerConfig:SetInfo(EnumType,QESInfo):由QES使用此API以便设置QES信息。
现在将鉴于上述描述的API来更详细地描述本发明的元件。
健康声明是来自每个QPC的信息的集合。来自每个QPC的信息描述由每个客户端核对的客户端的状态。将SoH传送至QCS元件,所述QCS元件解析SoH而且传送每个信息单元至正确的QPS以便验证。QCC负责高速缓存来自每个QPC的信息。每当QPC的策略信息改变时,每个QPC公开其信息至QCC。QCC生产单个的、包含一或多个SoH(总有QCC SoH)的数据包。QCC将此单个数据包供给QEC。如果需要QEC/QES协议,QEC/QES负责破碎/碎片合并。QCS生产单个的、包含一或多个SoH响应(总有QCS SoH Response)的数据包。QCS将此单个数据包供给QES。如果需要QES/QEC协议,QES/QEC负责破碎/碎片合并。QPC和QPS包括通过增加新的信息到SoH的最后,来控制在SoH中的版本。如果不可能改变SoH版本,那么QPC和QPS可以分配新的QPC_ID/QPS_ID但是绑定调用(随后描述)必须使用一样的Product GUID。
QPC做一组核对而且公开其SoH至QCC。SoH包含QPS可以使用以便检查客户端处于正确的状态的信息。QPS可以返回SoH响应缓冲至客户端。此用于通知QPC如果发生故障该做什么,例如,轮询服务器以便得到更新的检查。它还可以用于提供信息至客户端,诸如应当用于得到其信息来源的服务器的名字。QPC与运行在局域***或网络服务范围试运转的服务一致地运行。提供给QCC、必须仅仅为本地计算机ACL的COM接口计算局域***或网络服务。为了启动QCC以将用户界面(UI)显示给展出关于为什么机器被隔离以及将机器解除隔离的进程的信息的用户,QPC供给状况API(随后描述)以便启动QCC来查询每个QPC其状态和在更新客户端以便与其策略服务器相称的QPC进程。在联网的安全模式中的机器不应该使得QCC运行。如果运行绕过隔离调用那么QEC。如果运行绕过隔离调用那么QPC。
QCC是用于客户端的多路调制器/控制器。QCC集中来自每个QPC的SoH信息并且高速缓存SoH。当QPC提供新的SoH时,更新高速缓存。当QPC COM对象从机器上卸载时,删除在高速缓存中的登录。因为在QCCQPC->Bind调用(随后描述)中传送QPC COM GUID,因而被检测到。当隔离状态改变时QCC提供通告机制,以及在QPS和QPC之间的通信信道给QPC。QCC保持***隔离状态并且收集来自每个QPC的状态信息并且将两者提供给QCC UI。QCC供给SoH列表至QEC,并且传送SoH响应至QPC。
QCC支持用于QPC的API以便将上述服务提供给QPC。将APIACL至仅用于本地计算机计算局域***或网络服务。QCC UI可以使用另一个API来查询隔离状况及其他状态信息以便显示给用户。QCC UI在用户范围内部运行因此用于QCC UI的QCC API必须ACL至每个人。将QCC实现为服务;全部的QEC取决于此服务。QCC当做网络服务运行。在初始化期间QPC企图调用绑定,并且如果此调用因为QCC没有运行而失败,那么它们周期性地企图调用绑定。每当其SoH改变时,QPC就调用NotifySoHChange。QCC将调用在每个QEC上的NotifySoHChange。只要***被隔离,QCC每过周期的间隔就调用在每个QEC上的NotifySoHChange。QCC和QCS使用SoH/SoHResponse格式以便交换它们自己的信息,例如,为QCS通知QCC它是否已经隔离了。QCC将SoH装入缓冲器以便传送到QEC。QCC和QCS将总是首先将其自己的SoH放在缓冲器中。QCC和QCS将包括来自全部的QPC和QPS的SoH。如果QCC具有来自QCS的、请求QPS_ID的列表,那么它必须在***QCC SoH之后将SoH以在QCS SoH中指定的顺序***SoH。
如果QEC最大大小太小,那么QCC应该***完整的SoH直到到达最大大小。QEC将尽可能多地传送信息至QES/QCS/QPS。如果遗漏的SoH影响隔离策略,那么将隔离机器,但是QCS SoHResponse为QPS返回QPS_IDs列表,所述QPS运行在QES/QCS/QPS服务器上因此QCC可以提供在重操作中最少的信息。如果QCS返回察看的隔离时间以及察看时间,那么QCC保留在连接状态IF上的察看时间。然后QCC启动察看时间计时器。当察看时间终止时,QCC触发NotifySoHChange至全部的QEC。当QEC调用QuerySoH时,QCC检查连接状态IF(ConnectionState IF)察看时间(Probation Time),并且如果察看时间期满那么返回SoH是否已经改变的SoH列表。如果***状态是察看,那么察看时间是第一个连接状态察看时间满期之前的时间。如果QEC调用QCCQEC->NotifySoHChangeFailure,那么QCC必须运行计时器并且当计时器终止时调用QECQCC->NotifySoHChange。如果QPC调用QuerySystemQuarantineState,那么QCC一定已经合并了独立的连接状态隔离状态以便产生单个***状态。利用以下规则按以下顺序合并独立状态:在隔离状态->***状态中的任何连接状态是隔离;在隔离状态中的未连接状态和在察看状态->***状态中的任何连接状态是察看;在非隔离状态->***状态中的全部的连接状态是非隔离。由于QCC是服务,它将在svchost中运行并且当它停止时卸载全部的其dlls。QCC显示器调用QEC,如果在短期(X毫秒)内API不返回,那么QCC事件记录此内容并从QPC使用的列表中消除QPC并且忽视任何来自该QPC调用。QCC监督程序调用QPC,如果在短期(X毫秒)内API不返回,那么QCC事件记录此内容并从QEC使用的列表中消除QEC。服务可重新起动。QEC和QPC将能由于QCC重新启动而恢复。
如果QCC或任何的QEC被破坏或崩溃,当SoH无效时***一定自动地进入隔离。配置QCCQPC和QCCQEC COM对象以便自动启动QCC服务。配置QCC以便开始机器引导。QCC从QPC高速缓存SoH(它不高速缓存QCCSoH)。高速缓冲存储器是在服务和***再启动过程中是持久稳固的。QCC具有登记参数,其配置是否启动隔离客户端。当设置登记参数时,QCC自动地启动和禁止隔离。当禁止隔离时,QuerySoH返回无SoH(包括无QCC SoH)。QCCQPC->NotifySoHChange无行为地返回。QCCQEC->ProcessSoHResponses处理QCS SoHResponse而不是其它的SoHResponses。QCC_READ->QueryQuarantineState返回在QCS SoHResponse中的隔离状态。QCS发送信息至在QCS SoHResponse中的QCC。QCS高速缓存该信息。此信息的索引在QCS SoHResponse中的QCS GUID中。
用户需要注意到,机器是否被隔离。以双层显示此信息:***范围一机器是否处于隔离以及哪个QPC失败;和每一个连接—对于DHCP、802.1X和VPN这是每一个连接,对于IPsec这是连接至对等机器的每一个连接。对于***范围的信息,当***在隔离中时,在***托盘中显示图标。显示带有信息文本的球状提示并且用户点击该球状提示以便得到状况对话。隔离状况对话调用带有QCC_ID(0,0,311和0)的QPC_ID的QCC_READ->QueryStatus。QCC使用这个返回关于未曾调用绑定的QPC的状态信息。特别地,如果***被隔离而且SoH Response是提供给不能传达QPC的QCC,用于QCC_ID的QCC_READ->QueryStatus注释隔离客户端丢失。状态会话显示每QPC的、显示各个QPC的状态的一些全部的正文和信息。也显示显示来自QCS SoH中的URL的网页的按钮,以及显示网络连接文件夹的按钮。在限制性的IE浏览器中显示网页,仅仅允许基本的HTML并且不允许Active X、Java或者其它的脚本、不允许链接、不允许DHTML。隔离状态信息的显示(例如处于隔离的机器)发生在正在运行探测器的全部的交互的窗口站上。这允许在所有正在运行Fast User切换的用户和所有记录在终端服务器上的用户上显示隔离状态信息。命令行使用netsh显示***范围内的隔离情报。还可以通过netsh允许和禁止隔离***。QCC可以追踪文件,启用/禁止使用netsh的追踪。无论隔离状态什么时候变化,所述QCC记录跟随追踪文件:Quarantine/Probation/Non-Quarantion状态,QPS_Bound,Transaction ID,QESGUID,QNAME GUID QECInformation:NIC MAC地址,IP地址,不能从QPC得到诊断信息的QPC,不能得到处理的SoH Response QPS_ID,和SoH的内容和SoH响应。
QEC元件提供隔离执行。存在许多可能的QEC:DHCP、VPN、PEAP和IPsec。QEC使用BoH或者SoH中的一个来证明客户端的状态。DHCP QEC将SoH传达至DHCP服务器。IPsec QEC只使用BoHs。当接口到达或者离开(go)时,例如PnP事件,QEC调用QCCQEC->NotifyInterfaceStateChange。如果接口产生Mediasense连接/断开,那么QEC产生QCCQEC->NotifyInterfaceStateChange。如果在接口上的连通性变化例如IP地址、802.1X键、等等,那么QEC生成QCCQEC->NotifyInterfaceStateChange。QEC和QES不知道SoH列表和SoH Response缓冲列表的格式。当QCC调用QECQCC->NotifySoHChange时,QEC立即返回调用。如果QEC发现由于任何原因它不能处理NotifySoHChange,那么它可以或者保留告示以随后处理或者它可以调用QCCQEC->NotifySoHChangeFailure并且忽视NotifySoHChange。在这种情况下,QCC将开始计时器。当那计时器期满时,QCC将调用在全部的QEC上的QECQCC->NotifySoHChange。
DHCP QEC获得包含来自QCC的SoH的列表的缓冲。如果需要的话DHCP客户端将缓冲分段,并且将各个片断放置到将在DHCP Discover、DHCP Request和DHCP Inform中发送的DHCP选项中。不将SoH增加到DHCP Decline和DHCP release。所使用的DHCP选项是MicrosoftVendor选项。DHCP QEC和QES不知道SoH列表的格式、单独的SoH的格式,也不知道包含SoHResponse的缓冲。
PEAP QEC可以使用SoH或者BoH。如果使用SoHs/SoHResponses,那么在PEAP通道内部必须交换它们以便提供服务器的认证和SoH/SoHResponse交换的保护。当PEAP QEC和VPN一起使用并且不将客户端配置为使用策略服务器(例如WUS)时,那么QPS将中断(fail)客户端。如果QPC需要关于它的策略服务器的结构信息,那么QPS将在它的SoHResponse中提供此信息至QPC,例如WUS QPS将把WUS服务器名放置在SoHResponse中。
IPsec QEC使用BoH。这意味着IPsec执行隔离***需要采用隔离器。隔离器验证SoH并且如果SoH是经过验证的那么发出BoH。
在本发明一个实施例中,隔离器是DHCP服务器。DHCP服务器机器包含DHCP QES、所述QCS和所述QPS。DHCP QES处理隔离DHCP选项,收集SoH信息并且生成SoH的列表并且利用QCSQES->ValidateSoH将该列表传递至QCS。QCS将各个SoH拆分并且利用QPCQCS->ValidateSoH将各个SoH传递至正确的QPS。通过QPS调用QCSQPS->OnValidateSoHComplete,QCS收集来自各个QPS的结果,并且通过调用TransactionState->OnValidateSoHComplete来将结果通知给DHCP QES。DHCP QES获得非隔离DHCP选项,如果客户端将被置入隔离,那么它获得隔离选项并且使用隔离选项代替相等的非隔离选项,删除指定为不发送给隔离客户端的任何选项。
QPS验证它们的SoH,必要时访问它们的策略服务器。各个QPS返回隔离或者非隔离至QCS。QPS还可以返回一些QCS将发送给QCC的信息(SoHResponse),所述QCC将其传给QPC。QEC/QCC发送在DHCP Discover和DHCP Request中的SoH并且QCS/QES处理这些并且发送在DHCP Offer和DHCP Ack中的SoH Responses。这允许隔离为BOOTP和DHCP客户端而工作。DHCP服务器发现范围和隔离属性并在调用ValidateSoH以前调用TransactionState->SetQuarantineConfig和TransactionState->SetConnectivityExempt,所以ConnectivityExempt标志等等是已知的。DHCP服务器调用ValidateSoH以便以下进入的DHCP分组:DHCP Discover、DHCPRequest和DHCP Inform。这允许质量控制标准超越(override)全部的DHCP隔离处理。该DHCP服务器不调用用于DHCP Decline和DHCP Release的ValidateSoH。除DHCP服务器具有用于客户端的有效的IP地址之外,该DHCP服务器不调用用于DHCP Discover和DHCP请求的QCS。除客户端具有有效的租借期限(lease)之外,它不为DHCP Inform调用QCS。这样做以致QCS不处理或者为DHCP不能为其提供IP地址的客户端高速缓冲信息。
如果DHCP服务器隔离和RQC/RQS隔离一起使用,那么应当申请用于DHCP服务器的以下结构将:如果VPN服务器正在利用DHCP服务器以便获得用于VPN客户端的IP地址。那么应该使用分离的DHCP范围并且该范围将禁止DHCP隔离。如果VPN服务器没有利用DHCP服务器来获得用于VPN客户端的IP地址,但是将DHCP范围配置成为DHCP服务器以返回用于DHCP通知信息的DHCP选项,那么应该使用分离的DHCP范围并且该范围将禁止DHCP隔离。如果需要的话DHCP将SoH Responses列表分段,并且将各个片断放置到将在DHCP Offer和DHCPACK中发送的DHCP选项中。没有将SoHResponses添加到DHCP NAK。DHCP服务器跟踪以下数字当做性能计数器并且还在DHCP MMC中显示它们:隔离里激活租借的数目;在非隔离里激活租借的数目;在察看里激活租借的数目;丢失隔离请求的数目。如果通过QCS的QCSQES->ValidateSoH失败,那么如果隔离结构被启用或者察看,DHCP服务器将丢失该请求。如果发生这种情况,QES将每5分钟生成事件记录加上在最后地5分钟里丢失请求数目。如果OnValidateSoHComplete带有故障地完成了,那么DHCP服务器将隔离客户端。由于QCS必须首先将QCSSoHResponses放置在SoHResponses列表中,因此这种情况将不会发生。定义QCS SoHResponse的极限大小小于用于SoHResponses列表的DHCP MaxSize。DHCP服务器具有注册配置参数以便指定QCS用于各个ValidateSoH的断开时间。响应断开时间(Response Timeout):QCS等待QPS从调用ValidateSoH的QCS调用OnValidateSoHComplete的毫秒数。在QCSQES->ValidateSoH中将此传送到QCS。
QCS用于验证SoH列表。SoH列表从QES提供给QCS(包括隔离服务器QES)。QCS分解SoH列表并且传送每个SoH至正确的QPS。如果QPS对SoH无效的,那么所述SoH被遗漏并忽视。QCS从每个QPS收集结果并且产生单个结果。这个结果用于决定是否隔离。QCS具有总体隔离/非隔离配置以便允许在不发生隔离的情况下配置和测试***。通过布尔等式:(QPS_ID1‖QPS_ID2)&&QPS_ID3,QCS将QPS结果合并到单个结果中。这意味着为了不隔离的结果,QPS_ID1或者QPS_ID2必须返回非隔离并且QPS_ID3必须返回非隔离。可以将QCS配置为察看和察看周期而不是隔离。当QPS结果是隔离时,可以将QCS配置为返回给隔离。在所有情况下,QCS应该将结果记录到审查记录文件中。QCS还产生关于每个SoH验证请求和结果的日志信息并且将日志结果存储到审查记录文件里。网络管理员修改此等式以启动或禁止检查QPS是容易的。这允许管理员当带有特别的检查的问题发生时容易地禁止检查,例如如果AV策略服务器存在问题那么禁止AV QPS。
由DHCP QES和由隔离服务器QES使用QCS。即使当QEC不提供SoH时,仍然由QES调用QCS。当客户端不支持隔离时将处理该情形。这允许QCS决定用于这些客户端的策略。QCS可以选择隔离或不隔离这些客户端不支持隔离的客户端。决定是否这样做必须是由网络管理员配置。QCS高速缓存来自QPS的结果。当SoH列表与SoH Responses列表相同时,隔离/非隔离/察看用于一个短时期,默认值是30秒。可以利用登记变量改变默认时间。如果在SoH列表高速缓存上没有发现匹配,那么调用QCSQPS->Bind全部QPS与他们的SoH一起被调用(或者如果没有用于QPS-ID的SoH那么就没有SoH)。然后QCS运行计时器用于Response Timeout毫秒。如果所调用的任何QPS未曾调用OnValidateSoHComplete,那么QCS将调用OnValidateSoHComplete连同至此的结果和至此SoHResponses列表;否则当上次期待的QPS调用QCSQPS->OnValidateSoHComplete时,QCS调用QESTransactionState->OnValidateSoHsComplete。QCS必须在任何其它处理之前验证SoH列表。如果验证失败,那么QCS连同故障一起调用TransactionState->OnValidateSoHComplete。由于不同的客户端可以具有取决于QPC的不同SoH,因此高速缓冲存储器为相同的QPS存储多个SoH。如果ValidateSoH请求没有SoH列表,那么QCS发送SoHResponses的空表至客户端。QCS将响应信息装入缓冲以便传送到QES。为QCS配置隔离名,即GUID。在QCS SoH Response中将隔离名传送到QCC。QCS在第一次执行中还生成QCS名GUID并将其包括在每个QCS SoH Response中。QCC使用该GUID以便标识不同的QCS并跟踪诸如优选每个QCS的QPS_ID列表之类的信息。
如果将客户端连接到二个或更多具有不同隔离名称的网络上,那么在每个网络上的QPS可以具有不同的检查设置因此它们的QPC可以具有不同的SoH。将隔离名称传送至QPC并且如果QPC支持用于不同的策略服务器的多个SoH,所述QPC可以发行相对于具体的隔离名称的SoH。如果QPC仅仅处理单个策略服务器,那么它发行没有隔离名称的SoH。QCS将调用在QPS上的ValidateSoH,所述QPS已经调用绑定,但是如果在SoH列表中没有SoH,那么至QPS的ValidateSoH调用包含空的SoH缓冲。这允许即使没有安装QPC也可以调用QPS,并且还支持QPS检查客户端而无需客户端机软件例如网络IDS。在这种情况下,QPS不能供应SoH Response并且依赖外部信息并且交易状态IF信息来决定客户端的隔离状态。
QCS利用来自QCC SoH的机器名来查找在AD中的机器对象。如果机器对象存在隔离连接性免检,那么在机器对象上检查变量,并且如果机器是隔离连接性免检,那么应该由QCS返回非隔离。将隔离免检变量提供在在ActiveDirectory中的计算机计算UI上。只有在全部的其它QCS处理之后QCS才处理免检,这种QCS处理例如是调用QPSQCS->ValidateSoH和QCSQPS->OnValidateSoHComplete。然后QCS申请任何免检。这意味着QPS可以为它们的QPC产生SoHResponses。在安装时,QPS通过QCSQPS->Register向QCS登记。寄存器经由登记参数。QCS创建QPS COM对象作为proc对象之外的对象。QCS监控注册表并且如果有增加的话创建新的COM对象,并且如果QPS是从注册表上删掉的,那么QCS停用QPS。
用于DHCP服务器的QES UI包含用于QCS的UI。通过SetQuarantineConfig设置的配置参数有:隔离状态开/关/察看、察看周期、隔离启用日志、客户端知道的免检非隔离知道的、故障URL、和基于域名之外的正规表达式。隔离状态开(Quarantine State On)启动QCS验证SoH。隔离状态关(Quarantine State off)禁止QCS验证SoH。QCS将返回用于适应的状态的未知数(Unknow)和未受连接性状态影响的连接性(Connectivity)。察看启动QCS以便验证SoH,并且返回正确的控诉状态但是在客户端变为非控诉时,将把连接性状态设置为察看一段时间。察看周期是当客户端变成非适应的时,非适应的客户端不受连接性影响的时间。
隔离策略客户端和隔离策略服务器(连同策略服务器)负责实现一套关于客户端的检查。隔离策略服务器需要根据客户端检查的结果作出决定并且向隔离协作服务器汇报客户端检查是好的还是不好的。检查执行取决于隔离策略客户端。本发明一个实施例中,嵌入在Windows内部的唯一QPC将是WUS。WUS将仅仅检查相对WUS服务器的补钉水平,所述WUS服务器仅仅配置MicrosoftOS补钉。如果QPS可以不必要求客户端元件,例如网络IDS,就检查客户端,那么***有可能包括QPS而不必包括QPC。在这种情况下,QPS无需来自QPC的SoH,就可以连同隔离/非隔离来响应QCS。当使用这样的QPS时,QCS调用QPS但是不提供SoH。QPS能因此决定客户端机器是″不健康的″。
最好是,QPS在QPC应该联系的策略服务器的SoHResponse地址/名称中返回至QPC。期望QPC处理其自己与其策略服务器的通信并且当需要时重操作通信。最好是,在SoHResponse中QPS向QPC发送提示以便当QPS中断SoH时检查其策略与其策略服务器。QPC负责保护它们使用的、以获得策略配置信息的策略服务器的身份。QPC可以支持多个用于产生SoH信息的策略服务器。每一QName GUID应该跟踪不同的SoH信息。对家用机器来说,对其进行配置以便从WindowsUpdate得到更新是正确的。当ProcessSoHResponse被调用时,QPC将不会期望能够与其策略服务器的连接。当已经调用ProcessSoHResponse时,可能还未配置IP地址。QPC应该使用IP地址将此通告API。QPS将不会改变交易状态中的任何信息,该交易状态仅仅用于查询。它将不会在此COM对象上增加任何参考计算。QPS应该立即返回任何调用至ValidateSoH并且内部地将这些请求排队。如果QPS需要传达至其策略服务器,那么它将不会将此通信与其它ValidateSoH请求串行化。如果QPS无法在ValidateSoH里排队,那么它应该立即中断该调用,期望QPS能够排队并且并行地处理许多这些请求。应该将QPS实现为多线程的设备。
在注册其接口,等等时,QPC和QPS需要遵循用于COM安装的正常规则。在安装时,QPC和QPS不需要通知QCC或者QCS。当在QCCQPC或者QCSQPS接口上的BindAPI被调用时,QCC和QCS将开始使用新的QPC或者QPS。QPS安装必须按如下设置注册和未注册注册表:当安装和卸载QCS时,它需要QPS通过注册表通知QCS。当QCS开启并且当修改注册表时,QCS使用CoCreateInstance来创建每个QPSQCS接口的proc实例的外观。Register(QPS_ID,Product GUID,QPSQCS CLSID,QPS_READ CLSID):该API实现为注册表。当安装QPS时,QPS必须更新此注册表。Unregister(QPS_ID):将此API实现为注册表。在卸载QPC或者QPS时,应将删除在该***上全部的碎屑,包括在该登记处全部的COM登记信息以及所有文件。
WUS客户端从WUS服务器获得该客户端应该已经安装的补钉列表。WUS客户端检查是否安装了所述补钉,并且如果没有,那么从WUS服务器或者从Windowsupdate.com下载所述补钉并且安装所述补钉。WUS使用与机器记录相关的、签名的cookie来识别客户端,所述机器记录依次包含上次同步时间的信息。WUS在机器记录中保持该IP地址但是不用此进行查找。QCS和QCC给QPC和QPS通信信道,QPC可以发送信息至QPS以识别该客户端并且供给状态信息至QPS。如果需要的话,QPS可以提供情报至QPC。对于WUS,如果客户端中断QPS检查,那么QPS提供WUS客户端需要使用的WUS服务器名。这允许为WUS客户端提供WUS服务器。
现在参考图7描述详细部件的交互作用。总体交互作用如下工作:每当SoH改变时,QPC使用QCCQPC->NotifySoHChange来通知QCC。当SoH列表改变时,QCC使用QECQCC->NotifySoHChange通知全部的QEC。当QEC需要SoH列表时,它使用QCCQEC->QuerySoH从QCC请求列表。QEC使用依赖于QEC/QES的机制发送SoH列表至QES,例如DHCP使用DHCP选项。对于任何已经调用QCCQPC->Bind的QPC,QCC调用QPCQCC->QuerySoH,然后QCC从SoH高速缓冲存储器中增加任何附加的SoH。然后QCC返回该列表至QEC。QES使用QCSQES->ValidateSoH将SoH列表传送至QCS。QCS分解SoH列表并且使用QPSQCS->ValidateSoH来传送每个SoH至正确的QPS。每个QPS验证客户端的SoH并且SoH是否正确返回至QCS。QPS可以选择性地请求QCS在SoHResponse缓冲中传送一些信息至QPC。QCS从不同的QPS收集全部的结果并且产生单个隔离/非隔离结果和SoHResponse列表。QCS将其自己的SoHResponse增加到该列表中并将该结果和列表传送至QES。QES检查隔离/非隔离结果并且以强制指定的方式执行隔离,例如DHCP不提供缺省网关。QES传送SoHResponses列表至QEC。QEC使用QCCQEC->ProcessSoHResponses传送信息客户端列表至QCC。QCC分解SoHResponses列表并且使用QPCQCC->ProcessSoHResponse来传送正确的SoHResponse至正确的QPC。QCC处理其自己的SoHResponse。QCC的SoHResponse包含关于服务器是否隔离该客户端的信息。QCC使用隔离/察看/非隔离信息来向用户显示信息。在Maui,经由QEC/QES的、在QCC和QCS之间的通信是无保护的。可以由QPC/QPS来保护QPC/QPS通信,但是这超过隔离平台的范围之外。
因为DHCP客户端从网络服务器(DHCP服务器)请求网络资源,因而DHCP服务器可以包括QPS。QPC和QPS/策略服务器,例如SMS或者WUS,将用于客户端的策略从从服务器传送到该客户端。QPC将以管理上定义的间隔轮询服务器看看是否存在过更新。每当机器的SoH改变时,QPC将通知QCC。每当SoH已经改变时,QCC通知全部的QEC。当QEC(DHCP客户端)想要请求IP地址或者更新IP地址时,它从QPC和SoH高速缓冲存储器获得SoH并且使用一或多个DHCP选项将其传给DHCP服务器。QES(DHCP服务器)将SoH列表供给QCS,所述QCS传送每个SoH至正确的QPS。每个QPS可以联络其策略服务器以便验证,用于客户端的SoH是用于该客户端的正确的和当前的,例如在该客户端上没有准备安装补钉。如果客户端是当前和正确的,QPS返回成功至QCS。如果全部的QPS都返回成功至QCS,那么QCS返回成功至DHCP服务器。然后该DHCP服务器返回正确的DHCP选项至DHCP客户端。DHCP服务器在接收Discover、Request或者Inform信息而不管信息是否包含SoH DHCP选项时,将总是调用QCS。这允许QCS决定如何处理不支持隔离的客户端。当DHCP QEC与非隔离启动DHCP服务器通信时,它必须工作。这将允许客户端在非隔离启动网络上工作。
当PEAP QEC不与RADIUS服务器启动的隔离通信时,它必须工作。这将允许客户端在非隔离启动网络上工作。当PEAP QEC需要提供SoH至RADIUS QES时,它调用QuerySoH。当这发生取决于PEAP在其上运行的媒介:VPN时,当建立VPN信道时,调用PEAP。VPN不重新运行PEAP。802.1X:当802.1X需要认证或者再认证至NAS时调用PEAP。在通信期间可以发生多次这种情况。因为IPsec客户端直接地从另一个客户端请求网络资源,所以对等IPsec客户端无法直接地使用QPS。QCC必须使用隔离服务器以获得BoH。BoH可以采取几种形式:用于与所请求的服务器建立IPSec SA的Kerberos证明(Ticket);与根据组内成员(称作“清理组”)应用于机器的组策略对象(GPO)有关、或者与现有非启动机器说明有关的Kerberos证明;用于建立IPSecSA的X.509或者XRML证书。管理SA的建立的IPSec策略与BoH是可探测的,并且如果其状态改变诸如它不再与策略适应,那么必须是客户端不可探测的。
如果客户端处于察看状态,那么X.509或者XRML证书仅仅对于查看期有效。如果客户端处于察看状态,并且清理组用于管理kerberos证明的分配,那么必须支持两个必要条件。Kerberos证明的有效期不能长于该试用期。如果当察看期满时客户端没有提供更新的SoH,那么QES必须采取适当的步骤以便将该客户端从清理组中删除。QPC和QPS/策略服务器,例如SMS或者WUS,将用于客户端的策略从服务器传达该客户端。QPC将不时轮询服务器看看是否存在过更新。每当机器的“健康状态”改变时,QPC将向QCC公开SoH。QCC将从每个QPC收集SoH到SoH列表中。每当SoH已经改变时,QCC通知全部的QEC。接收该通告时QS客户端QEC获得SoH列表并且将其发送至隔离器QES。隔离器QES将SoH列表提供给QCS,所述QCS传送每个SoH至正确的QPS。每个QPS可以联络其策略服务器以便验证,用于客户端的SoH是用于该客户端的正确的和当前的,例如在该客户端上没有准备安装补钉。如果客户端是当前和正确的,QPS返回成功至QCS。如果全部的QPS都返回成功至QCS,那么QCS返回成功至隔离器QES。如果证书用于建立IPsec SAs,那么如果QCS返回成功至隔离器QES,那么隔离器QES就返回BoH至QS QEC。然后QS QEC返回BoH至将其高速缓存的QCC。如果使用了清理组,QES将增加该客户端至清理组,并且返回QUAR_SUCCESS至该客户端。
如果这是该特定客户端的第一次验证,该客户端现在可以继续并从TGS请求TGT。如果该客户端已经具有TGT并且该客户端中断策略检查,那么QES必须从清理组中消除该客户端并且通知TGS此客户端不再与策略适应。特别推荐的是,在策略适应的正确性以外,TGT无效,由此除那周期以外没有从TGT发出SGT是有效的。然后QCC向全部的QEC发送通知,BoH已经改变。当请求IPsec将IKE SA设置为对等时,它从BoH高速缓冲存储器获得BoH并且如果证书用于表现BoH,那么将其传给对等IPsec。如果使用清理组,那么客户端将使用TGT以便按惯例地请求SGT于是使用证明建立SA。对等IPsec传送BoH/证明至QCS,所述QCS验证它并且返回成功至对等IPsec,然后所述对等IPsec接受远程IKE通信。
为了举例说明和描述起见,已经介绍了本发明各实施例的上述描述。以上描述既不是详尽的,更不是要将本发明限制到所公开的确切的实施例。按照上述教导,可能作出许多修改或者变化。在此选择并且描述的论述的实施例是为了提供本发明原理及其实际应用的最佳例证,从而使一个本领域普通技术人员能够在各实施例中利用本发明以及作为适于特殊的使用进行各种修改。当按照所赋予的清楚、合法、和公正的范围来解释所附权利要求时,全部的上述的修改和变化是在由所附权利要求决定的本发明范围之内的。

Claims (20)

1、一种网络隔离客户端,用于与执行隔离策略的服务器进行交互,包括:
至少一个通过网络协议与服务器通信的执行客户端;以及
从至少一个策略客户端获得至少一个健康声明的协作客户端,其中协作客户端提供一个接口,通过所述接口所述至少一个策略客户端与协作客户端进行通信,并且所述协作客户端将所述至少一个健康声明汇编成健康声明列表,并向所述至少一个执行客户端提供所述健康声明列表。
2、如权利要求1所述的网络隔离客户端,其特征在于,所述至少一个执行客户端使用健康声明列表以获得从服务器访问网络资源的权利。
3、如权利要求1所述的网络隔离客户端,其特征在于,所述至少一个执行客户端是动态主机配置协议客户端、虚拟个人网络客户端和IPsec客户端中的一个。
4、如权利要求1所述的网络隔离客户端,其特征在于,所述协作客户端通过由所述至少一个策略客户端提供的接口与所述至少一个策略客户端进行通信。
5、如权利要求1所述的网络隔离客户端,其特征在于,所述协作客户端和执行客户端都包括在计算机的操作***中。
6、如权利要求1所述的网络隔离客户端,其特征在于,所述至少一个策略客户端从至少一个策略服务器获得网络策略,并产生表示主机是遵守网络策略的的健康声明。
7、一种计算机可读介质,包括用于执行权利要求1的方法的计算机可读指令。
8、一种客户端遵守网络隔离策略的方法,包括:
从一个或多个策略服务器获取策略;
执行***诊断以确定客户端是否遵守所获取的策略;
如果客户端未能遵守所获取的策略,则纠正客户端的安全状态;
产生健康声明列表,每个健康声明表示客户端是遵从相应的策略的;以及
将健康声明列表传送到隔离服务器以用于确认。
9、如权利要求8所述的方法,其特征在于,纠正客户端的安全状态包括从修补服务器下载软件补丁。
10、如权利要求8所述的方法,其特征在于,每个健康声明是由策略客户端生成的,用来确定客户端是否遵守规定的策略。
11、如权利要求8所述的方法,其特征在于,进一步包括如果健康声明列表被确认,则从隔离服务器接收健康清单,其中所述健康清单向隔离服务器和网络上的其它计算机表示客户端遵守网络的安全策略。
12、如权利要求8所述的方法,其特征在于,所述健康声明列表由协议执行客户端传送到隔离服务器,其中协议执行客户端所执行的协议是动态主机配置协议、虚拟个人网络协议、IPsec协议和IEEE 802.1X协议中的一种。
13、一种计算机可读介质,包括用于执行权利要求8的方法的计算机可读指令。
14、一种网络隔离服务器,用于执行网络隔离策略,包括:
用于通过网络协议与至少一个客户端通信的至少一个执行服务器;以及
用于从执行服务器接收包括至少一个健康声明的健康声明列表,并用于查询至少一个策略服务器以验证所述至少一个健康声明的协作服务器。
15、如权利要求14所述的网络隔离服务器,其特征在于,如果每个健康声明都被验证,那么协作服务器指示所述至少一个执行服务器准许所述至少一个客户端访问网络资源。
16、如权利要求14所述的网络隔离服务器,其特征在于,如果不是每个健康声明都被确认,那么协作服务器指示所述至少一个执行服务器执行从所述至少一个策略服务器获得的隔离策略。
17、如权利要求14所述的网络隔离服务器,其特征在于,协作服务器提供一个端口,通过这个端口所述至少一个策略服务器与协作服务器通信。
18、如权利要求14所述的网络隔离服务器,其特征在于,协作服务器通过由所述至少一个策略服务器提供的接口与至少一个策略服务器通信。
19、一种用于网络隔离管理的方法,包括:
从远程动态主机控制协议(DHCP)服务器接收从请求网络资源的客户端获得的健康清单,所述健康清单反映了客户端的***状态;
确认所述健康清单;
如果健康声明有效,则指示DHCP服务器准许该请求;
如果健康声明无效,那么指示DHCP服务器不准许该请求并将客户端隔离。
20、一种计算机可读介质,包括用于执行权利要求19的方法的计算机可读指令。
CN 200510089633 2004-04-27 2005-04-27 提供网络隔离的***和方法 Pending CN1761209A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56552504P 2004-04-27 2004-04-27
US60/565,525 2004-04-27
US10/973,970 2004-10-27

Publications (1)

Publication Number Publication Date
CN1761209A true CN1761209A (zh) 2006-04-19

Family

ID=36707161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510089633 Pending CN1761209A (zh) 2004-04-27 2005-04-27 提供网络隔离的***和方法

Country Status (1)

Country Link
CN (1) CN1761209A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102217228A (zh) * 2007-09-26 2011-10-12 Nicira网络公司 管理和保护网络的网络操作***
CN101616137B (zh) * 2008-06-26 2013-02-27 中兴通讯股份有限公司 主机安全接入方法、隔离方法及安全接入和隔离的***
CN104182619A (zh) * 2014-08-05 2014-12-03 上海市精神卫生中心 基于智能终端实现情绪特征参数采集和处理的***及方法
CN110061989A (zh) * 2019-04-19 2019-07-26 航天云网数据研究院(江苏)有限公司 一种数据采集网关全隔离方法
CN112565158A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 数据访问方法、装置、***、电子设备及计算机可读介质
CN113536246A (zh) * 2021-07-13 2021-10-22 杭州安恒信息技术股份有限公司 一种文件流动的溯源画像方法及相关装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11683214B2 (en) 2007-09-26 2023-06-20 Nicira, Inc. Network operating system for managing and securing networks
CN102217228B (zh) * 2007-09-26 2014-07-16 Nicira股份有限公司 管理和保护网络的网络操作***
US9083609B2 (en) 2007-09-26 2015-07-14 Nicira, Inc. Network operating system for managing and securing networks
US9876672B2 (en) 2007-09-26 2018-01-23 Nicira, Inc. Network operating system for managing and securing networks
CN104113433B (zh) * 2007-09-26 2018-04-10 Nicira股份有限公司 管理和保护网络的网络操作***
CN102217228A (zh) * 2007-09-26 2011-10-12 Nicira网络公司 管理和保护网络的网络操作***
US10749736B2 (en) 2007-09-26 2020-08-18 Nicira, Inc. Network operating system for managing and securing networks
CN101616137B (zh) * 2008-06-26 2013-02-27 中兴通讯股份有限公司 主机安全接入方法、隔离方法及安全接入和隔离的***
CN104182619A (zh) * 2014-08-05 2014-12-03 上海市精神卫生中心 基于智能终端实现情绪特征参数采集和处理的***及方法
CN104182619B (zh) * 2014-08-05 2017-06-06 上海市精神卫生中心 基于智能终端实现情绪特征参数采集和处理的***及方法
CN110061989A (zh) * 2019-04-19 2019-07-26 航天云网数据研究院(江苏)有限公司 一种数据采集网关全隔离方法
CN110061989B (zh) * 2019-04-19 2021-07-13 航天云网数据研究院(江苏)有限公司 一种数据采集网关全隔离方法
CN112565158B (zh) * 2019-09-25 2022-10-04 阿里巴巴集团控股有限公司 数据访问方法、装置、***、电子设备及计算机可读介质
CN112565158A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 数据访问方法、装置、***、电子设备及计算机可读介质
US11863520B2 (en) 2019-09-25 2024-01-02 Alibaba Group Holding Limited Data access methods and systems
CN113536246A (zh) * 2021-07-13 2021-10-22 杭州安恒信息技术股份有限公司 一种文件流动的溯源画像方法及相关装置
CN113536246B (zh) * 2021-07-13 2024-03-22 杭州安恒信息技术股份有限公司 一种文件流动的溯源画像方法及相关装置

Similar Documents

Publication Publication Date Title
US10757094B2 (en) Trusted container
US9294478B2 (en) Hardware-based device authentication
JP5038531B2 (ja) 信頼できる機器に限定した認証
US7669235B2 (en) Secure domain join for computing devices
JP5792732B2 (ja) モジュラーデバイス認証フレームワーク
JP6917474B2 (ja) ネットワーク接続のためのクレデンシャル情報の処理方法、装置、及びアプリケーションapp
US7941831B2 (en) Dynamic update of authentication information
US8370905B2 (en) Domain access system
KR20060047551A (ko) 네트워크 검역을 제공하기 위한 방법 및 시스템
US20150222629A1 (en) Hardware-based device authentication
CN1152333C (zh) 基于认证、计费、授权协议的门户认证实现方法
US20050132229A1 (en) Virtual private network based on root-trust module computing platforms
US20070174901A1 (en) System and method for automatic wireless network password update
US8136144B2 (en) Apparatus and method for controlling communication through firewall, and computer program product
CN1787435A (zh) 提供访问联合资源的令牌
CN101064628A (zh) 家庭网络设备安全管理***及方法
JP2014099030A (ja) デバイス装置、制御方法、およびそのプログラム。
CN1761209A (zh) 提供网络隔离的***和方法
CN1878092A (zh) 域管理***、建立本地域的方法和获取本地域许可的方法
US9275204B1 (en) Enhanced network access-control credentials
US7558845B2 (en) Modifying a DHCP configuration for one system according to a request from another system
JP5687455B2 (ja) サーバ、端末、プログラムおよびサービス提供方法
JP2011076504A (ja) 仮想マシン、仮想マシンのプログラム、アプリケーションサービス提供システム及びアプリケーションサービス提供方法
WO2018157782A1 (zh) 用于网络连接的凭证信息的处理方法、装置和应用app
JP2004355396A (ja) 情報機器用セキュリティ確保方法およびシステム、ならびに情報機器用セキュリティ確保プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication