APP下载

使用DK机制的动态地址分配安全认证方法*

2017-03-16张富强吴冬冬

计算机与生活 2017年3期
关键词:字段IP地址报文

张富强,陈 琳,吴冬冬

国防科学技术大学 计算机学院,长沙 410073

使用DK机制的动态地址分配安全认证方法*

张富强,陈 琳+,吴冬冬

国防科学技术大学 计算机学院,长沙 410073

动态主机配置协议(dynamic host configuration protocol,DHCP)动态管理分配IP地址,提升地址的使用率,得到了广泛的使用,但是由于该协议安全机制薄弱,致使其潜在的安全漏洞如非法DHCP服务器、Mac地址伪装、重放攻击、DoS攻击等日益凸显。提出了基于DK机制的安全认证方法(security authentication model based on dynamic key,DK_SAM),该方法结合系统当前时间计算一次性密钥,并用该密钥Hash计算消息认证码,最终DHCP实体通过验证自定义Option180中的认证码达到安全认证的目的。实验表明,DK_SAM方法在保证安全特性的同时具有较高的性能。

动态主机配置协议(DHCP);安全认证;安全漏洞;DK_SAM

1 概述

动态主机配置协议(dynamic host configuration protocol,DHCP)作为最有用的、使用最广泛的网络协议之一,它的提出不但方便了网络管理员对IP地址的分配管理和用户对网络IP地址的使用,而且还解决了IPv4网络地址不足的一些问题(DHCP采用串行重用IP地址机制,提升IP地址的重用率)[1]。随着互联网的发展和网络终端设备数量的增加,尤其是个人移动终端设备的广泛使用,DHCP协议也得到了充分的应用,但是由于该协议在被提出时并未考虑安全问题,使得DHCP安全缺陷越来越突显。

DHCP主要作用是集中地管理、分配IP地址,使网络环境中的主机动态获得IP地址、Gateway地址、DNS(domain name system)服务器地址等配置信息,并能够提升地址的使用率。DHCP设计之初网络安全问题并不严重,因此协议安全没有受到人们的关注。随着互联网的发展,各种网络安全问题不断发生,无安全机制的DHCP也成为攻击的对象或者被用作攻击的工具[2]。DHCP安全认证包括实体认证和消息认证,如果没有实体认证,客户端和服务器就不能验证对方身份的真实性和有效性。这样一方面可能会导致非法用户获得并使用IP地址及相关配置信息,从而使用网络资源;另一方面也可能会使得伪DHCP服务器提供恶意IP地址和网络配置参数,进而达到网络攻击的目的。因为DHCP消息是明文传输的,而且没有消息认证,客户端和服务器并不能识别被攻击者篡改的或者重放的消息,攻击者从而达到攻击的目的。由于协议缺乏安全认证机制而导致的安全问题包括Mac地址伪装、重放攻击、DoS(denial of service)攻击和中间人攻击等[3]。为了解决这些安全问题,有必要也必须对DHCP添加认证技术。DK_ SAM(security authentication model based on dynamic key)方法通过采用OTP(one-time password)机制[4],对每个DHCP报文消息添加自定义的包含消息认证码的认证选项,其中消息认证码是通过一次性密钥和消息体一起Hash产生;最后DHCP客户端和DHCP服务器通过验证消息认证码进行消息认证和实体认证。DK_SAM方法实现了安全认证,而且采用的是一次性动态密钥,因此能有效地防止Mac地址伪装、重放攻击、DoS攻击等。

本文组织结构如下:第2章概述相关研究;第3章介绍基于OTP机制的DHCP安全认证方法;第4章是实验验证与结果分析;第5章是总结与展望。

2 相关工作

