首页 > 范文大全 > 正文

基于主机标识的802.1x认证协议的安全性改进

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于主机标识的802.1x认证协议的安全性改进范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:针对802.1x认证不能防止IP和MAC地址同时被盗用的缺陷,对该协议作改进。由于IP地址和MAC地址均可被修改,故不能唯一地标识一台主机,然而用户上网浏览网页或传输文件等都离不开自己的硬盘,硬盘序列号是可以读取且不能修改的,将用户的硬盘序列号作为其唯一的标识加入到认证方式中就可以做到防止非法盗用IP和MAC地址上网或进行攻击活动。

关键词:网络安全;802.1x认证;IP地址;MAC地址

中图分类号:TP393.08文献标识码:A

1 引 言

局域网正在广泛地应用于学校、企业、居民小区等各种地方,而随着网络应用范围的扩大和提供的网络服务不断增多,局域网的安全问题变得越来越突出。人们迫切希望提高局域网的安全性,对局域网接入用户以及得到的服务进行控制。802.1x 协议是IEEE2001年3月通过的标准草案,是当前比较流行的局域网用户接入控制协议。

在大学的校园网中,普遍都采用802.1x认证体系。它给每一个注册的用户分配一个IP地址,用户名和密码,用802.1x进行认证和计费。但由于是采用基于主机IP地址的计费方式,所以有大量的IP盗用现象。IP盗用就是指有主机盗用合法用户的IP地址进行联网通信的现象。

为了防止IP盗用和利用盗用的IP地址进行欺骗,校园网管理中心一般采用IP地址与用户的网卡物理地址绑定进行认证。然而,这种方式也并不可靠,之所以不可靠,是因为MAC地址是可以修改的。既然MAC可以修改,绑定MAC地址也变得毫无意义。

如果同时把主机的IP地址和MAC地址都改成和注册的合法用户一样,那么该主机也可以上网,这就是IP-MAC对的盗用。主要有下面两种情况:①当注册用户不上网时,如果另一台主机将其IP地址改成和注册用户的一样,并且同时将其MAC地址也改成和该注册用户的MAC地址一样,如果再得知其用户名和密码,就可以盗用别人的IP用客户端进行认证上网。更糟的是,这样还可以别人的名义进行攻击其他主机而不会被发现真正的元凶。②注册用户认证后,用集线器或交换机连在一起的主机将其IP地址和MAC地址改成和注册用户一样,从而可以和注册用户一起上网。

进行IP或IP-MAC盗用一方面给运营商带来了损失,另一方面盗用者可以做其他的非法的活动而不会被发现。为了防止盗用带来的的危害,本文对802.1x协议作了一些改进,首先让客户端自动读取硬盘的序列号并且作为主机的标识加入到认证信息中,同时也将硬盘序列号加密后加到帧的头部(假设用DiskID表示该字段),从而当交换机从端口接收到帧时,可以根据DiskID字段进行过滤,只允许合法的帧通过。这样就可以防止非注册用户上网,也就不可能冒用别人的IP地址进行攻击活动。

计算技术与自动化2007年6月第26卷第2期谢向文等:基于主机标识的802.1x认证协议安全性改进

2 802.1x 认证

2.1 关于802.1x认证协议

随着人们对网络边缘安全的日益重视,802.1x认证正在逐渐被广大用户接受并使用,尤其是在产业园区和高校宿舍区。

802.1x的边缘安全是通过启用802.1x功能的交换机来实现的。802.1x是基于端口的认证策略(这里的端口可以是一个实实在在的物理端口也可以是一个就像VLAN一样的逻辑端口,对于无线局域网来说一个“端口”就是一条信道)。802.1x的认证的最终目的就是确定一个端口是否可用。其每个物理端口内部又分为受控端口和非受控端口,非受控端口只负责处理认证数据包,受控端口负责处理业务数据。登陆前,用户只能够通过非受控端口发送和接收认证数据包(802.1x格式),而其他格式的数据包则无法通过受控端口;登陆后,受控端口对用户开放,接受数据的传输。

认证时,首先客户端软件发送请求,交换机把接收到的认证信息传递给中心的认证服务器。认证服务器负责信息的核对(比如用户名、密码、MAC、IP等的核对)。认证结束后,除了每隔一段时间处理一次在线确认数据包外,用户的正常网络应用与802.1x没有任何关系,这就是所谓的认证流和业务流的分离。

