IPSec协议

内容提要

Motivation(IP协议的安全缺陷、虚拟专用网)

IPSec概述(协议流程、SPD、SAD)

数据封装(IPSec:AH、IPSec:ESP)

安全参数协商(ISAKMP、IKE)

一、Motivation

1.1IP协议的安全缺陷

IP协议可能遭受欺骗攻击:伪造源IP地址

缺乏保密性和数据完整性保护

1.2虚拟专用网

二、IPSec概述

2.1IPSec安全服务:保密性、数据完整性、访问控制、数据源认证

2.2IPSec:根据安全策略对IP数据报进行安全处理

安全策略:针对安全需求给出的一系列解决方案,它决定了对什么样的通信实施安全保护以及何种安全保护。

安全处理:加密、消息认证码、重新封装

2.3IPSec的处理过程分为协商和数据交互两个阶段:

协商阶段:通信双方互相认证对方身份,并根据安全策略协商使用的加密、认证算法,生成共享的会话密钥。

数据交互阶段:通信双方利用协商好的算法和密钥对数据进行安全处理。

协商阶段:互联网密钥交换协议(IKE)

数据交互阶段:认证首部(AH)、封装安全载荷(ESP)

2.4应用IPSec,查询SAD

1.存在有效SA

根据对应参数,将数据报封装(加密、验证、添加IPSec头、IP头),然后送出

2.尚未建立SA

触发IKE协商,协商成功则走第1步,否则丢弃数据报

3.存在SA但无效

请求协商新的SA,协商成功则走第1步,否则丢弃数据报

进入处理:

收到一个数据报后,首先查询SAD。如果存在有效SA,则查询为该数据报提供的安全保护是否与安全策略要求相符。如果相符,则将还原后的数据报交给相应的高层协议模块处理或者转发;如果不相符,则丢弃该报文。

如果没有建立SA或者SA无效,则直接丢弃数据报,不会重新协商SA。

2.5安全策略(SP)

安全策略是针对安全需求给出的一系列解决方案,决定了对什么样的通信实施安全保护以及提供何种安全保护

安全策略通常以安全策略库(SPD)的形式表现,其中每条记录是一条安全策略。

SPD一般保存在一个策略服务器中,为域中的所有节点(主机和路由器)维护策略库。各节点可以将策略库复制到本地,也可以通过LDAP动态获取策略。

SPD

对于外出数据报,必须先检索SPD,确定对其应提供的安全服务。

对于进入数据报,IPSec引擎也检索SPD,判断为其提供的安全保护是否和策略规定的安全保护相符。

安全策略描述:对通信特性的描述、对保护方法的描述

SPD:通信特性描述

目的IP、源IP、名字、传输层协议、源、目的端口、数据敏感等级

以上对通信特性的描述称为:选择符

SPD:对保护方法的描述

每一份数据报,三种处理方式:丢弃、绕过、应用IPSec

如何应用IPSec?安全关联(SA)

2.6、IPSec:安全关联(SA)

2.6.1安全策略与安全关联的关系:

安全关联用于实现安全策略,是安全策略的具体化和实例化,详细定义了对一个数据报的具体处理方式。

如果安全策略是应用IPSec进行保护,则必须指向一个SA或者SA束。

6.2安全关联(SA)

6.2.1 SA是两个IPSec实体(主机或者路由器)之间的一个单工“连接”,用于规定保护数据报安全的具体安全协议、密码算法、密钥以及密钥的生存期。

SA是单向的,要么对数据报进行“进入(接收到的)“保护,要么对数据报进行”外出“(发送出去的)保护

6.2.2 每个SA用一个三元组来标识<SPI,目的IP地址,安全协议>

其中,SPI:4字节的串,协商SA时指定,IPSec报文中包含SPI

其中,目的IP地址:单播、广播或者多播地址,可以为终端用户系统、防火墙或者路由器

序号计数器:32bit,用于产生AH或ESP头的序号

抗重放窗口:32bit,用于确定进入的AH或者ESP包是否为重放

密码算法及密钥:消息验证码计算算法及密钥、加密算法及密钥、初始化向量IV