目前广泛使用的DHCP协议其前身是BOOTP(Bootstrap protocol),最早定义在RFC1531中,其后又在RFC2131[5]中做了更详细的定义并一直使用至今。DHCP协议是采用客户端/服务器模型,服务器负责分配IP地址和网络配置参数信息给客户端,客户端请求IP地址,然后使用服务器分配的IP地址和相关参数进行网络活动。其中网络配置参数包括子网掩码、默认网关、DNS服务器和租约时间等,也正是因为包含这些重要信息,可能导致攻击者捕获、修改、重放DHCP报文给DHCP客户端,从而进行中间人攻击、流量分析、网络钓鱼等。由于协议设计之初只是为了解决IP地址分配问题,并未考虑安全问题,但是后来随着其安全漏洞的出现,也就有了RFC3118[6]的定义和其他相关安全研究。

RFC3118中定义了令牌认证和延迟认证两种认证方法,并且定义了认证选项的格式。令牌认证只是提供简单基本的实体认证,没有消息认证,令牌泄露或者报文被拦截分析可能会使非法客户端或服务器伪装成合法者。延迟认证是基于消息认证机制来实现消息认证和实体认证,该方法虽然保证了安全认证机制,但是存在密钥管理问题、域间认证问题和拒绝服务攻击问题。

文献[7-8]提出了两种方法SDDC(secure DHCPwith digital certificates)和SDSS(secure DHCP with shared secrets)。这两种方法都要求服务器发送其数字证书,但是作者并没有提到怎么传输数字证书。如果证书作为DHCP消息选项传输,则会超过选项的长度,因为选项的最大长度是255 Byte。并且作者只是使用C#语言在Visual C#2010平台上模拟这两种方法,并没有真正实现基于这两种方法的DHCP协议。

文献[9]提出了基于RFC3118认证思想和数字证书的认证方法,可以实现消息认证和实体认证。该方法中DHCP客户端和服务器必须要与可信的第三方服务器通信。额外的通信消耗会大大降低DHCP的使用效率和灵活性,用户的上网体验质量也会下降。由于网络最大传输单元的限制,作者还提出要分片传输数字证书。相比延迟认证,该方法采用了非对称加密算法,虽然密钥长度比较长,但其安全性却比对称加密要好。

文献[10]提出使用Kerberos V和RFC3118定义的认证选项的格式对DHCP消息进行认证。为了实现消息认证和实体认证,DHCP客户端和DHCP服务器必须提前从Kerberos服务器得到会话密钥,然后使用该密钥对DHCP消息计算其校验和,计算结果作为消息认证选项的消息认证码。该方法的主要缺点是客户端必须提前从Kerberos系统中申请服务,服务器也必须与Kerberos服务器交互并获得客户端的密钥,这样就产生了大量的通信消耗。

还有一些研究者从密钥管理方面入手提高协议的安全性能。文献[11-13]提出使用随机数和客户端与服务器共享密钥,或者随机数和前一个会话密钥,来为每一个DHCP消息产生会话密钥,这种方法可以有效地降低重放攻击的几率。作者并没有通过实验验证进行性能分析。文献[14-15]采用公钥认证和预共享密钥认证,来解决无线网认证问题和密钥更新问题。但是作者都没对提出的方法进行实现和验证。

3 基于OTP机制的DHCP安全认证方法DK_ SAM

3.1 相关定义

定义1 DHCPDiscover报文:用于发现DHCP服务器并请求IP地址。DHCP客户端发送DHCPDiscover广播报文以发现DHCP服务器,并请求其分配IP地址和网络配置参数。

定义2 DHCPOffer报文:用于响应客户端请求,并提供IP地址和网络配置参数。DHCP服务器收到DHCPDiscover请求报文,会选择一个未被分配的IP地址分配给请求客户端使用,服务器将IP地址和相关配置信息存储到DHCPOffer报文中,并发送给客户端。

定义3 DHCPRequest报文:用于请求DHCP服务器提供的IP地址。DHCP客户端选择第一个DHCPOffer报文,并使用报文提供的IP地址和配置信息,然后发送DHCPRequest广播报文宣告其所选择使用的IP地址。