2.2 目前在802.1x认证方式下防止盗用的主要手段

由于采用802.1x普遍存在IP盗用的现象,现在一般会做一些改进。最常用的方法是:将IP地址与MAC地址绑定,或者是将IP地址,MAC地址以及端口号进行绑定。

通过禁止所有交换机的MAC地址自学习功能,并在认证通过时由认证服务器下发MAC绑定指令给相关的交换机,避免用户自行在接入端口下接私人的HUB,使用一台计算机通过认证,多台计算机共同上网。

但是这样也不能完全解决问题。如果将一台主机的IP地址改成和一个注册用户的一样,并且同时将其MAC地址也改成和该注册用户的MAC地址一样,从而可以绕过此方法进行通信。

2.3 在802.1x认证方式下绑定MAC地址和IP地址的缺陷

2.3.1 MAC地址的可修改性

根据IEEE组织的规定,网络适配器的MAC地址应该是全球唯一的,其目的是保证在组建网络时,选用具有任意MAC地址的网络适配器,均不会造成物理地址的冲突。虽然MAC地址存储在EEPROM中并且唯一确定。但是,在操作系统实现时,系统一般并不是每收发一帧,都直接从EEPROM中读取MAC地址,而是在内存中建立一块缓存区,系统在这块特定的缓冲区中获取MAC地址作为发送报文的源地址。这样,用户就可以通过操作系统修改实际发送的报文中的源MAC地址。在Unix系统中, 网络接口的物理地址是保存在与某一接口对应的网络接口的数据结构中。正由于MAC地址可修改,才有可能出现IP地址、MAC地址成对被盗用的现象。

至于修改一台主机的MAC地址,可以很容易实现。例如,要将主机A中网卡的MAC地址,IP地址修改成被盗用设备―主机B的MAC地址,IP地址。首先,在控制面板中选择“网络和拨号连接”,右击对应网卡,选择属性,在属性页的“常规”页中点击“配置”按钮。在配置属性页中选择“高级”,再在“属性”栏中选择“Network Address”,在“值”栏中选中输入框,然后在输入框中输入被盗用的主机B的MAC地址,MAC地址就这样修改成功了。然后再将IP地址配置成被盗用的主机B的IP地址。此外,通过修改注册表,或者一些专门的修改工具都可以随意地修改主机的MAC地址。2.3.2 同时盗用IP地址和MAC地址上网的可行性

目前,网络中普遍使用TCP/IP协议族,网络应用程序一般都是运行在TCP或UDP之上。TCP和UDP协议还包括了通信双方的端口号,该端口号一般是按特定规则随机生成的16位二进制数,这两个二进制数相等的概率微乎其微。因此,即使两台主机的IP地址和MAC地址都相等,但由于端口号不相等,主机会把端口号不匹配的报文丢弃。而用户层感觉不到TCP/UDP层的这种处理,所以用户可以正常地使用服务,而不会受地址盗用的影响。

另外,如果用户采用的是自己或应用程序设置的端口号,这时,两台有相同的IP地址和MAC地址的主机同时启动了两个端口号相同的应用,会发生什么情况呢?这时有两种可能。当下层使用的是UDP协议时,会发生干扰。当下层使用的是TCP协议时,由于TCP是一种面向连接的协议,TCP协议给每个报文生成一个32位的序列号,第一个报文序列号是随机产生的,以后每个报文的序列号依次加1,同时TCP使用了一个接受窗口,其大小是16位。由于接收窗口的最大值是2,而序列号的最大值是2,因此,容易得知一台主机期望接收的报文的序列号正好也在另外一台主机的接收范围之内的概率是1/2,这是一个小概率事件,完全可以被忽略,所以此时可以认为盗用和被盗用主机之间不会有干扰。

3 在802.1x基础上采用硬盘序列号标识的认证方式

3.1 关于硬盘序列号

