APP下载

一种适用于局域网的安全邻居发现协议

2024-01-26苏彦圣胡建华宋广佳

电脑知识与技术 2023年35期
关键词:局域字段IP地址

苏彦圣 胡建华 宋广佳

摘要:邻居发现问题是互联网通信过程中的一个重要问题,互联网中的节点通过邻居发现过程来获取其他节点的通信标识。传统的邻居发现协议由于假设所有的节点都是可靠的,使其面临很多安全威胁,比如欺骗攻击,DoS攻击等。为了提高发现过程的安全性,文章提出了一种新的邻居发现协议SNDP。SNDP采用加密方法对自身的通信标识以及邻居发现的目标地址进行保护,使得恶意节点无法获知邻居发现的目标地址,也无法获知是哪个节点在进行邻居发现以及哪个节点进行了应答,因此可以有效防止欺骗攻击和DoS攻击,具有极高的隐私保密性。

关键词:邻居发现;地址解析;IPv6;网络安全

图分类号:TP311      文献标识码:A

文章编号:1009-3044(2023)35-0090-04

开放科学(资源服务)标识码(OSID)

0 引言

计算机网络采用分层的体系结构,为了简化各层的设计,每一层都使用了独立的通信标识以减少耦合。比如二层使用MAC作为数据帧的传输地址;三层使用IP作为IP 数据包的目的地址;四层则使用<IP, Port>作为进程的通信地址,即Socket接口。为了保障通信的顺利进行,上下层的通信标识必须要有明确的对应关系,否则通信将无法完成。比如在三层,源主机要与目标地址IPX进行通信时,将数据包发送至二层后,二层必须知道IPX所对应的MAC地址(假设源主机与目标主机在同一个局域网中)才能进行信息传送。网络通信除了需要解决IP与MAC的对应关系外,还需要解决域名与IP的对应以及<IP: Port>与IP的对应等其他对应关系。三种典型的对应关系见图1。

通信标识对应关系的安全性是互联网需要解决的安全问题之一,随着互联网与产业的融合,融入互联网的设备的增加及互联网承载业务的增多,通信标识对应关系的安全问题将更加凸显。本文提出了一种新的邻居发现协议,叫作安全局域发现协议(Secure Neighbor Discovery Protocol,SNDP) ,并给出了具体实现方法,并将其与几种典型的安全方案进行了对比与分析。

1 研究背景

目前,广泛使用的局域发现协议有两种:一种是用于IPv4环境中的地址解析协议(Address Resolution Protocol,ARP) ,另一种是用于IPv6环境的邻居发现协议(Neighbor Discovery Protocol,NDP) 。对于局域发现过程,由于其没有注册过程,也没有服务器支持,因此非常容易受到欺骗攻击。以地址解析协议为例,当主机A广播ARP请求拥有网络地址IPX的主机B回答其MAC地址时,如果主机C不断进行ARP应答,谎称自己拥有IPX,则A收到应答后并不知道这是冒充的报文,A会更新自己的ARP缓存表,将C当作B,并将本应发送给B的数据包发送给C,从而形成了ARP欺骗[1]。

目前,国内外对局域发现协议的安全性研究主要集中在以下三方面:

1) 防御与检测技术,即采用技术手段对攻击进行防御或者检测已经发生的攻击,对网络中主机的<IP,MAC>进行长期监视与记录,一旦发现主机发送的ARP报文中<IP,MAC>映射与记录中的不符,则认为存在欺骗[2-3]。传统的<IP,MAC>绑定与划分VLAN方法也可归为此类,但该方法属于被动防御,同时增大了网络复杂度与维护成本。

2) 改进协议的方式,主要以采用改变协议过程或者增加协议环节的方法来增强安全性[4-6]。比如文献[4]中采用在网络中增加一台DHCP服务器,并且扩展了DHCP协议使其可以完成地址解析过程,但产生了单点故障问题,增加了组网成本。