定义4 DHCPAck报文:用于回应DHCP客户端的请求消息,确认其可以使用分配的IP地址。DHCP服务器收到DHCPRequest报文,判断是否是自己分配的IP地址,如果是,并且允许DHCP客户端使用该IP地址,就发送DHCPAck报文给客户端,否则发送DHCPNak报文。

定义5消息认证码(message authentication code,MAC):用于验证客户端和服务器的身份和报文消息的完整性。

定义6服务器的密钥Ks:用于计算产生客户端密钥,服务器为客户端分配的密钥为Key。

定义7系统当前时间currentTime:一次性密钥的计算参数之一,单位为秒;误差时间ΔT,单位为秒,其中ΔT∈{0,1}。

定义8服务器与客户端之间进行认证的密钥Kcs:客户端计算Kcs为Hash(currentTime+Key);服务器计算Kcs为Hash(currentTime+ΔT+Key)。其中Key根据Hash(client_id+Ks)计算得到,client_id是客户端唯一标识。计算Kcs使用的Hash算法是Option中Algorithm字段中的值。

定义9 DHCP报文头字段:chaddr记录客户端Mac地址;hops记录DHCP报文经过的DHCP中继代理的个数;giaddr(gateway ip address)记录第一个DHCP中继代理的IP地址。

3.2 DK_SAM方法

3.2.1 DK_SAM方法安全策略

如果要解决DHCP协议的漏洞,就必须对协议添加认证选项,也可以使用RFC3118定义的认证选项,从而实现消息认证和实体认证。从现有的研究和DHCP协议本身的限制考虑,本文设计的安全认证方法采用以下设计原则:

(1)不修改原DHCP协议,比如对报文加密或引入新的状态(DHCP协议采用状态机驱动)。这样就不会造成与原协议兼容性问题,产生使用的局限性。

(2)不需要与第三方服务器交互,比如RAIDUS、Kerberos V服务器。这样就不会产生额外的通信消耗,并且不会降低DHCP协议的灵活性和高效性。

(3)认证方法采用比较灵活的模块形式,认证模块可以很方便地开启和关闭。认证模块必须能验证请求,并添加认证消息回应请求,没有通过认证的消息不予回应,而通过认证的消息才会进行处理,然后回应。

(4)自定义的选项必须采用CLV(code length value)格式,以保证和原DHCP协议Option格式相同,并保证不会超过255 Byte的选项长度,而且DHCP报文不能分割,并且长度最大只能1 236 Byte(IP头20Byte,UDP头8 Byte,DHCP消息头236 Byte)。

3.2.2 DK_SAM方法设计

DHCP协议Option字段Code码的长度为1 Byte,可以表示255个不同的Option。本文采用自定义的Option格式,使用未被使用的Code码180,其格式如图1所示。

Fig.1 Format of custom Option图1 自定义Option格式

Algorithm字段表示消息认证码具体采用的是哪种Hash算法,1表示是MD5算法,2表示是SHA-1算法,该字段还可以扩展一些其他Hash算法。Authentication字段表示消息认证码MAC,用于消息认证和实体认证。

采用DK_SAM方法客户端和服务器之间的报文交互流程如图2所示。对于客户端密钥Key的处理有两种方式可以选择:(1)将Key保存到服务器端的数据库中,主键可以为客户端的唯一标识,比如Mac地址,客户端私密保存该密钥;(2)服务器采用一定的算法,比如Hash(client_id+Ks),client_id为客户端唯一标识(客户端Mac地址或者组合标识,通过报文头chaddr字段得到Mac地址值以及flag字段得到客户端标识),最后为客户端分配Key。采用第二种方式,服务器就不需要记录客户端Key,服务器直接根据请求报文中客户端的唯一标识计算Key值。客户端Key的两种分发方法,本文都采用带外管理机制进行处理。对于DK_SAM方法的实现是采用第二种方式进行设计。

