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: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指定的安全参数索引,三元组用于唯一标识该数据包的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报文及载荷

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

报文首部






你可能感兴趣的:(网络安全协议)