APP下载

一种基于MIPv6的移动目标防御反审查方法

2019-04-15

计算机应用与软件 2019年4期
关键词:报头IP地址攻击者

张 舒 婷

(太原学院计算机工程系 山西 太原 030032)

0 引 言

近十年来,互联网的广泛使用给人们生活方式带来重大改变。通过计算机或移动终端可以很容易地获得信息的能力促进科学技术和文化传播的快速发展。虽然有些人认为这是互联网的弊端,它使全世界的团体机构比以往任何时候都更加紧密。但是,对大多数人而言,自由获取信息是他们生活不可或缺的一部分,甚至能够帮助他们在科学、技术、数字文化等各个领域发挥潜力。

但是某些别有目的的攻击者总是试图阻止人们访问某些类型的信息。当前有多种方法可以阻止查看网络信息,常见的技术包括[1]:(1) IP地址阻塞:对由IP地址标识的某些站点进行阻塞访问;(2) 域名系统(DNS)过滤:阻止访问某些未被解析的域名;(3) 统一资源定位符(URL)过滤;(4) 数据包过滤。

大多数用户利用加密隧道和代理来绕过这些审查方法,如VPN[2-4]和Tor[5]。作为响应,攻击者通常试图查找和阻塞提供服务的主机。

本文提出了一种结合移动IPv6(MIPv6)和移动目标防御(MTD)技术特点的解决方案。基于MTD思想,通过检测洪泛攻击来防止分布式拒绝服务(DDoS)攻击,使服务器变成移动目标[6-8]。该方法也可用来保护用户隐私[9]。它与现有的反审查措施不同,用户不必直接对抗审查措施。并且该方法与现有的反审查方法可以共存。

在MIPv6中,通常使用永久IP地址(归属地址)来避免TCP会话的中断,使用一个或多个转交地址CoA(Care-of Address)来连接其他节点[10]。应用MIPv6将Web服务器视为移动节点,利用动态改变的IP地址(基于CoA)避免过滤和阻塞等攻击行为。将端用户随机分组,并提供一个可以用来访问网站的CoA。一段时间之后,对用户重新分组,并用新生成的一组CoA更新用户。本文所提方案的基本架构如图1所示,在服务器端,n个不同的CoA被随机分配给不同的用户组。一段时间后,用户重新分组,并将通过新生成的CoA与服务器连接。MIPv6的有效性取决于所使用CoA的数量和伪装成正常用户的攻击者数量,攻击者通过查找CoA来实施阻塞,通过改变CoA将用户变为移动目标。本文提出一种新的地址变化方法,大大增加了攻击者查找地址的代价。该方法利用了现有的MIPv6技术,因此不需改变现有的MIPv6协议。

图1 基于MIPv6的基本架构

1 相关研究

1.1 反审查技术

用户利用代理和加密隧道技术绕过审查,如VPN[2-4]和开源的HTTPS代理。然而攻击者可以通过阻塞提供服务的系统IP地址来阻止这些方法。

近年来,一种叫作“路由诱骗”的技术被提出[11]。传统方法中的代理部署在网络路径的末端,而该方法把代理部署在网络的中间[12-14]。其中的互联网服务提供方ISP(Internet service providers)过滤被标记信息(发送至虚假地址),然后将其重新发送至真实目的地址(被审查地址)。过滤过程需要耗费计算资源和额外的硬件资源,并且为用户带来延迟。当前的路由诱骗技术依然无法有效防御流量分析和网站指纹识别方法。

1.2 移动目标防御技术

文献[7]提出一种基于云平台的防御网络DDoS攻击机制。它首先对服务器进行选择复制,对客户端进行重新分配,使被攻击的服务器变成移动目标。被攻击的服务器被部署在其他网络中的复制品代替,客户端也被移植到该新的服务器上。客户端迁移之后回收被攻击的服务器进行循环利用。只有迁移到服务器的客户端才知道其新地址,新加入的客户端通过DNS服务将其引导至服务器受保护的云平台。

该方法运用至反审查策略中的限制条件如下:(1) 审查者能发起IP阻塞和DNS过滤来阻止用户访问服务器;(2) 普通客户端群组中检测审查者比较困难,与该审查者在同一分组的用户将被永远阻塞;(3) DDoS需要向目标服务器发起大流量攻击,一旦检测到服务器的正确地址,单个审查者就能完成攻击,这将导致服务器的频繁变换;(4) 服务器重定向过程会导致丢包;(5) 复制大量的服务器资源需要建设相应的大规模云平台。