Fig.2 Interaction process between client and server图2 客户端和服务器之间的交互流程

消息认证码MAC是通过Hash(DHCP消息+Kcs)计算得到的,Hash算法是自定义Option180中Algorithm字段所使用的算法,而Kcs是通过Hash(currentTime+Key)计算得到的。因为客户端在计算MAC时hops和giaddr字段的值均为0,所以服务器计算MAC时必须将DHCP报文头hops字段和giaddr字段的值设为0。服务器收到消息时的系统时间和客户端发送时的时间有误差(网络传输时间或者网络延迟),因此服务器验证DHCPDiscover的Option 180中MAC时计算Kcs=Hash(currentTime+ΔT+Key),其中Kcs为一次完整请求或者更新租约所使用的密钥。因为DHCP客户端在发出IP租用请求的DHCPDiscover广播包之后,将花费1 s的时间等待DHCP服务器的回应,如果1 s没有收到服务器的回应,它会将这一广播包重新广播4次[5]以2、4、8和16 s为间隔,加上1~1 000 ms之间随机长度的时间),所以客户端与服务器时间误差ΔT应设置为1 000 ms之内,即取值为{0,1}。客户端和服务器系统必须保持时间同步,因此在进行客户端程序安装时进行系统时间设定,而后通过时间同步机制进行时间同步。DK_SAM方法必须保证客户端和服务器秒级的时间同步,因此用户入网后不应修改系统时间,否则不能通过服务器认证,或者手动修改为标准时间。

非法客户端或伪装合法DHCP客户端Mac地址的客户端没有DHCP服务器分配的Key,其认证Option180中的MAC根本就不会通过开启认证模块的DHCP服务器的认证。伪DHCP服务器因为不能正确计算产生客户端Key,所以同样其回复的消息不能通过客户端认证模块的认证。因为攻击者很难在有效的时间内对一次性密钥破译,并且其参数的随机性保证了密码的不可预测性,所以具有一次性密钥安全特性的DK_SAM可以有效地阻止密码分析攻击。除此之外,使用OTP机制的DK_SAM方法可以有效地阻止重放攻击(每次客户端发送DHCPDiscover报文都会使用结合系统当前时间计算的Kcs生成消息认证码MAC)。为了防止因为攻击者发送大量DHCP报文消耗DHCP服务器的计算资源而造成的DoS攻击,DHCP服务器程序采用一定策略限制DHCP客户端在一定时间内请求IP地址的次数。

DK_SAM认证方法的DHCP服务器认证模块包括两方面的功能:(1)对到来的DHCP请求消息进行验证;(2)对DHCP服务器给予客户端的回应,添加含有MAC的自定义Option180。对DHCP消息验证的核心代码如下所示。

其中verify函数主要对packet中Option180字段的Mac值和Hash(packet+Kcs)的值进行对比,如果相等则认证通过。服务器发送回应报文之前首先通过认证模块对报文添加Option180,其对应的伪代码如下所示。

4 实验验证

本文设计并实现了DHCP协议的客户端和服务器,测试环境使用的是国防科技大学网络与网络安全实验室,具体的实验拓扑如图3所示。

作者将开发的DHCP服务器程序运行在实验室的一台电脑上作为S_DHCP服务器,将客户端程序分别部署在不同的计算机上进行测试。实验室的计算机系统都自带标准DHCP客户端程序,并且将进行实验的PC1和PC4等计算机的系统设置为自动获取IP地址。

首先,测试了S_DHCP服务器性能和DHCP服务器程序与普通DHCP客户端通信效果。当DHCP服务器程序不开启认证模块时,PC1和PC4等计算机都能得到S_DHCP服务器的回应,进而使用服务器分配的IP地址进行相互通信。

Fig.3 Experiment's network topology图3 模拟实验拓扑图

