基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

更新时间:2023-05-19 10:01:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

华中科技大学

硕士学位论文

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

姓名:周晓

申请学位级别:硕士

专业:通信与信息系统

指导教师:王芙蓉

20060428

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

摘要

随着信息技术的高速发展,网络安全技术也越来越受到重视,由此推动了防火墙、访问控制等各种网络安全技术的蓬勃发展。出于网络安全和计费的需要,基于端口控制的802.1X技术成为主流的身份验证机制,与此同时,以“集中式管理、分布式防护”为理念的分布式防火墙也以有效的端点防护成为企业网络安全重要解决方案。如今,有70%以上的安全威胁来自于企业内部,那些通过身份认证的主机往往有意无意地充当着攻击源,使得管理员防不胜防。企业希望能够以基于身份验证和主机安全状态的新型信任模式来控制终端接入内网。论文主要针对802.1X认证技术和分布式防火墙技术协同工作开展深入研究,并给出一种具体的解决方案。

首先,对802.1X协议及相关的EAP协议和RADIUS协议进行系统的研究。通过分析802.1X技术所采用的安全技术和工作原理,实现802.1X的从基于端口到基于用户的扩展。分析整理了EAP、RADIUS协议的工作流程、数据包格式,基于EAP协议的可扩展性,实现利用EAPOL帧携带私有信息。

接着,对分布式防火墙系统的工作原理和流程进行深入研究。通过对中央策略服务器、主机防火墙和边界防火墙工作机制的分析,提出将主机完整性检测和802.1X认证技术融合。通过分析和比较主机防火墙包拦截的几种技术,采用NDIS中间层驱动程序技术拦截802.1X认证包,并结合EAPOL帧携带私有信息,实现对主机完整性检测结果的合法传送。

最后,定义了基于身份验证和主机完整性的新型信任模式,设计出网络接入控制系统,重点研究利用802.1X存在的安全漏洞,实现HI判决服务器的“透明”架设。具体实现时,采用WMI技术实现对主机完整性的检测,NDIS中间层驱动技术实现对802.1X认证包的拦截。通过对用户身份和主机安全状况的同时验证,实现网络接入控制(Network Access Control, NAC)系统,并详细介绍了NAC系统的认证流程。

关键字: 802.1X;分布式防火墙;可扩展认证协议;主机防火墙;主机完整性判决服

务器;网络接入控制

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

Abstract

Network security technology attracts more and more attention with the development of information technology, which prompts the prosperity of the firewall, access control and other several techniques related to network security. Per the requirement of security and accounting, the 802.1x based on port control becomes the mainstream of authentication, meanwhile, the distributed firewall characterized by “centralized management and distributed protection” turns into an important solution via efficient port aegis. Almost more than 70% security threat comes from the intranet, the authenticated hosts sometimes work as the attack source unconsciously or desperately, which is difficult for the network managers to prevent. So they wish to control all the hosts when they accessing the intranet via a new trust mode both authentication and host’s security status are implemented. The thesis conduct the research based on the 802.1x authentication and distributed firewall, then provides a real solution for it.

First, systematical analysis is laid on the protocols of 802.1X, EAP, RADIUS. Construing the principle of 802.1X, the paper carries out the extension from based on port to based on user. Construing the workflow of EAP, RADIUS, packet format, the carrying of private information is implemented via the EAPOL frame.

Second, much emphasis is placed on the research of the principle and flowchart of firewall system. Through the analysis on policy server, host firewall and boundary firewall, the combination of host integrity check and 802.1X authentication is advanced. Comparing several packet holding technologies, and combined EAPOL’s carrying private information, the legal transfer of HI results is achieved.

At last, a new trust mode is defined based on the authentication and host integrity, in which the author makes use of the security deficiency of current 802.1X, and realized the “transparent” span of HI-Judge Server. In the implement, WMI is used to check the host integrity, NDIS to hold up the 802.1X packet. And the detailed authentication process in NAC system is introduced.

Keywords:802.1X; Distributed Firewall; EAP; Host Firewall; HI-Judge Server; Network

Access Control

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

独创性声明

本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。

学位论文作者签名:

日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

本论文属于 保密 ,在 年解密后适用本授权书。

不保密 。

(请在以上方框内打“√”)

学位论文作者签名: 指导教师签名:

日期: 年 月 日 日期: 年 月 日

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

1 绪论

本章通过介绍身份验证认证技术和分布式防火墙的发展阐述课题的背景,比较了Web认证、PPPoE认证和802.1X认证技术,指出就以太网环境而言,更适合使用802.1X协议进行用户认证管理。接着分析了802.1X身份验证在保护内网网络安全中的局限性,说明在802.1X认证基础上检查终端设备安全状态的意义和必要性,提出了将802.1X身份验证技术和分布式防火墙技术结合的思想,最后简要介绍本文研究的主要内容。

