IPsec中IKE与ISAKMP过程分析(主模式-消息1)_搞搞搞高傲的博客-CSDN博客
IPsec协议族中IKE(Internet Key Exchange)是一种基于ISAKMP的协议,它为建立IPSec安全通信隧道提供了一种无痕密钥交换的机制。简单来说,IKE就是ISAKMP的扩展,为ISAKMP提供了更加高效、灵活和安全的密钥协商机制。
GMT 0022-2014 IPSec VPN 技术规范 标准参考。
ISAKMP,internet secrity assocaition and key management protocol, 互联网安全联盟和密钥管理协议定义了建立、协商、修改和删除安全联盟的过程和报文格式,并定义了交换密钥产生和鉴别数据的载荷格式。这些格式为传输密钥和鉴别信息提供了一致的框架。
IKE,internet key exchange,密钥交换协议则定义了协商、建立、删除安全联盟的过程和报文格式。具体协议报文使用UDP 500或4500端口传输。
IPsec IKE包括二个阶段,第一阶段主模式(6条消息)和第二阶段快速模式(3条消息)。(第一阶段还有一种野蛮模式Agressive,只包含3条消息,后续作为专题再说)
阶段 | 目标 | 过程 | 消息 |
IKE第一阶段 | 建立一个ISAKMP SA | 实现通信双发的身份鉴别和密钥交换,得到工作密钥 | (1)HDR,SA (2)HDR,SA,Cert_sig_r,Cert_enc_r (3)HDR,XCHi,SIGi (4)HDR,XCHr.SIGr (5)HDR*,HASHi (6)HDR*,HASHr |
IKE第二阶段 | 协商IPsec SA | 实现通信双方IPsec SA,得到ipsec安全策略和会话密钥 | (1)HDR*,HASH(1),SA,Ni (2)HDR*,HASH(2),SA,Nr (3)HDR*,HASH(3) |
IKE第一阶段消息2由响应方发出,具体包括一个SA载荷(确认响应方所接受的SA提议),响应方签名证书和加密证书。由于目前还没有任何协商得到密钥,所以消息2还是以明文传输。
消息2报文结构如下,HDR头后面紧跟SA,SA载荷中确认各类密钥算法且与发起发的提议不得有任何修改。在SA之后响应方的签名证书和加密证书(X.509证书结构)。
确认的SA抓包如下,具体字段意义同消息1中SA载荷,这里不再重复说明。另外说明一下,这里Vendor ID(VID)载荷是为实现IPsec NAT穿越的,它们与IKE是相对独立的,并不参与交换过程的所有密码运算。
国密标准公钥密码体制使用双证书,也就是说签名证书和加密证书是分开的,前者是用于完整性、真实性和不可否认性保护场景,后者则是用于数据机密性保护(典型场景是数字信封,ipsec协议中也是这样)。
从抓包来看,SA载荷后并没有发送响应方的数字证书,不满足GMT0022-2014国密标准,原因现在不太清楚,先留下待考证吧。