IKE协议规范
IKE -----------------------------------------------RFC2409
ISAKMP-----------------------------------------RFC2408
Internet解释域(DOI)----------------------RFC 2407
IKEv2 --------------------------------------------RFC4306
IKEv1协商流程
主模式或积极模式允许四种不同的身份验证方法—数字签名、使用公钥加密的两种身份验证形式、预共享密钥。对于每个身份验证方法,分别计算SKEYID值。
数字签名: SKEYID = prf(Ni_b | Nr_b, g^xy)
公钥加密: SKEYID = prf(hash(Ni_b | Nr_b), CKY-I | CKY-R)
预共享密钥: SKEYID = prf(pre-shared-key, Ni_b | Nr_b)
主模式或积极模式的结果是三组经过验证的密钥材料:
SKEYID_d = prf(SKEYID, g^xy | CKY-I | CKY-R | 0)
SKEYID_a = prf(SKEYID, SKEYID_d | g^xy | CKY-I | CKY-R | 1)
SKEYID_e = prf(SKEYID, SKEYID_a | g^xy | CKY-I | CKY-R | 2)
要对任一交换进行身份验证,协议的发起方生成哈希值,响应方生成哈希值,其中:
HASH_I = prf(SKEYID, g^xi | g^xr | CKY-I | CKY-R | SAi_b | IDii_b )
HASH_R = prf(SKEYID, g^xr | g^xi | CKY-R | CKY-I | SAi_b | IDir_b )
一阶段协商流程
使用签名进行身份验证
主模式:
积极模式:
在这两种模式中,签名数据SIG_I或SIG_R分别是应用于HASH_I或HASH_R的协商数字签名算法的结果。
使用公钥加密进行身份验证
主模式
积极模式
使用修改后的公钥加密模式进行身份验证
主模式
积极模式:
预共享密钥进行身份验证
进行预共享密钥身份验证时,主模式定义如下:
积极模式
二阶段协商流程-快速模式
快速模式定义如下:
上述交换的哈希为:
HASH(1) = prf(SKEYID_a, M-ID | SA | Ni [ | KE ] [ | IDci | IDcr )
HASH(2) = prf(SKEYID_a, M-ID | Ni_b | SA | Nr [ | KE ] [ | IDci | IDcr )
HASH(3) = prf(SKEYID_a, 0 | M-ID | Ni_b | Nr_b)
IKEv2协商流程
初始交换
初始交换通常由四条消息组成,但在某些情况下,这一数字可能会增加。第一对消息(IKE_SA_INIT)协商加密算法,交换nonce,并执行Diffie-Hellman交换[DH]。第二对消息(IKE_AUTH)对以前的消息进行身份验证,交换身份和证书,并建立第一个子消息。
创建子SA交换
此交换由单个请求/响应对组成,在IKEv1中称为阶段2交换。初始交换完成后,可由IKE_SA的任何一端启动。