IPSec
1、概述:
是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议,在IP层通过数据来源认证、数据加密、数据完整性和抗重放功能来保证通信双方Internet上传输数据的安全性。
IPSec安全服务
- 机密性
- 完整性
- 数据源鉴别
- 重传保护
- 不可否认性
2、IPSec三个重要协议
IPSec通过AH(认证头)和ESP(封装安全载荷)这两个安全协议实现IP数据报的安全传输
(1)AH --- 认证头协议
提供数据源认证、数据完整性校验和报文防重放功能。
功能:(完整性、可用性)
- 鉴别算法
(2)ESP --- 封装安全载荷协议
提供了除了AH认证头协议的所有功能外,还可以对IP报文净荷进行加密。ESP没有对IP头的内容进行保护。
功能:(完整性、机密性、可用性)
- 加密算法
- 鉴别算法
PS:AH和ESP可以单独使用,也可以同时使用。AH和ESP同时使用时,报文会先进行ESP封装,再进行AH封装;IPsec解封装时,先进行AH解封装,再进行ESP解封装。
(3)IKE --- 密钥管理与分发协议
IKE协议是一种基于UDP的应用层协议,它主要用于SA协商和密钥管理。协商出对等体间数据安全传输需要的认证算法、加密算法和对应的秘钥。
协商管理(IEK可动态管理IPSec架构的所有构件):
- 协商工作方式以及工作模式(AH ESP)
- 协商加密和鉴别算法
- 密钥参数的协商 --- 密钥产生算法、密钥有效期、密钥分发者身份认证、密钥长度、认证算法
3、IPSec架构
解释域(DOI):将算法与密钥联动起来
4、两种工作模式
(1)传输模式
- 使用场景:私网数据通过公网传输,异种网络之间通过其他网络传输
通信问题已经解决,需解决安全问题
- 封装结构
(2)隧道模式
- 使用场景:专线,隧道已做,本身路由可达
通信问题和安全问题都需要解决
- 封装结构
附:既有安全问题和通信问题的场景:
- ipsec隧道模式
- 其他隧道协议 + ipsec传输模式
5、AH
协议号51
(1)安全服务
- 数据源认证 --- 通过计算验证码时加入一个共享秘钥来实现,和ospf认证类似
- 数据抗重放 --- AH包中的序列号
- 数据完整性 --- hash算法,校验hash值实现
无机密性,未使用加密算法
(2)传输模式
(3)隧道模式
(4)AH头部结构
做认证时,对于易变值是不做认证的,IP包中的TTL和TOS是不参与认证的
SPI:决定了数据传输进哪条通道
6、ESP
协议号50
(1)安全服务
- 数据完整性
- 数据源认证
- 数据抗重放
- 数据机密性
- 数据流保护
(2)传输模式
(3)隧道模式
(4)ESP头部结构
7、SA --- 安全联盟
(1)概述:
定义了IPSec通信对等体间将使用哪种摘要和加密算法、什么样的秘钥进行数据的安全传输和转换。
(2)安全标识:安全参数索引 目的IP地址 安全协议号
(3)生成SA:两种方式
- 手工配置:较为复杂,所有信息手工配置,永不老化
- IKE动态协商:相对简单,通信对端体之间协商IKE参数,IKE协议自动协商来创建和维护SA,具有生存周期
附:生存周期:1. 基于时间;2. 基于流量
8、IKE
(1)什么是IKE?
IKE协议 是建立在Internet安全联盟和秘钥管理协议ISAMP定义的框架,提供了一套在不安全网络上安全地分发秘钥、验证身份、建立IPSec安全联盟的过程,简化了IPSec 的管理和使用。
(2)IKE用途
- 为ipsec通信双方,动态的建立安全联盟SA,对SA进行管理与维护
- 为ipsec生成密钥,提供AH/ESP加解密和验证使用
(3)两个阶段
<1> 阶段一:密钥产生算法、密钥分发者身份认证
- 主模式:安全
- 野蛮模式:快,但是不安全(相对主模式)
都不影响安全传输
<2> 阶段二:协商封装协议,对数据进行加密
- 快速模式:快
(4)IKE工作过程
IKE经过两个阶段为ipsec进行密钥协商并建立安全联盟:
第一阶段:通信各方彼此之间需要建立一个已通过身份验证和安全保护的通道,交换建立一个iskmp安全联盟(iskmp sa)
- 主模式
- 野蛮模式
第二阶段:用已经建立的安全联盟iskmp sa(ike sa)的安全通道为ipsec协商安全服务,建立ipsec sa,产生用于数据加密的密钥
9、IKE工作流程分析
(1)IKE SA
- 主模式
6个包交互,默认使用IP地址作为身份标识,默认传递自己的接口地址作为身份标识,对方的公网地址作为对端身份标识去检查
安全提议:加密算法、hash算法、身份认证方式、密钥交换算法、密钥有效期
PS:IP地址无法修改
Ci:标识cookie信息;
SAi:表述协商的安全策略参数;
SAr:对方协商参数的确认;
Cr:对方cookie信息的确认;
Xi,Yi是交换的公钥信息,Ni是随机数;
ID是身份信息,hash是验证信息;
存在问题:只能使用IP地址进行身份标识,NAT环境不适用;厂商进行修改后,会导致不兼容问题
- 野蛮模式
PS:X,Y是进行交互的公钥。Ni和Nr是随机数。(随机数保持活性)
野蛮虽然是三个包但是安全性没问题,ID设置灵活性很高,有助于不同厂商ipsec对接。nat也会破坏IP地址导致ip作为身份信息不可靠。
模式对比
模式 | 主模式 | 野蛮模式 |
信息交互 | 交互6个消息 | 交互3个消息 |
身份ID | 以IP地址作为身份ID,自动生成本端身份ID和对端身份ID | 可以多种形式(IP,字符串等)手动或自动生成本端和对端身份ID |
域共享秘钥 | 只能基于IP地址来确定域共享秘钥 | 基于ID信息(主机名和IP地址)来确定域共享秘钥 |
安全性 | 较高。前4个信息明文传输,最后2个信息加密传输,保护了对端身份 | 较低。前2个消息明文传输,最后1个消息加密,不保护对端身份 |
速度 | 较慢 | 较快 |
(2)IPSec SA --- 快速模式
安全参数:封装协议、模式、加密算法、hash算法与认证、密钥有效期