1.1 课题背景及研究现状

经过近20多年的发展,以太网技术已经日臻完善了。事实上,以太网技术不但是目前局域网、园区网的主流支撑技术,而且也逐渐成为城域网和广域网的主流支撑技术。以太网技术作为使用作广泛的组网技术,也几乎毫无例外地成为用户计算机入网的接入技术。交换式以太网接入以高带宽,技术成熟,成本低廉,易于建设和易于管理的优点,成为网络运营商优先采用的接入方式。然而以太网接入的特点是用户只要能接入以太网交换机,就可以访问Internet网上的资源。它不提供对接入用户的身份进行认证的功能。随着以太网技术的广泛应用,特别是在运营网络中的应用,出于对网络安全的考虑和计费的需求,对其安全身份认证的要求己经提到了日程上。为了解决这个问题,目前广泛使PPPoE或Web+DHCP的方案,此外还有IEEE-SA标准协会(SA-Standards Association)的标准理事会批准的802.1X认证标准[1][2]。

Web+DHCP的认证是一种基于业务类型的应用层的认证方法,不需要安装其他客户端软件,只需要浏览器就能完成,就用户来说较为方便。但是由于Web认证走的是7层协议,从逻辑上来说为了达到网络2层的连接而跑到7层做认证,这首先不符合网络逻辑。由于Web认证工作在7层,对于四层以下的网络问题,如断电、异常死机造成的异常离线情况,却无能为力。由于它不容易检测到用户离线,造成计费的不准确。Web认证在认证前就为用户分配了IP地址,造成了宝贵的IP地址的浪费;在Web认证方式中,认证前后数据流和业务流也没法分离,用户的每个数据在经过网关的时候,还要集中在一点与网关的IP地址列表进行比较,如果上网人数很多,数据包数量巨大,很容易在网关处形成瓶颈。还有就是DHCP服务器对用户而言是暴露的,容易受到攻击[3]。

PPPoE全称是在以太网上点对点的协议(Point to Point Protocol Over Ethernet),是一个将PPP帧封装在以太网帧的协议,主要用来在窄带网络中通过拨号或专线方式建立点

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

对点连接发送数据,定义于RFC2516文档中[2]。它提供了一种在以太网上实现在点对点的连接上传递不同协议数据包的标准方法,用以解决以太网上用户身份认证难题,是一种较为成熟的接入认证方式。它和传统的拨号接入方式,用户端采用一个PPPoE的拨号软件,发起PPP连接请求,穿越以太网交换机或者DSL(Digital Subscriber Line)设备,终结在集中控制管理层的接入网关设备上。接入网关设备负责终结PPP连接,并与

RADIUS配合实现用户管理和策略控制。PPPoE认证方式在以太包头和用户数据之间插入了PPPoE和PPP封装,封装开销为8个字节。额外的通信开销虽然带来了网络管理的简易和服务的灵活性,却对以太网的带宽效率有很大影响。在PPPOE认证中,认证系统必须将每个包进行拆解才能判断和识别用户是否合法。这样大量的拆包解包过程必须由一个功能强劲同时价格昂贵的设备来完成,而且一旦并发用户增多或者数据包增大,解封装速度必然跟不上,造成宽带网络发展的瓶颈[4]。

出于网络安全的考虑和计费的需要,网络管理者和运营商都明显地感到了对以太网端口进行控制的需求。如果能够将用户身份认证与用户的接入端口联系在一起,网络管理者将很容易通过对指定端口的控制,允许合法用户入网和拒绝非法用户的访间;相应地,对接入端口的控制能力也意味看管理者也可以把费用的收取和控制与端口挂钩[5]。传统的PPPoE与Web/Portal等认证方式显然无法承担这一重任。802.1X协议正是IEEE为了解决基于端口的接入控制而定义的标准,因此成为运营商的追捧的身认证解决方案[6]。

802.1X其源于802.11协议,被称为基于端口的访问控制协议(Port based network

access control protocol),通过可扩展认证协议(EAP: Extensible Authentication Protocol)对以太网端口进行认证。该协议的应用前提是在请求者(用户计算机)和认证者(以太网端口)之间提供一条点到点的连接。其中端口可以是物理端口,也可以是逻辑端口。主要功能是限制未授权设备(如用户计算机)通过以太网交换机的公共端口非法访问网络。802.1X认证的主要特点有:

●认证流和业务流分离,有效地解决了网络认证瓶颈;

●方案简洁,为简单地二层协议,认证过程优化;