其次,将开发的客户端程序分别运行在PC1和PC4计算机上进行测试,PC1和PC4都能得到S_ DHCP服务器的回应。从PC1上收集了客户端程序与S_DHCP服务器交互的报文消息,其中的消息包括DHCPDiscover、DHCPOffer、DHCPRequest和DHCPAck。记录客户端从发送DHCPDiscover报文到接收到DHCPAck报文之间的时间,并且对开启认证模块和关闭认证模块不同情况分别进行了分析和对比,结果如图4所示。

Fig.4 Authentication performance comparison图4 认证性能对比

从图4中可以看出,DK_SAM方法在使用效率上性能是较高的。在客户端程序中使用了一个定时器,每隔10 s客户端就会发送一次请求,最后收集了30次的数据并取平均值,对比结果如表1所示。

从实验结果分析,DK_SAM方法效率上并没有因为加了认证而受到很大的影响。在用户的实际使用过程中,相对于几毫秒的时间损耗,协议的安全性得到较大提高是非常值得的。

最后,将S_DHCP服务器的认证模块开启,验证使用认证模块的DHCP服务器与不使用认证模块的客户端的通信表现。当服务器开启认证模块时,实验室使用系统自带DHCP客户端程序的计算机都不能接收任何S_DHCP服务器的回应。因为使用系统自带的DHCP客户端程序,并没有添加认证Option180,服务器接收到的请求消息是不能通过认证的,只有作者自己开发的DHCP客户端程序才能接收到消息。

Table 1 Average time of 30 experiments表1 实验30次的平均时间

5 结束语

本文分析了DHCP协议的安全漏洞,并讨论了现有的一些安全DHCP协议和它们的不足,在此基础上提出并实现了基于OTP机制的DHCP安全认证方法DK_SAM,并通过实验验证了方法的性能和效率。通过对实验结果分析,DK_SAM方法不但能保证DHCP协议的安全,而且具有较高的性能。后续研究工作是对DHCP中继功能的安全增强。

[1]Li Lin.Research of DHCP security mechanism[D].Lanzhou: Lanzhou University,2011.

[2]He Zhiyong,Shen Subin,Mao Yanqin.DHCP protocol optimization research[J].Computer Technology and Development,2010,20(9):125-132.

[3]Qu Yongying.On the DHCP network protocol security problems and solutions[J].Computer Knowledge and Technology, 2009,5(15):84-92.

[4]OTP[EB/OL].[2015-12-10].http://baike.baidu.com/link?url=H-sZe-uruIeYYh-NBB2I17IPrN0Sg0Vp_1tKRFY3J4xGB6-uM-bALZuffXJLRpkUBiSug4ZP_DGSQukcY4DeggWq.

[5]Droms R.RFC 2131 Dynamic host configuration protocol[S].1997.

[6]Droms R,Arbaug W.RFC 3118 Authentication for DHCP messages[S].2001.

[7]Duangphasuk S,Kungpisdan S,Hankla S.Design and implementation of improved security protocols for DHCP using digital certificates[C]//Proceedings of the 17th IEEE International Conference on Networks,Singapore,Dec 14-16, 2011.Washington:IEEE Computer Society,2011:287-292.

[8]Kathryn D G,Liddy J,Raison P,et al.Dynamic host configuration protocol(DHCP)authentication using challenge handshake authentication protocol(CHAP)challenge:USA, 8555347[P].United States Patent Application Publication, 2013.

[9]Wong M,Xu Yixian,Manning S.An authentication method based on certificate for DHCP[S].DHCP Internet Draft, 2011.

[10]Hornstein K,Lemon T,Adoba B,et al.DHCP authentication via Kerberos V[S].IETF DHC Working Group,2001.

[11]Ju H I,Han J W.DHCP message authentication with an effective key management[C]//Proceedings of the 2015 World Academy of Science,Engineering and Technology,Aug 2005:132-135.

[12]Krawczyk H,Bellare M,Canetti R.HMAC:RFC 2104 Keyed-hashing for message authentication[S].1997.

