概述
IPsec是一个协议包,通过对IP协议的分组进行加密和认证来保护IP协议。
提供服务:
访问控制,无连接的完整性,数据源认证,拒绝重播包,保密,有限的数据流保密。
IPsec主要由以下协议组成:
一、认证头(AH),提供 无连接数据完整性、数据源认证、防重放攻击;
二、封装安全载荷(ESP),提供无连接完整性、数据源认证、防重放、机密性、有限的流机密性;
三、安全关联(SA),提供算法和数据包,提供AH、ESP操作所需的参数。
四、密钥协议(IKE),提供对称密码的钥匙的生存和交换。
隧道比传输多个头,ESP比AH多个尾。
.
一、认证头(AH),封装安全载荷(ESP) 和 传输模式,隧道模式
- IP包 = IP头 + IP载荷
① 传输 + AH:
认证——IP载荷 和 IP头的选中部分。(保护范围)
1.头
② 隧道 + AH:
认证——整个IP包 和 新IP头的选中部分。
1.头 2.头
③ 传输 + ESP:
认证 和 加密——IP载荷。
1.尾 2.头 3.认
④ 隧道 + ESP:
加密 和 认证——整个IP包
1.尾 2.头 3.认 4.头
AH:认证。
ESP:加密和认证。ESP被抓包只能看到 SPI和序列号,后面都加密了。
传输模式:IP载荷(和IP头选中部分)。
隧道模式:整个IP包(和新IP头选中部分)。
enchilada:被认证的部分
enchilada + MAC 是新IP包的载荷
.
二、SA 和 SAD SPD
安全关联 SA
SA三个参数:
- SPI(32bit),安全索引参数
- IP地址(目的)
- 协议标识(AH / ESP)
SA是单向的。
向外通信:SPI用来创建头部
向内通信:SPI用来将通信映射到一个合适的SA上
安全关联数据库 SAD
很多个SA存储在SAD中
SAD中,一个SA的参数:
- SPI
- 序列号计数器
- 序列号溢出标志
- 防重放窗口(新包推着窗口走)
- AH信息 / ESP信息
- SA的生存周期
- 传输模式 / 隧道模式
- MTU
加密要查SAD:查到就用;查不到就IKE
解密也查SAD:查到就用;查不到就丢弃
安全策略数据库 SPD
SPD决定每个包去不去查SAD
发送:所有普通IP包 交给SPD
- 保护——>查SAD
- 直接通过
- 丢弃
接收:普通IP包交给SPD;IPsec包直接交给SAD
SPD:
- 不安全,丢弃
- 安全,剥去IP头 交给传输层
SAD:
- 查到,按AH/ESP剥去IP头 交给传输层
- 查不到,丢弃
.
三、IPSEC流程
四、IKE
IKE可自动地为参与通信的实体协商SA,并对安全关联库(SAD)维护
IKE的特性(提供什么):
- 防阻塞攻击(伪随机数 cookie)
- 协商得到一个组(DH)
- 防重放攻击(临时交互号)
- DH交换,生成密钥
- 对DH交换认证,防中间人攻击
阶段一:ISA KMP产生IKE SA
(互联网安全关联 和 密钥管理协议)
有主模式和积极模式2种。只有remote vpn和Easy vpn是积极模式的,其他都是用主模式来协商的
主模式
消息1&2(明文):决定策略。内容包括5元组(加密算法,散列算法,D-H组,认证方法,IKE SA寿命)
消息3&4(明文):用于交换DH的公开信息和随机数。生成密钥,再生成3把密钥
消息5&6(密文):用于双方彼此验证
DH交换出密钥skeyID ,随后根据skeyID 来推算出其他几个skeyID
skeyID_a—消息5&6中HMAC的密钥
skeyID_e—加密后续消息5&6
skeyID_d—阶段二IKE SA产生IPsec SA使用的加密密钥
阶段二:IKE SA 产生IPsec SA
消息1&2(密文):协商IPsec SA的各项参数值,并生成IPsec 使用的密钥。
包括使用哪种IPSec协议(AH或ESP)、使用哪种hash算法(MD5或SHA)、是否要求加密,若是,选择加密算法(DES或3DES)。
消息2还为响应方提供在场的证据;消息3为发起方提供在场的证据。
.
五、VPN的种类
二层:L2TP,PPTP
三层:IPsec
四层:SSL