安全协议——Internet安全协议(Internet Protocol Security,IPSec)工做原理

IPSec的使用是创建在安全关联的基础上的,因此在讲IPSec以前要先了解一下安全关联,而后再详细讲述IPSec的工做过程。web

1、安全关联

安全关联的定义:为了实现数据发送者至接收者的安全传输,须要创建发送者与接收者之间的关联,能够实现源端鉴别、数据加密和完整性检测。算法

安全关联是单向的,用于肯定发送者至接收者传输方向的安全传输过程所使用的加密算法和加密密钥、消息鉴别码算法和MAC密钥。若是某对发送者和接收者之间须要安全传输数据,必须先创建发送者至接收者的安全关联。安全关联有相应的标识符;因为同一对发送者和接收者之间能够创建多个安全关联,因此发送者须要经过定义安全策略数据库(SPD)来判别数据传输所使用的安全策略。数据库

安全关联标识符:安全参数索引(SPI)、目的IP地址、安全协议标识符。安全

IPSec协议模式目前定义了传输模式和隧道模式两种。服务器

  1. 传输模式用于保证数据端到端安全传输,并对数据源进行鉴别,IPSec所保护的数据就是做为IP分组净荷的上层协议数据。
  2. 隧道模式下源端和目的端的内部网络被一个公共网络分隔,因为内部网络使用的是本地IP地址,因此以本地源目的地址的IP分组不能直接在Internet中传输,这种状况下会将整个IP分组做为净荷分装在以全球IP地址为源目的地址的IP分组中。

IPSec安全目标:在网际层实现IP分组端到端安全传输,整个传输过程须要保证防止重放攻击、实现源端鉴别、数据加密、完整性检测。
主要要素:AH(实现源端鉴别、防重放攻击、检测完整性)、ESP(实现源端鉴别、防重放攻击、检测完整性、数据加密)、IKE(实现密钥交换)
鉴别首部(AH)格式:下一个首部、鉴别首部长度、安全参数索引(SPI)、序号(用于防重放攻击)、鉴别数据(用于鉴别源端身份和实现数据完整性检测)网络

2、安全机制:

2.1 防止重放攻击:

新创建源端至目的端的安全关联时,序号初始值为0,源端在发送AH或者ESP报文时,先将序号增长1并将该序号做为报文的序号字段值。在安全寿命内,不容许出现相同的序号,只要目的端接收到相同序号的报文,就予以丢弃。 因为AH报文或者ESP报文通过网络传输后不是按序到达目的端,因此经过防重放攻击窗口定义了一个正常的延时抖动范围:假定防重放攻击窗口值为W,目的端正确接收到AH或ESP报文中最大序号为N,则序号值为N-W+1~N的AH或者ESP报文传输时延虽然大于序号为N的AH或者ESP报文,可是时延在正常范围内,目的端正常接收这些报文。若是某个AH或者ESP报文传输时延和其余AH或者ESP报文传输时延插值超过这个正常时延抖动范围,就能够认为该AH或ESP报文被黑客延迟了一段时间。svg

2.2 AH:

IP分组封装成AH报文能够选择传输模式或者隧道模式:
在这里插入图片描述 在这里插入图片描述
计算鉴别数据时覆盖AH报文下述字段:
1.IP首部(隧道模式下是外层IP首部)中传输过程当中不须要改变的字段值。
2.AH中除鉴别数据外的其余字段值。
3.AH报文中的净荷,若是是隧道模式,净荷是包含内层IP首部的整个IP分组。加密

下面用一个AH应用实例了解AH的工做过程,终端A与Web服务器之间创建终端A至Web服务器的安全关联,相关信息在图中已经给出。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
发送端终端A的操做:终端A将经过HTTP访问Web服务器相关的IP分组封装成AH报文,同时采用约定的MAC算法HMAC-MD5-96和MAC密钥7654321计算鉴别数据,而后将AH报文和鉴别数据一块儿发送给Web服务器。3d

接收端服务器的操做:Web服务器接收到终端A发送的AH报文以后,根据安全关联标识符找到对应的安全关联,而后从新对AH报文用HMAC-MD5-96算法和MAC密钥计算鉴别数据,将计算结果和AH报文懈怠的鉴别数据进行对比,若是二者相同,则经过源端鉴别和数据完整性检测。xml

2.2 ESP:

IP分组封装成ESP报文一样能够选择传输模式或者隧道模式。
在这里插入图片描述在这里插入图片描述
ESP尾部包含填充数据、8bit的填充长度字段和8bit的下一个首部。填充长度字段值以字节为单位给出填充数据长度、下一个首部字段给出净荷的协议类型;填充数据有三个做用
1.为了保证对净荷+尾部进行加密运算时其数据长度是加密算法要求数据长度的整数倍,
2.净荷+ESP尾部必须是32bit的整数倍,
3.隐藏实际净荷有利于数据传输的安全性。

计算鉴别数据的时候覆盖ESP报文的字段包含ESP首部+净荷+ESP尾部,并不包括外层IP首部中不变字段。

ESP加密运算时覆盖的字段是净荷(隧道模式下是包括内层IP首部在内的整个IP分组)+ESP尾部。

ESP的工做过程和AH相似。

2.3 IKE:

创建安全关联的机制有两种,第一种是静态安全关联创建机制,第二种是动态安全关联创建机制。Internet密钥交换协议(Internet Key Exchange Protocol,IKE)就是一种动态创建安全关联并完成参数协商的协议。

IKE动态创建安全关联能够分为两个阶段,第一个阶段是创建安全传输通道,也成为创建IKE安全关联过程,该过程须要约定加密算法和MAC算法、加密密钥和MAC密钥,由于在创建安全传输通道以前,须要相互鉴别对方身份,因此还要约定鉴别方式;第二个阶段是创建安全关联,也叫创建IPSec安全关联过程,该过程须要约定安全协议AH、MAC算法HMAC-MD5-96和MAC密钥。
在这里插入图片描述

  1. 终端A想Web服务器B发送的信息包含加密算法DES、报文摘要算法MD五、用于生成密钥种子KS的YA(YA=ɑ^XA mod p,其中XA是随机数、ɑ和p是组号为2的Diffie-Hellman参数指定的值)和随机数NA。

  2. 服务器B发送给A的消息和A发给B的相似,可是若是双方约定的是证书+私钥的身份鉴别机制,Web服务器还要向终端A发送证书请求。

终端A和Web服务器根据YB和YA生成相同的密钥种子KS,根据密钥种子KS和随机数NA和NB计算全部须要的密钥。

  1. 创建安全传输通道以后,终端A向Web服务器发送IPSec安全关联指定的安全协议AH和MAC算法HMAC-MD5,还有终端A和Web服务器的标识符IDA和IDB,以及用于证实终端A的公钥是PKA的证书,证书请求、数字签名D_SKA(MD5(DES||MD5||YA||NA||IDA))。

  2. Web服务器经过终端A发送的数字签名验证其身份,确认终端A发送消息的完整性以后,向终端A发送:IPSec安全关联指定的安全协议AH和MAC算法HMAC-MD5,Web服务器的SPI、终端A和服务器的标识符IDA和IDB,以及用于证实Web服务器的公钥是PKB的证书、数字签名D_SKB。

数字签名的两个验证做用:1.验证对方发过来的消息是否受到中间人攻击;2.验证消息发送方的身份。

发送端启动IKE的过程以下:
在这里插入图片描述 当发送端须要输出某个IP分组时,用该IP分组检索安全策略数据库(SPD),每一条安全策略包含IP分组分类依据和对该类IP分组实施的动做两部分,根据匹配到的安全策略指定的动做处理该IP分组。