3) 加密通信的方式。比如使用非对称加密技术对报文进行加密,防止IP地址盗用[7]。虽然IPv6中规定可以用IPSec保护邻居发现协议报文,但在邻居发现中使用IPSec还存在很多问题,为此IETF小组提出安全邻居发现协议(SEcure Neighbor Discovery,SEND) ,SEND使用CGA(cryptographically generated address,CGA) 、数字签名、时间戳等方法来保护NDP消息[8],但加密方式存在密钥管理难的问题,而且SEND与NDP同时存在还会引起路由问题[9]。由于SEND协议固有时间复杂度高[10-12],目前仍然处于实验阶段[13]。加密通信存在一个逻辑问题,即通信双方在加密通信前双方须互相知道MAC地址以便能够交换密钥,而这恰恰是局域发现协议要实现的,这一过程如果存在欺骗,那么后续的通信保障则失去了意义。

源地址验证技术(Source Address Validation Architecture,SAVA) 是一种新的安全机制,其主要思想是根据数据包中的源地址信息对报文行过滤,这样做的好處是一方面可以从源头直接阻止攻击,另一方面是便于源地址的追踪、溯源以及网络诊断与管理[14-15]。SAVA作为一种安全机制,需要网络设备的支持。目前SAVI(Source Address Validation Implementation) 还处于实验阶段,其域内源地址验证的功能需要路由器支持,并且路由器要完成大量集中计算,因此会影响网络性能,而且由于各设备厂商对SNMP协议的实现方式不同,致使SAVI部署难度很大[16-17]。

2 安全局域发现模型设计

SNDP依然采用NDP的消息格式,如图2所示,但部分字段进行了改进。下面首先介绍NDP协议的基本构成。NDP协议使用邻居请求NS(Neighbor Solicitation) 与邻居公告NA(Neighbor Advertisement) 来完成邻居发现过程。NDP报文主要由3部分构成:Ethernet部分、IPv6头部与ICMPv6部分,主要字段如图2所示。NS报文没有“RSO”字段,NS报文的“Type”字段为135,NA的“Type”字段为136。“RSO”字段只在NA中使用,“Target address”字段一般写入邻居发现的目的地址,“Option”字段在不同类型的ICMPv6消息中用法各不相同,在NDP中一般给出发送该报文的节点的MAC地址。

SNDP使用NSSNDP与NASNDP来完成局域发现过程,其Type字段值分别为200与201(ICMPv6的保留值)。SNDP消息的“Target address” 字段不再存储邻居发现的目标IP地址,而是存储目标地址的哈希值。SNDP中使用的密钥[K]以及消息签名[SigK]都使用NDP的Option字段存储。模型中的RO使用Hash函数进行替换,本文中hash函数使用的是MD5(Message Digest Algorithm 5) ,加密算法使用的是IDEA(International Data Encryption Algorithm) 。SNDP中用到的几个函数含义如下:

[Left(x, n)],从左边截取x的[ n] bit,得到长度为[n]的二进制串;

[EK(x)],以[K]为密钥,使用IDEA将[x]进行加密;

[DK(x)],以K为密钥,使用IDEA对[x]进行解密;

[H(x)],计算[x]的MD5值,结果长度为128 bit。

我们用IPA、MACA表示主机A的IP地址与MAC地址,用IPB、MACB表示主机B的IP地址与MAC地址。SNDP的局域发现过程如下:

(1) 发起阶段。主机A进行如下操作:

Step 1:当主机A需要寻找网络地址IPX所对应的MAC地址时,首先,主机A产生密钥对([KA,K-1A])

Step 2:主机A以广播方式发送NSSNDP,各字段赋值如下:

Src_IP=[EIPX(IPA)]

Src_MAC=[Left(EIPX (MACA),48)]

Dest_IP=FF02::1(IP广播地址)

Dest_MAC=33-33-00-00-00-01(MAC广播地址)

Target address=[H(IPX)]

Type=200

Options={[EIPX (MACA,KA), SigK-1A]}

(2) 应答阶段。其他主机(以主机B表示)进行如下操作:

Step 3:接收NSSNDP

