基于RPKI协议的路由过滤子软件系统的设计与实现

论文价格:0元/篇 论文用途:仅供参考 编辑:论文网 点击次数:0
论文字数:**** 论文编号:lw202330018 日期:2023-07-22 来源:论文网

第 1 章 绪 论

1.1 课题背景及研究的目的和意义

在当前的互联网环境中,IP 前缀劫持仍然是互联网路由系统安全性的主要威胁。因为缺乏权威的预置所有权信息,尽管在设计 IP 预防劫持检测方案方面做出了很多努力,但是所有的设计都不能满足真正有效系统的所有关键要求:实时性、准确性、轻便性、易用性、可逐步部署以及受劫持后通知的健壮性[1]。除此之外,互联网的控制平面完全依赖于 BGP 协议[2]作为域间路由来维护和交换大型网络提供商和他们的客户之间的路由信息。然而,BGP协议的一个内在弱点[3]就是它不能验证对等体/对等体组路由器之间交换路由信息的完整性和正确性。结果,对于那些通过前缀劫持这种攻击方式来恶意盗取合法 IP 块的人来讲相当容易,这实际上就相当于向路由信息系统注入了虚假路由信息,重定向或颠覆了网络流量[4]。前缀劫持的概念是指网络运营商发布或宣告了一个未分配给它的路由信息,由此通过传播错误的 BGP 路由来吸收流向另一个网络的(部分)流量的行为。通过劫持另一个 AS(Autonomous System)域的流量,攻击者可能对受害者的网络进行黑洞攻击(拒绝服务攻击等),通过窃取其网络身份或窃取受害者的流量来冒犯受害者[5]。发生该类事件有:2008 年 YouTube 流量遭受巴基斯坦电信管理局劫持事件,以及 2012 年谷歌服务器宕机等。而近年来,发生在国内的前缀劫持事件也是有增无减,路由器成了攻击的新跳板,如何提高路由安全问题,对于互联网安全来讲非常重要。为了提高路由系统的安全性,业界在防范路由劫持方面做出了大量努力,但迄今为止仍然缺乏有效的防护手段[6],所以,亟待一个有效、可靠的机制来验证 BGP 宣告的路由信息。

.........

1.2 与本课题有关的国内外研究状况

本课题涉及到网络安全和路由安全的内容。路由安全问题一直是网络专家关注的重点问题,通过对路由劫持事件进行分析来研究预防和检测手段,本小节将从多个方面来探讨和本课题相关的国内外研究状况,具体包括以下内容。路由劫持是 BGP 路由系统当前面临的最严重的安全威胁之一[9]。当发生路由遭受劫持攻击的事件时,发起路由劫持的攻击者可能会劫持发往被劫持网络的网络流量,因此可以通过路由劫持来实现多种攻击目的。比如:创建路由黑洞来抛弃掉数据包而不指明原因,将吸附的网络流量丢弃,将遭受到劫持的网络所提供的服务阻断隔离;在发送垃圾邮件时使用被劫持网络的 IP地址,以达到迷惑接收者的目的;劫持网络将吸附到的流量做修改后发回到被劫持网络,实现隐蔽的“中间人攻击”;发起路由劫持的网络模拟提供被劫持网络的服务和功能,实现网络钓鱼等。对于目前所发生的路由劫持事件研究发现,路由劫持有两种类型:一种是前缀劫持,另一种是子前缀劫持。前缀劫持是发起前缀劫持的攻击者声明对前缀地址的所有权,并开始向外通告。这样攻击者和受害者将同时向外通告相同的前缀,如图 1-2 所示。一些路由器将优选攻击者通告的路由来转发业务,因为攻击者通告的路由中 AS 路径更短。子前缀劫持就是攻击者通告比受害者子网值更大的子网掩码[10]。由于最长匹配规则,流量将立即转发给攻击者。由图 1-2 可以看出,AS100 宣告了本属于它的合法路由信息 10.0.0.0/8,由于路由信息相互交换,AS200 将从 AS100 收到的路由信息 10.0.0.0/8 添加到自己的路由表中,并标注 AS 路径为 100。AS400 同时也宣告了 10.0.0.0/8这条路由信息,与其相连的 AS300,将该条路由信息添加到自己的路由表中,标注 AS 路径为 400。如图中所示,AS200 和 AS300 互为对等体,相互交换自己当前在用的最优路由信息,则 AS200 将从 AS300 收到的 10.0.0.0/8 添加到路由表中,标注 AS 路径为 300 400,同时 AS300 也将从 AS200 收到的10.0.0.0/8 添加到路由表中,标注 AS 路径为 200 100。在当前的路由信息中,根据路由优选规则,如果 AS200 中有需要访问 10.0.0.0/8 的数据包,根据路由表信息,数据包将被正确转发,转发到 AS100;但如果 AS300 中有需要访问 10.0.0.0/8 的数据包,根据路由表信息,数据包将被转发到 AS400 中,这就造成了路由劫持。

