网络安全协议课程设计IPsec隧道协议的安全分析与改进.docx
- 文档编号:25716580
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:15
- 大小:234.14KB
网络安全协议课程设计IPsec隧道协议的安全分析与改进.docx
《网络安全协议课程设计IPsec隧道协议的安全分析与改进.docx》由会员分享,可在线阅读,更多相关《网络安全协议课程设计IPsec隧道协议的安全分析与改进.docx(15页珍藏版)》请在冰豆网上搜索。
网络安全协议课程设计IPsec隧道协议的安全分析与改进
《网络安全协议》
课程设计
题目IPsec隧道协议的安全分析与改进
班级
学号
姓名
指导老师
2015年7月4日
一、概述
网络如若想实现交流传输,必须以网络协议为载体进行。
而网络协议(Network Protcol)是控制计算机在网络介质上进行信息交换的规则和约定。
网络协议通常会被按OSI参考模型的层次进行划分。
OSI参考模型是国际标准化组织制定的网络体系结构参考模型,提供各种网络互联的标准,共分七层:
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,会话层、表示层和应用层往往被合并称为高层。
当前的计算机网络的体系结构是以TCP/IP协议为主的Internet结构。
伴随着网络的诞生近几年频繁出现的安全事故引起了各国计算机安全界的高度重视,计算机网络安全技术也因此出现了日新月异的变化。
安全核心系统、VPN安全隧道、身份认证、网络底层数据加密和网络入侵主动监测等越来越高深复杂的安全技术极大地从不同层次加强了计算机网络的整体安全性。
网络安全的实现首先需要网络协议的安全,但是网络协议都是人为写的,存在先天的不足与缺陷,以至于只能慢慢实践发现并给与补充。
这里先谈一下VPN中的GRE协议。
GRE(GenericRoutingEncapsulation,通用路由封装)协议是由Cisco和Net-smiths等公司于1994年提交给IETF(InternetEngineeringTaskForce,网络工程工作小组)的,标号为RFC1701和RFC1702。
GRE协议规定了如何用一种网络协议去封装另一种网络协议的方法,是一种最简单的隧道封装技术,它提供了将一种协议的报文在另一种协议组成的网络中传输的能力。
GRE协议就是一种应用非常广泛的第三层VPN隧道协议。
GRE隧道使用GRE协议封装原始数据报文,基于公共IP网络实现数据的透明传输。
GRE隧道不能配置二层信息,但可以配置IP地址。
本文从GRE协议的工作原理入手,从安全性角度出发,详细分析了GRE隧道协议的不足与缺陷,最后提出了相关的安全防护方案。
1.1课程设计的目的
详细分析IPsec隧道协议不支持对多播和广播的加密的不足,并针对其漏洞设计实施完善可行的策略。
1.2课程设计的内容
将GRE与IPsec结合使用,弥补IPsec不能保护组播数据的缺陷。
因为GRE可以封装组播数据并在GRE隧道中传输,所以对于诸如路由协议、语音、视频等组播数据需要在IPsec隧道中传输的情况,可以通过建立GRE隧道,并对组播数据进行GRE封装,然后再对封装后的报文进行IPSec的加密处理,就实现了组播数据在IPsec隧道中的加密传输。
1.3课程设计的要求
GRE是传统IP网络中最常用的VPN技术;IPSec是比较常用的数据加密技术,本文要求详细介绍GRE的原理和报文封装,并且进行有效可行的GRE与IPsec的组合应用,解决组播业务在跨广域网的VPN中部署的问题,最后深刻理解GRE协议和IPsec协议的原理与作用,以及两者一起使用时的功能与利弊。
二、问题分析
2.1系统需求
实现这个需求首先要知道IPSEC协议只能对单播数据报文进行加密,我们可以设想把组播源或者组播客户端发出的组播报文,采用某种技术或者协议在组播报文的前面封装一个单播的IP报文头,构造一个普通的单播IP数据报文,组播报文可以看作是它的数据净荷,那么这个构造的报文在传输过程中,就可以使用IPsec协议对其进行加密了,这也意味着组播报文作为构造的单播IP数据报文里“数据净荷”被加密了.
2.2GRE协议分析
(1)GRE协议广泛应用于建立VPN网络隧道,例如有一个大型企业需要利用VPN将分布在两地的总部和办事处网络连接起来,在办事处网络路由器A与总部网络路由器B之间建立一个GRE隧道,则办事处网络中的主机A和总部网络中的主机B可以通过该隧道进行网络通信。
如图1所示,这就是一个非常典型的利用GRE隧道协议来实现VPN网络的模型,本文中所描述的各种情况均以该网络拓扑结构为基础。
(2)GRE协议数据包结构
GRE协议可以实现对IP、IPX、AppleTalk等协议数据包的封装,本文以使用最为广泛的IP协议为例。
通过GRE协议封装过的数据包格式如图2所示:
在GRE数据包结构中,前面的IP包头部结构是传送数据报头部,用于将其他被封装的数据包封装成IP包并在IP网络中传输,在本文中称之为外部IP报头。
GRE报头部用来传送与有效负载数据包有关的控制信息,用来在控制GRE数据包在隧道中的传输以及GRE报文加封装和解封装过程,其结构如图3所示。
有效载荷数据包是被封装的其他协议的数据包,若被封装的协议为IP数据包,则有效载荷数据包就是一个IP数据包。
(3)GRE协议报文处理过程
GRE协议报文在隧道中传输时,必须要经过加封装与解封装两个过程。
在图1所描述的网络中,办事处网络中主机A与总部网络中主机B的通信过程如下所述:
1、A发送的IP报文首先到达路由器A,路由器A连接内部网络的接口收到该IP报文后首先交由IP报文处理进程处理,其检查IP报头中的目的地址域来确定如何路由该IP报文。
由于其目的地址为总部网络中的IP地址,则开始进行数据包的加封装,即在该IP报文前加上新的IP报头即外部IP报头和GRE报头。
之后将封装好的报文通过GRE隧道接口发送出去。
2、器B从GRE隧道接口收到路由器A发送的经过封装的GRE报文后,检查目
的地址,发现目的地就是此路由器时,先去掉外部IP报头,将剩下的报文交由GRE协议处理。
GRE协议进行检查校验和、序列号等处理,之后进行GRE解封装,即将GRE报头部去掉。
再将解封装之后的IP报文交由IP报文处理进程象对待一般IP报文一样对此报文进行处理,即将该IP数据包交给连接内部网络的接口,按照目的地址发送给主机B。
由上述的GRE协议处理过程可以看出,GRE协议只提供了数据包的封装,并没有提供增强安全性的加密功能。
2.3IPsec协议分析
IPsec协议是目前用于所有Internet_通信的唯一的一种安全协议。
IPSec保护IP数据包的安全,主要包括:
数据起源地验证、无连接数据的完整性验证、保证数据内容机密性、抗重播保护和保护有限数据流的机密性等。
提供了一种标准的、健壮的以及包容广泛的机制,为运行于IP顶部的任何一种协议(如TCP,UDP,ICMP等)提供保护。
IPSec确保端到端的数据安全。
IPSe。
在网络内部实施时,即构成了虚拟专用网。
IPSe。
运行在网络层上,所以属于第三层隧道协议。
IPSec是一组协议套件,包括AH(验证头),ESP(封装安全载荷)、IKE(Internet密钥交换)、ISAKMP/Oakley以及转码。
各组件之间的交互方式如图1所示:
IPSec策略由安全策略数据库(SecurityPolicyDatabase,SPD)加以维护。
在SPD数据库中,每个条目都定义了所要保护的通信类别、保护方法以及与谁共享这种保护。
进人或离开IP堆栈的每个数据包都必须检索SPD数据库,调查可能的安全应用。
每一个SPD条目定义的行为是丢弃、绕过或应用中的一种。
行为是“应用的”PD条目,会指向一个或一套安全联盟(SecurityAssociationSA),表示对数据包实施应用安全保护。
实施方案都要构建一个安全联盟数据库(SecurityAssociationDatabase,SADB)来维护SA记录。
SA是两个通信实体经协商建立起来的一种协定,该协定决定了用来保护数据包安全的IPSec协议、转码方式、密钥及密钥的有效存活时间等。
SA是单向的,对于一个主机分别有SA(in)和SA(out)处理进人和外出的数据包。
SA具有协议相关性,若某一主机同时使用AH和ESP两种协议进行安全通信,那么该主机会针对每一个协议构建一个独立的SA,SA是以成对的形式存在的,既可人工创建,也可动态创建。
在进人通信时,若SA不存在,则丢弃数据包;对于外出通信,若SA不存在,则通过Internet密钥交换动态创建。
三、协议漏洞
3.1协议漏洞解决措施
GREoverIPsec,是将整个已经封装过的GRE数据包进行加密,于IPsec不支持对多播和广播数据包的加密,这样的话,使用IPsec的隧道中,动态路由协议等依靠多播和广播的协议就不能进行正常通告,所以,这时候要配合GRE隧道,GRE隧道会将多播和广播数据包封装到单播包中,再经过IPsec加密。
3.2协议漏洞解决详解
我们知道,最初,某大客户的总部网络和分支机构网络之间的业务主要局限于一些传统的FTP,HTTP等,网络结构如下:
使用IPsec协议,对总部和分支机构之间传送的数据报文进行加密,客户已经成功部署了这方面的业务。
随着企业规模的扩大,现在需要开启大量新业务,比如:
语音、视频等组播业务,组播服务器放在公司总部,组播客户端位于分支机构,网络结构如下:
当总部向分支机构提供语音、视频等组播业务时,组播数据流要通过Internet进行传输,出于安全的需要,也要求使用IPSEC技术对客户在Internet上传送的语音、视频等组播数据包进行加密,保证组播数据报文在Internet上传输时的私有性、完整性和真实性。
但是由于IPSEC协议目前只能对单播报文进行加密和保护,不能对组播报文进行加密和保护,所以人么迫切希望能不能采用其他的方法来实现这方面的需求。
四、协议完善具体实现
4.1实现分析
既然IPSEC协议只能对单播数据报文进行加密,我们可以设想把组播源或者组播客户端发出的组播报文,采用某种技术或者协议在组播报文的前面封装一个单播的IP报文头,构造一个普通的单播IP数据报文,组播报文可以看作是它的数据净荷,那么这个构造的报文在传输过程中,就可以使用IPsec协议对其进行加密了,这也意味着组播报文作为构造的单播IP数据报文里“数据净荷”被加密了。
如图所示:
(1)组播客户端发出一个组播报文,在NE16A上使用上面提到的某种技术,在组播报文前面封装一个单播IP头,目的地址是NE16B;
(2)在NE08A和NE08B之间建立一条IPSEC隧道,当构造的IP单播报文进入到隧道时,在NE08上A对其数据净荷进行加密;在NE08B上对其数据净荷进行解密;
(3)当这个报文到达NE16B时,去掉封装的IP头,还原出组播报文,这样组播报文就可以到达组播服务器了。
组播报文本身就是一个IP报文,采用上面的设想就等同于在一个IP报文前面再加上或者可以说是再封装一个单播的IP报文头,能够实现这种IP内封装IP的协议或者技术,我们可以采用GRE。
一个封装好的报文的形式如下:
举例来说,一个封装在IPTunnel中的IP传输报文的格式如下:
一个封装好的报文的形式如下:
举例来说,一个封装在IPTunnel中的IP传输报文的格式如下:
4.2GRE实现流程分析
通过上面的分析,解决的方案就很清晰了:
将GRE与IPsec结合使用,弥补IPsec不能保护组播数据的缺陷。
因为GRE可以封装组播数据并在GRE隧道中传输,所以对于诸如路由协议、语音、视频等组播数据需要在IPSec隧道中传输的情况,可以通过建立GRE隧道,并对组播数据进行GRE封装,然后再对封装后的报文进行IPsec的加密处理,就实现了组播数据在IPsec隧道中的加密传输。
我们根据下面这个图例进行详细的分析:
具体组网描述如下:
总部有两台路由器,分别是NE08B和NE16B,组播服务器直接下挂在NE16B下。
组播服务器的IP地址和网关分别为20.1.1.1/24和20.1.1.2/24;NE08B和NE16B的互连IP地址为11.1.1.1/30和11.1.1.2/30,NE08B连接Internet的接口IP地址为12.1.1.1/30。
分支机构也有两台路由器,分别是NE16A和NE08A,组播客户端下挂在NE16A下。
组播客户端的IP地址和网关分别为20.2.1.1/24和20.2.1.2/24;NE16A和NE08A的互连IP地址为14.1.1.1/30和14.1.1.2/30;NE08A连接Internet的接口IP地址为13.1.1.1/30。
在NE16A和NE16B之间建立GRE隧道tunnel,tunnel两端IP地址分别为15.1.1.1/30和15.1.1.2/30,NE08A和NE08B之间建立IPSECtunnel。
我们以组播客户端访问组播服务器为例,即数据报文的传输方向是从NE16A路由器到NE16B路由器,对GRE的实现流程进行说明:
(1)在NE16A上,GREtunnel接口的sourceIPaddress为14.1.1.1,
destinationIPaddress为11.1.1.1。
(2)组播客户端发出的组播报文,到达NE16A后,进入GREtunnel前,分别要封装两个报文头:
GRE和IP报文头。
特别注意的是:
封装IP报文头的sourceIPaddress和destinationIPaddress就是GREtunnel接口的sourceIPaddress和destinationIPaddress,即14.1.1.1和11.1.1.1,出GRE隧道之前,始终不变。
封装前组播报文格式:
(3)当封装后的组播报文即将进入IPSEC隧道时,NE08A会对报文的净荷或者整个报文进行加密。
假如对报文的净荷加密,那么报文格式如下:
(4)当报文即将出IPSEC隧道时,NE08B会对报文的加密净荷进行解密。
还原出一个加密前的报文,格式如下:
(5)当报文到达NE16B时,即将出GREtunnel接口时,NE16B会将单播的IP包头和GRE头去掉,还原出一个组播报文,格式如下:
(6)NE16B将还原出来的组播报文,转发给组播源。
整个过程可以用下图进行表示:
4.3简单设备设置
本文提供的数据配置只涉及GRE和IPSEC,命令行的含义参考《QuidwayNetEngine16E/08E/05路由器命令手册》,其他基础配置也可以参考《QuidwayNetEngine16E/08E/05路由器命令手册》。
NE16A的数据配置:
interfacetunnel1/0/0
ipaddress15.1.1.1255.255.255.252
source14.1.1.1
destination11.1.1.1
NE16B的数据配置:
interfacetunnel1/0/0
ipaddress15.1.1.2255.255.255.252
source11.1.1.1
destination14.1.1.1
NE08A的数据配置:
ikepeerfenzhi
pre-shared-key123
remote-address12.1.1.1
ipsecproposalfenzhi
ipsecpolicyfenzhi1isakmp
securityacl2100
pfsdh-group1
ike-peer
fenzhi
proposalfenzhi
sadurationtime-based86400
aclnumber2100
rule0permitipsource14.1.1.10destination11.1.1.10
rule1denyip
NE08A的数据配置:
ikepeerzongbu
pre-shared-key123
remote-address13.1.1.1
ipsecproposalzongb
ipsecpolicyzongbu1isakmp
securityacl2100
pfsdh-group1
ike-peerzongbu
proposalzongbu
sadurationtime-based86400
aclnumber2100
rule0permitipsource11.1.1.10destination14.1.1.10
rule1denyip
五、案安全性分析
本文通过IPsec和GRE的结合应用,实现了客户在通过广域网以VPN的形式部署业务,又能很好的保证安全性的需求,而且通过GRE巧妙的解决了穿透广域网实现组播业务部署的问题。
IPsec是一种比较常用的加密技术,而且本身具备构建VPN的能力,所以在跨广域网部署私有业务时,被广泛的应用。
IPsec在安全加密方面应用比较广泛,而且不同的产品为了适应客户大量的安全加密需求,将IPsec的安全加密功能进行硬件实现,很好的缓解了加密/解密对转发性能的影响。
但是IPsec在构建VPN方面存在一定的不足,通过IPSEC建立的VPN拓扑是“点到点”的,如果实现“网状”拓扑,必须手工逐点配置,而且IPsec本身不具备拓扑发现能力,必须依赖路由协议为其保证网络层可达性。
IPsec在适应上层应用的能力上也存在一定的不足,本方案中就有IPSEC与组播结合应用的需求,因为目前IPSEC通道内部还不能直接承载组播数据,所以才引出了IPsec与GRE结合应用的方案。
GRE可以说是传统IP网络中应用最为广泛的VPN技术,部署简单,配置复杂度不高,当然GRE也有不能发现拓扑的缺点,但是在“点到点”业务接入点的网络结构中,完全可以满足要求。
本文对GRE从原理到报文封装都进行了详细的介绍,并且给出了相关配置。
另外,目前的GRE虽然可以比较方便的静态部署“点到点”VPN,但是在适应多业务承载方面存在一定的不足,在目前的GRE封装里,除了应用tunnel的“destination”和“source”以外,没有其他手段来区分不同的隧道,这对于两个接入点有多种业务互通需求,但是出口设备又只有一对“公网”IP地址的小型网络来说,就无法很好的解决。
我们知道,GRE会在封装的IP报文前再封装以GRE报文头和“destination”对应的IP头,所以GRE嵌套层数越多,转发效率也就越低,并且对于不允许分片的报文来说,可能还会面临MTU值的问题。
六、程设计心得、总结
要做好一个课程设计,就必须做到:
在设计程序之前,对所用网络协议的结构有一个系统的了解,而且要有一个清晰的思路和一个完整的的流程图;在设计程序时,不能妄想一次就将整个方案设计好,反复修改、不断改进是完善设计的必经之路;要养成细心的好习惯,一个方案的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
我通过查阅大量有关资料,并与同学交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。
小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。
七、参考文献
【1】IETF.RFC1701.GenericRoutingEncapsulation(GRE).1994
【2】IETF.RFC1702.GenericRoutingEncapsulationoverIPv4networks.1994
【2】Gauis.ThingstodoinCiscoLandwhenyouaredead.PhrackMagazine,总第56期,第10卷.2000
【3】JoshuaWright.RedTeamAssessmentofParliamentHillFirewall.SANSGIACGCIHPracticalAssignment.2001
【4】CiscoSecurityResponse.CiscoIOSGREDecapsulationVulnerability.2006
【6】徐峥.基于三层隧道技术的IPSec-VPN技术[J].微计算机信息,2006,3-3:
98-99
课程设计评价
课程设计教师评语及成绩
指导教师:
日期:
2015年7月10日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络安全 协议 课程设计 IPsec 隧道 安全 分析 改进