安全关联的生存期:是一个时间间隔,超过这一间隔后,应建立一个新的SA或者终止通信。生存期可以用时间或者当前SA处理过的字节数为单位来计数

6.2.3IPSec协议模式

传输模式:提供对高层协议数据的保护

隧道模式:提供对整个IP报文的保护

6.3安全关联管理

安全关联管理的任务:创建SA,删除SA

手工方式:由管理员根据安全策略来维护,容易出错

自动方式:IKE,动态,适用于规模较大的情况

七、IPSec的封装:AH

7.1AH提供的安全服务

数据完整性:消息验证码

数据源发认证:消息验证码

抗重放性攻击:序列号

7.2AH的特点

不对传输的数据提供保密性,密码学运算开销小,两种工作模式:传输模式和隧道模式

7.3传输模式

如果要在两台主机之间以AH协议保护传输的数据,需要先在两台主机设置密钥,假设主机A的密钥为Key(A),主机B的密钥为Key(B)。因为AH协议使用对称加密,因此通信双方还需要对方的密钥。

AH:发送端报文封装

主机A的IPSec引擎会对要发送的数据包进行处理,在原有的IP头和高层协议(如TCP)头部之间插入一个AH头部。AH头部包含了原来IP报文的完整性校验值(ICV),封装好之后发给主机B。

此时,AH头中,next hdr=TCP

AH:接收端校验

主机B收到上述报文后,根据AH头部的信息,对数据包进行验证,以确定是否被篡改。

验证过程为:

主机B收到数据之后,根据对应SA的信息生成认证数据,并与认证头部中的认证进行比较

如果匹配,则验证成功

如果不匹配,则认为数据包无效,丢弃该数据包,并在audit log里面记录这个事件。

7.4AH头部格式

next hdr:8-bit字段,指明认证头部后面的一个首部对应的协议类型。

AH len:8-bit字段,指明认证头部的长度,以4个字节为计数单位。

Reserved:16-bit字段,保留为将来用,设置为0。

SPI:32-bit字段,IKE协商SA指定的安全参数索引,<SPI,目的IP地址,安全协议(这里是AH)>三元组用于唯一标识该数据包的SA。

Sequence Number:无符号32-bit、单调递增计数器值,用于防止重放攻击,该字段也是必须的。

Authentication Data:变长字段,必须是32-bit的整数倍,用于存储完整性校验值(ICV),用于进行数据源发认证和完整性校验。

AH保护数据:发送处理过程

1.查询SA,获取安全参数

2生成序列号

3.计算认证数据

4.构造IPSec报文并发送

AH保护数据:接受处理过程

1.根据<目标地址,安全协议,SPI>在SAD中查找相应的SA,如果没有找到,则丢弃该报文

2.使用滑动窗口机制验证序列号,防止重放攻击

3.验证认证数据,若通过验证,则还原数据并递交给相应的协议模块或者转发,否则丢弃。

7.4AH:隧道模式

在数据包从源主机发到局域网安全网关主机A,A会对该报文进行重新封装,在原IP头前加新IP头+AH头

此AH头中,next hdr=IP----------------判断报文是隧道模式的关键

7.5AH:ICV计算数据

IP头部中,在传输过程中不变的字段或者是在到达接收端其值可预测的字段。

AH头部,包括:Next Header,Rayload Len,Reserved,SPI,Sequence Number,和认证数据(在计算ICV值的时候置为0),及显示的填充字节(如果有的话)。

AH能和NAT一起部属吗?

NAT要修改的部分和AH认为在传输部分(用于计算ICV)冲突,那么接收端就无法通过完整性校验,从而导致数据包丢弃。因此不能一起部署。

7.6应用场景

公司有成都总公司和北京分公司,现在有两个员工分别在香港和纽约出差,为了工作都使用了VPN。

出差两员工通信:采用AH传输模式

出差员工和公司:采用AH隧道模式,员工为起点

两地公司员工通信:采用AH隧道模式

八、ESP

8.1安全服务:保密性,数据完整性,数据源发认证,抗重放攻击

