IPSec VPN 报文介绍以及协商建立过程

2026-01-26 07:29:46 1335

IPSec VPN 报文介绍以及协商建立过程

IPSec VPN 报文介绍以及协商建立过程

介绍

ISAKMP报文介绍

IPSec VPN协商建立过程

主模式(Main mode)

主模式第1个和第2个数据包

主模式第3个和第4个数据包

主模式第5个和第6个数据包

快速模式(Quick mode)

参考文献

介绍

ISAKMP报文介绍

IPSec VPN协商建立过程(IKEv1)

ISAKMP报文介绍

ISAKMP头部信息如下。

Nitiator Cookie(Initiator SPI)(8 octets):发起SA建立实体Cookie,SA通知或SA删除

Responder Cookie(Responder SPI)(8 octets):响应SA建立请求的实体的Cookie,SA通知或SA删除

Next Payload (1 octet):表示第一有效负荷的消息中的类型

Next Payload Type Value

NONE 0

Security Association (SA) 1

Proposal (P) 2

Transform (T) 3

Key Exchange (KE) 4

Identification (ID) 5

Certificate (CERT) 6

Certificate Request (CR) 7

Hash (HASH) 8

Signature (SIG) 9

Nonce (NONCE) 10

Notification (N) 11

Delete (D) 12

Vendor ID (VID) 13

RESERVED 14 - 127

Private USE 128 - 255

Major Version (4 bits):标识正在使用的ISAKMP协议的主要版本。

Minor Version (4 bits):标识正在使用的ISAKMP协议的次要版本

Exchange Type(1 octet):标识使用的交换(exchange) 的类型

Exchange Type Value

NONE 0

Base 1

Identity Protection 2

Authentication Only 3

Aggressive 4

Informational 5

ISAKMP Future Use 6 - 31

DOI Specific Use 32 - 239

Private Use 240 - 255

Flags (1 octet):标识为ISAKMP交换设置的特定选项

··· E(ncryption Bit) (1 bit):如果设置(1),则使用在ISAKMP SA中标识的加密算法对报头之后的所有有效载荷进行加密。对于第4.1节中描述的所有ISAKMP交换,加密应该在双方交换密钥交换有效载荷之后开始。 如果E(ncryption Bit)未设置(0),则有效载荷不加密。

···C(ommit Bit) (1 bit) :该位用于通知密钥交换同步。它用于确保在完成SA建立之前没有接收到加密材料。这个bit可以在双方任意一端设置,并且在isakmp建立的两个阶段上均可以使用。这个值必须在第一阶段协商完成之后复位。

···A(uthentication Only Bit) (1 bit) :需要和Notify Payload一起使用,具有完整性检查,但是没有加密的信息传输。第4.8节规定,第二阶段信息交换必须在ISAKMP SA的保护下发送。 这是该策略的唯一例外。如果设置了Authentication Only位(1),那么只有认证安全服务将应用于信息交换的整个Notify有效负载,并且有效负载不会被加密。

Length (4 octets):以八位字节为单位的消息总长(报头+有效载荷)。 加密可以扩展ISAKMP消息的大小。

在ISAKM中可以添加一个或多个有效负载(Payloads),由于负载较多就不一一列举了,具体详见RFC2408。

IPSec VPN协商建立过程

建立过程主要分为两步,首先是主模式(Main mode)的建立,然后是快速模式(Quick mode)的建立。

数据包在此下载。

之前IPSec vpn谈到过,VPN的目的就是为了保证私密性、完整性、源认证。然而在公网上显然不能将加密信息明目张胆的发送出去,所以在传递这些业务信息之前,需要预先建立起一个安全可靠的连接来传递这些加解密的信息。而主模式就是预先建立的这个连接。

主模式(Main mode)

主模式主要的目的是建立ISAKMP SA(Internet Security Association and Key Management Protocol Security association)。为了建立起ISAKMP SA,在IKEv1 Main mode 中需要交互6个报文。这6个报文会在下面有所介绍。由于ISAKMP的建立并不像OSPF邻居认证一样,只需要password正确就能建立,而是有一整套协商的条件。所以单一的预共享密钥相同也不一定就能保证ISAKMP的建立。

主模式第1个和第2个数据包

主模式的第一个和第二个数据包主要用来协商ISAKMP策略信息,这些策略信息包括。

· 加密类型(Encryption-Algorithm)

· 密钥长度(Key-Length)

· 散列算法(Hash-Algorithm)

· DH强度(Group-Description)

· 认证模式(Authentication-Method)

· 密钥更新时间单位(Life-Type)

· 密钥时间(Life-Time)

如上部分在报文中体现如下,如果对端发送过来的ISAKMP协商信息与本地信息不符,那么将协商失败,且不会反馈本端ISAKMP配置信息。

主模式第3个和第4个数据包

第1和第2个数据包确认了策略之后和散列函数之后,要想加密数据还需要一个关键的参数(密钥),这个密钥正是通过DH交换而得来的。有关DH算法工作原理已超出笔者能力,有兴趣的可以参见。Diffie–Hellman key exchange,Diffie-Hellman Key Agreement Method。

在报文中体现如下。

主模式第5个和第6个数据包

获取到彼此的密钥信息之后,就可以开始进行认证了,这部分就是加密的报文。

总的来说,主模式首先协商ISAKMP策略,确定双方策略一致的时候,开始使用非对称密钥算法来交换彼此的预共享密钥,当预共享密钥匹配的时候来交换彼此的加密密钥,使用这个加密的密钥来完成第5和第6的数据包的认证功能。这样就保证了私密性(数据加密),源认证(加密认证来实现),完整性(如果报文有修改ISAKMP SA无法建立)

快速模式(Quick mode)

在快速模式下主要用来建立IPSec SA,协商以下参数

· 封装方式(ESP或AH)

· 认证算法

· 传输模式(隧道模式或传输模式)

· 加密算法(业务报文的加密算法)

· DH信息

· IPSec生命周期信息

另外需要注意的就是密钥更新,密钥更新主要使用的是PSF,虽然 有周期性更新密钥的这个功能,但是如果没有启用PSF那么新生成的密钥与之前的密钥存在衍生关系,思科默认没有启用PSF功能,如果启用了PSF那么新生成的密钥与之前的密钥就不存在衍生关系,可以提供更安全的服务。

这一部分在报文中均以加密方式进行显示。

快速模式协商完成之后,建立起IPSec SA,开始传输加密数据。

参考文献

Diffie–Hellman key exchange

Diffie-Hellman Key Agreement Method

Phase 1、Phase 2

IPSec Virtual Private Network Fundamentals–IKE and ISAKMP

RFC2408

RFC2409

RFC4306

2017年10月13日更新

Copyright © 2022 硬核游戏活动情报站 All Rights Reserved.