Step 4:如果地址池中还有地址可取,则取出一个地址记为IPY,产生密钥([KB,K-1B]) ,进行Step 5,如果无地址可取,则过程结束;

Step 5:计算[H(IPY)]

如果[H(IPY)]与NSSNDP的Target address字段相同,则将[IPY]作为密钥,解密主机A的IP地址与MAC地址

IPA=[SNDP]

MACA=[DIPY] ([SNDP])

发送NASNDP回复主机A,各字段赋值如下:

Src_IP=[EKA(IPY)]

Src_MAC=[Left(EKA(MACB), 48)]

Dest_IP=[EKA(IPA)]

Dest_MAC= [MACA]

Target addrss= [EKA(IPY)]

Options=[(EKA(MACB,KB), SigK-1B)]

如果[H(IPY)]与NSSNDP的Target address字段不同,回到Step 4。

(3) 验证过程。主机A进行如下操作

Step 6:在规定的时间内(一般为1-3秒钟),对所有接收到的NASNDP进行验证,测试NASNDP的Target address字段与IPX是否匹配:

如果Target addrss=IPX,則表明局域发现成功,使用[K-1A]解密NASNDP的Option字段即可获得主机B的MAC地址MACB。

如果Target addrss≠IPX,则将NASNDP丢弃。

SNDP工作流程图见3。

下面以一个实例进行说明SNDP的局域发现过程。假设局域网中有三台主机,主机的地址信息见表1。

如果主机A要寻找地址为1::5:B主机的MAC地址,则A首先广播NSSNDP,各字段值见图4。主机B与C都可以收到这条广播。主机C从地址池中取出地址1::5:C,计算:

h(1::5:C)=E77B56DC72BF9E34EBA732592A5A6DD0

发现[H(1::5:C)]与NSSNDP中的Target address字段不等,而且地址池中也无下一个地址了,则将该NSSNDP丢弃。主机B从地址池中取出地址1::5:B,计算:

hash(1::5:B)= BAED6FB66CBEDFDCA5D0A910D315BF89

发现与NSSNDP中的Target address字段相等,则以1::5:B作为密钥解密主机A的IP地址与MAC地址,然后使用主机A的密钥[KA]将自己的IP地址、MAC地址以及主机A的IP地址与MAC地址进行加密,发送NASNDP进行应答,各字段值见图4。

主机A在收到这个NASNDP后,进行验证。主机A使用私钥[K-1A]解密NASNDP的Target address字段,发现 [SNDP],即目标节点拥有自己所要寻找的IP地址,则进一步解密NASNDP的Option字段,获得主机B的MAC地址。

3 对比与分析

3.1 SNDP的特点

通过第三部分的描述可知,SNDP与ARP、NDP是完全不同的,SNDP具有以下几个特点:

1) 防止欺骗攻击。在SNDP中,目标的IP地址是不公开的,公开的只是目标IP地址的hash值,恶意节点无法根据hash值推测出真实的IP地址,因此无法发送伪造的应答。同时,由于SNDP使用了消息签名,即使消息被截获,恶意节点也无法篡改内容。

2) 防止DoS攻击。在SNDP中,源主机A的MAC地址是受保护的,只有拥有特定IP的节点可以机密源主机的MAC地址,恶意节点不知道哪个主机在进行居于发现,也就无法进行DoS攻击。

3) SNDP在局域发现过程中不需要第三方设备,网络中的节点可以自行完成。

4) SNDP发现过程结束后,主机A与主机B也完成了公钥交换过程。主机A获得了主机B的公钥[KB],主机B获得了主机A的公钥[KA],双方实现无公钥基础设施(Public Key infrastructure,PKI) 的密钥交换,且这种交换过程是安全的,因为[KA]与[KB]都是以密文传送的,且只有主机B可以解密[KA],而[KB]使用[KA]进行加密的,只有用主机A的私钥[K-1A]的可以解密。