8.2报文格式




8.3隧道模式

在IP头前加新IP头+ESP头,高层协议数据后面加ESP尾

8.4传输模式

在IP头后加ESP头

8.5ESP:发送数据处理过程

1.查询SAD,获取安全参数

2.报文加密

3.生成序号

4.计算认证数据

5.构造IPSec报文并发送

ESP:接收数据处理过程

1.根据<目的IP地址,安全协议,SPI>三元组查询SAD,若找不到有效SA,则丢弃报文

2.使用滑动窗口机制验证序号,防止重放攻击

3.验证认证数据,如果验证失败,则丢弃该报文

4.解密,并将还原后的报文递交给相应的协议模块,解密失败则丢弃该报文

九、安全参数协商

9.1IKE,Internet Key Exchange

IKE功能:协商SA,密钥生成,身份认证

应用层协议 UDP 端口:500

ISAKMP:交换时序和格式

Oakley:优化DH算法

SKEME:快速密钥更新的通用密钥交换技术

9.2ISAKMP

9.2.1协商过程

第一阶段,协商获得ISAKMP SA,用以保护第二阶段的协商过程

第二阶段,协商获取安全协议SA用于保护通信数据

9.2.2两个重要概念:

交换:规定了协议时序(5种协商时序:基本交换,身份保护交换、只有认证的交换、野蛮交换、通知交换)

载荷:规定了协议的语法和语义

9.2.3身份保护交换:

1.发起方发送第一个报文,包括首部和SA,SA是发起方给出的安全关联建议

2.回应方回复一个报文,包括首部和回应方选择的SA

3.发起方发送报文,包括首部、密钥交换信息和随机数

4.回应方响应一个报文,包括首部、密钥交换信息和随机数

5.发起方发送一个报文,包括首部、身份信息和认证信息,数据区受到加密保护

6.回应方回复一个报文,包括首部、身份信息和认证信息,数据区受到加密保护

9.2.4野蛮交换:

1.发起方发送一个报文,包括首部、SA、KE、Nonce和IDii

2.回应方回复一个报文,包括首部、选定的SA、KE、Nonce、IDir、AUTH

3.发起方发送一个报文,包括首部和认证信息,认证信息加密

9.2.5通知交换

用途:在ISAKMP交换过程中,如果某一方发现有差错发生,则用“通知交换”通告通信对端;用于SA管理,比如通知通信对端删除某个SA

通知交换报文用第一协商的安全参数进行保护

9.2.6报文及载荷

首部+数据区(取决于交换类型及报文类型,由载荷构成)

报文首部






  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行IPSec协议数据的分析时,可以采取以下步骤: 1. 捕获IPSec数据包:使用网络抓包工具(如Wireshark)在网络中捕获IPSec数据包。确保捕获到的数据包包含IPSec的相关协议头部和有效负载。 2. 解析IPSec头部:对捕获到的数据包进行解析,查看IPSec协议头部的字段和值。IPSec头部通常由AH(认证头)和ESP(封装安全负载)组成,可以根据协议头部的类型和标志位确定是否使用了加密和认证机制。 3. 检查加密算法:根据解析出的IPSec头部信息,查看加密算法字段,确定通信双方所采用的具体加密算法。常见的加密算法有AES、3DES等。 4. 检查认证算法:同样根据解析出的IPSec头部信息,查看认证算法字段,确定通信双方所采用的具体认证算法。常见的认证算法有HMAC-MD5、HMAC-SHA1等。 5. 分析密钥交换:如果IPSec使用了密钥交换协议(如IKE),需要进一步分析密钥交换过程,包括协商阶段、密钥交换方式等。 6. 解密和验证:如果IPSec数据包进行了加密和认证,可以根据协议头部中的字段和密钥信息对数据包进行解密和验证操作,以还原明文数据和验证数据的完整性。 通过以上步骤,可以对IPSec协议数据进行分析,了解通信双方所采用的加密和认证算法,以及密钥交换过程等关键信息。这有助于评估IPSec协议的安全性和性能,并进行故障排除和网络优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值