...........

第 2 章 路由过滤子系统需求分析

基于 RPKI 协议的路由过滤子系统主要是针对网络层 BGP 协议的安全缺陷,设计了一个对路由信息进行验证的子系统,从而在网络安全层面提供一个可靠的安全保障方法。一旦发生路由劫持事件,在网络的入口处就可以进行验证判定,从而指导流量向正确的路径转发。因此,本系统需完成 ROA 信息获取以及进行路由信息验证的过程,并且借助显示信息进行核实。

2.1 路由过滤子系统业务分析

BGP 是当前互联网中唯一的域间路由协议,对互联网安全起着至关重要的作用。然而 BGP 协议本身存在着很大的安全问题,互联网中的数据包传递都要经过路由器,由路由器中的路由表指导转发,一旦路由表中的路由信息是错误的,数据包将会被路由到不确定的目的地,造成用户请求得不到响应或者目标不可达等网络问题。本项目的路由过滤子系统在路由信息的完整性和正确性方面做了校验,有效地指导数据包的转发,在网络安全方面提供了一定的保障。本课题从网络安全的角度分析 BGP 协议,根据路由信息内容,从 IP 地址前缀和 AS 号码的绑定关系,分析验证路由信息有效性。本系统的开发初衷是为了给企业级的网络安全提供一个验证路由信息的方法和工具,尽量避免路由前缀劫持事件的发生。因此,路由过滤子系统依赖于服务器端存储 ROA 信息的合法性、有效性以及全面性。当路由劫持事件发生时,可以在设备入口处对路由做上标签,在以后的流量转发过程中,避免转向非法路径。根据上述应用场景和项目背景分析,本系统部署方式如图 2-1 所示,在服务端存有有效正确的 ROA 信息,客户端部署 RPKI 协议后,从服务端获取ROA 信息,以验证本地路由信息的有效性,将路由信息协同验证结果发送给对等体,当对等体收到数据包后,根据本地的路由信息,优选 RPKI 验证状态为 Valid 的路由转发,从转发层面上避免了路由劫持的发生。

..........

2.2 路由过滤子系统基本需求分析

基于 RPKI 协议的路由过滤子系统的最终目标已经明确,研究的主要内容包括功能部分和非功能部分。根据功能部分内容划分,所得需求分析包括以下部分。系统的功能需求可分为 6 个部分,命令行处理、会话连接,报文传输,ROA 信息处理、路由校验和高可靠性保障。具体功能说明如下:在命令行处理方面,实现命令行注册、解析和处理的功能。设备在启动的过程中,由命令行注册模块完成注册功能,形成一棵命令树。在命令行解析阶段,借助于命令树完成命令行的解析功能,形成命令配置消息。由命令行处理部分完成命令配置消息对应的功能。在会话连接处理方面,实现客户端和服务器端安全连接的功能。在客户端指定了服务器端的 IP 地址和端口号之后,为了实现更安全的传输方式,同时为两端配置密码,只有两端配置的密码相同时,才能建立 Session 连接,提高了安全性。Session 建立成功后,将其存入链表中。考虑到建立大量 session的情况,为提高查找效率,对 session 值进行哈希处理后再存储。

...........

第 3 章 路由过滤系统设计 .....14

3.1 路由过滤子系统概要设计 ............14

3.2 路由过滤子系统总体架构 ............16

3.3 命令行模块设计 .......19

3.3.1 命令行注册子模块设计.... 19

3.3.2 命令行处理子模块设计.... 21

3.4 会话处理模块设计 .............22

3.5 报文处理模块设计 .............24

3.6 ROA信息处理模块设计 .....31

