因特网密钥交换(IKE)协议是由IETF制定的一个密钥交换协议[1—4],用于为各种安全协议(如IPsec协议)协商安全联盟。目前已经被广泛应用于各种安全解决方案中,包括3G的网络域安全,IPv6的安全等等。然而,由于协议设计的疏忽,若使用IKE阶段I的野蛮模式,存在一个容易导致拒绝服务(DoS)攻击[5,6]的安全漏洞。本文下面对这一安全漏洞进行相应分析。
1 IKE协议
IKE协议使用DH(Diffie-Hellman)密钥交换来协商密钥材料,同时使用数字签名或者预共享密钥来认证,以防止针对DH交换中间人的攻击[5,6]。IKE协议在交换的过程中还协商包括加密、认证算法、生命期等安全联盟的其他参数。IKE协议分为两个阶段,阶段I和阶段Ⅱ。阶段I协商的安全联盟被长期保留,用于保护阶段Ⅱ的协商。这使得阶段I的协商建立了一个安全通道,通过这个安全通道的各个用户可以为自己在阶段I安全联盟的保护下协商一个通信用的阶段Ⅱ安全联盟,这将使得通信效率大大提高。下面将对IKE协议协商过程加以介绍,在介绍IKE协议协商过程之前,需要明确协商过程中的一些参数的定义。
1.1 IKE阶段I协商
IKE阶段I协商根据认证方式的不同分为数字签名方式和预共享密钥方式,又根据应用模式不同分为野蛮模式和主模式。
1.1.1 数字签名认证方式
由于IKE是使用DH交换为基础的,所以可抵御针对DH交换中间人的攻击,因此必须对协商双方进行身份认证。数字签名是一种广泛使用的认证方法,因此也被使用于IKE中。对于主模式的数字签名方式,IKE阶段I协商过程如图1所示。
而使用数字签名方式的野蛮模式协商过程如图2所示。涉及到的计算如下:
SKEYID =prf(Ni_b|Nr_b,g^xy) (1)
其中g^xy为双方根据KE 载荷进行DH计算出来的共享秘密值。
HASH_I=prf(SKEYID,g^xi|g^xr
|CKY-I|CKY-R|SAi_b|IDii_b) (2)
HASH_R=prf(SKEYID,g^xr|g^xi
|CKY-R|CKY-I|SAi_b|IDir_b) (3)
SIG_I为发起方使用自己的私钥对HASH_I的签名,同样SIG_R为响应方使用自己的私钥对HASH_R的签名。
1.1.2 预共享密钥认证方式
IKE还可以使用预共享密钥方式进行认证,即进行协商前,双方带外已经有一个共享的密钥PFK。
对于使用预共享密钥认证的主模式IKE协商过程如图3所示。
使用预共享密钥认证的野蛮模式IKE协商过程如图4所示。
涉及到的计算如下:
SKEYID =prf(pre-shared-key,
Ni_b|Nr_b) (3)
HASH_I=prf(SKEYID,g^xi|^xr
|CKY-I|CKY-R|SAi_b|IDii_b) (4)
HASH_R=prf(SKEYID,g^xr|g^xi
|CKY-R|CKY-I|SAi_b|IDir_b) (5)
1.2 IKE阶段Ⅱ协商
在阶段I协商完成后,通过相关的计算可以得到加密密钥和认证密钥,同时使用阶段I中协商好的安全联盟载荷加密算法和认证算法就可以对阶段Ⅱ协商消息进行机密性和完整性保护,IKE阶段Ⅱ具体协商过程如图5所示。
2 对阶段I协商的DoS攻击
仔细分析IKE阶段I协商过程,可以发现它主要通过DH交换来产生密钥材料以衍生其他密钥数据,同时使用数字签名(SIG_I、SIG_R)或者(HASH_I、HASH_R)对交换双方进行认证,并对传输的重要数据(包含于SIG_I SIG_I、SIG_R或者HASH_I、HASH_R的计算中)进行完整性保护。IKE本来是一个非常安全的协议,但是由于IKE在对HASH_R的计算中没有包含对返回的响应方选择的SAr载荷,而是仍然使用发起方安全联盟载荷加入计算,导致响应方的SAr载荷没有受到完整性保护,容易被攻击者篡改。
仔细分析数字签名野蛮模式,可以发现发起方首先将消息(如HDR、SAi、KE、Ni、IDii)发送到响应方,响应方接收到后,根据发起方的安全联盟载荷和自己的本地策略选择好匹配的安全联盟载荷内容,包括加密算法等。然后响应方发送HDR、SAr、KE、Nr、IDir、[CERT]、SIG_R到响应方,这时候攻击者不改变其他数据,只是修改SAr中的加密算法参数(也可修改其他参数)。由于SAr没有参加认证数据SIG_R的计算,所以发起方将该条经过篡改过的消息认证通过,然后发送HDR、[CERT ]、SIG_I到响应方,显然响应方将该消息也认证通过,最后双方认为阶段I协商已经成功,建立了一个阶段I的安全联盟载荷。然而此时双方的安全联盟载荷并不相同,无法使用该安全联盟载荷通信。同样对于共享密钥认证方式也是一样。此后双方会马上使用阶段I的安全联盟载荷保护进行阶段Ⅱ安全联盟载荷的协商,但是由于加密算法不同,双方无法进行阶段Ⅱ协商,因此必须不断地进行阶段Ⅱ协商,直到该阶段I协商的安全联盟载荷生命到期,进行新的阶段I协商。在此期间,该信道长时间不可用。可以看到,只是简单的篡改消息,可能造成信道的长期不可用,达到了DoS攻击目的。
对于主模式,由于最后两条消息需要使用阶段I 安全联盟载荷保护,因此如果篡改了SAr,将会造成阶段I安全联盟载荷协商无法完成而会发起新的协商,不能达到高效的DoS攻击,因此不存在攻击效果。
3 参考文献
[1] Harkins D, Carrel D. The Internet Key Exchange (IKE)[S]. RFC2409, 1998,11.
[2] Maughan D, Schertler M, Schneider M. Internet Security Association and Key Management Protocol (ISAKMP)[S]. RFC2408, 1998,11.
[3] Piper D. The Internet IP Security Domain of Interpretation for ISAKMP [S]. RFC2407, 1998,11.
[4] Kent S, Atkinson R. Security Architecture for the Internet Protocol[S] RFC2401, 1998,11.
[5] William Stallings. Cryptography and Network Security Principles and Practice [M]. 北京: 电子工业出版社, 2004.
[6] 王育民, 刘建伟. 通信网的安全——理论和技术. 西安: 西安电子科技大学出版社, 2000.
收稿日期:2004-03-16
[摘要] 文章分析了IETF的因特网密钥交换(IKE)标准,指出对于IKE阶段I的野蛮模式存在一个容易导致拒绝服务(DoS)攻击的安全漏洞。文章认为这是由于响应方的安全联盟载荷没有加入到认证数据的计算中,使安全联盟载荷容易被篡改,从而导致双方可能协商出一个参数不相同的阶段I安全联盟载荷。
[关键词] 因特网密钥交换;野蛮模式;拒绝服务攻击;安全联盟载荷
[Abstract] After analyzing the Internet Key Exchange (IKE) protocol, this paper points out that there is a security weakness in the aggressive mode of IKE phase 1, which is vulnerable to Denial of Service (DoS) attack. As the Security Association (SA) payload of the responder side is excluded from the computation of authentication data, it could be modified without being detected and produces a negotiated SA of phase 1 with different parameters.
[Keywords] Internet key exchange; aggressive mode; DoS attack; SA payload