毕业论文-基于GRE-over-IPsec-VPN设计与仿真 联系客服

发布时间 : 星期一 文章毕业论文-基于GRE-over-IPsec-VPN设计与仿真更新完毕开始阅读97badd42366baf1ffc4ffe4733687e21af45ffa1

第二章 GRE与IPSec相关技术概述

2.1 GRE概述

1、GRE引入[20]

GRE(Generic Routing Encapsulation),中文译为通用路由封装,该协议在IP头中的协议号是47。GRE是一种最传统的隧道封装协议,提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输。其根本功能就是要实现隧道功能,通过隧道连接的两个远程网络就如同直连,GRE在两个远程网络之间模拟出直连链路,从而使网络间达到直连的效果。 2、GRE的主要特性如下:

(1)将原始数据包被包裹在外层协议之内; (2)GRE需要在原IP报头之外增加新的IP报头;

(3)GRE是一种无状态协议,不提供可靠地流控传输机制; (4) GRE支持IP协议和非IP协议; (5)GRE支持单播、组播和广播; (6)GRE不具备安全加密功能。 3、GRE工作原理及流程概述

由上述可见,GRE中的IP数据包是一层套一层,总共有3个IP地址。GRE在实现隧道时,需要创建虚拟直连链路,GRE实现的虚拟直连链路可以认为是隧道,隧道是模拟链路,所以隧道两端也有IP地址,但隧道需要在公网中找到起点和终点,所以隧道的源和终点分别都以公网IP地址结尾,该链路是通过GRE协议来完成的,隧道传递数据包的过程分为3步:

(1)将接收原始IP数据包中的协议当作乘客协议,原始IP数据包包头的IP地址为私有IP地址。

(2)将原始IP数据包封装进GRE协议,GRE协议称为封装协议(Encapsulation Protocol),封装的包头IP地址为虚拟直连链路两端的IP地址。

(3)将整个GRE数据包当作数据,在外层封装公网IP包头,也就是隧道的起源和终点,从而路由到隧道终点。

GRE隧道对传输数据进行加封装与解封装的主要过程如下:

一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程,下面以下图2.1为例说明这两个过程:

图2.1 X协议网络通过GRE隧道连接

5

(1)加封装过程

1) Router A 连接Group 1 的接口收到X 协议报文后,首先交由X 协议处理; 2)X 协议检查报文头中的目的地址域来确定如何路由此包;

3)若报文的目的地址要经过 Tunnel 才能到达,则设备将此报文发给相应的Tunnel接口;

4) Tunnel 口收到此报文后进行GRE 封装,在封装IP 报文头后,设备根据此IP包的目的地址及路由表对报文进行转发,从相应的网络接口发送出去。

(2)GRE解封装的过程

解封装过程和加封装的过程相反。

1) Router B 从Tunnel 接口收到IP 报文,检查目的地址;

2) 如果发现目的地是本路由器,则 Router B 剥掉此报文的IP 报头,交给GRE 协议处理(进行检验密钥、检查校验和及报文的序列号等);

3)GRE 协议完成相应的处理后,剥掉GRE 报头,再交由X 协议对此数据报进行 后续的转发处理。

2.2 IPSec概述

1、加密学概述 加密算法:

当不同的远程网络通过Internet连接时,网络之间直接通过私有地址进行互访只是需求之一,除此之外,还有个非常重要的需求,那就是数据安全。在远程网络之间布置的VPN除了实现隧道功能之外,还必须在隧道中实现对数据的加密。隧道与加密是一个安全可靠的VPN技术兼备的元素,两者缺一不可,否则就不算是完整的、安全的VPN。

目前,加密算法多种多样,加密算法分为加密和解密两个过程:加密是指将明文数据换算成密文数据;解密是对加密的反运算,将密文数据转变为明文数据。

根据在对数据进行解密时使用的密钥和加密使用的密钥是否完全相同,可将加密算法分为两类:对称加密算法和非对称加密算法。在对数据进行解密时使用的密钥和加密使用的密钥是完全相同的,这种加密算法称为对称加密算法,也叫做私钥算法;同时在对数据进行解密时使用的密钥和加密使用的密钥是完全不相同的,这种加密算法称为非对称加密算法,也叫做公钥算法。

当前涉及到的各种加密算法有: (1)对称加密算法(私钥算法) DES(Data Encryption Standard)

DES加密共有三种形式,分为DES(40-bit长度加密),DES(56-bit长度加密)以及3DES(3倍的56-bit长度加密,即168-bit长度加密);由于3DES加密长度够长,安全性够高,所以推荐使用3DES。

AES(Advanced Encryption Standard)

