您好,欢迎访问三七文档
802.1X技术基础作者:|上传时间:2013-09-16|关键字:802.1X技术基础1前言802.1X作为一种基于端口的用户访问控制安全机制,因其低成本、良好的业务连续性和扩充性以及较高的安全性和灵活性,自从2001年6月正式成为IEEE802系列标准以来便迅速受到了设备制造商、各大网络运营商和最终用户的广泛支持和肯定。那么802.1X从何而来?有什么作用?体系结构是怎么样的?用到什么协议?并且又是如何实现的?这些都将是我们本文讨论的内容。2802.1X起源以太网结构简单的特性使得其在全世界范围内迅速得到广泛部署,成为当前计算机数据通信网络最主要的接入方式之一,但这种简单机制同时又带来安全隐患,任何一台电脑只要接入网络便有访问网络资源的权限。随着网络的逐渐普及,一方面,越来越多的企业、校园、小区、SOHO用户青睐于以太网这种价格低廉、使用方便、带宽高的接入方式;另一方面可运营新业务的开展需要底层以太网提供必要的安全认证机制。如何正确处理用户访问权限的问题成为日益突出的问题,802.1X就是IEEE为了解决基于端口的接入控制而定义的一个标准。802.1X,全称为Port-BasedNetworksAccessControl,即基于端口的网络访问控制,它起源于无线网络标准802.11协议,802.11协议是标准的无线局域网协议,802.1X协议设计的最初的目的是为了解决无线局域网用户的接入认证问题,但由于其原理对于所有符合IEEE802标准的局域网具有普适性,因此在有线局域网中也得到了广泛的应用。现在802.1X协议作为局域网一种普遍的端口接入控制机制在以太网中被广泛应用,主要用以解决以太网内认证和安全方面的问题。3体系结构图1802.1X协议的体系结构IEEE802.1X协议采用典型的客户端/服务器体系结构,包括三个主要的部分:客户端(SupplicantSystem)、认证系统(AuthenticatorSystem)以及认证服务器(AuthenticationServerSystem)。图1描述了三者之间的关系以及互相之间的通信。客户端一般为一个用户终端系统,该终端系统通常需要安装一个客户端软件,用户通过启动这个客户端软件发起802.1X协议的认证过程。为支持基于端口的接入控制,客户端系统必须支持EAPOL(ExtensibleAuthenticationProtocolOverLAN,局域网上的可扩展认证协议)。认证系统也称NAS(NetworkAccessSystem,即网络接入系统),通常为支持802.1X协议的网络设备。为了便于理解,接下来文中提到的所有认证系统均用NAS来进行表述。在启动了802.1X认证的情况下,该设备上用于客户端接入的每个物理端口对应两个逻辑端口:受控端口(ControlledPort)和非受控端口(UncontrolledPort)。非受控端口始终处于双向连通状态,主要用来传递EAPOL协议帧,保证客户端始终可以发送或接收认证信息。而受控端口只有在认证通过的状态下才打开,用于传递业务信息帧。为适应不同的应用环境,受控端口可配置为单向受控和双向受控两种方式。实行双向受控时,禁止帧的发送和接收;实行单向受控时,禁止从客户端接收帧,但允许向客户端发送帧。目前,H3C公司设备只支持单向受控。如果用户未通过认证,则受控端口处于未认证状态,用户无法访问认证服务器提供的服务。图1中NAS的受控端口处于未认证状态,因此无法访问认证服务器提供的服务。认证服务器通常为Radius服务器,该服务器可以存储有关用户的认证、计费、业务信息,比如用户所属的VLAN、CAR参数、优先级、用户的访问控制列表等等。这里认证服务器所提供的服务是指通过检验客户端发送来的身份标识,来判断该用户是否有权使用NAS所提供的网络服务。当用户通过认证后,认证服务器会把用户的相关信息传递给NAS,由NAS构建动态的访问控制列表,用户的后续流量就将接受上述参数的监管。本文中提到的认证服务器均以Radius服务器为例进行说明。以上三个部分,除客户端系统外,NAS和认证服务器之间既可以分布在两个不同的物理实体上,也可以是集中在一个物理实体上,后者指的是由NAS独立完成用户的认证授权,即本地认证。4协议实现及报文格式图2802.1X协议实现如图2所示,802.1X协议在实现整个安全认证的过程中,其三个关键部分客户端、认证系统(NAS)、认证服务器之间是通过通信协议进行交互的,因此有必要对其相关的通信协议做个介绍。4.1EAPOL协议EAPOL(EAPoverLANs)是802.1X协议定义的一种报文封装格式,主要用于在客户端和NAS之间承载用户信息,也就是说允许EAP协议报文直接承载于LAN环境中。EAPOL消息封装格式如图3所示:图3EAPOL的帧结构PAEEthernetType:2字节,该值表示以太网协议类型,802.1X为其分配的协议类型为0x888E。ProtocolVersion:1字节,表示EAPOL帧的发送方所使用的协议版本号。PacketType:1字节,表示EAPOL数据帧类型,有如下四种帧类型,如图4所示。PacketBodyLength:2字节,表示数据域的长度,也就是PacketBody字段的长度,单位为字节。当EAPOL数据帧的类型为EAPOL-Start或EAPOL-Logoff时,该字段值为0,表示后面没有PacketBody字段。PacketBody:表示数据内容,根据不同的Type有不同的格式。图4PacketBody类型及说明4.2EAP协议802.1X协议采用EAP(ExtensibleAuthenticationProtocol,可扩展认证协议)来实现客户端、NAS和认证服务器之间认证信息的交互。通过支持EAP协议,NAS只需控制其受控端口的状态,但是并不干涉通过非受控端口在客户端和认证服务器之间传递的认证信息。这样,就实现了认证流和业务流的完全分离。可以使用认证服务器来实现各种认证机制,NAS仅仅需要传送认证信息,并根据认证返回的结果控制受控端口的状态。当EAPOL报文的PacketType字段值为00000000时,表明PacketBody字段封装的是一个EAP数据包,EAP协议报文格式在RFC2284中有详细描述。下面来看一下EAP报文封装格式,如图5所示。图5EAP的帧结构Code:1字节,该值表示EAP帧类型,共有4种:Request、Response、Success、Failure。Identifier:1字节,该值用于匹配Request消息和Response消息。Identifier字段和系统端口一起唯一标识一个认证过程。Length:2字节,该值表示EAP帧的总长度,包含Code、Identifier、Length和Data域,单位为字节。Data:0或更多字节,表示EAP包的内容,由Code字段决定。对于Code字段所携带的不同EAP帧类型,其对应Data域的格式也略有不同,这里可分为两类:一类是指,若Code字段的EAP帧类型为Request或Response的数据包的Data域格式如图6所示。图6Type报文类型此时,Type报文类型包括以下常见几种:Type=1-Identifier(要求客户端程序发送用户输入的用户名信息)Type=2-Notification(非必须的一个消息,传送一些警告消息)Type=3-ResponseOnly(Request报文中的认证类型不可接受时回应该类型的报文)Type=4-MD5-Challenge(类似于CHAP中的MD5-Challenge)Type=5-One-TimePassword(OTP)(一种密码交互的方式)Type=6-GenericTokenCard(支持Challenge和Response时使用令牌)Type=254-ExpandedTypes(支持厂商自己扩展的类型)Type=255-Experimentaluse(实验新的类型时做测试用的类型)另外一类,若Code类型为标准的Success或Failure的数据包,则没有Data域,相应的Length域的值为4。在H3C公司的实现中,在Length域后面增加了字段用于说明下线的原因,故Length域的值可能为其他值。此外,Radius为支持EAP认证增加了两个属性:EAP-Message(EAP消息)和Message-Authenticator(消息认证码)。如图7所示,EAP-Message属性用来封装EAP数据包,类型代码为79,Value域最长253字节,如果EAP数据包长度大于253字节,可以对其进行分片,依次封装在多个EAP-Message属性中。该属性必须配合Message-Authenticator属性使用。图7EAP-Message属性-而上面提到的Message-Authenticator属性,如图8所示,类型代码为80,主要用于在EAP认证过程中验证携带了EAP-Message属性的Radius报文的完整性,避免接入请求包被窜改。在含有EAP-Message属性的数据包中,必须同时也包含Message-Authenticator,否则该数据包会被认为无效而被丢弃。此外,若接收端对接收到的Radius报文计算出的完整性校验值与报文中携带的Message-Authenticator属性的Value值不一致,该数据包也会被认为无效而丢弃。图8Message-Authenticator属性5认证的基本过程5.1认证发起802.1X的认证发起可以由NAS发起,也可以由客户端主动发起。当NAS探测到未经过认证的用户使用网络时,就会主动发起认证;客户端则可以通过客户端软件主动向NAS发送EAPOL-Start报文发起认证。•NAS主动触发认证方式当NAS检测到有未经认证的用户使用网络时,会每隔N秒(系统默认30秒)主动向客户端以组播报文来触发认证。在认证开始之前,端口的状态被强制为未认证状态。如果客户端的身份标识不可知,则NAS会发送EAP-Request/Identity报文,请求客户端发送身份标识。这样,就开始了典型的认证过程。客户端在收到来自NAS的EAP-Request报文后,将发送EAP-Response报文响应NAS的请求。这种触发方式用于支持不能主动发送EAPOL-Start报文的客户端,例如WindowsXP自带的802.1X客户端。•客户端主动触发认证方式如果用户要上网,则可以通过客户端软件主动发起认证。客户端软件会向NAS发送EAPOL-Start报文主动发起认证。该报文目的地址为IEEE802.1X协议分配的一个组播MAC地址:01-80-C2-00-00-03。NAS在收到客户端发送的EAPOL-Start报文后,会发送EAP-Request/Identity报文响应用户请求,要求用户发送身份标识,这样就启动了一个认证过程。此外,由于网络中有些设备不支持上述的组播报文,使得NAS无法收到客户端的认证请求,因此NAS还支持广播触发方式,即可以接收客户端发送的目的地址为广播MAC地址的EAPOL-Start报文。这种触发方式需要与H3C公司的iNode客户端配合使用。5.2退出认证通过以下几种方式NAS设备可以将端口状态从已认证状态改变成未认证状态:Ø与端口对应的MAC地址出现故障(管理性禁止或硬件故障);Ø客户端与NAS之间的连接失败,造成认证超时;Ø客户端未响应NAS发起的认证请求;Ø客户端发送EAPOL-Logoff报文,主动下线。退出已认证状态的直接结果就是导致用户下线,如果用户要继续上网则需要再发起一个认证过程。为什么要专门提供一个EAPOL-Logoff机制,主要是出于如下安全的考虑:当一个用户从一台终端登录后,很可能其他用户不通过发起一个新的认证请求,就可以利用该设备访问网络。因此提供专门的退出机制,以确保用户与NAS专有的会话进程被中止,可以防止用户的访问权限被他人盗用。通过发送EAPOL-Logoff报文,可以使
本文标题:8021x技术
链接地址:https://www.777doc.com/doc-2891640 .html