●只定义了认证消息的通信方式,没有定义具体的认证机制,可以灵活地选择具体地认证机制

因此,就以太网环境来说,802.1X认证技术是网络管理者和运营商的最佳选择。运营商在选择802.1X作为身份验证的方案后,利用802.1X的可扩展性,实现802.1X交换机到用户的多MAC、多IP段、交换机物理端口号、交换机VLAN、交换机管理IP、用户名、密码共7种元素的绑定认证,提供了越来越丰富的身份安全保证[9]。

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

802.1X协议设计时的主要目的是为了解决无线局域网用户的接入认证问题。现在已经开始被应用于一般的有线LAN的接入,如今大部分的智能交换机都已经支持802.1X协议了。

但是由于IEEE 802.1X在历史的舞台上仅仅局限于服务以太局域网,以至于运营商实施了802.1X认证解决方案并扩展了它的绑定认证技术之后,就搁浅在被遗忘的角落

[14]。802.1X作为身分认证解决方案也只能验证请求网络接入的用户的合法性,却不能保证用户所使用的计算机是否有病毒、木马,这就造成了安全上的漏洞。试想如果公司的员工使用合法的用户通过了802.1X认证进入了公司的内网,然而员工所使用的计算机或者笔记本却带有病毒、木马或者蠕虫,其结果不但可能造成内网病毒泛滥,更有可能导致公司机密外泄,造成巨大的损失。而802.1X作为一个二层协议,对于计算机系统是否安全束手无策。这种局限性导致了802.1X技术停滞不前。

但随着分布式防火墙的出现,IEEE802.1X又焕发出新的生机,重新成为人们关注的焦点[14]。近来,受人们日益重视理应“可信”的笔记本电脑以及其他移动设备连入企业网所带来的种种风险的影响,802.1X重新被推上了前台。对那些采取根据终端设备的安全状态、允许或拒绝网络访问的主机策略而言,这项标准俨然是基础。802.1X是结合MAC、端口、帐号和密码等,在二层网络上实现用户认证,因此它只能解决身份验证,而对于用户载体的安全环境无法验证,这样的验证至少是不完善的。随着企业对网络安全的愈来愈多的重视,它们希望确保所有员工在被允许接入公司网络之前都是安全的,可信的。但802.1X只是一个二层协议,无法实现这样的要求,不过如果将802.1x与分布式防火墙(Distributed Firewall,DFW)相结合,构造一个基于用户身份和载体安全环境认证的平台,是可以实现缔造开放的可信网络这一要求的[8]。分布式防火墙也可以称为主机防火墙(Host Firewall),对于它来说,衡量载体安全环境的指标就是主机完整性(Host Integrity)。如果由分布式防火墙负责主机安全状态的检测,而802.1X负责身份验证,这样就能够100%的保证企业内网的安全了,这个让802.1X“老树开新枝”的设想正是本课题的研究内容[14]。

1.2 本课题的意义

为了提高网络的安全性,人们采用各种网络安全技术来构建安全的网络系统。而防火墙则是作为一种行之有效的安全技术被用户经常采用。防火墙的基本功能是通过对网络外部和内部用户的区分和访问授权机制来防止非法访问,从而实现保护网络安全的目的。然而,随着网络技术的发展和网络规模的扩大,传统防火墙的局限性逐步暴露出来,并且开始难以满足现代网络安全的需要。但同时防火墙在访问控制、协议

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

代理和策略执行方面的优点又使得其在保护网络安全,阻止非法访问方面依然可以发挥强大的作用。因此为了做到既利用传统防火墙优点,同时又克服传统防火墙的缺陷,就需要提出新的防火墙概念,来满足现代网络发展需要。

分布式防火墙,英文名为"Distributed Firewall",是在目前传统的边界式防火墙基础上开发的,但目前主要是以软件形式出现的,近年来日益成为网络安全的热点话题。由于传统的边界防火墙无法防范来自内部的攻击,而在实际环境中,80%以上的攻击和越权访问来自与内部,是网络安全的主要威胁[8]。随着网络技术的发展,传统防火墙的缺陷日益凸现,如果说它对于抵御来自外部的攻击还算称职的话,那么它对于来自于内部网络的攻击就显得心有余而力不足了。但是据最新的市场调查显示,在实际环境中,80%的攻击和越权访问来自于内部,坚固的堡垒往往是从内部攻破的。基于这些因素,分布式防火墙应运而生,它采用C/S结构和端点防护(Endpoint Defense),分布式检测,集中式管理,能都有效的防御内部攻击,符合网络安全的发展潮流。这样的端点防护实际上就是一个基于主机的防火墙,它在物理上既可以在内网也可以在外网。因此,分布式防火墙逐渐成为企业网络安全的解决方案[10]。

