1、DHCP技术及其安全性的研究摘要由于可以方便的管理IP地址,动态的为网络中的客户端分配IP地址,进行网络配置,DHCP成为了网络中基础性的服务,在现代网络体系架构中被广泛应用。DHCP技术动态地为主机配置参数,可以有效的解决目前IP地址资源不足和无线网络用户移动性等问题,并能减轻网络管理员的工作量,减少手动网络配置的错误,使得IP网络地址的分配和管理变的容易,为用户上网提供了方便,但是对于客户端和服务器来说,DHCP本身没有权限控制机制,恶意用户便可以很容易地获得IP访问内部或外部网络,存在着很大的安全隐患。关键字:网络; DHCP; IP地址; 安全AbstractBecause of th
2、e easy to management IP address,dynamically allocated IP address for the client in the network,For network configuration,DHCP became the basic service in network,in the modern network system architecture is widely used.DHCP technology to dynamically configure the parameters for the host,can effectiv
3、ely resolve the IP address resource shortage problem and wireless network user mobility problem and so on,and can reduce the workload of the administrator,reduce the mistakes in manual network configuration,makes the allocation and management of the IP network address becomes easy,DHCP technology pr
4、ovides the convenience for the online user,But for the client and the server, DHCP itself has no access control mechanism,a malicious user can easily get the IP access to the internal and external network,There are a lot of potential safety hazard.Keyword: network,DHCP,IP address,safety第1章 绪 论1.1 研究
5、背景TCP/IP网络在Internet领域中占据的比重越来越大。计算机的普及,现代生活网络化、信息化的发展,使得网络已经成为人们沟通与交流不可分割的一部分。1.1.1 研究DHCP技术的重要性1. 缓解IP地址的缺乏在Internet网络规划中,现行采用的是IPv4(IP第四版,32bit的IP地址)的协议标准。由于IP地址资源日趋紧张,而IPv6(IP第六版,128bit的IP地址)尚未普及,采用DHCP服务动态的给客户端分配IP地址,大大提高了IP地址的利用率,有效缓解了IP地址紧缺的问题。2. 解决客户端经常移动的问题随着笔记本电脑的普及,大量的移动客户端入网时需要配置网络参数,这样使网
6、络具有了很强的动态性,在这种情况下,客户端就必须修改自己的IP地址,而如果使用DHCP服务,计算机将自动联系DHCP服务器并且取得新子网中的一个IP地址。3. 避免不必要的错误在常见的小型网络中,网络管理员基本上是采用手动配置IP地址的方法,而到了中大型网络,这种方法就不太适用了,特别是大型网络中。如果所有主机的IP地址都靠管理员的手工设置,并且必须配置的网络参数还包括子网掩码、网关地址、DNS地址,这种方式很容易出错,还会使网络中的IP发生冲突带来许多的不便,即使客户端不再使用该IP地址,该IP地址仍然被其占据不能被其它客户端使用。因此,为了解决手动分配IP地址方法存在的弊端, 引入了DHC
7、P技术。1.1.2 研究DHCP技术安全的必要性DHCP系统早在1990s就设计出来了,那个时期的互联网络数量相对来说很少, 因此DHCP本身基本没有安全性设计可言。随着互联网规模日益扩大,网络安全问题日益突出,DHCP系统也面临着严重的安全威胁,DHCP不仅运行于不具有安全性的UDP/IP 协议层之上,而且DHCP协议本身没有任何安全措施,一旦DHCP遭受攻击,整个DHCP服务覆盖的网络范围都将遭受无法估量的损失。DHCP安全是一个很重要的问题,它与DHCP的应用息息相关。1.2 论文研究内容1.2.1 DHCP协议及相关协议的研究首先是了解DHCP协议中所规范的为网络中的客户端动态地配置I
8、P地址和网络参数的过程。搜集目前应用DHCP协议的领域,分析DHCP服务器在与客户端交互信息的过程和为客户端配置的选项信息。研究在最新的应用领域中对DHCP的选项信息的定义和内容的扩展,以及有关DHCP方面的最新的技术动态。1.2.2 DHCP面临的安全隐患及解决措施查阅大量资料,了解网络中面临的威胁和网络安全的关键技术。结合DHCP工作原理和DHCP服务器与客户端交互的过程,分析在采用DHCP技术网络中,对DHCP服务器和客户端的网络威胁。针对这些威胁产生的原因及对网络的危害程度和其危害原理,根据DHCP服务器工作的特点, 研究对应的方法和策略。1.2.3 DHCP服务器容灾技术了解最新的容
9、灾技术,对比不同的容灾技术和方法进行详细比较,总结出不同的容灾技术对应的不同场合。研究DHCP服务器应用的范围,和工作特点,针对DHCP服务器的应用找出适合的方法和技术。在出现灾难或者意外时,为网络的畅通使用,DHCP服务器的容灾技术不仅仅是数据上的备份,还要在应用上保证为网络中的计算机提供连贯的IP服务,保证DHCP服务器配置文件和活动租约信息等所有数据的完整性和安全性。在发生故障时,备用DHCP服务器平滑的接替灾难中的DHCP服务器提 供正常的IP服务。1.3 论文结构章节安排第一章简要介绍了本文的研究背景、意义和研究的主要内容,最后还简单介绍了论文内容的安排。第二章介绍了DHCP协议,工
10、作原理及过程,DHCP客户端地址的申请和DHCP中继服务。第三章是本文的重点,主要研究DHCP常见的易受到的威胁,分析DHCP威胁因素,并针对这些威胁提出了主动检测,检查MAC地址,LANA系统,SPINACH方法和DHCP消息认证的方法,消除DHCP威胁结合的网络安全技术。第四章介绍容灾技术的概念和评测参数,研究实现DHCP服务器容灾的可行方法为DHCP服务器提供冗余服务器。第五章结束语, 总结论文的研究成果, 并展望后续的研究工作。第2章 DHCP技术2.1 DHCP概述2.1.1 DHCP的概念DHCP1的全称是Dynamic Host Configuration Protocol(动态
11、主机配置协议),它的两个主要组成部分是协议(用在DHCP服务器和客户端之间交流TCP/IP配置参数,协议分装在用户数据报协议UDP数据报中)和服务(用于管理DHCP客户端的请求和维护TCP/IP配置参数的数据库)。DHCP的目的是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。DHCP用于给多个客户端集中分配IP地址以及相关的配置参数,将TCP/IP的设置和IP地址统一起来管理,避免了不必要的地址冲突问题。常常用在众多计算机的网络管理中,从而减少了网络管理员手动配置地址带来的不便。 DHCP的前身是BOOTP2。BOOTP原本是用于无磁盘主机连接的网络上面的:网络主
12、机使用BOOTROM而不是磁盘启动并连接上网络,BOOTP则可以自动地为那些主机设定TCP/IP环境。但BOOTP有一个缺点:在设定前须事先获得客户端的硬件地址(MAC),而且,与IP的对应是静态的。换而言之,BOOTP非常缺乏“动态性”,若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。DHCP可以说是BOOTP的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;客户端则会使用从服务器分配下来的IP数据。与BOOTP比较起来,DHCP透过“租约”的概念,有效且动态的分配客户端的TC
13、P/IP设定,而且,作为兼容考虑,DHCP 也完全照顾了BOOTP Client 的需求。2.1.2 DHCP分配方式DHCP是基于C/S(客户端/服务器)模式的。这种模式下,根据DHCP协议,把DHCP服务器主机设计成提供初始化参数的主机,传递网络配置参数给需要的网络主机。DHCP协议支持三种IP地址分配方式2。第一种是自动分配(Automatic Allocation),一旦DHCP客户端第一次成功的从DHCP服务器端租用到IP地址之后,就永远使用这个地址。第二种是动态分配(Dynamic Allocation),当DHCP客户端第一次从DHCP服务器端租用到IP地址之后,并非永久的使用该
14、地址,只要租约到期,客户端就得释放(release)这个IP地址,以便给其它客户端使用,当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的IP地址。第三种是手动分配,客户端IP地址由网络管理员指定,DHCP协议仅用来向客户端传递指定的地址。如表2-1所示,列出了动态TCP/IP配置与手动TCP/IP配置的特点对比。表 2-1 DHCP动态TCP/IP配置与手动TCP/IP配置的特点对比动态TCP/IP配置手动TCP/IP配置确保网络中客户端得到的IP信息是合法的和可用的。使用不正确的IP地址可能会导致网络问题,无法访问网络资源。只配置服务器即可,避免多个用户使用相同IP地
15、址而产生的冲突。输入IP地址、子网掩码、默认网关、DNS(IP、MASK、GATEWAY、DNS)时可能会有输入错误或输入无效的IP地址,导致了通信无法常进行。能动态的设定IP地址之外,还可以将一些IP保留下来给一些特殊用途的机器使用。在每台客户端上手动输入IP 地址,耗时较多。2.1.3 DHCP端口号 DHCP协议报文使用UDP协议封装。DHCP服务器监听UDP端口号67,DHCP客户端监听UDP端口号68。DHCP服务器和客户端分别使用不同的端口而不是使用同一个端口的原因是,DHCP服务器的应答是可以广播的,使用不同的UDP端口号,可以确保只有客户端会接收应答消息。2.1.4 DHCP报
16、文1. DHCP报文的分组格式,如表 2-2。表 2-2 DHCP报文的分组格式链路层头IP首部UDP首部DHCP消息 14字节 20字节 8字节 548字节(max)2. DHCP消息格式,如表 2-3。表 2-3 DHCP消息格式op(1)htype(1)hlen(1)hops(1)xid(4)secs(2)flags(2)ciaddr(4)yiaddr(4)siaddr(4)giaddr(4)chaddr(16个字节)sname(64个字节)file(128个字节)options(可变长variable)op字段:operator,表示当前报文是客户端的请求还是服务器的应答, 为1(1=
17、BOOTREQUEST)时表示是客户端的请求, 为2(2=BOOTREPLY)时表示是服务器的应答。htype字段:hardware type,表示客户端的网络硬件地址类型,如htype为1,表示客户端的网络硬件地址是10MB的以太网类型。hlen字段:hardware length,表示客户端的网络硬件地址长度,通常对于以太网来说,硬件地址长度为6字节。hops字段: 表示当前的DHCP报文经过的DHCP中继的数目,客户端或服务器发出DHCP报文时, 此字段都初始化为0,每经过一个DHCP中继,此字段就会加1,此字段的作用是限制DHCP报文不要经过太多的DHCP中继,协议规定,当hops大于
18、4 (现在也有规定为16) 时,这个DHCP报文就不能再进行处理, 而是丢弃。xid字段:Transaction ID,事务ID,客户端每次发送DHCP请求报文时选择的随机数, 与服务器之间同步消息和消息的响应,用它来匹配服务器的相应报文。客户端会丢弃xid不匹配的相应的报文。secs字段:由客户端指定的时间,指的是开始地址获取和更新进行后的时间数,此字段一般没有多大意义,最初设计此字段是为了让DHCP服务器在繁忙时,优先处理此字段大的DHCP请求(因为此字段越大说明这个客户端等待的时间就越长)。flags字段:在BOOTP中此字段是保留不用的,在DHCP协议中也只使用了其左边的最高位,其格式
19、如表 2-4。表 2-4 flags字段 0 15B必须为0flags字段整个字段占16比特位,其中,最左边比特位被解释为广播响应标志位,所有其它比特位保留备用,必须被客户端设置为0,服务器和DHCP中继忽略这些比特位。当客户端不能接收单播的DHCP响应报文时,必须把广播响应标志位置为1,否则置为0。而DHCP服务器响应报文是广播还是单播,就将根据此广播响应标志位来判断。ciaddr字段:client ip address,表示客户端自己的IP地址。可以是服务器分配给客户端的IP地址,也可以是客户端已有的IP地址。此字段不为0的原则就是客户端能够使用此IP地址接收报文。DHCP服务器发现此字段
20、不为0时,可以直接将响应报文单播给客户端。yiaddr字段:your ip address,表示服务器分配给客户端的IP地址。当DHCP服务器响应客户端的DHCP请求时,将把分配给客户端的IP地址填入此字段。siaddr字段:server ip address,表示客户端获取启动配置信息的服务器IP地址,一般是TFTP服务器的IP地址。giaddr字段:gateway ip address,记录第一个DHCP中继代理的IP地址。当客户端发出DHCP请求报文后,如果网络中存在DHCP中继,则第一个DHCP中继转发整个DHCP请求报文后,就会把自己的IP地址填入此字段(随后的DHCP中继将不再改写
21、此字段,只是把hops加1)。DHCP服务器将会根据此字段为用户分配IP地址,并把响应报文转发给此DHCP中继代理,由DHCP中继代理再转发给客户端。chaddr字段: client hardware address,记录客户端的实际硬件地址内容。当客户端发出DHCP请求报文时,将把自己的网卡硬件地址填入此字段,DHCP服务器一般都会使用此字段来唯一标识一个客户端。而且此字段与前面的htype hlen字段必须一致。如当htype hlen分别为l和6时,此字段必须填入6字节的以太网MAC地址。sname字段:server name,记录客户端获取启动配置信息的服务器名字。此字段由DHCP服务
22、器填写,而且是可选的,如果填写,必须是一个以0结尾的字符串。file字段:file name,记录客户端的启动配置文件名。此字段由DHCP服务器填写,而且是可选的,如果填写,必须是一个以0结尾的字符串。options字段:是可变长选项字段,对于BOOTP协议,此字段为64字节协议,对于DHCP协议,此字段为64-312字节,当客户端需要更长时,可以与DHC服务器协商。此字段中包含了大量可选的终端初始配置信息和网络配置信息,如决定终端的IP特性配置信息,域名信息,标识终端的特殊信息,终端的默认网关IP地址,DNS服务器的IP地址,WINS服务器的IP地址,用户使用IP的有效租期等消息。正是因为有
23、了此字段,DHCP协议才能够给客户端提供大量的配置信息。 3. DHCP报文类型DHCP报文分为请求报文和应答报文共8种,其中请求报文分别是DHCPDISCOVER、DHCPREQUEST、DHCPNAK、DHCPDCLINE、DHCPRELEASE和DHCPINFORM应答报文是DHCPOFFER和DHCPDACK。消息类型及对应的功能如表 2-5所示。表 2-5 DHCP消息和功能说明类型字段DHCP报文类型功能1DHCPDISCOVER客户端进行广播以确定本地可用的服务器。2DHCPOFFER服务器应答客户端的DHCPDISCOVER消息。3DHCPREQUEST客户端发给服务器的消息,
24、作用有三个:从一台服务器请求提供的配置参数(此时客户端也就拒绝了其他服务器提供的参数);系统重新启动后, 客户端利用这个消息确认先前分配的网络地址是否仍然有效;为一个特定的网络地址延长租约。4DHCPDACK服务器发给客户端的配置参数,包括已提交的网络地址。5DHCPNAK服务器发给客户端的消息,告知客户端当前使用的网络地址无效或者租期已满。6DHCPDCLINE客户端发给服务器的消息,告知服务器此网络地址已经被使用。7DHCPRELEASE客户端发给服务器的消息,告知服务器客户端不再使用此地址,取消剩余租约。8DHCPINFORM客户端发给服务器的消息,仅要求本地配置参数,客户端已经配置好了
25、网络地址,不需要再发送网络地址了。2.2 DHCP工作原理及过程2.2.1 DHCP客户端状态DHCP客户端有九种状态,分别是:HALT,INIT,SELECTING,REQUESTING,BOUND,RENEWING,REBINDING,INIT-REBOOT,在DHCP系统的实现中可以根据实际需要进行裁减,不必实现全部的状态。其中,HALT是还未初始化的停止状态;INIT是初始化完成即将执行DHCP协议的状态;SELECTING是选择服务器提供的offer的状态;REQUESTING是客户端向服务器请求分配IP地址和相关配置信息的状态;BOUND是客户端根据服务器提供的配置参数配置完成的状
26、态;RENEWING是客户端续约的状态;REBINDING是客户端重绑定的状态;INIT-REBOOT是客户端重启前的初始化状态;REBOOTING客户端重启的状态。2.2.2 DHCP客户端地址首次申请DHCP客户端接入网络时,会进行首次地址申请3。申请过程如图 2-1所示。图 2-1 客户端首次地址申请DHCP客户端首次地址申请可以分为四个阶段4: 发现阶段,提供阶段,选择阶段,确认阶段,各过程中DHCP服务器和客户端的交互如下:1. 发现阶段客户端寻找服务器的阶段。客户端接入网络时,处于初始化状态,客户端并不知道服务器的IP地址,它会向网络发出一个DHCPDISCOVER报文来寻找DHC
27、P服务器。由于客户端本身没有IP地址,也不知道DHCP服务器的IP地址,因而以0. 0. 0. 0作为源地址,255. 255. 255. 255为目标地址发送IP地址租用请求,向网络进行广播DHCPDISCOVER报文,其中DHCPDISCOVER报文包含客户端的MAC(Media Access Control,媒体访问控制,通称网卡硬件地址)地址和计算机名称,以便让DHCP服务器知道是谁在发送。这一过程也被称为IP租约请求(IP Lease Request),即客户端向未知的DHCP服务器请求一个IP地址。发现阶段客户端的处理过程如下图 2-2所示:图 2-2 发现阶段客户端的处理2. 提
28、供阶段服务器向客户端提供网络配置参数的阶段。这个阶段在网络中接收到客户端DISCOVER报文的DHCP服务器就会做出响应,提供可用的IP租用地址。如果DHCP地址池中有足够的IP地址, 并且能够确认该IP地址对于该客户端所在的网络是一个合法的地址,那么这个DHCP服务器就会对这个请求回复一个DHCPOFFER消息,其中包含了该客户端的MAC地址,提供的IP地址,子网掩码,租期和提供该DHCP服务的服务器(Offering DHCP Server)的地址。这一个过程也被称为提供IP租约(IP Lease Offer),此时客户端还不能使用该IP地址。提供阶段服务器的处理如图 2-3所示图 2-3
29、 DHCP提供阶段服务器的处理3. 选择阶段客户端选择某台DHCP服务器提供的网络配置参数的阶段。如果客户端收到网络上多台DHCP服务器的响应,但它只选择接收到的第一个DHCPOFER报文,然后它以广播形式发送一个DHCPREQUEST报文作为响应,表示已接收其中某一个DHCP服务器提供的IP,该消息中包含向它所选定的第一个OFFER报文中的网络配置参数和它选择的DHCP服务器的消息。这样,其他的服务器收到整个消息后就会收回它们的OFFER,并随时准备向下一个客户端提供IP地址。这一过程也被称为客户端选择IP租约(IP Lease Selection)。在这一过程中,客户端还会向网络发送一个A
30、RP消息,查询网络上面有没有其它机器使用该IP地址,如果发现该IP已经被占用,客户端则会发送一个DHCPDECLINE消息给DHCP服务器,拒绝接受其DHCPOFFER,并重新发送DHCPDISCOVER信息。事实上,并不是所有DHCP客户端都会无条件接受DHCP服务器的OFFER,尤其是主机上有安装其它TCP/IP相关的客户软件。客户端也可以用DHCPREQUEST向服务器提出DHCP选择,而这些选择会以不同的号码填写在 DHCP Option Field 里面:换一句话说,在DHCP服务器上面的设定,未必是客户端全都接受,客户端可以保留自己的一些TCP/IP设定,而主动权永远在客户端这边。
31、4. 确认阶段DHCP服务器确认所提供的网络配置参数。当DHCP服务器接收到客户端的DHCPREQUEST消息之后,便向客户端发出一个DHCPACK响应,包含它所提供的IP地址及其他配置信息的DHCPACK确认报告,以确认IP租约的正式生效,也就结束了一个完整的DHCP工作过程。这一过程叫确认IP租约(IP Lease Acknowledgement)。确认阶段服务器的处理如下图 2-4所示。图 2-4 DHCP确认阶段服务器的处理确认阶段客户端的处理如下图 2-5所示:图 2-5 DHCP确认阶段客户端的处理2.2.3 DHCP客户端再次登录与续约机制首次地址申请“租约”形成后,DHCP服务
32、发挥作用,在不同的“租用期限”将会经历以下几个阶段5重新登录:它将尝试更新上次关机时拥有的IP租用,即客户端直接发REQUEST请求报文,该REQUEST报文和第一次的REQUEST报文不同之处在于没有DHCP服务器的消息,所有的DHCP 服务器都会收到该报文。如果先收到ACK报文,则继续使用现有IP地址,并更新其租期;如果先收到NAK报文,则发送DISCOVER报文,开始新一轮的IP租用过程;如果未收到任何服务器的ACK或NAK报文,客户端将尝试联系现有IP租用中列出的缺省网关,如果联系成功且租用尚未到期,客户端则认为自己仍然处于现有IP租用时的相同子网上(没有被移走),继续使用现有的IP地址。如果未能与缺省网关联系成功
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1