由于IP和MAC都可以改变,都不能用来作为用户端的唯一标识。网络通信最终要用操作系统,而操作系统又在硬盘上,因此可以把一个网络终端看成存储操作系统的那块硬盘。对于硬盘来说,其序列号是厂家为了区别产品而设置的,是唯一的,可读的,具有唯一性和恒定性,是一个准确的终端标签。一个盘序列号的唯一性和恒定性有很多应用,例如,防止软件的非法拷贝,在注册的时候将软件产品号和硬盘序列号绑定起来,使得一个软件在一台机器上注册后就不能在其他机器上注册。在安装过程中可以将该硬盘序列号绑定起来,使得只能在该硬盘上运行,而且安装文件也只在安装的过程中与硬盘序列号绑定使得在其他机器上不能安装。这样就做到了一个软件只能在一台机器上使用。

3.2 硬盘序列号的获取

在客户端加以修改,使它可以读取用户的硬盘序列号,并且把这个序列号和用户名、密码一起作为认证信息发送给服务器请求认证。硬盘序列号读取模块使用ATA/APAPI的IDENTIFY DEVIC指令。ATA/APAPI是国际组织T13起草和的IDE/UDMA硬盘及其他可移动存储设备与主机接口的标准,至今已经到了ATA/APAPI-7版本。该接口标准规定了IDENTIFY DEVICE指令可以成功地获得主机的硬盘序列号。

3.3 以硬盘序列号作为标识的方法在防止盗用中的应用

3.3.1 加入到认证信息中

用户申请帐号后的第一次上网时,认证服务器可以从认证消息中获得用户的硬盘序列号,然后把它保存在服务器的数据库中。这样,不是注册用户的主机想进行认证时,由于客户端读取的硬盘序列号与服务器中保存的不同,认证就不能通过。

3.3.2 在帧头增加新的字段以存储DiskID

要在客户端读取用户系统所在硬盘的序列号,加入到认证信息中发给认证服务器,并且在发出的每一帧的头部加一新的字段DiskID,使得交换机可以根据该字段进行过滤,需要在客户端,设备段和认证服务器段都做一些改变。

1)客户端需要实现三个功能:a.读取硬盘序列号;b.将硬盘序列号加密后(除了第一次外)作为认证信息之一发给认证服务器;c.将DiskID字段加到每一帧的头部(如图1,图2),Disk字段是将序列号字符串经MD5加密后的16字节密文,并在DiskID字段的前面加一个2字节的Flag标志字段,此字段的值固定为0x0000,用来与传统帧的类型字段相区别,表示此帧是带有DiskID字段的新帧格式。

2)在设备段也就是交换机端,只需要改变它的配置就可以了。现在很多交换机都支持基于应用的包过滤功能,可以对交换机输入帧前80字节范围内的64字节任意域设置过滤规则。只要在交换机的每一个端口设置对帧头部的DiskID域进行过滤,DiskID不匹配的帧不允许通过该端口,而不再需要将MAC 和IP地址绑定,就可以防止非法帧的传播,非法用户就不能再盗用别人的IP和MAC上网以及进行攻击活动了。

3)在认证服务器端需要在数据库中加入注册用户的硬盘序列号作为其认证信息之一。

3.4 使用硬盘序列号的可行性

也许有人会提出,由于硬盘序列号关系到主机的隐私,获取用户的硬盘序列号是否合理。但是,由于我们所采取的使用方式及加密方法,使得这个措施是可行的。首先,我们只是在内网,特别是在大学校园网中采取这一方法,并且序列号只是被加在帧头里面,转发到外网之前会被去掉,所以用户不用担心会泄露到外网中。其次,采用MD5对硬盘序列号进行加密,数据帧不会由于被窃听到而泄露其硬盘序列号,用户的硬盘序列号只是被认证服务器的管理员知道。最后,在使用方愿意申请用户之前让他先了解关于要读取硬盘序列号这个问题。

4 总结

本文分析了802.1x在实际使用中(主要针对内网和校园网)存在的缺陷和问题,并且针对它的不足对802.1x协议作了一些改进。由于MAC地址是可以改变的,而硬盘序列号是唯一的且不可更改,通过把注册用户的硬盘序列号作为该用户的标识,加入到认证信息中一起发给认证服务器进行认证,同时将它加密后加到帧的头部,在交换机端口设置对DiskID的过滤规则,而不再需要对MAC地址和IP地址进行绑定,就可以有效地防止一些盗用IP地址 和MAC地址的情况。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。