管理对网络的访问的方法和系统
发明领域
本发明涉及管理对网络的访问。
相关领域描述
计算机网络通常包括两个或更多计算机、用于网络中的计算机之间的通信的介质(例如网络缆线或者在无线网络情形中的空中),以及在该网络中的计算机之间路由数据的一个或多个网络设备。这种网络设备可包括例如路由器、交换机和/或集线器。网络设备可从网络中的一个计算机或网络设备接收数据并将该数据转发到该网络中的一个或多个其它计算机或网络设备。
通常期望控制对网络的访问以防止未授权的用户获得对网络资源(例如打印机、计算机、存储设备等)的访问。这可通过例如将网络设备配置成避免向其它计算机和/或网络设备转发未授权用户接收到的数据以及避免向未授权的用户发送数据来实现。
然而,常规认证可能不足以防止恶意用户访问网络。虽然用户可被认证和授权来使用网络,但是用户的计算机可能带有病毒或安全漏洞,使恶意用户能够利用该计算机并使其执行某些非期望的动作。
发明概述
申请人已意识到常规认证技术不够充分,因为它们并不验证被许可访问网络的计算机的健康。因此,申请人开发了一种技术,由此可进行认证计算机身份的第一通信会话并且还可进行认证计算机健康的第二通信会话。当计算机健康被认证时,该计算机可收到指示该计算机的健康已获得认证的健康证书。该健康证书可在随后的网络访问会话中重复使用,使得不需要每次计算机试图获得网络访问时都对计算机的健康进行认证。
因此,一个实施方式涉及一种管理计算机网络访问的方法,包括以下动作:进行第一通信会话以确定计算机身份;以及进行第二通信会话以确定该计算机的健 康状况。另一实施方式涉及一种编码有指令的计算机可读介质,当在计算机系统上执行这些指令时会执行上述方法。
又一实施方式涉及一种用于管理对网络的访问的计算机系统,包括:用于发送和接收数据的网络接口;以及耦合于该网络接口的至少一个控制器,它通过该网络接口进行第一通信会话以确定计算机的身份;并通过该网络接口进行第二通信会话以确定该计算机的健康状况。
另一实施方式涉及一种通过计算机控制对网络访问的方法,包括以下动作:在网络访问设备处接收关于网络访问设备处的计算机的身份;在该网络访问设备处接收来自该计算机的指示该计算机的安全状态的健康证书;以及基于身份信息和健康证书来确定是否准予该计算机的网络访问。再一实施方式涉及编码有指令的至少一个计算机可读介质,当执行这些指令时执行上述方法。
另一实施方式涉及一种获取网络访问的方法,包括以下步骤:从计算机向网络访问设备发送网络访问请求,其中该网络访问请求包括身份信息;响应于该网络访问请求而在该计算机处接收受限的网络访问,其中该受限网络访问允许访问健康证书服务器;在该计算机与该健康证书服务器之间进行通信会话以确定计算机的安全状态;以及当确定该计算机处于所要求的安全状态时,从该健康证书服务器接收健康证书。再一实施方式涉及编码有指令的至少一个计算机可读介质,当执行这些指令时执行上述方法。
附图简要描述
图1是开放式系统互连参考模型的示图;
图2是其中可使用上层流控制协议的系统的示图;
图3是用于在准予网络访问之前认证实体的系统的示图;
图4是根据一实施方式的用于认证实体并对实体执行健康检验的系统的示例的示图;
图5A是可用于请求健康证书的消息的示例的示图;
图5B是可用于回复健康证书请求的消息的示例的示图;
详细描述
发明人已经意识到常规认证不足以保护网络远离恶意用户,因为授权用户的机器可能带有用户未察觉的病毒或安全漏洞。因此在本发明的一个实施方式中,除 了要求认证之外,可要求用户证明其计算机处于指定的安全状态中。确定计算机是否处于指定的安全状态中的进程在下文中称为健康检验或执行健康检验。健康检验可通过任何合适方式实现而且本发明并不在这方面受限。
在本发明的一个实施方式中,认证和健康检验可分开进行。在这方面中,虽然每次计算机连接到网络时要对用户或计算机进行认证,但是不需要每次都执行健康检验。相反,一旦执行了健康检验,可向用户或计算机发放表示该计算机处于所要求的安全状态的健康证书。例如,可发放具有被选择成提供遵从安全策略进行的期望级别的有限有效期的健康证书。与每次执行健康检验不同,用户或计算机可出示先前发放的健康证书而无需进行健康检验。一旦健康证书的有效期已届满,计算机可进行另一健康检验并获得新的健康证书。
网络上的通信需要执行各种不同的功能。对于在网络通信中使用的单个应用程序而言,处理所有这些功能通常是不合理的。例如,如果发送和接收电子邮件的应用程序必需了解传递电子邮件所用的底层网络缆线的物理和电学特征,那将非常麻烦。因此,在网络通信中执行的功能通常通过概念上的一组层,其中每个层表示合理地独立的一组特定网络功能以使得每个层中的功能可独立于其它层的功能来实现。因此,在以上示例中,电子邮件应用程序无需了解底层网络是以太网还是令牌网,因为电子邮件应用程序可简单地把将要在网络上传递的数据传送到处理这种细节的低层。
网络层的一个普遍模型是图1所示的开放式系统互连(OSI)参考模型。OSI模型包括七个层,每个层指定特定的网络功能。实际上,计算机使用通信协议在网络上通信,这些协议是管理计算机如何在网络介质上交换信息的协定集。协议实现一个或多个层中的功能。OSI模型的层1是物理层101。物理层涉及在通信介质(例如网络缆线)上发送原始位。因此,物理层的问题是例如用于表示‘1’的电压和用于表示‘0’的电压、信号时序(例如每个位持续多少毫秒)、缆线长度、以及其它物理和电学特征。该模型的层2是数据链接层103。数据链路层涉及在物理链路上执行可靠的数据传送。在数据链路层处执行的功能包括将输入数据划分成帧、顺序发送这些帧、以及处理由接收器发回的帧的接收确认。该模型的层3是网络层105。在网络层105,进行网络中计算机之间以及网络之间的消息路由。执行网络层功能的协议的一个示例是互联网协议(IP)。
该模型的层4是传输层107,其基本功能是确保所有的分组以其从源计算机发送的次序到达目的计算机。该模型的层5是会话层109。会话层建立、管理和结束 通信会话。该模型的层6是表示层111。表示层涉及以标准的约定方式编码二进制数据。在该层的协议的示例包括超文本传输协议(HTTP)和邮局协议(POP)。该模型的层7是应用层113。应用层113允许用户与在网络上发送数据的软件交互。因此,例如当用户点击“发送电子邮件”按钮时知道如何响应的电子邮件应用程序是执行应用层功能的一个示例。
应该意识到,层2协议在直接连接的器件之间执行流控制功能。即,例如数据链接层协议可通过允许接收器使发送器获知其具有的可用缓冲空间多大,以确保从发送器发送的数据不会使与其直接连接的接收器陷入过多数据中。可在该模型的高层中进行不同类型的流控制。即,高层协议允许可通过多个网络设备连接的设备之间的流控制。例如,如图2所示,在网络上存在客户机201可通过其向服务器211发送数据的两条路径。即,当客户机201向交换机203发送数据时,交换机203可将该数据转发到路由器207或路由器205。进而,这些路由器中的每个可进而将该数据转发到交换机209,然后该交换机将数据转发到服务器211。因此,例如如果客户机201向服务器211发送web页面的请求,则该请求的第一部分可通过路由器205发送,而第二部分通过路由器207发送。因为这些连接之一可能比另一个更慢,所以不能确保数据的第一部分在数据的第二部分之前到达服务器211。层3和层4的流控制协议允许服务器211对从客户机201收到的消息重新排序,从而以正确的次序对它们进行处理。此外,这些层3和层4协议管理数据缓冲器并协调通信量,使得如果客户机201发送数据过快,则使其停止以使服务器211能够赶上。
在一实施方式中,认证可如图3所示地进行。主机301可通过网络访问设备303来访问网络。然而,网络访问设备303可被配置成防止主机301访问网络,直到认证、授权和计费(AAA)服务器305向网络访问设备303指示主机301被许访问该网络。即,网络访问设备303可在最初配备有防止来自主机301的网络通信到达网络的过滤器。如本文所用的,术语过滤器是指任何类型的过滤器、虚拟局域网、或任何其它合适的隔离方法。
当主机301启动或尝试访问网络时,它可向网络访问服务器303发送认证消息,该消息提供认证主机301和/或其当前用户所需的信息。网络访问服务器可将这些认证消息转发到AAA服务器305,AAA服务器使用其中包含的信息以及先前创建的访问策略来确定是否应该许可主机301访问网络以及应该给予主机301多少网络访问权限。如果AAA服务器确定应该许可主机301访问网络,则它可重新配置网络访问设备303上的过滤器,使得主机301被给予适当的访问级别。
在以上示例中,网络访问设备可以是任何合适的设备,因为本发明并不在这方面受限。例如,网络访问设备可以是网络交换机或者可以是网络访问服务器。此外,AAA服务器可以是能够确定是否许可计算机或设备访问网络并针对已被确定为具有网络访问许可的主机计算机来将网络访问设备配置成允许一个或多个访问级别的任何合适的计算机。例如,AAA服务器可以是RADIUS服务器。可在从主机301向网络访问设备303以及从网络访问设备303向AAA服务器305发送认证消息中使用任何合适的单个协议或多个协议,因为本发明并不在这方面受限。例如,可使用可扩展认证协议(EAP)或802.1x。
虽然图3所示的认证系统对验证主机计算机的身份可能是有用的,但是这种认证并不能验证该主机的健康。即,例如,基于其身份和/或其用户的身份来向主机计算机给予对网络的非受限访问,但是该主机可能受到使网络上充斥无意义数据而使网络无效的病毒或其它恶意代码的感染。
因此,在一实施方式中,当主机301期望访问网络时,网络访问设备303可使用除了常规基于身份的认证之外的健康信息(例如以健康证书形式)来对主机301进行认证。网络访问设备303可将健康信息和认证信息传送到AAA服务器305,然后AAA服务器305基于主机的安全状态和身份来确定应该准予(如果要准予的话)何种访问级别。然后,AAA将网络访问服务器303配置成允许所需访问级别。
例如,主机计算机301可运行收集关于计算机的安全状态的信息的软件。可以通过任何合适的方式收集安全状态信息,因为本发明并不在这方面受限。例如,收集信息的软件可从操作系统检索信息以确定该操作系统的最新补丁是否被安装或者可从安装在该主机上的杀毒软件检索信息以确定该数据是否带有任何病毒。主机301可通过将该信息嵌入到认证信息中来将该信息发送到网络访问设备301。
虽然,该方法允许AAA服务器验证主机的身份并对计算机执行健康检验,但是要求每次主机301向AAA服务器认证时从主机301向网络访问设备303发送健康信息。这需要主机和AAA服务器上的附加处理,因为主机必须收集安全状态信息而AAA服务器必须对每次认证使用安全状态信息验证主机处于所要求的安全状态。此外,因为安全信息嵌入到认证消息中,可提供的健康信息量受认证协议的效率的限制。即,验证主机处于所要求的安全状态可涉及来自多个源(例如服务器)的确认。因为主机还未被准予访问网络,所以主机不能接触这些源并使它们进行健康确认。相反,主机必须将健康信息嵌入到认证消息中并根据认证协议(例如EAP或802.1x)来将这些消息发送到网络访问设备。通常,网络访问认证协议是层2 协议,并因此因缺乏层3(例如IP)服务而在效率方面受到限制。因此,将健康信息嵌入到认证消息中可能效率不高。
为了解决该问题,在本发明的一个实施方式中,主机计算机可通过具有两个独立的确认会话而获得对网络的访问:一个为了认证而一个为了健康检验。这可通过任何合适的方式完成,因为本发明并不在这方面受限。例如,如图4所示,当主机301期望访问网络时,主机301向网络访问设备303认证。网络访问设备303向AAA服务器305提供从主机301接收到的认证信息。AAA服务器305首先认证主机301的身份,并且如果主机301被认证,则AAA服务器305将网络访问设备303配置成向主机301赋予受限的网络访问权限。即,主机301可被许可接触健康证书服务器401,但是不被许可以其它方式访问网络。这可通过任何合适方式实现,因为本发明并不在这方面受限。例如,网络访问设备303可配备有许可主机301访问健康证书服务器401但是不允许来自主机301的任何其它网络通信的过滤器。
然后,主机301接触健康证书服务器401并进行其中健康证书服务器401可对主机301进行健康验证的会话。这可通过任何合适方式实现,因为本发明并不在这方面受限。例如,健康证书服务器401可咨询AAA服务器305以确定是否发放健康证书。AAA服务器305可在确定主机301是否处于所要求的安全状态时接触附加健康服务器(例如健康服务器403和405)。例如,健康证书服务器可将从主机301接收到的杀毒信息转发给AAA服务器305以确定主机301是否不带病毒。进而,AAA服务器305将杀毒信息转发给杀毒服务器(例如健康服务器403),该杀毒服务器确定杀毒信息是否表明主机不带病毒并将结果返回到AAA服务器305。基于该健康检验结果,AAA服务器305可通知健康证书服务器401是否向主机301发放健康证书。如果主机301处于所要求的健康状态中并且因此被发放了健康证书,则主机301可使用健康证书向网络访问设备303再次认证。
在一实施方式中,健康证书可由主机301重复使用,使得不需要在每次主机301期望向网络认证时都进行健康检验。这可通过任何合适的方式实现,因为本发明并不在这方面受限。例如,当主机301期望访问网络时,如以上示例中,它可开始与网络访问设备303的认证会话。除了典型的认证信息之外,主机301还可在认证消息中证明拥有健康证书。该认证消息和健康证书可被转发到AAA服务器305。AAA服务器305可确定该健康证书是否有效,如果有效,则去除对主机301的网络访问约束。因此,在健康证书服务器401与主机301之间可能没有必要存在独立 的通信会话来执行健康检验,因为响应于先前健康检验而被主机301收到的健康证书可被主机301用来证明它处于所要求的安全状态。
在图4的示例中,主机301被示为与健康证书服务器401直接通信。应该意识到,这种直接通信仅为概念清晰而示出,并且实际上,主机计算机通过包括但不限于网络访问设备305的一个或多个网络设备来与健康证书服务器401通信。
如上相关于图4所述,主机301可进行两个独立的通信会话来获得对网络的访问:认证会话和健康检验会话。任何合适的认证协议可用于进行认证会话,因为本发明并不在这方面受限。在一实施方式中,可使用在未直接连接的设备(例如层的两个协议)之间不提供流控制的认证协议。例如,可以使用可扩展认证协议(EAP)或者可以使用802.1x协议。
此外,可使用任何合适的协议来执行健康检验通信会话。例如,在一实施方式中,可使用在未直接连接的设备之间提供流控制的一个协议或多个协议。
在一实施方式中,在执行健康检验时可使用安全套接层上的超文本传输协议(https)。例如,如图5A所示,可发送包含在超文本标记语言(HTML)文档503中的一个或多个https分组501。HTML文档503包括证明请求505和健康语句507。健康证书服务器401可使用健康语句507来确定主机301是否处于所要求的安全状态。健康证书服务器401可如图5B所示地响应。即,健康证书服务器可发送包括HTML文档511的一个或多个https分组509。HTML文档包括对证明请求513的响应和对健康语句515的响应。例如,如果健康证书服务器401确定主机301处于所要求的安全状态,则对证明请求513的响应可包括可由主机301用作健康证书的证明。此外,对健康语句的响应可指示主机301已经通过所要求的健康检验。类似地,如果健康证书服务器401确定主机301未处于所要求的安全状态,则对证明请求513的响应指示该证明请求已被拒绝并且对健康语句515的响应可指定主机未通过哪项所要求的健康检验。
应该意识到,在图5A和图5B中单个框用于表示承载HTML文档的https分组。然而,应该意识到,这些HTML文档可在多个https分组中承载(即每个分组中具有被传送的HTML文档的一部分),因为本发明并不在这方面受限。
在一实施方式中,除了对主机301执行健康检验之外,健康证书服务器401还认证主机301。通过认证主机301,健康证书服务器401可检验它未向错误的主机计算机发放健康证书。主机301可由健康证书服务器以任何合适的方式认证,因为本发明并不在这方面受限。例如,在将https协议用来执行健康检验的实施方式 中,可通过使用HTTP认证协议或客户端TLS协议来认证主机301。
在图4的示例中,网络访问设备303与AAA服务器305通信以将消息从主机301发送到AAA服务器305并允许AAA服务器305配置网络访问设备303上的过滤器。可对这些通信使用任何合适的协议,因为本发明并不在这方面受限。例如,在一实施方式中,AAA服务器305可以是使用RADIUS协议与网络访问设备303通信的RADIUS服务器。
在上述示例中,证明被用作健康证书。可使用任何其它合适的证书,因为本发明并不在这方面受限。例如,可使用PKCS10数字证明(digital certificate)或者可以使用PKCS7数字证明。此外,应该意识到,健康证书不需要是证明,因为可以使用任何其它合适类型的健康证书并且本发明并不在这方面受限。例如,可使用Kerberos票、安全性断言标记语言(SAML)令牌、或任何其它合适类型的认证令牌。
应该意识到,主机301的健康语句中可包含任何合适的信息,因为本发明并不在这方面受限。该信息可包括例如是否安装软件、所安装软件的补丁状态、所安装软件的版本、防火墙状态、注册表键(registry key)和值、文件系统对象、文件共享、服务、杀毒工具、和杀毒标志和状态。
在图4中,AAA服务器305和健康证书服务器401被示为不同计算机。然而,应该意识到,本发明并不在这方面受限,因为单个服务器可执行AAA服务器305和健康证书服务器401两者的功能。虽然单个服务器执行认证功能和健康检验功能两者的功能,但是主机301仍可与该服务器进行两个独立的通信会话。因此,第一通信会话可例如使用层2认证协议来执行以认证主机,而第二通信会话可例如使用上层协议来执行以进行健康检验。
由健康证书服务器401向主机301发放的有效健康证书可发放受限时段。因此在该时间结束之后,该健康证书过期并且变得无效。例如,如果发布了新的操作系统补丁,则在该补丁发布之前发放的健康证书可被视为无效。因此,当主机301在请求获得对网络的访问时出示这种健康证书时,AAA服务器305可确定该健康证书不再有效。因此,AAA服务器305准予主机301对网络受限访问使得新的健康检验可在主机301与健康证书服务器401之间进行,而非准予主机301自由访问网络。
主机301可能执行访问各种服务器以进行操作的应用。例如,主机301可执行访问电子邮件服务器以下载收到的消息的电子邮件应用程序和/或与一个或多个 中央即时消息服务器的建立连接的即时消息程序。发明人已经意识到,当主机301被准予对网络进行受限访问以与健康证书服务器101进行健康检验通信会话时,这种应用可能无法正常工作。例如,这些应用可发送试图接触各种服务器的网络通信,但是这些通信被拒绝,因为主机301还未被准予对网络的完全访问。结果,这些应用被中止。
因此,在一实施方式中,为了解决这个问题,由这些应用用来在网络上发送通信的网络可用性信息的传递可被延迟,直到健康确认交换被成功结束。这可通过任何合适方式完成,因为本发明并不在这方面受限。
在一实施方式中,主机301的操作系统可收集并存储关于网络配置以及那些网络当前可用的信息。应用程序可经由由操作系统提供的应用编程接口(API)来访问该信息。操作系统可被配置成不通过API提供网络配置信息直到健康验证成功完成之后。结果,应用程序将不再尝试访问网络,直到主机301以获得网络访问。
本发明的上述实施方式可通过许多方式中任一种实现。例如,实施方式可通过使用硬件、软件或其结合实现。当在软件中实现时,软件代码可在无论是在单个计算机中提供还是分布在多个计算机之间的任何合适的处理器或处理器集合上执行。应该意识到,执行上述功能的任何组件或组件集合可通称为控制上述功能的一个或多个控制器。一个或多个控制器可通过许多方式实现,诸如使用微代码编程的专用硬件、或通用硬件(例如一个或多个处理器)或者执行上述功能的软件。
在这方面中,应该意识到,本发明的实施方式的一个实现包括其上编码有在处理器上执行时实现本发明实施方式的上述功能的计算机程序(即多个指令)的至少一个计算机可读介质(例如计算机存储器、软盘、压缩盘、磁带等)。计算机可读介质可以是可传输的,使得存储其上的程序可被加载到任何计算机环境资源上以实现本文所述的本发明的诸方面。此外,应该意识到,对在执行时实现上述功能的计算机程序的引用并不限于在主机计算机上运行的应用程序。相反,术语计算机程序在本文中以一般意义使用,以引用可用于将处理器编程为实现本发明上述诸方面的任何类型的计算机代码(例如软件或微代码)。
应该意识到,根据本发明的若干实施方式,其中进程可在计算机可读介质中实现,计算机实现进程可在其执行过程中接收手动输入(例如从用户)。
本文所使用的措词和术语是出于描述目的而不应视为限制。“包括”、“包含”、“具有”、“含有”、“涉及”及其变体的使用表示涵盖其后列举的项目以及其它项目。
通过详细描述本发明的若干实施方式,各种修改和改进对本领域技术人员变 得显而易见。这种修改和改进旨在落在本发明的精神和范围内。因此,以上描述仅作为示例,并非旨在限制。本发明仅如所附权利要求书和其等效方案所定义的进行限制。