分布式防火墙的理念是“集中式管理、分布式防护”,基于C/S模式 能真正克服高速网络带来的检测困难的问题。它布署在主机,同时提供入侵检测和应用层防护。入侵检测引擎安装在主机上,单机上的网络流量有限,因此其发现入侵的及时性与准确性都较高[11]。

分布式防火墙由一个中心节点来制定安全策略,并将安全策略分发到终端主机上执行。它要负责网络边界、各子网和网络内部各节点的安全防护,是一个完整的系统。分布式防火墙可以认为是由三部分组成的立体防护系统:一部分是网络防火墙,它承担着传统边界防火墙看守大门的职责;一部分是主机防火墙,驻留在受保护的终端主机上,它解决了传统边界防火墙不能解决的问题,如内部攻击等;还有一部分是管理中心,主要是解决分布式的管理问题[12]。

分布式防火墙中有一个很重要的概念就是主机完整性(Host Integrity), 实际上简单理解的话,就是一个主机它的安全状况是不是完整,是否装有杀毒软件,病毒库是否更新等等。主机是否完整的标准可以由企业根据自身要求来定义,可以包含很多层面,如操作系统、应用程序的补丁,系统注册表的键值,主机型防火墙、杀毒软件、IDS等是否运行和相应特征库的更新等。主机防护墙负责认证网络客户端的主机完整性,网络防火墙根据检查结果决定是否允许客户端访问企业内部网络的资源[13]。 边界防火墙缺陷的根源在于它对拓扑结构的依赖,分布式防火墙打破了这种拓扑限制,将内部网的概念由物理意义变成了逻辑意义。基于主机的分布式防火墙在物理

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

上既可以是内网,也可以是外网[15]。

随着企业对网络安全的重视与日俱增,网络安全产品也必须不断自我完善。据统计,80%的攻击和越权访问来自于内部,因此企业希望进入内网的主机都是安全可信的。802.1X虽然能够对用户进行认证、授权,却不能确保用户所使用的主机是否“安全”;分布式防火墙可以检测出主机是否“安全”,却不知道使用主机的用户是否合法。如果能将802.1X和分布式防火墙有机的整合,就能保证只有得到授权的用户在一台符合企业安全定义的主机上访问内网,从而更深层次的保证了网络的安全性。当主机在外网时,就存在这样的问题:当它要访问企业内部资源,势必要进行身份验证,现在流行的做法是用802.1X进行验证。但是802.1X只能验证是什么样的人要访问内网,不能验证什么样的人在什么样的机器上访问内网。什么样的机器对于防火墙来说就是主机是否完整。本课题将主机完整性和802.1X结合,使得802.1X认证不仅包括MAC、帐号、密码,还含括主机完整性,这样就能确保是授权的用户在一台符合企业安全定义的机器上访问内网,从而能够更深层次的保证网络安全。802.1X是可扩展的协议,结合其他信息的绑定技术已有先例,在国内教育信息网的应用中,已经实现了IP与802.1X绑定组合认证技术。因此只要能够解决技术细节问题,相信802.1X和主机完整性信息绑定认证大有可为。

1.3 本文主要内容及章节安排

本文围绕802.1X认证技术和分布式防火墙技术进行展开,通过分析802.1X协议和分布式防火墙的工作原理,探讨了802.1X认证和分布式防火墙技术协同工作的可能性,由此引入和详细介绍了基于身份和主机安全状况的网络接入控制系统,并重点研究网络控制接入系统的结构和工作原理,同时给出了一种网络接入控制系统的设计和实现。

本文各章具体内容组织如下:

第一章通过介绍802.1X认证技术和分布式防火墙的发展阐述课题的背景,分析了802.1X身份验证在保护内网网络安全中的局限性,说明在802.1X认证基础上检查终端设备安全状态的意义和必要性,最后简要介绍本文研究的主要内容。

第二章对802.1X协议及其相关的EAP协议、RADIUS协议进行介绍和分析,并结合802.1X认证流程,对EAP包的扩展问题进行分析,并且详细的分析了一个典型的802.1X认证流程。

第三章对分布式防火墙的模型和工作原理进行说明和分析,结合802.1X协议的扩展和安全漏洞,提出802.1X和DFW技术协同工作的方案,并介绍了实现方案的关键

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

技术。

第四章对NAC系统的实现原理进行说明,结合WMI和NDIS技术,给出一个NAC系统的详细实现,同时介绍NAC的实现流程。

第五章对全文进行总结,并展望以后的研究方向。

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

2 802.1X协议介绍