文献[9]提出一种MT6D方法,它是一种动态的、网络层的MTD,在不中断和不重新发起会话的前提下,快速改变处于会话中的发送方和接收方的IPv6地址。MT6D利用了IPv6的优势,创建动态的接口识别IID(Interface Identifier)来生成动态的IP地址。这些IID由以下几部分组成:(1) 每个主机需要一个独特值作为种子IID;(2) 收发双方共享密钥;(3) 参数改变需要收发双方的同意。

MT6D通过带外分享种子IID和共享密钥,对每个数据包按照UDP协议封装并利用虚拟IP地址隐藏真实的IP地址。然而该方法仅支持点对点网络,普通的客户端-服务器网络没有考虑在内[15]。MT6D的限制条件如下:(1) 由于地址冲突造成数据包丢失;(2) 时间必须严格同步;(3) 一个虚拟IP对应一个用户这种方式可扩展性不够;一个虚拟IP对应一个用户组,这种方式如果组里有一个审查者,该用户组可以被永久阻塞。

2 背景介绍

2.1 移动IPv6的使用

MIPv6最重要的特点[16]是:一个IP地址可变的移动节点MN(Mobile Node)在网络中移动时依然能够接收到消息。假设服务器是一个移动节点,在MIPv6中,MN有一个永久的IP地址,称为归属地址HoA(Home Address),由归属代理HA(Home Agent)分配。归属代理是MN归属链路上的路由器,其功能类似于MN的代理。MN也有一个备用地址,称为转交地址CoA(Care-of Address),由通信对端节点CN(Correspondent Nodes)使用与MN保持通信。HA保持与CoA的联系,并执行必要的转发。MN通过包含新CoA的绑定更新BU(Binding Update)消息更新HA,HA发回绑定确认BA(Binding Acknowledgement)消息作为响应。CN通过HoA(由HA生产并由隧道传送到MN)与MN建立通信。

2.2 路由优化

路由优化过程实现了MN和CN之间的数据包传输路径最短。CN需要知道MN当前绑定信息。因此,MN必须通过CoA更新CN。路由返回过程用于验证所请求的CoA[17]和HoA的使用权限。此过程涉及四个消息,路由优化还使用两种额外消息(BU和BA)。当只需要CoA测试消息时这些开销便会减少[18]。

文献[19]中指出与路由返回测试相关的所有消息都通过使用共享对称密钥来消除。首先,路由优化的低信令开销将切换延迟最小化,这反过来又减少了在地址变化期间的丢包。其次,在不需要路由返回的情况下,HA可不参与路由优化。MN可以直接用新的CoA更新CN,从而与HA断开连接。尽管如此,静态共享密钥方法也有一些局限性:(1) CN需要信任MN的行为,并且需要假设MN不会对第三方发起洪泛攻击[20]。(2) MN和每个CN之间的共享对称密钥可能导致重放攻击。使用IPSec与MN和CN之间的互联网密钥交换IKE(Internet Key Exchange)可解决这一问题。

在运行路由优化机制之后,数据包将通过CN直接路由到MN的CoA。为了将数据发送到任何一个IPv6的目的地址,使用第二类路由和目的地址选项头将数据包传送至MN[21]。

第二类路由头是一种支持MIPv6的路由报头类型。当数据包被发送到MN的CoA时,HA或CN使用该路由头携带MN的HoA。例如,如果CN知道MN的CoA,则CN可以向CoA发送数据,但是MN需要从目的地址中获取其HoA信息。因此,CN在第二类路由头中存储MN的HoA,然后以MN的CoA作为目的地址发送数据。当MN接收到数据时,它自动将数据的目的地址替换为存储在第二类路由报头中的地址。

目的地选项头用于承载仅需要由目的节点处理的可选信息,其中很重要一点就是归属地址。当MN不在归属地时,它发送的数据中就含有该选项信息(将其HoA发送给CN)。此时,数据包的源地址是MN的CoA,而归属地址选项中的地址是MN的HoA。当地址的有效性被验证之后,这两个地址将被交换。MN的CoA和HoA必须在注册时相互绑定。

2.3 多转交地址

移动目标防御用于反审查的关键技术之一是多IP地址能力,使得审查者不能在有限的时间内检测到地址并实行阻塞。随着MIPv6和绑定识别BID(Binding Identification)号码的扩展,MN可以实现多个CoA绑定同一个HoA。MN可以设置多个IPv6全局地址并将其注册为它的CoA。为了注册多个绑定,MN为每个CoA生成一个独特的BID。这些BID被存储在绑定更新列表中,且每条绑定信息都是相互独立的。MN可以通过BID移动性选项使用BU消息注册其CoA。

