首先在开始说框架之前,我们先纠正一点,IPsec VPN并不是一个协议,而他是由一系列协议来组成的协议簇,来实现建立一个网络层安全的隧道,提供端到端传输数据的安全性。
说白了就是为了保证我们的数据在公网上安全的传输,不被人抓包。
那么接下来,我们就来看看,他是怎么在公网上来保护数据报文的吧。
很简单,就是通过下面这两个协议来实现的:
- AH (Authentication Header) 验证头
- ESP (Encapsulating Security Payload)封装安全载荷
这两个协议对数据的保密方式是不一样的。
AH
- 仅支持验证算法,例如: MD5,SHA1,2,3,等。
- 不支持加密算法。
所以AH并不能保证数据的机密性。
ESP
- 类似AH,支持验证算法,
- 但是 他也支持加密算法: DES ,3DES,AES。
他虽然可以对数据进行加密,但是它只支持对称加密算法。
补充: AH 和 ESP 是基于网络层封装:
- AH 协议号:51.
- ESP 协议号: 50
那么问题来了:
我们现在已经知道了,IPSec VPN是基于规划的安全协议,AH 和 ESP 来提供数据保护,如果要对数据进行加解密,他们的密钥从哪里来的?
·
两种方式:
1,手工配置: 但是不建议,容易泄露,管理维护复杂,配置量大。
2,IKE协议分发:通过IKE协议来实现对称密钥的协商,这个过程是绝对安全的。
IKE
IKE:(Internet Key Exchange)互联网密钥交换协议。
它也并不是一个协议,它是由三子协议组成的协议簇:分别是:ISAKMP,Oakley,SKEME。
- **ISAKMP:**定义了 IKE Peer 之间的合作关系,建立了SA安全联盟。
Oakley ,SKEME:主要在互联网上,安全分发管理安全密钥,身份验证等,核心就是DH交换。
IKE有两个版本,IKEv1 和 IKEv2,防火墙默认v1,v2兼容版本。
IKE的实现过程:
核心就是 DH算法,一个非对称的模型。
主要作用就是在互联网上两台部署了IPSec 网关设备之间动态生成和分发对称密钥。
在实现这个功能之前呢,需要先验证双方的身份信息。
最终IPsec 基于IKE在互联网上动态生成的对称密钥来实现对数据的加解密。
IKE有两种模式:主模式 和 野蛮模式。
主模式: 一共交互 9 个报文。
阶段一:交互 6 个报文,这6个报文的目的就是建立IKE SA。
·
1 <–> 2: 明文传输
前两个报文是协商保护IKE SA,IPSec SA的安全算法,两边的算法必须一致。
这里协商的加密算法,并不是对数据流进行加密的算法。
而是对自身后续5 <—>6 包交互,阶段二报文进行加密的算法。
·
3 <–> 4: 明文传输
第三和四个报文就是用DH算法交换协商出保护 5 <–> 6 和阶段二,以及后续数据流的安全密钥材料。
·
5 <–> 6: 加密传输
第五和第六个包就是用来做两台设备的身份验证,防止非法设备接入。
·
阶段二:交互3个报文,该阶段是被阶段一保护协商的。
阶段二主要是用来协商保护数据流的算法,封装模式等等。
什么是SA?
Security Association 安全联盟
属于同一个安全联盟的设备要有安全要素的约定,如:采用哪些安全协议,安全算法,对数据进行保护。
·
IPSec SA:是一个逻辑上的双向通道,在每台防火墙上包含入向,出向的安全联盟。
出入两个方向构建一条IPsec SA,即单向特征。
·
那么每条SA 应该如何去标识?
通过三要素:安全参数索引(SPI),目标地址,安全协议。 来区分。SPI是为了唯一标识SA而生成的一个32位整数。包含在AH头部和ESP头部中,其值1~255被IANA留作将来使用,0被保留,目前有效的值为256~232-1
有了SPI,相同源、目的节点的数据流可以建立多个SA
每条SA都会维护一个对数据加解密的对称密钥。
下面干货来了,我们来看一看IKE主模式这6个报文的抓包。
第一个包和第二个包是IKE的安全提议,就是ike 安全提议 中配置的协商内容:(明文)ike proposal 1 encryption-algorithm aes-256 dh group14 authentication-algorithm sha2-256 authentication-method pre-share integrity-algorithm hmac-sha2-256 prf hmac-sha2-256
·
第三四个包就是交换双方的key值,也就是公钥,和Nonce 随机数。(明文)
第五六个包执行身份信息交互,双方执行身份验证,基于前四个协商出来的安全算法,密钥进行加密传输,这个包是加密的。
写的非常直白,加密数据。
我们配置的ike 对等体 就是用到这个数据包这里的。Ike peer to_fw2 undo version 2 pre-shared-key %^%#*sd<+`>q\&GQ9ZGJ8Hi4)DcV~>e2TSfR*X4\T|D0%^%# ike-proposal 1 remote-address 10.1.1.6
;这里的身份认证方式一共有三种:
- PSK认证:预共享密钥方式,是默认的方式
- PSA认证:数字证书方式
- 数字信封方式,据说用的不多。
·快速模式的包就不看了,看也没有意义,都是加密的。
快速模式这三个包里面主要就是我们在 IPSec 安全提议里面配置的加密方式和传输方式。