802.1X协议起源于802.11协议,后者是标准的无线局域网协议,802.1X协议的主要目的是为了解决无线局域网用户的接入认证问题。现在已经开始被应用于一般的有线LAN的接入,如今大部分的智能交换机都已经支持802.1X协议了,因此,802.1X认证也逐渐成为主流身份验证技术[16]。

802.1X是基于端口的认证策略(这里的端口可以是一个实实在在的物理端口也可以是一个就像VLAN一样的逻辑端口,对于无线局域网来说个“端口”就是一条信道)。802.1X的认证的最终目的就是确定一个端口是否可用。对于一个端口,如果认证成功那么就“打开”这个端口,允许文所有的报文通过;如果认证不成功就使这个端口保持“关闭”,此时只允许802.1X的认证报文EAPOL(Extensible Authentication Protocol over LAN)通过。本章主要是对802.1X协议进行介绍和分析。

2.1 802.1X协议的体系结构

IEEE 802.1X的体系结构由客户端系统(Supplicant System)、认证系统

(Authenticator System)和认证服务器(Authenticator Server System)三个重要部分组成,如图2-1所示[19]:

图2-1 802.1X的体系结构

下面将分别介绍这三个部分。

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

2.1.1 客户端系统(Supplicant System)

客户端系统一般为一个用户终端系统,是802.1X协议的被认证对象,可以是直接接入认证服务网络的单个用户计算机,也可以是连入认证服务网络设备的一个局域网中的某个用户计算机。该计算机通常需要安装一个客户端软件,用户通过启动这个客户端软件发起请求进行802.1X协议的认证或应答来自认证服务器的要求认证命令。为支持基于端口的接入控制,客户系统必须支持EAPOL(Extensible Authentication Protocol Over LAN)协议。

客户端的主要功能包括:

● 启动认证过程,并使用户输入的用户名和密码与认证系统进行认证信息交互; ● 认证成功后,响应认证系统的重新认证请求;

● 下线时,通知认证系统关闭相应端口。

2.1.2 认证系统(Authenticator System)

认证系统指在LAN连接的一端用于认证另一端设备的实体,通常为支持IEEE

802.1X协议的网络接入设备如边缘交换机或无线接入设备。该设备对应于不同用户的端口(可以是物理端口,也可以是用户设备的MAC地址)有两个逻辑端口:受控端口(Controlled Port)和不受控端口(Controlled Port)。不受控端口始终处于双向连通状态,主要用来传递EAPOL协议帧,可保证客户端始终可以发出和接受认证。受控端口只有在认证通过的状态下才打开,用于传递网络资源和服务。认证系统在客户端和认证服务器间充当代理角色(proxy)。认证系统与客户端间通过EAPOL协议进行通讯,与认证服务器间通过EAPoRADIUS(Extensible Authentication Protocol Over RADIUS)或EAP承载在其他高层协议上,以便穿越复杂的网络到达认证服务器;认证系统要求客户端提供Identity,接收到后将EAP报文承载在RADIUS格式的报文中,再发送到认证服务器,返回等同;认证系统根据认证结果控制端口是否可用。

2.1.3 认证服务器

认证服务器通常是RADIUS(Remote Authentication Dial In User Service),是提供认证服务的实体。它对客户进行实际认证,认证服务器核实客户identity,通知认证系统是否允许客户端访问LAN和交换机提供的服务,接受认证系统传递过来的认证需求,认证完成后将认证结果下发给认证系统,完成对端口的管理。认证服务器可以存储有

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

关用户的信息,比如用户所属的VLAN, CAR参数、优先级、用户的访问控制列表等等。当用户通过认证后,认证服务器会把用户的相关信息传递给认证系统,由认证系统构建动态的访问控制列表,用户的后续流量就将接受上述参数的监管。认证服务器和RADIUS服务器之间通过可扩展认证协议EAP(Extensible Authentication Protocol)协议进行通信。

2.2 EAP协议

IEEE 802.1X定义了基于端口的网络接入控制协议,该协议仅适用于接入设备与接入端口间点到点的连接方式。为了在点到点链路上建立通信,在链路建立阶段PPP链路的每一端都必须首先发送LCP数据包来对该数据链路进行配置。在链路已经建立起来后,在进入网络层协议之前,PPP提供一个可选的认证阶段。而EAP就是PPP的一个可扩展的认证协议。802.1X协议采用EAP协议在客户端、认证系统和认证服务器之间进行通信[22]。

2.2.1 EAP协议栈

EAP是Extensible Authentication Protocol的简称,是一种用于点到点链路的认证协议,EAP最大的特点在于没有定义具体的认证机制,可以根据具体需要进行选择。根据在以太网中的实现,将EAP协议栈自上而下分为三层[21],如图2-2所示:

图2-2 EAP协议栈

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