另一方面,可以在CN上禁用多转交地址。这样CN就无法识别接收到的BU消息中BID移动性选项。根据RFC 5648[22]协议,CN可以跳过未知的移动性选项,仅简单地更新绑定缓存,并将数据包发送到MN最新更新的CoA。

3 基于MIPv6的MTD反审查方法

本节描述了基于MIPv6的移动目标防御MI-MTD(MIPv6-based Moving Target Defense)方法,并通过建模来协助分析影响方案有效性的各种因素。最后,通过实验结果证明所提方案的可行性。

该方法的核心技术就是使用多个IPv6的CoA。与实际的移动应用不同,主机(如:Web服务器)被视为移动节点,HoA作为服务器的永久地址,CoA作为动态地址。被分配CoA的用户组称为访问组。每隔一段时间生成伪随机IP地址,替换服务器的所有CoA。在每个间隔内,通过地址变化和重新分配用户,随机改变每个访问组成员身份。通过绑定更新机制用新的CoA更新用户。

本文所提出的方案只需要在服务器中设置MIPv6参数,为HoA选择一个与服务器子网前缀不一样的IP地址。当MIPv6运行时,服务器从其路由器接收路由宣告消息,该路由器归属链路的前缀与HoA的前缀不同。这样,服务器就认为它在外地网络中,并在本网络中注册一个CoA。随机生成64位地址,与归属链路前缀结合来生成新的CoA。这些新的CoA在子网中注册之前通过邻居请求消息来检测是否已经被占用。根据MIPv6的多个CoA注册规则,服务器(MN)将会向其用户发送含有新CoA的BU消息。当用户接收到BU时,服务器的HoA和CoA被插入到绑定缓存中,并删除以前的CoA。

为了部署MIPv6,服务器端需要一些改变:(1)允许对不同访问组进行用户分配;(2)通过分配的CoA更新每个访问组。用户端不需要任何改变,MIPv6协议标准也不需改变。

该方法的两个关键之处在于多个CoA的分配和变化。将不同的CoA分配给每个访问组限制了一个组内有一个审查员(假装成正常用户的攻击者)的影响。一旦审查者发现一个CoA,它将阻塞该地址来切断对可能通过CoA产生的服务器访问。所有与此审查者在同一访问组中的用户都将失去与服务器的连接。为了解决这个问题,每隔一段时间使用户地址在不同访问组之间随机变化。为了消除地址变化期间的丢包,在删除以前的CoA之前,服务器要为新的CoA发送BU消息。因此,在切换延迟期间,用户发送的数据报头中含有旧的CoA。每个访问组中的所有用户接收到各自的BA或在一段时间之后,服务器删除旧的CoA。地址变化间隔可以动态变化,为方便分析,本文使用了固定变化间隔。

3.1 模型与分析

本文通过分析攻击者伪装成正常用户所付出的代价来衡量MI-MTD方案的有效性。审查者在每个变化间隔之后都会接收到含有最新CoA的BU消息,该CoA将被阻塞或攻击。在每个间隔期间,包含至少一个审查者的访问组中的所有端用户将被禁止访问服务器。首先计算在任意时刻,用户被阻塞的概率与CoA和审查者的数量的关系。

建立变化过程的数学模型来协助分析。该模型中使用的符号如表1所示。

表1 模型使用符号对应表

用户总数N是审查者(Na)和正常用户(Nu)的和。在每个变化间隔中,正常用户可分为两类:被审查者和未被审查者。访问概率p是用户在任意时刻访问服务器的概率。为了计算p,首先需要计算未被审查者数量(Nuf)的期望值:

(1)

假设访问组大小与式(1)相同,则用户在可用CoA上均匀分布,即N可以被I整除。

(2)

因此,对于任意CoA,IPj未被阻塞的概率为:

(3)

(4)

基于上述假设,Aj=Ai,∀i,j∈(i,j),N=I×Aj,由此可得:

(5)

(6)

因此,用户在给定时刻访问服务器的概率p为:

(7)

例如,假设有1 000 000个用户和5 000个审查者,在每个变化间隔中使用10 000个CoA,对于任意用户,在一个变化间隔期间访问服务器的概率大约为60.88%。

基于上述结果来考虑实际(如网站访问模式)中的其他重要因素。比如:用户访问网站上的特定信息通常不与Web服务器以连续的方式进行交互。也就是说用户并不是一直点击和加载网页。典型的访问模式是用户先与服务器短暂交互,然后浏览自己机器上已经呈现的信息(持续时间较长)。基于本文提出的变化机制所求得的访问概率是相互独立的,由此可较容易计算出在一段时间δ内的阻塞概率bk,其中k表示变化间隔的数量,则k个独立时间间隔内,受审查的用户被阻塞的概率为:

