一、IPSec协议簇
是一组基于网络层的,应用密码学的安全通信协议族。IPSec不是具体指哪个协议,而是一个开放的协议族。(协议簇如下图)
提供的安全服务
机密性、完整性、不可否认性、重传攻击保护、数据源鉴别
注:
- 防重放攻击:产生一个随机数附在加密信息里面,由于原始数据是加密的,黑客获取数据时不能知道随机数,当重放攻击时,接收端发现随机数用过则丢弃
IPSEC协议簇框架
二、工作模式和通信保护协议
传输模式
- 用于主机与主机之间、端到端通信或已有协议提供了隧道
- 封装:在原始数据包的IP包头后面插入一个IPSEC包头并对数据进行加密(如下图)
隧道模式
- 用于私网和私网之间进行通信;
- 封装:将原数据包整体加密并在前面加上IPSEC包头和一个新的IP包头(如下图)
通信保护协议AH
- 协议号:51
- 功能:无连接数据完整性、数据源认证、抗重放服务
- 在传输模式下封装:将原有数据包整体进行HASH摘要,将值放入插入的包头(如下图)
- 在隧道模式下封装:将原有数据包整体和新的IP包头进行HASH摘要,将值放入插入的包头(如下图)
封装安全载荷ESP
- 协议号:50
- 功能:无连接数据完整性、数据源认证、抗重放服务、数据保密、有限的数据流保护
- 传输模式下封装:将数据进行加密算法,并将ESP包头和加密后的数据及填充进行HASH运算后做摘要(如下图)
- 隧道模式下封装:将数据和原IP包头进行加密算法,并将ESP包头和加密后的数据及填充进行HASH运算后做摘要,并添加新的IP包头(如下图)
AH和ESP对比
三、IKE协商
安全联盟SA
- 对等体之间做一些约定,若符合就可以建立SA;
- 在用IPSEC之前必须建立安全联盟唯一标识:安全参数索引、目的IP、安全协议号
- SA可以通过手工建立和动态建立
注:
- 安全参数:加密算法、哈希算法、DH强度、认证的方式、密钥交换的周期
- 将安全参数做哈希得到的就是安全参数索引
IKE的产生背景
- 用IPSec保护一个IP包之前,必须先建立安全联盟(SA)
- IPSec的安全联盟可以通过手工配置的方式建立。但是当网络中节点较多时,手工配置将非常困难,而且难以保证安全性。这时就可以使用IKE(Internet Key Exchange)自动进行安全联盟建立与密钥交换的过程。Internet密钥交换(IKE)就用于动态建立SA,代表IPSec对SA进行协商。
IKE用途
- IKE为IPSec协商生成密钥,供AH/ESP加解密和验证使用。
- 在IPSec通信双方之间,动态地建立安全关联(SA:SecurityAssociation),对SA进行管理和维护。
IKE与AH/ESP之间的关系
- 先IKE进行密钥协商,然后进行密钥的传输,最后进行数据的加密传输
IKE工作过程
IKE经过两个阶段为IPSec进行密钥协商并建立安全联盟
第一阶段(IKE SA)
- 功能:构建安全环境、在安全环境下做认证、为第二阶段的数据加密提供密钥传递;
- 两种模式:建议同一厂商用主模式,不同厂商用野蛮模式
- 第一阶段协商过程:
1.主模式协商过程:安全、速度慢(有局限性);前两个包为明文后面为加密后的包
2.野蛮模式协商过程:不太安全、速度快(跨厂商时建议野蛮模式);前两个包为明文后面为密文
第二阶段(IPSEC SA)
- 功能:用第一阶段协商的结果,对数据剔红安全服务
- 协商过程
- 快速模式:1.协商安全参数来保护数据;2.周期性的对数据连接更新密钥信息
注:
- 第一阶段所做的协商为了做认证
- 第二阶段所做的协商为了数据的安全传输
四、IPSEC的配置
拓扑图
R1为ISP之配置IP地址需要为R2和R3配置到对端环回的路由以及定义access-list抓取地址
配置
R2:
路由及抓取流量
IKE第一阶段
IKE第二阶段
定义MAP匹配参数
外网接口调用
R3:
路由及抓取流量
IKE第一阶段
IKE第二阶段
定义MAP匹配参数
外网接口调用