Authentication Layer是认证机制层,可以根据实际情况的需要自由的选择认证机制,图中所举的三种认证机制是标准自带的,也可以使用自己定义的私有认证机制;EAP Layer是EAP报文层,用于对认证报文进行封闭和解封;MAC Layer层则主要负责将认证报文进一步封闭在MAC帧里。

2.2.2 EAP协议帧的结构

可扩展认证协议EAP是PPP (Point-to-Point Protocol)认证中的一个通用协议,特点是EAP在链路控制阶段(Link Control Protocol, LCP)没有选定一种认证机制,而把这一步推迟到认证阶段。顾名思义,EAP可以支持多种认证机制,允许使用一个“后端”服务器来实际实现各种认证机制,认证者仅需要传送认证信息。EAP协议本身具有良好的可扩展性,这使得在添加新的认证机制时丝毫不会影响现有实现的继续使用。

EAP不是一个具体的认证协议,而仅仅是一种认证协议的封装格式。通过使用EAP封装,STA和认证服务器(如RADIUS Server)之间能够实现对具体认证方法的动态协商。EAP协议帧的结构如图2-3所示[25]:

图2-3 EAP协议帧的结构

Code域为一个字节,表示了EAP数据包的类型,EAP的Code的值指定和意义如下: Code=1--Request

Code=2--Response

Code=3--Success

Code=4--Failure

Identifier域为一个字节,辅助进行Request和Response。的匹配。每一个Request都应该有一个Response相对应,这样的一个Identifier:域就建立了这样的一个对应关系一相同的Identifier相匹配。Length域为两个字节,表明了EAP数据包的长度,包括Code, Identifier, Length以及Data等各域。超出Length域范围的字节应该视为数据链路层填充,

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

在接收时应该被忽略掉。

Data域为0个或者多个字节,Data域的格式由Code的值来决定。

Success和Failure类型的包没有Data域,相应的Length域的值为4;

Request和Response类型的包的格式为“Type(类型)-Type Data(类型数据)”。Type为一个字节,指出具体的EAP数据包类型,已经定义的部分Type如下:

1--Identity

认证者要求客户端发送用户名或者客户端应答给认证者用户名时使用该数据包类型;

2--Notification

认证者通过这种类型可以传递一个告知信息给客户端,客户端应当将该信息显示给用户或者将该信息存储于日志文件当中,客户端收到这种数据类型包应当回复一个相同的类型包,但Type Data不包含任何数据;

3--Nak (Response Only)

此种数据类型仅在应答包中存在。当客户端不支持认证者所要求的认证类型时,客户端就向认证者回复这种数据类型包,同时包含了客户端期望的认证类型;

4--MD5-Challenge;

这是一种类似PPP CHAP认证的认证类型,采用质询一应答的口令认证,认证算法使用MD5 (message-digest algorithm,信息一摘要算法)进行。认证者首先发送一个质询请求,客户端将口令通过MD5算法进行加密,然后将结果回复给认证者,认证者验证结果决定客户端能否通过认证;

5--One-Time Password (OTP)

一次性口令认证是基于用户名和口令的认证方式,该机制的最大优势是无需在网上传输用户的真实口令,也无需在服务器上存放日令,并且由于具有一次性的特点,可以有效防止重放攻击(Replay Attack)。值得注意的是,EAP-MD5和EAP-OTP都是单向认证机制,只能保证客户端到服务器的认证,并不保证服务器到客户端的认证。 13--TLS

既提供认证,又提供动态会话密钥分发。不但在无线客户端和服务器之间提供互相认证,还能提供数据完整性保护。所有的无线客户端以及服务器都需要事先申请一个标准的X.509证书并安装,在认证的时候客户端和服务器要相互交换证书。在交换证书的同时,客户端和服务器要协商出一个基于会话的密钥,一旦认证通过,服务器将会话密钥传给无线接入点并通知无线接入点允许该客户端使用网络服务。

18--Slid

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

采用此种认证类型时,客户端用户使用SIM卡(GSM Subscriber Identity Module)与无线局域网认证服务器进行互认证以及密钥分发,通过使用EAPJSIM认证,GSM网络的SIM卡用户就可以接入WLAN的高速无线数据通信业务.

2.2.3 EAP的认证过程

一个典型的EAP认证的过程分为:Request, Response, success或failure阶段,每一个阶段的报文传送都由Information域所携带的EAP报文来承担。EAP认证过程简述如下[27]:

1)在链路建立阶段完成后,认证系统发送一个或多个请求(Request)数据包来对 对方进行认证,该数据包有一个类型域表明请求的类型。典型情况下,认证系统将发送一个最初的Identity请求,然后是一个或多个请求认证的Request。