(8)

以1分钟为例计算该期间的阻塞概率,设定变化间隔t为10 s,则b6=(1-0.608 8)6≈0.358%。即用户每分钟大概有99.6%的几率可以成功访问服务器。

通过计算分群比的最大值可以得出系统可用的最低概率p,这与具体的应用场景有关。例如,在极限条件下,每几小时可以访问服务器一次已经足够满足用户需求。相比之下,典型的通过网页浏览新闻可能每隔几分钟左右就需要访问服务器一次。因此,衡量有效性与攻击者的攻击方式(完全阻塞或仅制造一点不便)有关。为方便说明,本文以一分钟制造5%的阻塞为例,如果用户在一分钟内访问网站的概率达不到95%,则认为系统被破坏,而实际上这仅给用户造成些许不便。用户在审查者干预下将要承受更高的阻塞率。

在本例中,当φ=0.933 9时达到最大值,因此可以讨论IPv6地址空间和网站硬件资源限制问题。Web服务器在一个子网中能够利用的IP地址数量为264,服务器在一个变化间隔内可以利用的CoA数量取决于两点:(1) 如果264个地址全部使用,服务器在一个间隔内全部用完,访问组将无法收到新的CoA。当然,对于服务器系统来说同时使用264个地址就目前的技术水平来说不太现实。如果每个间隔使用1 000 000个CoA,5.849×107年之后才会用光这些地址。(2) 每个间隔用于创建和绑定CoA的IP地址受服务器和路由的硬件条件限制。由文献[15]可知,取I值为10 000(不会带来较大延迟),为了使分群比φ=0.933 9,Na=0.933 9×10 000=9 339,即攻击者必须每分钟利用9 339个审查者才能导致大于5%的阻塞率。以此类推,如果攻击者想要达到持续10小时(足够阻止用户下载一条新闻信息)造成99%以上的阻塞率,分群比φ=0.12,需要部署12 800个审查者。以5分钟注册为例,攻击者需要1 067人才能在第10个小时完全阻塞注册过程,这意味着10小时之内用户依然可以访问网站。为了实现完全阻塞10小时,攻击者需要在一开始就部署128 000个审查者。当服务器重置用户时需要重复执行这些过程。图2展示了三种不同时间内,攻击者为了达到不同等级的阻塞所需的分群比。可以看出,阻塞时间越长,阻塞率越高,所需的分群比越高,即需要在网络中部署的审查者越多。

图2 不同阻塞概率所需的分群比大小

3.2 用户注册过程

实际上,攻击者不需要Na台电脑来模拟Na个审查者。攻击者可以创建一个绑定多个IP地址的系统。由文献[15]可知,55 000个IPv6地址可以同时绑定在同一台机器(Intel i7处理器,3.4 GHz,16 GB RAM,千兆以太网接口)上,即攻击者可以部署55 000个审查者。为了防御审查者,需要人为干预,对用户来说,只需要在初始注册的时候操作一下即可。一些其他方法,比如复杂的验证码检验,需要用户花费大量时间来处理。

注册状态应该每隔一段时间(如12小时)重置一次,迫使攻击者的每一个审查者都要重复注册过程。另一个重要因素就是每一个审查者的使用时间。如果审查者在每一次注册开始时立即部署,则它在整个变化期间都会有影响。如果审查者在第11个小时部署,那他仅在下1个小时内有效,之后便重新注册。如上所述,12小时的注册周期,10小时内造成完全阻塞,1分钟的解决时间,攻击者需要在注册重置前2个小时内准备128 000个审查者。这样在接下来的10个小时内,没有用户能够访问服务器。在这种情况下,攻击者需要1 067人操作2个小时。在服务器端,可以相对容易地额外增加计算机附件、网络接口和路由器。为了攻击配有10个服务器(配有10个接口)的站点,攻击者需要106 700个并行工作的人。此外,在第1个小时内,仍有大量用户能够访问服务器。

由于本方案中不存在HA,新用户将无法使用服务器的HoA连接到服务器。相反,服务器在接收到用户的请求时,由它发起连接。在用户端,需要使用服务器的HoA和域名来设置主机文件。新用户为了连接服务器,必须向服务器发送其IP地址和共享密钥。一个简单的方法是利用安全邮件来完成交换。

3.3 IPsec

