一种ARP认证方法、装置及系统与流程

文档序号:11254021阅读:820来源:国知局
一种ARP认证方法、装置及系统与流程

本发明涉及网络通信技术领域,具体而言,涉及一种arp认证方法、装置及系统。



背景技术:

arp(addressresolutionprotocol,地址解析协议)用于把ip地址解析成lan(localareanetwork,局域网)硬件使用的mac地址。ip数据包通常通过以太网发送,但以太网设备并不识别32位ip地址,它们是以48位以太网地址传输以太网数据包。因此,必须把ip目的地址转换成以太网目的地址。arp协议用于将网络中的ip地址解析为目标硬件地址(mac地址),以保证通信的顺利进行。

由于arp协议本身没有做任何安全考虑,不会对arp报文进行合法性验证,使得在以太交换网络中攻击者很容易实现arp攻击。为防止arp攻击采用的很多安全措施都很难有效地建立正确的arp表项,无法保证网络数据传输的稳定性、安全性。

目前企业网,特别是金融行业客户,中、农、工、建、交等各大银行,对局域网的安全性要求非常高,正在逐步的部署安全接入控制机制,因此需要一种有效的方法来防止arp攻击。但是,当前以太交换网络防止arp攻击所采用的方法,例如关闭arp动态学习而配置静态arp,或采用动态arp监测(dynamicarpinspection)等技术,不是效率大幅度降低,就是使用有局限性、不能从根本上解决arp攻击。



技术实现要素:

有鉴于此,本发明的目的在于提供一种arp认证方法、装置及系统,以改善上述问题。

本发明较佳实施例提供一种arp认证方法,应用于请求端,所述方法包括:生成地址解析协议arp请求报文并将其进行广播,所述arp请求报文的目标硬件地址字段中写入特定组播硬件地址,所述特定组播硬件地址用于指示所述被请求端开启被动认证功能;接收被请求端响应于所述arp请求报文而返回的arp响应报文;根据arp响应报文中携带的chap认证的挑战信息对被请求端进行认证,并将认证结果写入认证响应报文发送至所述被请求端。

相应的,本发明另一较佳实施例提供一种arp认证方法,应用于请求端,所述方法包括:接收请求端发送的地址解析协议arp请求报文,所述arp请求报文的目标硬件地址字段中写入特定组播硬件地址,所述特定组播硬件地址用于指示所述被请求端开启被动认证功能;响应于所述arp请求报文而生成挑战握手认证协议chap认证的挑战信息;将所述chap认证的挑战信息写入arp响应报文发送至所述请求端,以使所述请求端响应于所述chap认证的挑战信息而生成认证响应报文;接收请求端返回的携带有认证结果的认证响应报文。

本发明另一较佳实施例提供一种arp认证装置,应用于请求端,所述装置包括:arp模块,用于生成地址解析协议arp请求报文,并交由报文发送模块,所述arp请求报文的目标硬件地址字段中写入特定组播硬件地址,所述特定组播硬件地址用于指示所述被请求端开启被动认证功能;报文发送模块,用于将所述arp请求报文进行广播;报文接收模块,用于接收被请求端响应于所述arp请求报文而返回的arp响应报文;认证模块,用于根据arp响应报文中携带的chap认证信息对被请求端进行认证,并将认证结果通知给所述arp模块;所述arp模块,还用于将所述认证结果写入认证响应报文发;所述报文发送模块,还用于将所述认证响应报文发送至所述被请求端。

相应的,本发明另一较佳实施例提供一种arp认证装置,应用于被请求端,所述装置包括:报文接收模块,用于接收请求端发送的地址解析协议arp请求报文,所述arp请求报文的目标硬件地址字段中写入有特定组播硬件地址,所述特定组播硬件地址用于指示所述被请求端开启被动认证功能;认证模块,用于响应于所述arp请求报文而生成挑战握手认证协议chap认证信息;arp模块,用于将所述chap认证的挑战信息写入arp响应报文;报文发送模块,用于将所述arp响应报文发送至所述请求端,以使所述请求端响应于chap认证的挑战信息而生成认证响应报文;所述报文接收模块,还用于接收请求端返回的携带有认证结果的认证响应报文。

相应的,本发明另一较佳实施例提供了一种arp认证系统,包括:请求端和被请求端,其中,所述请求端包括本发明的应用于请求端的arp认证装置,所述被请求端包括本发明的应用于被请求端的arp认证装置。

本发明实施例提供的arp认证方法、装置及系统,通过基于arp报文的chap(challengehandshakeauthenticationprotocol,挑战握手认证协议)认证过程确定arp报文的合法性,可以有效的过滤arp欺骗报文,防止arp报文欺骗,这种认证方法的实现代价小,能极大提升arp学习过程的安全性。而且,对于未开启arp认证的以太网设备(如交换机或终端),其传统的arp学习过程不会受到任何影响。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的一种arp认证方法的应用场景图;

图2为本发明实施例提供的一种应用于请求端的arp认证方法的流程图;

图3为本发明实施例提供的arp报文的部分结构示意图;

图4为本发明实施例提供的一种应用于被请求端的arp认证方法的流程图;

图5为本发明实施例提供的应用于请求端的arp认证装置的功能模块示意图;

图6为本发明实施例提供的应用于被请求端的arp认证装置的功能模块示意图。

图标:100-请求端;200-被请求端;110、210-arp认证装置;112-arp模块;114-报文发送模块;116-报文接收模块;118-认证模块;212-报文接收模块;214-认证模块;216-arp模块;218-报文发送模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,是本发明实施例提供的一种arp认证方法的应用场景图。如图所示,该arp认证方法可以应用于以太网络中两端存在通信交互的设备,其中一端为arp(addressresolutionprotocol,地址解析协议)报文的请求端100,另一端为arp报文的响应端(被请求端200)。作为一种非限制性实施方式,请求端100可以是以太网交换机,相应地,被请求端200可以是以太网主机。

请参阅图2,是本发明实施例提供的一种应用于请求端100的arp认证方法的流程图。所应说明的是,本实施例中的方法不以图2及以下所述的具体顺序为限制。下面对图2中所示的各步骤进行详细阐述。

步骤101,预先启用请求端100的arp报文主动认证功能,并配置用于认证的被请求端的arp认证信息。

本实施例中,以请求端100为以太网交换机为示例,在以太网交换机的全局和相应端口启用arp报文主动认证功能,并配置被请求端的arp认证信息,如用户名及密码。

步骤s103,生成arp请求报文并将其进行广播。

如图3所示,是arp报文的部分结构示意图。传统的arp请求报文中,sendermacaddress(发送方硬件地址)字段写入的是请求端100的硬件地址,senderipaddress(发送方ip地址)字段写入的是请求端100的ip地址,targetmacaddress(目标硬件地址)字段由全0填充,targetipaddress(目标ip地址)字段写入的是被请求端200的ip地址。

本实施例中,当请求端100需要添加或删除被请求端200的arp表项时,则生成一arp请求报文并将其进行广播。该arp请求报文的诸如targetmacaddress字段中写有特定组播硬件地址。换言之,在targetmacaddress字段中用该特定组播硬件地址代替传统的全0填充。该特定组播硬件地址可以用于指示被请求端200开启被动认证功能。

作为一种实施方式,所述特定组播硬件地址可以用于指示所述被请求端开启被动认证功能的添加arp表项,相应地,该特定组播地址可以是0100.5e00.0001,但不限制于此。

作为一种实施方式,所述特定组播硬件地址可以用于指示所述被请求端开启被动认证功能的删除arp表项,相应地,该特定组播地址可以是0100.5e00.0002,但不限制于此。

当被请求端200接收到上述arp请求报文后,可以根据目标硬件地址字段中的特定组播硬件地址(例如,0100.5e00.0001或0100.5e00.0002)的指示开启被动认证功能,并相应地配置arp认证信息(如用户名及密码,不限于此)。当被请求端200接收到上述arp请求报文后,可以根据arp请求报文中的sendermacaddress及senderipaddress字段信息建立对应于请求端100的临时arp表项。

s105,接收被请求端200响应于所述arp请求报文而返回的arp响应报文。

本实施例中,被请求端200返回的arp响应报文中包含有被请求端200的硬件地址信息。由此,请求端100可以根据从arp响应报文中获得的被请求端200的ip地址(即从arp响应报文中获取的发送方ip地址)以及硬件地址(即从arp响应报文中获取的发送方硬件地址)生成对应于被请求端200的临时arp表项。

另外,本实施例中,被请求端200返回的arp响应报文中携带有chap(challengehandshakeauthenticationprotocol,挑战握手认证协议)认证的挑战信息。被请求端200可以将chap认证的挑战信息写入arp响应报文。例如,被请求端100可以将chap认证的挑战信息写在arp响应报文中的目标ip地址字段之后,然后将携带有chap认证的挑战信息的arp响应报文发送至请求端100。具体地,被请求端200可以依据之前建立的对应于请求端100的临时arp表项将携带有chap认证的挑战信息的arp响应报文发送至请求端100。

在本发明实施例中,被请求端200会预先配置认证用的arp认证信息,被请求端200所使用的chap认证的挑战信息是基于该arp认证信息生成的。在本步骤s101中已说明,请求端100上已预先配置该被请求端的arp认证信;也就是说请求端100与被请求端200都拥有被请求端200的arp认证信息。

步骤s107,根据arp响应报文中携带的chap认证的挑战信息对被请求端进行认证,并将认证结果写入认证响应报文发送至所述被请求端。

本实施例中,当所述特定组播硬件地址用于指示所述被请求端开启被动认证功能的添加arp表项时,作为一种实施方式,请求端100可以获取arp响应报文中携带的chap认证的挑战信息,再根据本地预先配置的被请求端的arp认证信息同样生成chap认证的挑战信息,根据chap认证的挑战信息是否相同,判断所述被请求端是否合法。若认证结果为合法,则将所述临时arp表项写入静态arp表项,并将认证成功指示信息写入认证响应报文发送至所述被请求端;若认证结果为不合法,则将认证失败指示信息写入认证响应报文,根据临时arp表项将所述认证响应报文发送至所述被请求端后,删除所述临时arp表项。

当所述特定组播硬件地址用于指示所述被请求端开启被动认证功能的删除arp表项时,作为一种实施方式,请求端100可以获取arp响应报文中携带的chap认证的挑战信息,再根据本地预先配置的被请求端的arp认证信息,同样生成chap认证的挑战信息,根据chap认证的挑战信息是否相同,判断所述被请求端是否合法。若认证结果为合法,则删除与所述arp请求报文相关的目标静态arp表项,若认证结果为不合法,则不删除与所述arp请求报文相关的目标静态arp表项。

需要说明的是,本发明实施例中,当arp报文被认证为欺骗报文,或者认证时间超时(例如,超过预设时间)时,均可以判定arp报文的认证结果为“不合法”。

可以理解的是,在其他实施例中,上述步骤s101可以是预先完成的。在预先完成的基础上,图2中所示的方法可以直接由步骤s103开始执行。

本发明实施例提供的arp认证方法,通过在arp响应报文中携带chap认证的挑战信息以认证arp报文的合法性,可以有效的过滤arp欺骗报文,有效的防止arp报文欺骗。这种arp验证方法不但实现代价小,而且能极大提升arp学习过程的安全性。对于未开启arp认证的以太网设备(例如,交换机或终端),其arp学习过程不会受任何影响。

请参阅图4,是本发明实施例提供的一种应用于被请求端200的arp认证方法的流程图。下面将对图4中所示的各步骤进行详细描述。

步骤s301,接收请求端100发送的arp请求报文。该arp请求报文的目标硬件地址字段中写入有特定的组播硬件地址,该组播硬件地址可以用于指示被请求端200开启被动认证功能。

作为一种实施方式,所述特定组播硬件地址可以用于指示所述被请求端开启被动认证功能的添加arp表项,相应地,该特定组播地址可以是0100.5e00.0001,但不限制于此。

作为一种实施方式,所述特定组播硬件地址可以用于指示所述被请求端开启被动认证功能的删除arp表项,相应地,该特定组播地址可以是0100.5e00.0002,但不限制于此。

步骤s303,响应于所述arp请求报文而生成chap认证的挑战信息。

本实施例中,被请求端200开启被动认证功能并响应于arp请求报文生成chap认证的挑战信息。

步骤s305,将所述chap认证的挑战信息写入arp响应报文发送至请求端100,以使请求端100响应于chap认证的挑战信息而生成认证响应报文。

步骤s307,接收请求端100返回的携带有认证结果的认证响应报文。

本实施例中,在接收到请求端100发送的arp请求报文之后,以及在响应于所述arp请求报文而生成挑战握手认证协议chap认证的挑战信息之前,被请求端200还可以根据从所述arp请求报文中获得的请求端100的ip地址(即从arp响应报文中获取的发送方ip地址)以及硬件地址(即从arp响应报文中获取的发送方硬件地址)生成临时arp表项,以便根据该临时arp表项将携带chap认证的挑战信息的arp响应报文发送至请求端100。

当所述特定组播硬件地址用于指示所述被请求端开启被动认证功能的添加arp表项时,被请求端200在接收到请求端100返回的携带有认证结果的认证响应报文后,若认证结果为合法,则将所述临时arp表项写入静态arp表项;若认证结果为不合法,则删除所述临时arp表项。

当所述特定组播硬件地址用于指示所述被请求端开启被动认证功能的删除arp表项时,被请求端200在接收到请求端100返回的携带有认证结果的认证响应报文之后,若认证结果为合法,则删除与所述arp请求报文相关的目标静态arp表项,若认证结果为不合法,则不删除与所述arp请求报文相关的目标静态arp表项。

本实施例中提供的应用于被请求端200的arp认证方法中,每个步骤的具体操作方法可以对应参照图2所示方法中相应步骤的详细阐述,在此不再一一赘述。

请参阅图5,是本发明实施例提供的应用于请求端100的arp认证装置110的功能模块示意图。该arp认证装置110包括arp模块112、报文发送模块114、报文接收模块116、认证模块118。

arp模块112,用于生成arp请求报文,并交由报文发送模块,所述arp请求报文的目标硬件地址字段中写入特定组播硬件地址,所述特定组播硬件地址用于指示所述被请求端开启被动认证功能。

报文发送模块114,用于将所述arp请求报文进行广播。

报文接收模块116,用于接收被请求端200响应于所述arp请求报文而返回的arp响应报文。

认证模块118,用于根据arp响应报文中携带的chap认证的挑战信息对被请求端进行认证,并将认证结果通知给所述arp模块。

所述arp模块112,还用于将所述认证结果写入认证响应报文。

所述报文发送模块114,还用于将所述认证响应报文发送至所述被请求端。

本发明实施例所提供的arp认证装置,其实现原理及产生的技术效果和图2所示的方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

请参阅图6,是本发明实施例提供的应用于被请求端200的arp认证装置210的功能模块示意图。arp认证装置210包括报文接收模块212、认证模块214、arp模块216、报文发送模块218。

报文接收模块212,用于接收请求端100发送的arp请求报文,所述arp请求报文的目标硬件地址字段中写入有特定组播硬件地址,所述特定组播硬件地址用于指示所述被请求端开启被动认证功能。

认证模块214,用于响应于所述arp请求报文而生成挑战握手认证协议chap认证的挑战信息。

arp模块216,用于将所述chap认证的挑战信息写入arp响应报文。

报文发送模块218,用于将所述arp响应报文发送至所述请求端,以使所述请求端响应于所述chap认证的挑战信息而生成认证响应报文。

所述报文接收模块218,还用于接收请求端返回的携带有认证结果的认证响应报文。

以上各模块可以是由软件代码实现,此时,上述的各模块可存储于请求端或被请求端的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明实施例所提供的arp认证装置,其实现原理及产生的技术效果和图4所示的方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

最后,本发明实施例还提供一种arp认证系统,该系统包括上述的请求端100和被请求端。其中,请求端100可以用于执行上述arp认证装置110,被请求端可以用于执行上述arp认证装置210,具体的执行方法可参照上述方法实施例或装置实施例中的具体描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1