IPSec中密钥交换协议IKE的安全性分析与改进
2015-08-01华建祥
瞿 霞,华建祥
(福建林业职业技术学院,福建 南平 353000)
IPSec中密钥交换协议IKE的安全性分析与改进
瞿霞,华建祥
(福建林业职业技术学院,福建 南平 353000)
摘要:对IKE协议的交换过程进行了安全性分析,针对Diffie-He11man密钥交换算法易受“中间人”攻击的问题,提出了一种使用动态口令对IKE协议进行改进的方案,实验结果表明,该方案是可行的,有效的。
关键词:动态口令;密钥交换协议;IPSEC协议;IKE协议
IKE(Internet Key Exchange)协议是在1998年由IETF在RFC2409中制定的标准,主要用于交换和管理在VPN中使用的加密密钥。Internet密钥交换协议(IKE)解决了在不安全的网络环境中安全地建立或更新共享密钥的问题,其不仅可为IPSEC协商安全关联,还可为SNMPv3、RIPv2、OSPFv2等任何要求保密的协议协商安全参数,IKE作为IPSEC默认的密钥交换协议,在主机之间建立密钥和相关的安全参数,用于保护主机之间数据传输的安全,是IPSEC的重要组成部分。IKE协议的交换机制是建立在Diffie-He11man密钥交换算法的基础之上,但因D-H交换算法极易受到“中间人”攻击,本身并不安全,为此,IKE引入了四种认证机制,分别为预共享密钥认证、数字签名认证、标准公钥加密认证和修订公钥加密认证。由相关研究表明[2-5],以上认证方式均存在改进的空间,本文针对IKE使用的D-H交换算法易受“中间人攻击”的特点提出一种改进方案,将动态口令引入到IKE协议中,在IKE的第一阶段交换前添加动态口令认证,实现对VPN通信客户端身份的有效认证,同时利用动态口令产生保护第一阶段Diffie-He11man密钥交换的随机串,保证了双方通信安全,不会带来额外的开销。
首先对标准IKE协议中引入的D-H密钥交换算法进行了分析,然后重点研究了D-H密钥交换算法遭受“中间人攻击”的过程,并简要分析了IKE协议引入的认证机制的安全缺陷,然后给出了基于动态口令认证的IKE协议解决方案,并对该方案进行了安全性分析。
1 Diffie-Hellman密钥交换过程
基于原根的定义和性质,可以定义两个全局公开的参数,一个整数a和素数q,a是q的一个原根,假定A和C在公共信息上利用D-H算法建立共享密钥,其过程如下所述:
(1)A生成随机数x,计算Pa=aXmod q,A将Pa传给C,X为Pa的保密数据;
(2)C生成随机数y,计算PC=aymod q,C将PC传给A,y为Pc的保密数据;
(3)A计算的共享密钥为
(4)C计算的共享密钥为
由于D-H密钥交换算法的有效性依赖于计算离散对数的难度,而在素数q的范围内计算离散对数是不可能的,因此窃听者即使获取到了Pa、Pc、a和q,也无法计算出双方共享的密钥。
2 标准IKE协议安全性分析
2.1D-H算法“中间人攻击”过程分析
由文中第2部分描述可知,标准IKE协议中引入的密钥交换算法Diffie-He11man,可以帮助通信双方快速建立共享密钥,但该算法本身存在缺陷,容易遭受“中间人”攻击,其过程如图1所示。
图1中间人攻击图例
通过以上攻击流程的分析可知,“中间人”这种攻击方式之所以会在D-H密钥交换算法中奏效,最大的原因是通信双方都没有验证对方的身份,当然也就无法辨别消息的真正来源。由于D-H密钥交换算法这种缺陷,出于安全需要,使用D-H密钥交换算法的IKE协议中引入了多种身份认证方法,但由于协议设计的缺陷,IKE协议的交换过程中还容易受到变换载荷的攻击。
IKE协议除了容易受到变换载荷的攻击之外,还存在一个漏洞就是可能会泄漏通信双方的身份。在实际网络环境下,为避免恶意的第三方伪装成合法用户发起主动攻击,隐藏协商双方或某一方的身份是很有必要的。
对于公钥加密及其改进版本的认证方式,攻击者一般都较难获取通信双方的身份信息,除非是对应私钥泄漏,但这种安全保证是以增加协议的复杂性和运算量为代价的。另外两种认证方式:预共享密钥认证和数据签名认证方式,在野蛮模式交换中根本不提供身份保护,即使是主模式也无法避免通信身份的泄漏,从而导致恶意第三方的攻击发生。
对于数字签名认证方式,在主模式下,攻击者可以首先在D-H交换时,发起“中间人”攻击,从而和协议交互双方分别生成一个共享密钥,假设为K1和K2,然后分别产生SKEYID1=prf(Ni_b,K1)和SKEYID2=prf (Ni_b|Nr_b,K2),从而最后生成了SKEYID_e。发起人发出的第5条消息是受SKEYID_e保护的,因此,攻击人可以从该消息中获得发起人的身份信息。不过攻击人无法再进行“中间人”攻击,因为攻击人无法修改该条消息中的数字签名。
对于预共享密钥认证方式,虽然第5条和第6条消息中对身份信息进行了加密,但是由于发起者必须根据共享密钥计算SKEYID,所以必须首先知道对方的身份,因此IKE协议明确指出,此时只能使用IP地址作为身份标识,也就是说,任何攻击者都可以根据前面的消息交换获得双方IP地址,从而获得双方的身份信息,导致了信息的泄漏。
2.2基于动态口令认证的IKE协议
为了将动态口令认证机制引入到IKE协议中,本文对IKE协议的两阶段交换进行了扩展,将其密钥交换过程扩展为三个阶段,如图2所示。
图2 改进后的IKE协议
在IKE的第一阶段交换前添加动态口令认证交换是为了对VPN通信客户端进行有效的身份认证,同时利用动态口令产生保护第一阶段Diffie-He11man密钥交换的随机串,动态口令认证的流程如图3所示。
图3 动态口令身份认证技术的认证过程
动态口令身份认证过程中,认证双方共享秘密信息串S1、S2和D0,这里D0是用来产生动态口令DP的密钥,当用户通过VPN输入用户名和动态口令时,客户端程序会根据输入生成Hash(S1+DPC)和Hash(ID),服务器端收到该认证请求后,通过比较ID的Hash值确认用户ID,并计算该用户ID的动态口令DPS,通过计算得到Hash(S1+DPS),该值若与客户端传上来的值相等则认证成功,否则认证失败,当认证成功时双方都可通过计算得到Hash(S2+DP),该值即为随机保护串RanKey,该串将用于保护IKE第一阶段Diffie-He11man的密钥交换。
2.3改进的IKE第一阶段交换
改进的IKE第一阶段交换利用了上一阶段生成的随机保护串RanKey对DH的密钥交换过程进行保护和校验,同时利用DH密钥交换得到主模式的SA,经过改进后的IKE第一阶段如图4所示。
图4 改进后的IKE第一阶段交换
与标准的IKE第一阶段主模式交换相比,对图4中的第3、4条消息进行了修改,而删除了第5、6条消息:
(1)在第三条消息中添加了一个参数HASH_i,该参数的计算公式如下:HASH_i=prf(RanKey,Kei|Ck_i|Ck_R|SAi_b|SAr_b) (2)在第四条消息中同样添加了一个参数HASH_r,该参数的计算公式如下:
HASH_r=prf(RanKey,Ker|Ck_i|Ck_R|SAr_b)
标准IKE协议中,响应端收到第三条消息之后并不对该消息的来源进行确认,这也就是为何DH会受到中间人攻击的原因,改进后的协议中,当响应收到第三条消息后,要利用相同的算法计算HASH_i_Check=prf(RanKey,Kei|Ck_I|Ck_R|SAi_b| SAr_b),若HASH_i与HASH_i_Check一致,则校验成功,否则说明中间人修改了Kei、SAi或者SAr,响应者中止交换。
当第四步以后,双方完成D-H交换,产生主密钥Mastkey,通过该密钥可衍生出SKEYID_e,下一阶段的密钥交换则在SKEYID_e的保护下进行。
SKEYID_e的计算方式如下:
SKEYID=prf(RanKey,Ck_I|Ck_R) SKEYID_2=prf(SKEYID,MasterKey|Ck_I|Ck_R|0) SKEYID_a=prf(SKEYID,SKEYID_2|MasterKey| Ck_I|Ck_R|1)
SKEYID_e=prf(SKEYID,SKEYID_a|MasterKey| Ck_I|Ck_R|2)
2.4增加的消息和载荷类型
由于IKE协议进行了修改,增加了部分消息以及参数,因此需要增加这部分消息和载荷,下表1中定义了两种消息类型,主要在动态口令认证交换中使用。
表1 新增消息类型
增加的载荷统一使用图5的结构,
图5 增加的载荷结构
本文新增了如表2所示的载荷类型,分别为USERID、DIDAUTH和RESULT,具体意义如下,三者均在动态口令身份认证阶段使用:
表2 新增载荷类型
3 改进的IKE协议的安全性分析
引入动态口令身份认证之后,IKE协议实现了一种轻量级认证机制---动态口令认证机制保护下的安全认证和传输。由于IKE协议所使用的D-H交换最容易受到“中间人”攻击,这里以该攻击方式为例,分析改进后的IKE协议的安全性。
在动态口令认证阶段,由2.2节可知,网络上并未直接传送用户ID信息和动态口令,攻击者若假扮用户,并不能正确获取到动态口令DP,因而也不能计算得到正确的AuthC值,没有正确的AuthC值,服务器则可中断协议,若攻击者假冒服务器端,鉴于动态口令是服务器端单向验证,此时用户端暂时无法察觉受到了欺骗,但是由于假冒的服务器无法解析出正确的动态口令DP,因而也无法产生正确的随机保护串RanKey。
在改进后的第一阶段D-H的生成过程中,无论攻击者冒充用户还是冒充服务器,一旦修改了KEi、KEr、SAi和SAr中的任何一个,由于不知道RanKey或者只知道一个错误的RanKey,就无法得到HASH_i 和HASH_r正确的值,借由此客户端和服务器端均可判断出是否遭受了“中间人”攻击,一旦确定受到攻击,通信任何一方即可中止协商。
由上分析可知,在动态口令认证交换中,原只有服务器端对客户端的单向身份认证存在,而在改进后的IKE第一阶段交换过程中,客户端和服务器端实现了双向认证,从分析结果看,该IKE的改进方案是可行的,有效的。
4 结论
通过对标准的IKE协议的安全性进行了分析,研究了D-H算法遭受“中间人”攻击的过程,通过在IKE协议中引入动态口令认证的方法,有效解决了D-H算法易受“中间人”攻击的问题,由于IKE协议本身非常复杂,对于IKE协议的安全性和改进方面,仍存在不少问题有待进一步研究,相信随着对这些问题的逐步解决,IKE协议将更加完善。
参考文献:
[1]范红.互联网密钥交换协议及其安全性分析[J].软件学报, 2003,14(3):600-605.
[2] 何伟伟,季新生,刘彩霞.基于数字签名认证的IKE协议安全性分析及改进[J].计算机应用.2008,28(7):1808-1815.
[3] 武涛,郑雪峰,姚宜霞,等.基于预共享密钥认证的IKE协议分析与改进[J].计算机工程,2008,34(8):147-149.
[4] 付小青,丁俊民.基于公钥签名的IKE分析与改进[J].华中科技大学学报:自然科学版.2003,31(10):51-53.
[5] 韩秀玲,王行愚.IPSEC中密钥交换协议认证过程的研究及协议的改进[J].计算机工程与应用,2002,38(18):29-32.
(责任编辑:叶丽娜)
中图分类号:TP393.08
文献标识码:A
文章编号:1674-2109(2015)12-0065-04
收稿日期:2015-06-19
作者简介:瞿霞(1982-)女,汉族,讲师,主要从事网络安全研究。
Security Analysis and Improvements on IKE in IPSEC
QU Xia,HUA Jianxiang
(Fujian Forestry Vocationa1 Technica1 Co11ege,Nanping,Fujian 353000)
Abstract:The paper ana1yzes the security issue of the exchange process of IKE protoco1,revises IKE protoco1 of the program by dynamic passwords for the vu1nerabi1ity issue of Diffie-He11man key exchange a1gorithm.The program revised proves to be feasib1e and effective by the experiment carried out.
Key words:dynamic passwords;protoco1 of key exchange;IPSEC protoco1;IKE protoco1