2)客户端发送一个响应(Response)数据包对每一个请求(Request)做出应答。对应于每一个Request数据包,Response数据报包含一个type域,与Request中的type域对应。

3)认证系统发送一个成功(Success)或失败(Failure)数据包结束认证阶段。

2.3 RADIUS协议

2.3.1 RADIUS协议数据包格式

RADIUS即远程认证拨号用户服务(Remote Authentication Dial In User Service)协议,具有如下几个特点[23]:

● 客户机/服务器模型

客户端的任务是把用户信息(用户名,口令等)传给指定的RADIUS服务器并接受服务器的响应。RADIUS服务器的任务主要是:接受用户的连接请求,对用户身份进行认证,返回用户接入网络的所有配置信息。

● 网络安全

客户端和RADIUS服务器之间的交互经过了共享保密字的认证。此外,为防 止他人经过传输线路获得用户口令,在传输过程中对口令进行了加密。

● 灵活的认证机制

RADIUS服务器支持多种认证方法。当用户提供用户名和口令时,它可以支持PAP,CHAP,UNIX登录和其他认证方式。

● 协议的可扩展性

所有的交互都包括可变长度的属性字段。为满足实际需要,用户可以加入新的属

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

性值而不会对协议有任何影响。

标准的RADIUS数据包的结构包括Code, ID, Length. Authenticator和Attributes几部分,如表2-1所示:

表2-1 RADIUS包格式 第一字节 第二字节 第三字节 第四字节

Authenticator

Authenticator

Authenticator

Authenticator

Attributes......

1)Code:代码域,长度为一个字节,用来区分RADIUS包的类型,如果收到包 含有无效的Code值,则将该包丢弃。常见的Code值见表2-2。其中,1,2,3用于用户认证,而4,5则是统计流量用,12, 13用于试验阶段,255作为保留。

表2-2 Code域代表的主要类型 Code值

1

2

3

4

5 代表类型 Access-Request Access-Accept Access-Reject Accounting-Response

2)Identifier:标识符域,1个字节,用于区分不同的请求以便给予相应的应答。

3) Length:长度域,2个字节,(20<Length<4096),用来表示整个RADIUS包的总长度,包括Code, Identifier, Length, Authenticator和Attributes五个数据域的长度总和。其中Code, Identifier, Length, Authenticator为定长,Attributes为变长,超出范围的数据将视为附加数据(Padding)或直接忽略。

4) Authenticator:认证标识符域,16个字节,分为请求认证标识符(Request

Authenticator)和响应认证标识符(Response Authenticator)。

①请求认证标识符

在接入请求数据包中,Authenticator是一个十六字节的随机数,称为请求认

证标识符。这个值是不可预测的,并且它在NAS和RADIUS服务器之间通过共享密钥传输数据的整个生命周期中是唯一的。因为同一个共享密钥的请求值若重复,黑客就有

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

机会利用已截取的响应回复用户。而同一共享密钥可以用在不同地理区域的服务器的认证中,所以请求认证符应该具有全局性和唯一性。

②响应认证标识符

接入允许、接入拒绝和接入挑战数据包中的Authenticator为响应认证标识符,它是对一串字节流计算得出的单向MD5散列值,这些字节流包括:代码域、标识符、长度、来自接入请求数据包的请求认证标识符、应答包中包括的属性和共享密钥。即Response Authenticator=MD5 (Code+ID+Length+RequestAuth+Attributes+Secret )

其中“+”表示连接。

5) Attributes:属性域,指定RADIUS包中的具体内容,可以为RADIUS请求或应 答传递详细的认证、授权信息或配置细节等。每个Attributes又分为3个部分:

Type, Length和Value。

①Type,一个字节,表示 Attributes 的类型,可以取1到53。每个RADIUS数据包只包含必须的属性,没有必要使用全部属性。

②Length:一个字节,表示属性的长度,计算方法为:Type+Length+Value。

③Value:零字节或多字节,表示属性的具体值。

RADIUS认证过程可简单的叙述为:

1) 用户拨入NAS;

2) NAS向RADIUS服务器发送一系列加密的“属性/值”;

3) RADIUS服务器检查用户是否存在、属性/值是否匹配;

4) RADIUS服务器发送回“接受“或“拒绝“给NAS。

2.3.2 RADIUS协议的EAP扩展

RADIUS是一个具有良好扩展性的协议,它可以定义一些新的属性,以达到增加新的功能的目的。为了能够将EAP消息从NAS传到RADIUS服务器,便于RADIUS协议的封装,在原来的RADIUS协议的基础上增加了两个重要的属性:EAP-Message (EAP 消息)和Message-Authenticator(消息认证码)。通过使用EAP,许多认证方案被添加进来[24]。

