网络安全技术-IPSec

IPSec概述

概述

  1. 是一种IETF设计的端到端的确保ip通信安全的机制。
  2. ipsec不是单独的协议,而是一组协议,ipsec协议的定义文件包括了12个rfc文件和几十个Internet草案,已经成为工业标准的网络安全协议。
  3. ipse在ipv6中是必须支持,ipv4可选
  4. IETF中的ip security protocol working group工作组负责标准,目标包括:
  • 该*可适用于ipv4 ipv6
  • 可谓运行ip顶部的任何一种协议提供保护
  • 与加密算法无关(改变加密算法不影响其他部分)
  • 可实现多种安全策略,同时避免给不适用该*的系统造成影响

ipsec优点

  1. 防火墙或路由器执行了ipsec,就可以为周边通信提供强有力的安全保障
  2. ipsec传输之下,对于应用程序来说是透明的
  3. ipsec对用户也是透明的,因此不必对用户进行安全机制的培训

ipsec协议族相关的rfc

网络安全技术-IPSec

ipsec功能

  1. 保证数据来源可靠(认证)
  2. 保证数据完整(完整性)
  3. 保证数据机密(机密性)

ipsec提供的安全服务
网络安全技术-IPSec

ipsec体系结构图

网络安全技术-IPSec

ipsec的实施

  • 在主机的实施,作为网络层的一部分来实现

网络安全技术-IPSec

  • 堆栈中的块,作为楔子插入网络层与数据链路层之间,bump-in-the-stack(bits)
    网络安全技术-IPSec

ipsec的实施

在路由器中的实施:

  • 等同于os的集成方案,集成在路由器的软件当中
  • 线缆中的块:等同于bits,ipsec在一个设备中实施,并将该设备接入路由器物理接口,不运行路由算法,只保障数据安全。

部署位置

主机(端设备)之间:
优点

  • 保障端到端安全性
  • 能够实现ipsec安全模式
  • 能够针对单个数据流提供安全保障
  • 在建立ipsec过程中,能够记录用户身份验证的相关数据和情况

安全网关(实现ipsec的中间系统,例如:路由器 防火墙等)之间

优点

  • 对两个子网(私有网络)间通过公共网络传输的数据提供安全保护
  • 能通过身份验证控制授权用户从外部进入私网,而将非授权用户挡在私网外。

核心内容

两种操作模式

  • 传输模式
  • 隧道模式

两个数据库

  • 安全策略数据库spd
  • 安全关联数据库sad

两个通信协议

  • ah 认证头
  • esp 载荷安全封装

三个**管理协议

  • 安全关联与**管理协议 isakmp
  • 因特网**交换管理协议
  • oakley:ike**交换协议

ipsec运行模式
由于ah esp都支持这两种模式,因此下述模式可以有四种组合

  1. 传输模式
  2. 隧道模式

传输模式

作用:保护ip包的载荷,通常,只用于两台主机之间的安全通信
网络安全技术-IPSec

ip隧道模式
作用:保护整个ip包,通常,只要有一方是安全网关或者路由器,就必须使用隧道模式

网络安全技术-IPSec

安全关联(SA)和安全策略(SP)

安全关联(sa)
发送方接收方之间的单向关系,用于通信双方之间业务流提供安全服务。
注: 安全关联是单向的,若需要双向则需要建立两个安全关联,且ah和esp不能在一个sa上同时实现,若需要同时提供ah和esp则需建立多个sa

网络安全技术-IPSec

sa内容
sa的内容主要包含一组针对特定目的主机或安全网关的一组参数:

  1. 安全参数索引 spi
  2. ip目的地址
  3. 安全协议标识 ah 或esp

sa类型

  1. 传输模式sa:两个主机的安全关联。
  • 在esp协议中,仅保护ip以上的协议数据安全,对ip头不保证。
  • 在ah中,不仅保护ip以上协议数据安全,对ip不可变字段的安全进行保证。
  1. 隧道模式sa
  • 适用于ip隧道
  • 安全网关之间、主机与安全网关之间的sa为隧道模式。
  • 主机之间也可以建立隧道模式sa。
  • 有两个ip头:内部ip头(ipsec设备的ip头)、外部ip头
  • 安全协议在外部ip头和内部ip头之间
  • 若在ah中使用,则整个ip包和外部ip头部分会受到保护
  • 若用esp使用,仅保护隧道数据包,不保护外部ip头

网络安全技术-IPSec
ipsec标准对两类sa的实现要求

  1. 对于主机:必须支持隧道模式和传输模式
  2. 对与安全网关:只要求支持隧道模式,若安全网关支持传输模式的sa,则该网关只能当作主机来使用(如网络管理主机)

sa的获得与管理

  1. 如何获得:通过向ike这样的**管理协议在通信对等方之间协商而生成
  2. 如何管理:当一个sa协商完成后,两个对等方都在器安全关联数据库(sad)中存储该sa参数,当过期时要么用新的sa替换,要么该sa从sad中删除

sa与sad的关系
网络安全技术-IPSec

安全参数索引
网络安全技术-IPSec

地址信息
网络安全技术-IPSec

协议选择

网络安全技术-IPSec
***计数器

网络安全技术-IPSec
***溢出标志
网络安全技术-IPSec

抗重放窗口
网络安全技术-IPSec
ah认证**
网络安全技术-IPSec
esp认证**