当节点N1向另一个节点N2发送数据包时,需要在数据包报头中添加源地址(作为HoA)和目的地址。然后,N1检查绑定更新列表是否已经将BU发送到N2,从N2处搜索CoA。如果发现,N1将其CoA写进归属地址选项中,检查其绑定缓存以确定N2的BU是否已送达。如果发现,N1将生成包含N2的CoA的第二类路由报头。含有源地址和目的地址的数据包将送达IPSec。加密后添加报头,归属地址选项与源地址交换,第二类路由报头与数据包目的地址交换。当N2收到数据包时,按照报头在数据包中出现的顺序进行处理。IPSec过程HoA总是在数据包报头中的源地址和目的地址中[23]。IPSec没有加密第二类路由报头和归属地址选项。

为了防止审查,可以删除数据包中目的地选项头(和第二类路由报头)来解决这个问题。在IP封装安全有效载荷ESP(Encapsulated Security Payload)报头中的安全参数索引SPI(Security Parameter Index)足以访问HoA(数据包的真实源地址和目的地址)。删除目的地选项头和第二类路由报头之前和之后的数据包格式如图3所示。

(a) 去除目的地址选项头和第二类路由报头之前数据包格式

(b) 去除目的地址选项头和第二类路由报头之后数据包格式图3 去除目的地选项头和第二类路由报头之前和之后的数据包格式

3.4 原型实现

为了证明本方案的有效性,并对该设计的性能进行评估,搭建一个基于IPv6的测试台如图4所示。使用三台路由器(R1、R2、R3)和五台Ubuntu 14.04系统(Linux内核版本3.8-2)的计算机(2.4 GHz双核CPU,4 GB DDR2,800 MHz RAM)。基于Linux的开源MIPv6(UMIP),路由器R1作为因特网的“中心”。审查者之间像路由器一样转发数据,单个访问组的用户(USER1、USER 2和USER 3)使用一个CoA,审查者不在该组中。

开启服务器和用户的可移动进程,服务器的HoA与R2的路由宣告不在同一个网段。服务器在R2上的注册地址为CoA并将其更新到所有用户。通过编程来实现每10秒生成一个新的CoA(实时删除前一个)。根据MIPv6,服务器向用户发送BU消息告知其新的CoA。BU消息的ACK比特使用户发回BU的确认响应消息,以保证用户成功接收BU消息并更新其绑定缓存条目。因此,每10秒便在服务器和每个用户之间产生两个开销数据包,如图5所示。图中,实线表示服务器端,源地址为服务器CoA,目的地址为用户地址,目的地址选项头中的归属地址为服务器HoA;虚线表示用户端,源地址为用户地址,目的地址为服务器CoA,第二类路由头中的归属地址为服务器HoA。通常,在此更新期间,用户在接收到BU消息之前无法访问服务器。在服务器端注册多个CoA可以解决这一问题,也就是说直到用户接收到下一个CoA之前,当前时间间隔内的CoA保持有效。一旦所有用户更新到新的CoA才删除当前CoA。

图5 绑定更新过程

本文方法会产生两种开销,更新过程BU和BA消息产生的信令开销和服务器和用户之间传输数据产生的传输开销。

信令开销:一个完整的节点注册过程需要与服务器传输两类消息(BU和BA消息),每条消息110字节(使用IPSec,移除目的地址选项和第二类路由报头)。在最初的MIPv6中,BU和BA的长度是110字节,由于使用路由返回机制,会有四条额外信息。此外,为了最小化消息数量,减少开销,该系统可以不使用BA运行,即如果数据从客户端传输新的CoA,服务器知道客户端接收到BU就不需要BA消息。

传输开销:在应用IPSec条件下,每个数据包会产生24字节的开销。即便不使用本方法,仍然需要使用IPSec来确保服务器和用户之间建立安全连接,所以本文方法对每个数据包造成的实际开销包为零。

4 结 语

本文基于移动IPv6和移动目标防御技术提出一种反审查机制架构。并通过理论分析证明,通过改变分群比率值,可以使攻击者部署审查机制的代价大大增加。该方法不改变标准MIPv6和网络协议,也不需要第三方中介介入。最后通过设计一种基于MIPv6的测试实验平台证实该方案的可行性。

猜你喜欢

报头IP地址攻击者
基于贝叶斯博弈的防御资源调配模型研究
报业文化中的一道独特风景
正面迎接批判
正面迎接批判
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计
淡妆浓抹总相宜
——对中国晚报报头变化的研究与欣赏
计算机的网络身份IP地址
简论报纸的报头设计
毛主席为《人民日报》写报头