AES加密共有三种形式,分为AES 128(128-bit长度加密),AES 192(192-bit长度加密)以及AES 256(256-bit长度加密);由于AES 256加密长度够长,安全性够高,所以

6

推荐使用AES 256。

(2)对称加密算法(公约加密算法)

RSA公钥加密算法的名字是发明者的人名:Rivest, Shamir and Adleman,该算法的长度位数不定,由人手工定义。

注:在硬件方面,当采用公钥加密算法时,速度明显慢于私钥加密算法。虽然使用公钥加密算法似乎更安全,但通常都使用私钥加密算法,而使用私钥加密算法的重点就是要保证密钥的安全传递与交换,所以该工作就由公钥加密算法来完成。最后的过程就是先使用公钥加密算法安全地交换私钥算法的密钥,然后再使用私钥算法对数据进行加密,这样既保证了私钥算法的密钥安全,同时又获得了数据加密的速度,两者兼得。

HMAC(Hashed Message Authentication Code):

Hash算法的特征在于任何大小的数据通过Hash计算后,得到的Hash值都是固定长度的,所以如果仅仅是根据Hash值,是无法推算出数据内容的,包括将数据内容还原。在正常的数据传输中,数据在发送之前先计算出相应的Hash值,当接收者收到数据后也要对数据计算Hash值,如果发现自己计算的Hash值与数据附带的值不匹配,便认为数据在传输过程中遭到了篡改,从而拒绝不正确的数据包。基于Hash的以上特征, Hash多用于认证,而认证对等体双方在相互认证时,只需要交换密码的Hash值即可,而无需交换密码,从而防止了密码被窃取。

目前Hash算法有:

MD5(Message Digest 5):将任何数据通过计算后输出128-bit长度的Hash值。 SHA-1(Secure Hash Algorithm 1):160-bit digest,将任何数据通过计算后输出160-bit长度的Hash值。

显然SHA-1拥有着比MD5更高的安全性。 2、IPSec的引入

IPsec协议是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全的通讯。然而IPsec本身并不是一个协议,而是一个协议簇,包含着为之服务的各种协议,以实现IPsec要完成的各个功能。

IPsec所提供的主要安全服务有:

(1)数据机密性(Confidentiality):IPsec 发送方在通过网络传输包前对包进行加密。 (2)数据完整性(Data Integrity):IPsec 接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。

(3)数据来源认证(Data Authentication):IPsec 在接收端可以认证发送IPsec 报文的发送端是否合法。

(4)防重放(Anti-Replay):IPsec 接收方可检测并拒绝接收过时或重复的报文。 3、IPSec的封装模式 IPsec 有如下两种工作模式:

(1)隧道(tunnel)模式:用户的整个IP 数据包被用来计算AH或ESP 头,AH或ESP 头以及ESP加密的用户数据被封装在一个新的IP 数据包中。通常,隧道模式应用在两个安全网关之间的通信,此时加密点不等于通信点。

7

(2) 传输(transport)模式:只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP 包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通信,此时加密点等于通信点。

不同的安全协议在tunnel和transport模式下的数据封装形式如下图2.2所示,Data为传输层数据。

图2.2 数据封装形式

4、IPSec协议的实现

之所以说IPsec协议不是一个单独的协议,则是因为它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。

在实际进行 IP 通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP 都可以提供认证服务,不过,AH 提供的认证服务要强于ESP。同时使用AH 和ESP 时,备支持的AH 和ESP 联合使用的方式为:先对报文进行ESP 封装,再对报文进行AH 封装,封装之后的报文从内到外依次是原始IP 报文、ESP 头、AH 头和外部IP 头。

以上介绍的便是为IPSec服务的三种协议,即:IKE、ESP和AH。后续将分别对这三种协议进行详细探讨。

对于IPSec数据流处理而言,有两个必要的数据库:安全策略数据库SPD和安全关联数据库SADB。其中SPD指定了数据流应该使用的策略,SADB则包含了活动的SA参数,二者都需要单独的输入输出数据库。IPSec协议要求在所有通信流处理的过程中都必须检查SPD,不管通信流是输入还是输出。SPD中包含一个策略条目的有序列表,通过使用一个或多个选择符来确定每一个条目。IPSec选择符包括:目的IP地址、源IP地址、名字、上层协议、源端口和目的端口以及一个数据敏感级别。

5、SA(Security Association,安全关联)

IPsec的所有会话都是在通道中传输的,SA则是IPSec的基础,但SA并不是隧道,而是一组规则,是通信对等方之间对某些要素的一种协定,如IPSec安全协议、协议的操作模式、密码算法、密钥、用于保护它们之间的数据流密钥的生存期,等等。

8