3.7 路由信息处理模块设计 ......33

3.8 高可靠性保障模块设计 ......37

3.8.1 项目支持 GR 子模块设计.......... 37

3.8.2 项目支持 NSR 子模块设计........ 38

3.9 本章小结 ........39

第 4 章 路由过滤子系统的实现 .......40

4.1 命令行模块实现 .......40

4.2 会话处理模块实现 .............44

4.3 报文处理模块实现 .............49

4.4 ROA信息处理模块实现 .....55

4.5 路由信息处理模块实现 ......59

4.6 高可靠性保障模块实现 ......64

4.7 本章小结 ........70

第 5 章 路由过滤子系统测试 ...........71

5.1 测试环境 ........71

5.2 单元测试 ........72

5.3 系统性能测试...........79

5.4 测试结论 ........81

5.5 本章小结 ........81

第 5 章 路由过滤子系统测试

本项目旨在通过对路由信息进行路由源验证来确保路由信息的完整性和正确性,当路由劫持事件发生时,能从路由转发层面进行检测,防止错误路由信息的扩散。因此,本系统应当保证 ROA 信息的准确性和全面性,以及路由验证结果的有效性和严密性。根据以上指导思想,将测试分为以下单元测试和系统测试。本章将从测试环境、单元测试和系统测试三个方面对测试工作进行说明。

5.1 测试环境

本系统的测试重点是验证 RPKI 系统功能使能和去使能以及配置结果的正确性,采用 H3C 网络设备模拟软件--华三云实验室(HCL)来搭建测试环境,测试设备由虚拟设备代替,包括 1 台服务器和 2 台路由器。设备组图如图 5-1所示。图中的 Telnet 设备表示通过命令配置可以远程登录 Client 路由器和 peer路由器进行操作。其中,server 端用于模拟提供 ROA 信息和进行报文交互的设备,client 端用于测试各个命令配置的有效性,peer 用来测试路由验证结果是否成功向邻居发送。上图中的 Telnet 可以协助进行压力测试,即使用脚本来进行操作。报文处理模块测试主要包括报文发送和接收顺序测试、构造错误报文测试本地处理能力等功能测试。对报文的测试都要在调试状态下进行,需要打开RPKI 报文调试开关。

.........

结 论

在如今的互联网中,人们对网络资源的需求量越来越大,路由承载的网络流量也越来越多,所以对流量能够正确转发的要求也越来越严格,而网络中路由劫持事件的发生却是不可预测和递增不减的。所以,对路由信息完整性和有效性的验证成为了本文的主要研究课题。本文针对 BGP 协议在网络层面的安全缺陷,详细分析了基于 RPKI 协议的路由过滤子系统的功能需求和非功能需求。根据需求分析给出了系统设计方案,并按照系统设计实现了路由过滤子系统,最后通过测试优化完成了本课题的开发工作。在实现过程中,主要的研究内容和成果有:

(1)命令处理:为了实现命令行的完善处理,需要将命令解析为系统可识别的配置消息,从而将命令行涉及到的后台处理部分进行了模块划分,对模块之间的关系也进行了梳理,以此得出了系统架构图。

(2)采用 socket 套接字来实现会话连接,并对 socket 的存储采用了数组和双链表结合的数据结构方式,而对会话采用的是有序单链表的存储结构,方便了对大量通信过程的存储和查询。对报文信息中提取的 ROA 信息采用 Radix 树存储,这是借鉴路由信息的存储方式,并考虑 ROA 信息的组成,选择这种最佳存储方式。

(3)路由信息的处理过程采用最简单的比较过程,能够快速得到路由验证结果,在大路由的情况下,处理过程能达到最优,避免后续的无效比较过程。

(4)为了更好的应对各种复杂的网络环境,提出并设计实现了高可靠性保障模块,同时,为进一步过滤路由,实现了基于 RPKI 的路由策略设置,增加了系统的过滤处理能力。

(5)系统测试及性能优化,根据路由过滤子系统的需求分析和设备使用特点设计测试用例并编写测试脚本,经测试验证路由过滤子系统功能完整正确,系统性能达预期要求。

..........

参考文献(略)

如果您有论文相关需求,可以通过下面的方式联系我们
客服微信:371975100
QQ 909091757 微信 371975100