编者按:IEEE 802.1x作为一种新生的链路层验证机制协议,其原理、组成、工作进程以及功能等到底如何呢?本文揭示了这项协议在网络安全方面的运行机理及其突出应用。
虽然大多数组织的IT基础设施已经加强了边界防御,但其内部仍然容易受到攻击。这种脆弱性具体表现为内部用户可未经授权访问或者恶意破坏关键的IT资源。作为全面的“深层防御”安全架构的一部分,关键内部基础设施的访问权只能提供给授权用户。
局域网(LAN)历来是大门敞开。IEEE 802.1x这项最新标准定义了为LAN实施访问控制的机制,允许授权用户进来,而把非授权用户拒之门外。因此,有了802.1x,LAN便不再是一道敞开的门,其本身也成为安全架构和政策执行的一个重要部分,并有助于消除来自组织内部的安全威胁。
802.1x验证机制及其优点
IEEE 802.1x是一种链路层验证机制协议,控制着对网络访问端口即网络连接点的访问,如实施在无线接入点的物理交换端口或逻辑端口。通过控制网络访问,用户可以在多层安全架构部署第一道防线。在连接设备得到验证之前,网络访问权完全被禁止。得到验证之后,用户可以被提供第2层交换机通常提供的服务以外的附加服务。这些服务包括第3层过滤、速率限制和第4层过滤,而不仅仅是简单的“开/关(on/off)”服务。
链路层验证方案的一个优点是,它只要求存在链路层连接,客户端(在802.1x中称为请求者)不需要分配供验证用的第3层地址,因而降低了风险。此外,链路层验证涉及了所有能够在链路上工作的协议,从而不必为每种协议提供网络层验证。802.1x还能够使执行点尽可能地接近网络边缘,因此可以针对连接设备的特定需求定制细粒度访问规则。
IEEE 802.1x的组成
IEEE 802.1x定义了下列逻辑单元:
网络访问端口:即网络上的连接点,它可能是物理端口,也可能是逻辑端口。
请求者:连接到网络、请求其服务的设备,通常是终端站。请求者是请求验证的设备,但也有可能是一种网络设备。
验证者:为验证服务提供便利的网络单元,验证者实际上并不提供验证服务,它充当请求者和验证服务器之间的代理,并且充当政策执行点。
端口访问实体:参与验证过程的固件。请求者和验证者都拥有端口访问实体(PAE)单元,请求者的PAE负责对验证信息请求做出响应,验证者的PAE负责与请求者之间的通信,代理授予通过验证服务器验证的证书,并且控制端口的授权状态。
验证服务器:提供向验证者申请验证服务的实体,它根据证书提供授权,既可以同验证者放在一起,也可以放在远地。
扩展验证协议(EAP)
由于使用了扩展验证协议(EAP),802.1x在请求者和验证者之间采用的实际验证机制相当灵活。EAP原先是为点对点(PPP)链路上的应用而定义的,
在因特网工程任务组的请求评论文档(RFC)2284中得到了明确定义。
基于以上所述,IEEE定义了一种封装模式,允许EAP通过LAN传输,EAP over LAN(EAPoL)于是应运而生。各种验证服务都可以通过这种协议运行,包括用户名/口令、Kerberos、数字证书、一次性口令和生物检测术等服务。EAP数据包在请求者和验证者之间的链路层上传输,并通过验证者与验证服务器之间的IP/RADIUS连接。
EAP本身并不为流量传输明确规定任何保护机制,如加密等。相反,EAP内运行的验证协议(在RFC 2284当中定义为验证类型)为安全操作提供了数据的机密性和完整性。验证类型的一个例子就是EAP传输层安全(EAP-TLS),它利用了在RFC 2246中明确定义的传输层协议(TLS)。
受控端口和不受控端口
802.1x标准定义了两种逻辑抽象:受控端口和不受控端口。这两种端口都连接到网络访问端口上。受控端口提供了访问请求者所用的网络服务的功能,根据验证操作成功与否实现打开或关闭操作。不受控端口始终处于连接状态,为验证服务的进行提供了始终连通的状态。受控端口需验证通过后才处于连接状态,从而提供给请求者网络服务。
802.1x的工作过程
802.1x的工作相当简单。值得注意的是请求者和验证者之间的流量通过EAPoL传输,验证者与验证服务器之间的流量则通过RADIUS传输。
开始时,受控端口处于中断状态,所以请求者无法访问LAN本身。请求者向验证者发出EAPoL起始消息,或者验证者会向请求者发出EAP请求身份消息。请求者接到请求身份消息后,就会把证书提供给验证者,然后验证者进行封装后把RADIUS数据包里面的消息发送给验证服务器。
RADIUS服务器随后向请求者发出质问请求,该请求由验证者充当代理。请求者对质问做出响应后,验证者又一次充当数据通过验证服务器的代理。验证服务器确认证书后,就会做出请求者可不可以使用LAN服务的决定。只要让受控端口由中断状态转换到连接状态,即可实现这一步。
增强授权功能
因为802.1x只明确规定了基本的开/关功能,其他功能甚少,大多数安全专家提到了AAA,即验证、授权和审计,而802.1x仅仅提供了最基本的验证功能,即开/关。部分厂商于是提供了另一层保护,因为许多组织需要比“开/关”所能够实现的更高一级的细粒度。厂商为受控端口增添逻辑以提高保真度,从而大大增强了授权功能。这种所谓的授权服务可以提供高保真度的第2、第3和第4层过滤功能,而且可以进行扩展,以获得动态自我配置的数据包过滤防火墙。授权服务可以提供如下的一些服务:
● 第2层协议过滤,去除了网络中不接受的第2层协议。
● 第3层过滤,对提供特定单元访问权的网络执行逻辑视图。
● 第4层过滤,禁止不允许的协议进入网络。
● 速率限制,控制可能有害的信息进入网络的速率。
如果利用为每个端口进行编程的授权服务,就能针对特定用户或用户级制订相应的细粒度安全策略,为它们提供仅供访问所需服务的功能,其它服务一概禁止。
举一例,即使网络管理员能访问SNMP,会计部门的人却没有理由同样能访问。如果有可能确定一个用户属于哪个组,那么在验证期间就可以实施特定的授权策略。就本例而言,SNMP访问权应该授予网络管理组的成员,不然需收回权限,从而防止网络管理员之外的人无意或恶意对网络设备乱加配置。