IPSEC协议簇安全框架
需求背景
IPSec VPN简介
IPSec(Internet Protocol Security):是一组基于网络层的,应用密码学的安全通信协议族。IPSec不是具体指哪个协议,而是一个开放的协议族。
IPSec协议的设计目标:是在IPV4和IPV6环境中为网络层流量提供灵活的安全服务。
IPSec VPN:是基于IPSec协议族构建的在IP层实现的安全虚拟专用网。通过在数据包中插入一个预定义头部的方式,来保障OSI上层协议数据的安全,主要用于保护TCP、UDP、ICMP和隧道的IP数据包。
IPSec提供的安全服务
IPSec协议族安全体系框架
IPSec协议族
IPSEC工作模式
传输模式(Transport mode)
主要应用场景:经常用于主机和主机之间端到端通信的数据保护。
封装方式:不改变原有的IP包头,在原数据包头后面插入IPSec包头,将原来的数据封装成被保护的数据。
隧道模式(Tunnel mode)
主要应用场景:经常用于私网与私网之间通过公网进行通信,建立安全VPN通道。
隧道模式(Tunnel mode)
封装方式:增加新的IP(外网IP)头,其后是ipsec包头,之后再将原来的整个数据包封装。
IPSEC通信协议
通信保护协议AH
AH(Authentication Header,认证报头):
AH提供的安全服务:
AH不提供任何保密性服务:它不加密所保护的数据包。
不论是传输模式还是隧道模式下,AH提供对数据包的保护时,它保护的是整个IP数据包(易变的字段除外,如IP头中的TTL和TOS字段)。
AH头
AH在传输模式下封装
AH在隧道模式下封装
ESP
ESP(Encapsulating Security Payload,封装安全有效载荷):
保密服务通过使用密码算法加密 IP 数据包的相关部分来实现。
数据流保密由隧道模式下的保密服务提供。
ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性认证。
ESP头
ESP在传输模式下封装
ESP在隧道模式下封装
AH和ESP对比
安全特性 |
AH |
ESP |
协议号 |
51 |
50 |
数据完整性校验 |
支持 |
支持(不验证IP头) |
数据源验证 |
支持 |
支持 |
数据加解密 |
不支持 |
支持 |
抗重放服务 |
支持 |
支持 |
NAT-T(NAT穿越) |
不支持 |
支持 |
IPSEC建立阶段
•IKE协商阶段
安全联盟SA
定义:
SA(Security Association)是通信对等体间对某些要素的约定 ,通信的双方符合SA约定的内容,就可以建立SA。
SA由三元组来唯一标识 ,包括:
IKE的产生背景
用IPSec保护一个IP包之前,必须先建立安全联盟(SA)
IPSec的安全联盟可以通过手工配置的方式建立。但是当网络中节点较多时,手工配置将非常困难,而且难以保证安全性。这时就可以使用IKE(Internet Key Exchange)自动进行安全联盟建立与密钥交换的过程。Internet密钥交换(IKE)就用于动态建立SA,代表IPSec对SA进行协商。
IKE的用途
IKE为IPSec协商生成密钥,供AH/ESP加解密和验证使用。
在IPSec通信双方之间,动态地建立安全关联(SA:Security Association),对SA进行管理和维护。
IKE与AH/ESP之间关系
IKE工作过程
IKE经过两个阶段为IPSec进行密钥协商并建立安全联盟:
第一阶段交换:通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA(也可称为IKE SA)。第一阶段交换有两种协商模式:
主模式协商
野蛮模式协商
第二阶段交换:用已经建立的安全联盟(IKE SA)为IPSec协商安全服务,即为IPSec协商具体的安全联盟,建立IPSec SA,产生真正可以用来加密数据流的密钥,IPSec SA用于最终的IP数据安全传送。
IKE阶段1
IKE阶段1协商过程
IKE阶段--主模式协商
IKE阶段1--主模式交互过程
主模式下IKEv1采用3个步骤6条ISAKMP消息建立IKE SA。下面是以10.0.1.223主动发起IKE协商为例的整个数据构成: