一种Web认证防ARP欺骗的方法
2018-07-20郑伟忠
郑伟忠
摘要:该文主要介绍WEB认证场景下的ARP欺骗技术,提出了一种认证过程中解决ARP欺骗的技术,解决了认证前ARP欺骗无法抵御的问题。
关键词: WEB认证;ARP欺骗;TCP窥探
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)13-0106-03
1背景
WEB认证
Web认证是一种基于http技术对用户访问网络进行控制的身份认证方法,这种认证方法不需要用户安装专用的客户端认证软件,使用普通的浏览器软件就可以进行身份认证,有着广泛的应用。
未认证用户访问网络前需要先使用浏览器打开一个站点,部署身份认证的网络接入设备(网络接入设备概念比较泛,一般是按以有可能是有线交换机,也有可能是个无线设备,也有可能是个网络防火墙或者路由器)会强制浏览器访问Web认证服务器,通常称为Portal服务器。用户通过浏览器在Portal服务器推送的页面上输入身份信息进行身份认证,只有认证通过后才可以使用网络资源。
Web认证的应用场景模型图如下:
图1中,用户要访问internet前必须先通过网络设备的认证(部署身份认证功能的网络设备通常被称为NAS,Network Access Server),认证过程如下:
1) 用户在PC上打开浏览器,输入一个网址,并回车;
2) 浏览器会发出http请求,这个请求会被网络设备拦截,并将请求重定向到portal服务器;
3) portal服务器会推送一个认证页面到浏览器,然后用户输入身份帐号并进行认证;
4) portal服务器从页面解析出认证信息并发给NAS;
5) NAS将认证信息通过一定方式(业界最通用的做法是利用radius协议来传输这些信息),传递给认证服务器;
6) 认证服务器校验身份信息,并将结果返回给NAS;
7) NAS根据认证结果判断是否允许用户访问网络。
图1中的eportal设备就是portal服务器,其主要功能是提供定制化的认证页面并解析认证信息;图1中的SAM设备是身份认证服务器,用于校验身份准确性,通常来说这就是一台radius服务器,运行radius协议;NAS负责根据认证结果控制用户是否可以访问网络。Web认证的详细交互过程如下:
如图2所示,整个交互过程主要由3部分组成:
1) HTTP重定向
所谓的重定向,是指浏览器原本要访问的站点是A,但是请求被NAS拦截后,NAS告知浏览器跳转去访问站点B(通过在http报文中设置特定指令)。在这里,站点B就是portal服务器的地址,通过这个技术实现将认证页面推送到浏览器。
2) Portal服务器和NAS的交互
Portal服务器解析用户在认证页面中输入的帐号信息,提取并发送给NAS。另外NAS也会将认证结果反馈给portal服务器,portal服务器会将认证结果通过http协议推送到用户的浏览器界面,让用户能看到认证结果。
3) Radius协议交互
Radius协议是国际互联网标准组织IETF定义的一种网络身份认证通信技术,可以存在多种认证信息,且扩展性和安全性都很强,被业界广泛采用。
ARP欺騙
在局域网中,每个设备都有两个地址:1)硬件地址,由于它包含在数据链路层的帧头中,更准确地说应该是数据链路层地址,但实际上对本地地址进行处理的是数据链路层中的MAC子层,因此习惯上称为MAC地址,MAC地址在局域网上代表着IP设备;2)IP地址,在互联网上代表着IP设备,同时它也说明了该设备所属的网络。
局域网上两台IP设备之间需要通信,必须要知道对方的MAC地址。根据IP地址来获知MAC地址的过程称为地址解析(ARP)。
ARP是用来绑定MAC地址和IP地址的,以IP地址作为输入,ARP能够知道其关联的MAC地址。一旦知道了MAC地址,IP设备就可以封装链路层的帧,然后将数据帧才可以发送到局域网上去。
ARP欺骗是指某个IP设备对外发送假的ARP报文,伪造成其它IP设备,从而将发往其他IP设备的数据流引向自己,实现一些窥探,这种行为会导致其它合法的IP设备无法通信。如下图所示:
如图所示,局域网中,C是恶意设备或者中了病毒。A原本要和B通信,为此A需要学习到B的ARP信息,而此时C向A发出一个欺骗性的ARP,导致A以为B的MAC地址为C,于是当A向B发送数据时,数据流会发到C,导致A和B实际是无法通信的。
现状和问题
由于Web认证是基于ip网络进行通信,因此在认证前PC就需要有ip地址和arp等相关信息,但是由于用户还没经过认证,因此用户的网络信息无法控制,这是个巨大的漏洞,导致Web认证无法防备认证前的arp欺骗。
如图4所示,A和C连接在NAS下,都需要经过认证才能访问网络,由于是使用Web认证,那么NAS显然要允许A和C在接入网络获取IP地址并进行ARP交互。由于A和C都还没有认证,NAS是无法知道A和C发出的ARP到底是对的还是假的。假设A要认证,C是欺骗者,如果C向NAS发送了欺骗arp,冒充A,那么A是无法进行Web认证的,这是因为NAS在做http重定向时需要将http重定向报文发给A(见图2的流程说明)。
因此本文要解决的技术问题,就是如何保证Web认证的用户在认证前不受ARP欺骗的影响,可以正常认证。至于认证通过后的情况,目前业界各大主流网络设备上已经有各种各样的控制手段来防止认证后的欺骗,不在本文讨论范围内。
技术方案
如图2所示,终端在做Web认证,主要涉及了两个通信过程:一个是http重定向,一个是访问portal服务器。这2个过程都是基于ip通信,因此只要这两个过程可以防止arp欺骗,那么就可以解决认证前的arp欺骗。
上图是解决方案的示意图,NAS设备内部新增3个模块,一个硬件模块和两个软件模块。接下来我们来解释这个系统如何解决前面提到的问题:
重定向过程的防欺骗
1) 用户在Pc的浏览器输入一个网址(比如www.ruijie.com.cn),并敲击回车。
2) Pc的操作系统会通过dns协议先解析这个域名对应的ip地址,NAS的硬件放行所有DNS报文,使得PC可以正常解析到ip地址。
3) Pc解析到ip地址后,会先发送tcp报文和这个网站建立连接(详细过程不做介绍,可参考TCP协议的介绍)。
4) NAS的“硬件报文拦截模块”收到报文后,根据预先设置的信息,对报文进行拦截,其拦截判断条件为(1)这个报文是tcp报文(2)报文对应的源ip并没有认证通过(3)报文对应的目的ip不是portal服务器地址。这三个条件同时满足的条件下,该模块化会将报文拦截下来,并送到“tcp报文嗅探模块”。
5) “Tcp报文嗅探模块化”收到报文后,获取该报文进入nas时所在的物理端口以及mac地址、ip地址的信息,建立一个映射表,并缓存起来。然后将报文送到“http重定向模块”。
6) http重定向模块会建立一个以http报文源ip为索引的数据库,当收到http报文时,提取报文的源ip,然后在数据库中搜索该ip是否存在,如果不存在,证明这是一个还未认证的用户,于是将源ip加入数据库,同时向“arp模块”添加一条静态arp(这个添加静态arp的作用在后面解释)。
7) 完成上述2个添加动作之后,“http重定向模块”向这个ip推送一个http重定向页面,促使这个源ip对应的浏览器去访问portal服务器,以便进行认证。
8) “http重定向模块”不是按照正常的tcp/ip协议栈的通信流程将报文发到ip协议栈,而是直接发送到“tcp嗅探模块化”。该模块化收到报文后,根据之前建立的数据库选择报文发送到哪个端口。
9) 由于在这个过程中,NAS向终端发送重定向报文时避开了标准的tcp/ip协议的发送过程,没有使用到arp,因此即便存在arp欺骗,也不会对重定向产生影响。
认证过程防ARP欺骗
1) 终端在收到nas的重定向报文后就需要去访问portal服务器进行认证,这个过程也是一个标准的tcp/ip通信过程。因此在这个过程中,如果nas受到arp欺骗,也会导致nas在转发porta和终端的报文出现错误,导致终端无法认证。
2) 在前面的步骤中,“http重定向模块化”会向arp模块添加一条静态arp表项,由于静态arp表项的信息来自认证终端的报文源ip和源mac,因此信息准确,且被设置为静态信息,在终端通信过程中,不会被其他终端所欺骗篡改。
3) 在前面的步骤中,“http重定向模塊”把源ip加入数据库后,还会启动一个定时器,来维护这个静态arp表项。因为存在这么一种极端的情况,就是这个终端出现故障了,那么静态arp是不能一直存留在设备上,否则会浪费设备资源,或者甚至,这个能发出http报文的终端也是一个欺骗pc,其发出一个http报文后,就不再认证了,这个情况下,维护一个定时器来定时删除这个arp表项可以避免设备被这种极端欺骗。
4) 如果终端在定时器时间内没有认证通过,那么“http重定向模块“化会将这个静态arp表项删除。
总结起来,解决WEB认证前防ARP欺骗,有如下几个关键的技术点:
1) 硬件报文拦截模块
a)放行一切DNS报文;
b)实现一种拦截tcp报文的特殊逻辑;
2) TCP报文嗅探模块:
①根据窥探到的报文建立一个转发数据库,包括报文的ip、mac、所在物理端口等。
②为“http重定向模块化”提供http重定向报文的发包服务,避免正常的tcp/ip标准
发包流程中的arp逻辑导致可能的被欺骗。
3) http重定向模块
①维护一个基于源ip的数据库,该数据库用于置静态arp,使得终端和portal服务器通信时不会受arp欺骗影响。
②维护一个基于源ip的定时器,用户监控静态arp表项的生存周期,如果一个ip重定向后的一段时间内还没有进行认证,则删除对应的静态arp表项,避免可能的http伪造,同时也节省硬件表项。
4 结束语
本文中提出了一种防ARP欺骗的技术方案,解决WEB认证环境下,认证前无法防止ARP欺骗的问题,使用这种方案可以用户在认证过程不受ARP欺骗影响,提高了Web认证的安全性。
参考文献:
[1] 任侠,吕述望.ARP 协议欺骗原理分析与地狱方法[J].计算机工程,2012(9).
[2] 艺馨,樊孝仁,张政,等.基于Portal认证技术在校园WLAN组网中的应用实践[J].电脑开发与应用,2015,28(3):23-27.