网络安全技术-IPSec
esp加密算法
网络安全技术-IPSec
sa操作模式
网络安全技术-IPSec
路径最大传输单元

网络安全技术-IPSec
sa生存期

网络安全技术-IPSec
目的ip地址
网络安全技术-IPSec源ip地址

网络安全技术-IPSec传输层协议标识
网络安全技术-IPSec
系统名
网络安全技术-IPSec
用户标识
网络安全技术-IPSec
端口号
网络安全技术-IPSec
操作标识
网络安全技术-IPSec
指向sa的指针
网络安全技术-IPSec
sa sad sp spd在数据处理中的使用
网络安全技术-IPSec

问题
如果一个通信实体需要同时和多个其他通信实体建立不同安全关
联,如何处理呢?
解决方法:
• 安全策略数据库:SPD:Security Policy Database

安全策略安全策略数据库
• 安全策略( SP ):
– 指定用于到达源自特定主机/ / 网络数据流策略
• 安全策略数据库( SPD ):
– 包含策略条目的有序列表
• 通过使用一个或多个 选择符 来确定每个条目

AH协议概述

概述
为ip包提供以下安全功能

  1. 完整性
  2. 数据起源认证
  3. 抗重放攻击

利用mac实现认证,双方共享一个**
认证算法由安全关联(sa)指定

鉴别模式

  1. 传输模式:不改变ip地址,插入一个ah
  2. 隧道模式:生成一个新ip头,把ah和原来的整个ip包放到载荷数据中

认证头ah格式
网络安全技术-IPSec

ah头说明

  1. next header:指出ah后下一载荷的类型
  2. spi:与目的ip地址和认证头ah唯一标识了该数据包的安全关联(sa)
  3. squence number:***字段
  • 创建一个新的SA 时,发送者会将***计数器初始化为0
  • 每当在这一SA 上发送一个数据包,***计数器的值就加1 并将***字段
    设置成计数器的 值, 用于 抵抗重放攻击
  • 当达到其最大值2 32 -1 时,就应建立一个新的SA
  • AH 规范强制发送者必须发送 SN 给接收者,而接收者可以选择不使用抗重放
    特性,这时它不理会该 SN
  • 若接收者启用抗重放特性,则使用 滑动接收窗口机制 检测重放包
  1. authentication data:包含数据报的认证数据,称为完整性校验值(icv),icv由sa指定的算法生成,但是为了保证互操作性,ah强制所有ipsec必须实现两个mac:hmac-md5 hmac-sha-1

***和滑动窗口技术

***
作用:让ah可以抵抗重放攻击,若接收者启用抗重放特性,则需使用滑动窗口机制检测重放包

窗口
固定或者可变长度的一个数据缓冲区

滑动窗口
随着处理不断向前移动的窗口

滑动接收窗口
消息接收方的滑动窗口

工作过程

网络安全技术-IPSec
网络安全技术-IPSec
网络安全技术-IPSec
网络安全技术-IPSec

AH协议处理过程

ah位置

  • 传输模式:不改变ip地址,插入一个ah

  • 网络安全技术-IPSec

  • 隧道模式:生成一个新的ip头,把ah和原来的ip包放在新ip包载荷中
    网络安全技术-IPSec

滑动窗口抵御重放攻击

工作过程概述
当接收到的数据包落在滑动窗口最右侧时候,通过该包***与窗口最高序列差值确定是否可以被接收

处理流程

  1. 判断接收的数据包序号是否小于最后一个收到的数据包序号:
    若是:计算其与最大包序号之间的差值是否大于窗口大小,若大于,则说明该包过期,丢弃
  2. 上述检查无误,再检查数据是否有被接收过的信息判断是否是重放,若是,则丢弃
  3. 上述检查无误,将该报***更新为接收到的包的最大***

小结
接收到的数据包不被丢弃的条件

  1. ***必须是新的,即在滑动窗口未出现过
  2. 必须落在窗口内部或者窗口右侧
  3. 能通过鉴别检查

接收到的数据包落在窗口内且通过检查,胸口就会向前走,使得序号成为窗口的右边界。

ip包头中确定字段和不确定字段
网络安全技术-IPSec
AH 认证算法
• AH的 的 完整性校验值 (ICV) 计算方法由SA 确定
• 对于 点到点通信 ,可以采用基于加密算法(如DES )的带密
钥消息认证函数,或单向函数(如MD5 ,SHA-1 )
• 对于 多播通信 ,可以采用单向函数和非对称加密算法
• 必须 实现的认证算法包括:
– HMAC with MD5
– HMAC with SHA-1

完整性校验值 完整性校验值(ICV) 的计算
作用 ICV 用于验证 IP 包的完整性

计算采用通信双方协商后放在sa中定义的**,再采用mac生成,且长度依赖于算法
– HMAC- - MD5: 128 位
– HMAC- - SHA- - 1:160 位
:用HMAC 求MAC 时算法的 输入包括三个部分:

  1. IP 数据包头:只包括在传输期间 不变的字段 或 接受方可预测的字段 ,其余不定的字段全置为0
  2. AH :除 “鉴别数据”字段外其他的 所有字段 ,“鉴别数据”字段被置为0
  3. IP 数据包中的 所有的上层协议数据

ah处理过程
外出处理过程
网络安全技术-IPSec
进来数据包处理过程
网络安全技术-IPSec
ah 传输模式和隧道模式比较

网络安全技术-IPSec