[13]Kobayashi K,Yamaguchi S.Network access control for DHCP environment[J].IEICE Transactions on Communications,1998,96(9):1718-1723.

[14]Shankar N,Arbaugh W A,Zhang Kan.A transparent key management scheme for wireless LANs using DHCP,HPL-2001-227[R].HP Laboratories PaloAlto,2001.

[15]Fluhrer S R,Mantin I,Shamir A.Weaknesses in the key scheduling algorithm of RC4[C]//LNCS 2259:Proceedings of the 8th Annual International Workshop on Selected Areas in Cryptography,Toronto,Canada,Aug 16-17,2001.London, UK:Springer-Verlag,2001:1-24.

附中文参考文献:

[1]李林.DHCP安全机制研究[D].兰州:兰州大学,2011.

[2]何智勇,沈苏彬,毛燕琴.DHCP协议优化方案研究[J].计算机技术与发展,2010,20(9):125-132.

[3]区咏莹.论DHCP网络协议的安全性问题与解决[J].电脑知识与技术,2009,5(15):84-92.

ZHANG Fuqiang was born in 1990.He is an M.S.candidate at School of Computer Science,National University of Defense Technology.His research interests include computer network and wireless communication,etc.

张富强(1990—),男,河南周口人,国防科学技术大学计算机学院硕士研究生,主要研究领域为计算机网络,无线通信等。

CHEN Lin was born in 1976.She received the Ph.D.degree from National University of Defense Technology in 2005.Now she is an associate professor at National University of Defense Technology.Her research interests include network management and data center network resource management,etc.

陈琳(1976—),女,福建陇海人,2005年于国防科学技术大学获得博士学位,现为国防科学技术大学副教授,主要研究领域为网络管理,数据中心网络资源管理等。

WU Dongdong was born in 1987.He is an M.S.candidate at School of Computer Science,National University of Defense Technology.His research interest is computer network.

吴冬冬(1987—),男,山东泰安人,国防科学技术大学计算机学院硕士研究生,主要研究领域为计算机网络。

SecurityAuthentication Method of DHCPUsing DK Mechanism*

ZHANG Fuqiang,CHEN Lin+,WU Dongdong
School of Computer Science,National University of Defense Technology,Changsha 410073,China
+Corresponding author:E-mail:agnes_nudt@qq.com

The DHCP(dynamic host configuration protocol)allocates and manages IP address dynamically,and promotes address utilization,so the protocol has been widely used.However,due to the protocol without security mechanism,the potential security vulnerabilities such as illegal DHCP,Mac address disguise,replay attack and DoS attack are becoming more and more prominent.This paper proposes a security authentication model based on dynamic key(DK_SAM).The model combines with the current system time to compute the one-time key and uses the key to generate the message authentication code by Hash algorithm.Finally,the model achieves the objective of the security authentication through verifying the authentication code in Option180.Experimentation indicates that DK_SAM ensures the security characteristics,as well it has higher efficiency.

dynamic host configuration protocol(DHCP);security authentication;security vulnerability;DK_SAM

10.3778/j.issn.1673-9418.1602038

A

:TP393

*The National Natural Science Foundation of China under Grant No.61379148(国家自然科学基金).

Received 2016-02,Accepted 2016-06.

CNKI网络优先出版:2016-06-23,http://www.cnki.net/kcms/detail/11.5602.TP.20160623.1401.014.html

ZHANG Fuqiang,CHEN Lin,WU Dongdong.Security authentication method of DHCP using DK mechanism.Journal of Frontiers of Computer Science and Technology,2017,11(3):382-388.

猜你喜欢

字段IP地址报文
基于J1939 协议多包报文的时序研究及应用
带钩或不带钩选择方框批量自动换
低轨星座短报文通信中的扩频信号二维快捕优化与实现
浅析反驳类报文要点
浅谈台湾原版中文图书的编目经验
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计
无正题名文献著录方法评述
无正题名文献著录方法评述
计算机的网络身份IP地址