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

2019-01-16 35,466

IPSec的使用是建立在安全关联的基础上的,所以在讲IPSec之前要先了解一下安全关联,然后再详细讲述IPSec的工作过程。

一、安全关联

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

安全关联是单向的,用于确定发送者至接收者传输方向的安全传输过程所使用的加密算法和加密密钥、消息鉴别码算法和MAC密钥。如果某对发送者和接收者之间需要安全传输数据,必须先建立发送者至接收者的安全关联。安全关联有相应的标识符;由于同一对发送者和接收者之间可以建立多个安全关联,所以发送者需要通过定义安全策略数据库(SPD)来判别数据传输所使用的安全策略。

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

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

传输模式用于保证数据端到端安全传输,并对数据源进行鉴别,IPSec所保护的数据就是作为IP分组净荷的上层协议数据。

隧道模式下源端和目的端的内部网络被一个公共网络分隔,由于内部网络使用的是本地IP地址,所以以本地源目的地址的IP分组不能直接在Internet中传输,这种情况下会将整个IP分组作为净荷分装在以全球IP地址为源目的地址的IP分组中。

IPSec安全目标:在网际层实现IP分组端到端安全传输,整个传输过程需要保证防止重放攻击、实现源端鉴别、数据加密、完整性检测。

主要要素:AH(实现源端鉴别、防重放攻击、检测完整性)、ESP(实现源端鉴别、防重放攻击、检测完整性、数据加密)、IKE(实现密钥交换)

鉴别首部(AH)格式:下一个首部、鉴别首部长度、安全参数索引(SPI)、序号(用于防重放攻击)、鉴别数据(用于鉴别源端身份和实现数据完整性检测)


二、安全机制:

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报文被黑客延迟了一段时间。


2.2 AH:

IP分组封装成AH报文可以选择传输模式或者隧道模式:

1.jpg

2.jpg

计算鉴别数据时覆盖AH报文下述字段:
1.IP首部(隧道模式下是外层IP首部)中传输过程中不需要改变的字段值。
2.AH中除鉴别数据外的其他字段值。
3.AH报文中的净荷,如果是隧道模式,净荷是包含内层IP首部的整个IP分组。
下面用一个AH应用实例了解AH的工作过程,终端A与Web服务器之间建立终端A至Web服务器的安全关联,相关信息在图中已经给出!

3.0.jpg

4.jpg

5.jpg

发送端终端A的操作:终端A将通过HTTP访问Web服务器相关的IP分组封装成AH报文,同时采用约定的MAC算法HMAC-MD5-96和MAC密钥7654321计算鉴别数据,然后将AH报文和鉴别数据一起发送给Web服务器。

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

2.2 ESP:

IP分组封装成ESP报文同样可以选择传输模式或者隧道模式。

6.jpg

74.jpg

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密钥。

13_LI.jpg

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

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

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

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

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

数字签名的两个验证作用:

  1. 验证对方发过来的消息是否受到中间人攻击;

  2. 验证消息发送方的身份。


发送端启动IKE的过程如下:


52_LI.jpg


当发送端需要输出某个IP分组时,用该IP分组检索安全策略数据库(SPD),每一条安全策略包含IP分组分类依据和对该类IP分组实施的动作两部分,根据匹配到的安全策略指定的动作处理该IP分组。

                                             完(1978作品)

本文作者:1978

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/95159.html

Tags:
评论  (0)
快来写下你的想法吧!

1978

文章数:2 积分: 13

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号