5) 高隐私保护性。在整个局域发现过程中,以明文方式传递的信息极少,仅在NASNDP的Dest MAC字段是一个以明文方式公开的隐私信息,而其他以明文方式传递的信息,比如“FF02::1”以及“3333-0000-0001”, 都是公共地址。因此在整个发现过程中,除了主机A与主机B,其他节点不知道哪个主机在发起局域发现过程,也不知道局域发现的目标地址,也无法获知哪个主机进行了应答。

3.2 对比分析

我们从加密技术的使用、第三方设备、流量监视、通信开销以及隐私保护等方面将SNDP与现有的局域发现协议以及几种典型的改进方案进行了对比,对比结果见表2。表中的n代表局域网内的主机数量,O(n+1)表示一个广播过程与一次点对点通信过程。

如果协议双方使用了加密技术,则会在某种程度上影响协议性能,而且密钥分配与管理也是个难题,需要增加AKD(Authoritative Key Distributor) ,这在文献[5]采用的方法中体现明显。文献[19]则采用状态机制来防止欺骗,如果自己没有发出过ARP请求则不会相信ARP reply,但其要求ARP reply也是以广播方式发送,这使得通信开销增加很多。文献[3-5]采用的方法都需要在网络中增加一个额外的服务器,并且要保障这个服务器始终是安全的,但这增加了部署的成本。但如果这台服务器能够提供<IP, MAC>映射查询服务,那么通信开销会大大降低。因为节点只需要向安全服务器查询其他节点的MAC地址即可,而不需要广播过程,比如文献[3]。但安全服务器本身需要周期性的广播以便收集LAN内所有主机的<IP, MAC>映射。在文献[20]中,IDS(Intrusion Detection System) 需要在交换机上做镜像端口,以便能监控所有的网络流量,FCFS-SAVI也需要监视网络流量,以实现源地址过滤,这两种方法都要交换机支持。

SNDP不需要监控所有的网络流量,也不需要添加安全服务器,实现成本很低。SEND协议采用CGA作为特殊的地址结构,CGA的特性是攻击者无法根据CGA地址推测出原始的数据结构,这使得攻击者无法进行伪造地址攻击。但SEND协议在邻居发现过程中没有保护自己的MAC地址,使得恶意节点可以向主机的MAC地址发送虚假的CGA参数让主机进行验证,从而消耗主机资源,进行DoS攻击。SNDP则对MAC地址进行保护,攻击者无法获得主机的MAC地址,也就无法发动DoS攻击。从隐私保护角度来讲,SNDP实现了匿名的局域发现过程。当然,SNDP也存在一些不足,比如在消息传递过程中,加密与解密过程需要一定的计算资源,影响了协议性能。

4 结束语

以往局域发现协议由于认为网络节点都是可靠的而且在发现过程中公开了目标的特性(IP地址),使得协议非常容易受到恶意节点的攻击。虽然IETF提出SEND作为安全解决方案,但SEND除了計算复杂度高,还容易受到DoS攻击。文章提出了SNDP作为解决方案。SNDP使用隐藏目标IP的方法来防止恶意节点发送欺骗应答,而且在局域发现过程中不公开源节点的MAC地址,因此可以防止DoS攻击,而且SNDP不需要增加额外的网络设备,降低了实现成本。更进一步的,在SNDP的局域发现过程中,应答节点的地址信息也是以加密方式传送的,也即SNDP实现了双向的匿名发现过程。

参考文献:

[1] GAO J H,XIA K J.ARP spoofing detection algorithm using ICMP protocol[C]//2013 International Conference on Computer Communication and Informatics.January 4-6,2013.Coimbatore,Tamil Nadu,India.IEEE,2013:1-6.

[2] NAM S,KIM D,KIM J.Enhanced ARP:preventing ARP poisoning-based man-in-the-middle attacks[J].IEEE Communications Letters,2010,14(2):187-189.

[3] OH M,KIM Y G,HONG S,et al.ASA:agent-based secure ARP cache management[J].IET Communications,2012,6(7):685-693.

[4] GOUDA M G,HUANG C T.A secure address resolution protocol[J].Computer Networks,2003,41(1):57-71.

