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

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

SA由3个部分内容唯一标识,即SPI、IP目的地址和安全协议标识符。根据IPSec的封装模式同样也可以将SA分为传输模式SA和隧道模式SA,二者的应用机理则根据IPSec的实际实施来决策。

SA可以创建也可以删除,可由手工进行创建和删除操作,也可通过一个Internet标准密钥管理协议来完成,如IKE。SA的创建份两步进行:协商SA参数,然后用SA更新SADB。如果安全策略要求建立安全、保密的连接,但又找不到相应的SA,IPSec内核便会自动调用IKE,IKE会与目的主机或者途中的主机/路由器协商具体的SA,而且如果策略要求,还需要创建这个SA。SA在创建好且加入SADB后,保密数据包便会在两个主机间正常地传输。

SA的删除有诸多情况: (1)存活时间过期; (2)密钥已遭破解;

(3)使用SA加密/解密或验证的字节数已经超过策略设定的某一个阀值; (4)另一端请求删除相应SA。

同SA创建一样,SA的删除也有手工删除和通过IKE删除两种方式。为了降低系统被破解的威胁,系统经常需要定期定量更新密钥,而IPSec本身没有提供更新密钥的能力,为此必须先删除已有的SA,然后再去协商并建立一个新SA。为了避免耽搁通信,在现有的SA过期之前,必须协商好一个新的SA。

2.3 AH和ESP

IPsec 提供了两种安全机制:认证和加密。认证机制使IP 通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。IPsec 协议中的AH 协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP 协议定义了加密和可选认证的应用方法,提供数据可靠性保证。[21][22]

1、AH(Authentication Header,认证头)

AH用于为IP提供无连接的数据完整性、数据源认证和一些有限的(可选的)抗重放服务,但不提供任何加密服务,故而不需要任何加密算法,但需要一个认证器,用于进行后续的认证操作。AH 的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP 包头后面,对数据提供完整性保护。AH定义了保护方法、头的位置、认证范围以及输入输出的处理机制,且没有定义要用的具体认证算法, 可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。

AH作为一种IP协议,其在IPv4数据报中的协议字段值为51,表明IP头之后是AH头。AH的头格式如下图2.3所示:

9

图2.3 AH头格式

下一个头字段:8bit长度,表示AH头之后的下一个载荷的类型。在传输模式下,是受保护的上层协议的值,如UDP或TCP。而在隧道模式下,是受保护的IP协议的值。

SPI字段:SPI(任意制定的32bit整数值)、源地址或者外部IP头的目的地址和安全协议(AH或ESP)三者共同构成的一个三元组,来唯一标识这个包的安全关联SA。

序列号:序列号包含一个单向递增的计数器,是一个32bit的唯一的无符号整数值。当建立SA时,发送方和接收方的序列号初始化为0。通信双方每使用一个特定的SA发出一个数据报,就将它们相应的序列号加1。而序列号的主要作用就是用来防止重放数据报。AH规范强制发送方发送序列号给接收方,而接收方有权选择是否使用抗重放特性,这时接收方可以不管数据流中的数据报序列号。如果接收方启动了抗重放功能,它便使用滑动接收窗口机制检测重放包。

认证数据字段:包含完整性校验值(ICV),采用的转码方案则决定了ICV的长度,而SA指定生成ICV的算法。计算ICV的算法因IPSec实施的不同而不同,然而为了保证互操作性,AH有2个默认强制执行的认证器:HMAC-SHA-96和HMAC-MD5-96。

2、ESP(Encapsulating Security Protocol,封装安全载荷)[23]

IPsec 封装安全负载(IPsec ESP)是 IPsec 体系结构中的一种主要协议,保证为通信中的数据提供机密性和完整性。ESP 的工作原理是在每一个数据包的标准IP 包头后面添加一个ESP 报文头,并在数据包后面追加一个ESP 尾。与AH 协议不同的是,ESP 将需要保护的用户数据进行加密后再封装到IP 包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES 等。同时,作为可选项,用户可以选择MD5、SHA-1 算法保证报文的完整性和真实性。同AH一样,ESP是否启用抗重放服务也是由接收方来决定。

ESP 头可以放置在 IP 头之后、上层协议头之前 (传送层),或者在被封装的 IP 头之前 (隧道模式)。IANA 分配给 ESP 一个协议数值 50,在 ESP 头前的协议头总是在“next head”字段(IPv6)或“协议”(IPv4)字段里包含该值 50。ESP 包含一个非加密协议头,后面是加密数据。该加密数据既包括了受保护的 ESP 头字段也包括了受保护的用户数据,这个用户数据可以是整个 IP 数据报,也可以是 IP 的上层协议帧(如:TCP 或 UDP)。

ESP头格式如下图2.4所示:

10

图2.4 ESP头格式

这里需要注意的是SPI和序列号均没有被加密。 (1)ESP处理

对于ESP来说,密文是得到认证的,认证的明文则是未加密的。其间的含义在于对于外出包来说,先进行加密;对于进入的包来说,认证是首先进行的。

1)处理外出数据包

当某IPSec实现接收一个外出的数据包时,它使用相应的选择符(目的IP地址端口、传输协议等)查找SPD并且确认哪些策略适用于数据流。如果需要IPSec处理并且SA已经建立,则与数据包选择符相匹配的SPD项将指向SADB中的相应SA。如果SA未建立,IPSec实现将使用IKE协议协商一个SA并将其链接到SPD选项,接下来SA将用于进行以下处理:

I.生成序列号;II.加密数据包;III.计算ICV:IV.分段。 2)处理进入数据包

当接收方收到ESP包后的第一件事就是检查处理这个包的SA,如果查找失败,则丢弃此包,并重新审核该事件。而一旦确认了一个有效的SA,就可以用它对包进行相应处理,处理步骤如下:

I.用查到的SA对ESP包进行处理。首先检验已确定IP头中的选择符是否和SA中的匹配,如果不匹配则抛弃该数据包并审核事件;如果匹配,IPSec应用跟踪SA以及它相对于其他SA的应用顺序并重复查找SA和步骤I,直到遇到一个传输层协议或者一个非IPSec扩展头。

II.使用包中的选择符进入SPDB中查找一条和包选择符相匹配的策略。

III.检查所找到的SA是否和步骤II找到的策略相匹配,如果匹配失败,则重复步骤III和IV,直到所有的策略匹配完成或者匹配成功。

11