EAP-Message属性用来把EAP消息封装进RADIUS报文,它的类型字段的值为79。 Message-Authenticator属性用于避免接入请求包被窃听篡改,它的类型字段为80。在含有EAP-Message属性的数据包中,同时也必须含有Message-Authenticator,否则该包被视为无效而被丢弃。在Access-Request包中,Message-Authenticator的计算方法是对整个数据包从code域到attributes域,使用共享密钥作为key做MD5算法,即Message

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

-Authenticator=

HMAC-MD5(Code+Idenfier+Length+Request Authenticator+Attributes)。

在Access-Challenge、Access-Reject、Access-Accept包中,计算方法同上,区别在于Authenticator域用先前受到的Access-Request包中的Request Authenticator代替,等计算完Message Authenticator,再进行Response Authenticator的计算。通过这个属性,服务器和客户端可以相互验证数据包,在EAP认证过程中保护有用信息,提供更好的安全性。

2.4 802.1X协议的报文格式

802.1X协议采用EAP协议在客户端、认证系统和认证服务器之间进行通信,

从而完成以太网端口的认证过程。其中客户端与认证系统之间的通信采用EAPOL,认证系统与认证服务器之间的通信采用EAP/RADIUS。他们都是EAP协议的扩展应用[28]。下面简要描述EAPOL协议与EAPORADIUS协议。

2.4.1 EAPOL报文格式

EAPOL协议的报文格式如图2-4所示,其中:

图2-4 EAPOL报文格式

PAE Ethernet Type包含PAE使用的以太网类型值,802.1X分配的协议类型为

0X888E。

Protocol Version指定EAPOL发送方所支持的EAPOL协议版本号。

Packet Type指明当前EAPOL帧的类型。802.l x共定义了五种包类型:

1)EAPOL-Packet:认证信息帧,其值为0000 0000,用于承载认证信息;

2)EAPOL-Start:认证发起帧,其值为0000 0001,Supplicant和Authenticator

均可发起;

3)EAPOL-Logoff:退出请求帧,其值为0000 0002,用户可主动终止己认证状态;

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

4)EAPOL-Key:密钥信息帧,其值为0000 0003,支持对EAP报文的加密;

5)EAPOL-Encapsulated-Alert,其值为0000 0010,用于支持Alert Standard

Forum(ASF)的Alerting报文;

Packet Body Length指明“Packet Body”的长度。

Packet Body包含了该数据包所传输的数据。

2.4.2 EAPORADIUS报文格式

表2-3 EAPORADIUS报文格式

Authenticator(16字节)

Attributes[EAP packet]

认证系统和认证服务器之间通信,使用的是承载于其他高级协议之上的EAP报文,常用的是承载在RADIUS协议之上的EAP报文[29]。报文格式如表2-3所示。

1)Code用于标志报文类型,1字节;

2)Identifier用于标志会话,1字节;

3)Length是整个RADIUS报文的长度,2字节;

4)Authenticator用于验证回应的报文是否来自可信的对端,发送报文时,是一个

16节的随机数,发送应答报文时,是一个根据请求报文的Authenticator计算出

来的MD5散列值;EAP报文段在RADIUS报文中以属性的方式存储。 Length

2.5 802.1X认证流程

一个典型的认证会话流程如图2-5所示,所采用的认证机制为MD5-Challenge。

基于802.1X和DFW的网络安全研究及NAC系统的设计与实现

图2-5 802.1X认证流程

1)客户端向接入设备发送一个EAPoL-Start报文,开始802.1X认证接入;

2)接入设备向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来;

3)客户端回应一个EAP-Response/Identity给接入设备的请求,其中包括用户名;

4)接入设备将EAP-Response/Identity报文封装到RADIUS Access-Request报文中,发送给认证服务器;

5)认证服务器产生一个Challenge,通过接入设备将RADIUS Access-Challenge报文发送给客户端,其中包含有EAP-Request/MD5-Challenge;

6)接入设备通过EAP-Request/MD5-Challenge发送给客户端,要求客户端进行认证;

7)客户端收到EAP-Request/MD5-Challenge报文后,将密码和Challenge做MD5算法后的Challenged-Password,在EAP-Response/MD5-Challenge回应给接入设备;

8)接入设备将Challenge,Challenged Password和用户名一起送到RADIUS服务器,由RADIUS服务器进行认证:

9)RADIUS服务器根据用户信息,做MD5算法,判断用户是否合法,然后回应认证成功/失败报文到接入设备。如果成功,携带协商参数,以及用户的相关业务属性给用户授权。如果认证失败,则流程到此结束。

本文来源:https://www.bwwdw.com/article/bml4.html

Top