[5] BRUSCHI D,ORNAGHI A,ROSTI E.S-ARP:a secure address resolution protocol[C]//19th Annual Computer Security Applications Conference,2003.Proceedings.Las Vegas,Nevada,USA.IEEE,2003.

[6] Biju Issac Lawan A Mohammed.Secure unicast address resolution protocol (S-UARP) by extending DHCP[C]//2005 13th IEEE International Conference on Networks Jointly held with the 2005 IEEE 7th Malaysia International Conf on Communic.Kuala Lumpur,Malaysia.IEEE,2005.

[7] GOYAL V,TRIPATHY R.An efficient solution to the ARP cache poisoning problem[J].Information Security and Privacy,2005(3574):40-51.

[8] J.Arkko,ED.Ericsson,Kempf J.Secure Neighbor Discovery (SEND). http://tools.IETF.org/html/rfc3971: IETF, 2005.

[9] HOU Y,WANG Z X,WANG Y,et al.Routing attack in the ND and SEND mixed environment[C]//2012 Fourth International Conference on Multimedia Information Networking and Security.November 2-4,2012.Nanjing,China.IEEE,2012.

[10] OH H,CHAE K.An efficient security management in IPv6 network via MCGA[C]//The 9th International Conference on Advanced Communication Technology.February 12-14,2007.Gangwon-Do,Korea.IEEE,2007:1179-1181

[11] SU G X,WANG W D,GONG X Y,et al.A quick CGA generation method[C]//2010 2nd International Conference on Future Computer and Communication.May 21-24,2010.Wuhan,China.IEEE,2010:769-773.

[12] ALSA’DEH A,RAFIEE H,MEINEL C.Stopping time condition for practical IPv6 Cryptographically Generated Addresses[C]//The International Conference on Information Network 2012.February 1-3,2012.Bali,Indonesia.IEEE,2012:257-262.

(下转第99页)

(上接第93页)

[13] RAFIEE H,ALSA’DEH A,MEINEL C.WinSEND:windows SEcure neighbor discovery[C]//Proceedings of the 4th international conference on Security of information and networks.Sydney Australia.ACM,2011:243-246.

[14] Xu K, Williams M. A Source Address Validation Architecture (SAVA) Testbed and Deployment Experience[J]. Heise Zeitschriften Verlag, 2008.

[15] WU J P,REN G,LI X.Source address validation:architecture and protocol design[C]//2007 IEEE International Conference on Network Protocols.October 16-19,2007.Beijing,China.IEEE,2007:276 - 283.

[16] 肖佩瑶,毕军.基于OpenFlow架构的域内源地址验证方法[J].小型微型计算机系统,2013,34(9):1999-2003.

[17] LI J,WU J P,XU K,et al.An hierarchical inter-domain authenticated source address validation solution[J].Chinese Journal of Computers,2012,35(1):85-100.

[18] NORDMARK E,BAGNULO M,LEVY-ABEGNOLI E.FCFS SAVI:first-come,first-served source address validation improvement for locally assigned IPv6 addresses[J].2011.

[19] ATAULLAH M,CHAUHAN N.ES-ARP:an efficient and secure Address Resolution Protocol[C]//2012 IEEE Students' Conference on Electrical,Electronics and Computer Science.March 1-2,2012.Bhopal,India.IEEE,2012:1-5.

[20] BARBHUIYA F A,BISWAS S,NANDI S.An active DES based IDS for ARP spoofing[C]//2011 IEEE International Conference on Systems,Man,and Cybernetics.October 9-12,2011.Anchorage,AK,USA.IEEE,2011:2743-2748.

【通聯编辑:光文玲】

猜你喜欢

局域字段IP地址
图书馆中文图书编目外包数据质量控制分析
铁路远动系统几种组网方式IP地址的申请和设置
局域积分散列最近邻查找算法
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
PET成像的高分辨率快速局域重建算法的建立
基于局域波法和LSSVM的短期负荷预测
基于非正交变换的局域波束空时自适应处理
CNMARC304字段和314字段责任附注方式解析