三方密钥交换协议(精选4篇)
三方密钥交换协议 篇1
0 引 言
密钥交换协议的目的是使通信双方用易于记忆的口令与服务器进行认证,建立共同的会话密钥,以能够实现在不安全的信道上安全地进行通信,文献[2]首先提出了一个两方密钥交换协议( 2PAKE) ,初步实现了通信双方的相互认证和密钥交换,但是由于2PAKE协议并不适用于像P2P这样有大量用户需要通信的系统,因此一系列的三方密钥交换协议( 3PAKE) 也随即被提出[2,3,4]。在三方密钥交换协议中,通信双方在可信服务器的帮助下协商好一把会话密钥。3PAKE协议根据用户与服务器共享的口令类型可以分为两类: 对称型和非对称型。对称型指的是用户和服务器共享一个相同的口令,当服务器泄露时,攻击者可以直接得到用户的口令,可以冒充任意一个用户进行攻击; 而在非对称型中,用户独自持有口令,同时与服务器共享对应的验证元,即使服务器发生泄露,攻击者也无法直接获取用户的口令,而是需要一些额外的时间来对验证元进行离线字典攻击以获取真正的用户口令,这也就给了服务器通知用户受到攻击的时间,降低了服务器泄露后的安全风险。在已有的文献中有不少关于基于验证元的三方密钥交换协议的研究,2008年,文献[5]利用双线性对的性质提出了一个高效的基于验证元的3PAKE协议,但随后文献[6]指出其容易受到内部人攻击和重放攻击,并提出了一个改进协议。然而该改进协议仍容易受到离线字典攻击和服务器密钥泄露攻击等安全威胁。2009年,文献[7]提出了一个基于异或运算的3PAKE协议,但是该协议容易受到服务器密钥泄露攻击、内部人攻击等威胁。2012年,文献[8]提出了一个基于验证元的3PAKE协议,在该协议中通信双方先分别与服务器协商好一般高熵的临时密钥,然后再以这把高熵密钥为基础、在服务器的帮助下生成通信双方所需的会话密钥,该协议由于要生成高熵密钥,所以导致过程复杂且计算开销过大。同年,文献[9]也提出了一个基于验证元的三方密钥交换协议,并声称该协议具有强安全性,且能够抵御包括口令泄露伪造攻击、服务器泄露攻击等各种已知攻击,但通过我们的安全性分析发现,该协议仍然容易受到服务器泄露攻击与服务器泄露伪造攻击的威胁,并以此为基础提出了一个高效安全的改进协议。
1 前置知识
1. 1 双线性对
假设G1为q阶的循环加群,G2为q阶的循环乘群,e: G1*G1- > G2为双线性对。P,Q∈G1,e满足以下性质:
( 1) 双线性性对于任意a,b∈Z ,下列等式总是成立的: e( a P,b Q) = e( P,Q)ab。
( 2) 非退化性总是存在P,Q∈G1,使得不等式e( P,Q) ≠1成立。
( 3) 可计算性对所有的P,Q∈G1,总是存在着有效的算法来计算e( P,Q) 。
1. 2 设 G 是由点 P 生成的循环加群,下面介绍一些 G上的数学难题
( 1) 离散对数问题( DLP)给定P,Q,求k,使其满足Q = k P。
( 2) 计算性Diffie-Hellman问题( CDH)设a,b∈Z*P,给出aP ,bP ,计算ab P。
( 3) 判定性Diffie-Hellman问题( DDH)设a,b,c∈Z*P,给出a P,b P,c P,判定q。
2 文献[9]的协议
2. 1 协议描述
下面简要回顾一下文献[9]的协议,先介绍一下要用的参数,A,B分别为用户,S为服务器,pw1,pw2分别为用户A,B各自独享的口令,对应的验证元分别为W1= gpw1,W2= gpw2,其中g为q阶有限循环群G的生成元,验证元为用户与服务器所共享,对应着用户A和B,S分别存储着参数S1= H( s1) ,K1= gS1和S2= H( s2) ,K2= gS2。
其中s1,s2∈Z*q。H1、H2、H3、H、T为5个不同的哈希函数,其中哈希函数和( G,q,g) 均为公开参数。假设A要与B通信,协议过程如下:
Round1 A通知B协议开始。
同理,B也进行同样的验证,并计算相同的会话密钥SKBA=H3( A,B,S,N,σ) 其中σ = ( Xz)y。
2. 2 对文献[9]协议的攻击方法
( 3) 口令泄露伪造攻击假设A的口令PW1被E得到了,E先计算W1= gpw1,后面的攻击过程和( 2) 一样。
由上述分析可知,该协议无法抵御服务器密钥泄露攻击和口令泄露伪造攻击,这也是目前很多3PAKE协议所存在的弊端,因此本文提出了一个新的基于验证元的3PAKE协议,并通过安全性分析证明它是安全的。
3 本文协议
本节我们将详细介绍本文协议的具体过程。下面是协议用到的参数,A、B分别为合法用户,S为服务器,A、B的口令分别为PWA、PWB,对应的验 证元分别 为YA= H1( A,S,PWA) 、YB= ( B,S,PWB) ,口令为用户独享,验证元为用户与服务器共享,s是服务器S的私钥,PS= s P为公开参数,G1是q阶的有限循环加群,生成元是P,G2为有限循环乘群,e是双线性对,G1* G1- > G2。协议过程如图1所示。
Round1 A广播( A,B,S) ;
4 安全性分析
( 3) 口令泄露伪造攻击同( 2) ,即使E得到了A的口令PWA,由于无法获得服务器的私钥s,因此无法通过第三轮里A对服务器S的验证,即无法冒充其他用户来与A进行通信。同理,即使E得到了B的口令,也无法进行口令泄露伪造攻击。
( 4) 离线字典攻击传递的消息ZAS、ZBS、ZSA、ZSB都含有两个或两个以上E未知的参数,因此E无法进行离线字典攻击。
( 5) 在线字典攻击在第三轮里,S会验证用户是否真的知道口令,一旦验证失败次数达到了一个预定值,就知道谁的口令正在作为在线字典攻击的目标,就可以采取相应措施了,因此本协议可以抵御可测的在线字典攻击。同理,不可测的在线字典攻击也是不可行的。
( 6) 内部人攻击和未知密钥共享攻击假设敌手E通过腐化等方式得到了C的口令和验证元PWC、YC,或E本身就是合法用户,若E想假冒A与B进行通信,由于第三轮里S对用户的身份、B对用户的身份均会进行验证,因此攻击失败。
( 7) 前向安全性前向安全性指的是即使敌手获得了一个或多个用户的口令,也无法影响以前由该口令建立的会话密钥安全。在本协议中,即使PWA、PWB、YA、YB均被敌手E得到,由于每个密钥的产生都需要双方用户和服务器各取一个随机数a,b,c参与到会话密钥的计算中,因此敌手E仍不能破坏之前的会话密钥安全。在本文协议中,会话密钥和口令之间具有独立性,因此本文协议具有完美的前向安全性。
( 8) 重放攻击因为每一次协议的运行都有着通信双方和服务器随机生成的新鲜性标识符a,b,c,因此敌手不能通过重放以前的旧消息来影响到协议的正常运行。
( 9) 中间人攻击敌手E无法模仿用户A( B) 来与服务器S通信,因为不知道用户A ( B) 的口令,无法生成正确的ZAS( ZBS) ,通不过第三轮里S对用户A( B) 的验证; 敌手E也无法模仿服务器S来与用户A( B) 通信,因为不知道服务器S的私钥s和用户A( B) 的验证值,因此无法生成有效的ZSA和ZSB,通不过第三轮里用户A( B) 对服务器S的验证。
5 效率分析
本文从指数运算、点乘运算、哈希运算等几个方面进行效率分析,表1是文献[6]、文献[9]和本文协议的效率对比:
由效率分析表可知,本文协议比其他另外两个协议效率要更高,因为本文只是简单引用了双线性对的性质,达到了完善的双向认证机制的目的,避免了繁琐复杂的运算。且与另外两个协议相比,本文协议有着更高的安全性。
6 结 语
本文对现有的一个基于验证元的三方密钥交换协议进行了安全性分析,指出其是不安全的,并以此为基础提出了一个新的3PAKE协议,该协议能够很好地抵御包括服务器密钥泄露攻击在内的各种已知攻击,并与其他同类协议相比,具有较高的效率。
摘要:先对一个基于验证元的三方密钥交换协议进行安全性分析,指出其容易受到服务器泄露攻击等安全威胁,并以此为基础提出一个改进的密钥交换协议。通过安全性分析,证明该协议能够抵御服务器密钥泄露攻击﹑离线字典攻击等各种已知的攻击,且与其他同类协议相比,新协议具有较高的效率。
关键词:验证元,三方密钥交换协议,服务器密钥泄露攻击,安全性分析
参考文献
[1]Bellovin S M,Merritt M.Encrypted key exchange:password-based protocols secure against dictionary attacks[C]//Proc of the 1992 IEEE Symposium on Research in Security and Privacy.Oakland:IEEE Computer Society Press,1992:72-84.
[2]Kwon J O,Jeong I R,Sakurai K,et al.Efficient verifier-based password-authenticated key exchange in the three-party setting[J].Computer Standards and Interfaces,2007,29:513-520.
[3]Liu X M,Zhou F C,Chang G R.Improved key exchange protocol for three-party based on verifier authentication[J].Journal of Southeast University:English Edition,2008,24(3):322-324.
[4]许春香,何小虎.高效的基于口令的三方密钥交换协议[J].电子科技大学学报,2012,41(4):596-604.
[5]李文敏,温巧燕,张华.基于验证元的三方口令认证密钥交换协议[J].通信学报,2008,29(10):23-28.
[6]邓少锋,邓帆,李益发.两个三方口令密钥交换协议的安全性分析[J].计算机工程与应用,2011,47(10):101-105.
[7]杨秀梅,周福才,刘广伟,等.新的三方密钥交换协议[J].东北大学学报:自然科学版,2009,30(7):976-979.
[8]项顺伯,柯文德.有效的口令认证的三方密钥交换协议[J].计算机工程与应用,2012,48(16):107-116.
[9]陈勇,王立斌,龚征.强安全性的三方口令认证密钥交换协议[J].计算机工程,2012,38(19):21-29.
三方密钥交换协议 篇2
关键词:椭圆曲线,明文嵌入,密钥交换
0 引言
信息已随着计算机技术的迅猛发展, 逐步伸展到交通、工业经济、科学技术、社会安全和公共生活的各个领域, 成为现代社会中不可分割的一部分。保护信息的安全, 特别是保护重要信息的安全, 成为国际社会普遍关注的重大问题。椭圆曲线最初是仅仅作为数学问题被研究的, 直到二十世纪八十年代中期, Neal Koblitz和Victor Miller分别独立提出将椭圆曲线应用到密码体制中, 从那时起, 椭圆曲线越来越多地运用到加密体制中, 由于其所基于的数学问题的困难性被公认是目前已知的公钥密码体制当中每位提供加密强度最高的一种体制, 预计椭圆曲线在不久的将来会取代现有的加密模式。本文首先介绍椭圆曲线, 其后介绍椭圆密码体制中明文嵌入的问题, 之后介绍椭圆曲线密钥交换协议, 最后给出成功嵌入到明文中的点进行密钥交换的过程及结果。
1椭圆曲线
椭圆曲线不是椭圆, 它来源于椭圆积分:
定义:一个域上K的椭圆曲线被定义为维尔斯特拉斯等式:
K上的椭圆曲线E被表示为E (K) 。E上点的数字被表示为#E (K) 。通过改变变量, 不同特征的域上的维尔斯特拉斯等式可以转换 (简化) 成不同的格式。
本文中, 我们使用域K≠2, 3的域且维尔斯特拉斯等式可以被转化成x3+ax+b (a, b∈K其中) 一个三次多项式, 它需要满足条件4a3+27b2≠0 (这点保证此多项式没有重复根) 。一个K上的椭圆曲线E是一组点 (x, y) (x, y∈K的) 集合且满足等式y2=x3+ax+b。
2 椭圆曲线中的明文嵌入
几乎所有的加密系统都需要一种让原文变为可以进行数学操作的数值。为了能使用椭圆曲线密码系统, 我们也需要一个能将明文映射为椭圆曲线上的点的一种方法。只有这样, 椭圆曲线密码系统才可以对那个点进行椭圆曲线操作来产生一个新点作为密文。
将明文嵌入到随机的椭圆曲线中并不容易, 现有的嵌入算法是确定性算法和概率算法。确定性算法是由孙琦与肖戎在1989年提出的, 它只适用于形y2=x3-Dx如这样的特殊曲线。这两种嵌入算法明文有一定的限制性, 总会出现某些明文不能嵌入到曲线的情形。本文提出的算法它的核心思想是利用明文在机器中的机器表示作为输入, 在嵌入过程中变动明文, 具体算法如下:
输入:明文C (字符串型)
输出:明文嵌入曲线得到明文的x, y坐标
3 密钥交换协议的基本思想——保密信盒
保密信盒:设A, B两个人需要进行保密通信, 他们选择一个牢固的信盒。
(1) A把需要发送的信件装入信盒, 用自己的锁锁上信盒, 钥匙自己保管好, 把信盒送给B;
(2) B到信盒后, 由于没有钥匙, 当然不能打开信盒。相反地, 他在信盒的另一个并排的锁环处又加上了自己的锁 (并列) , 钥匙也自己保管起来, 把信盒又回送给A;
(3) A收到信盒后, 打开自己的锁, 把信盒再次送给B;
(4) B收到信盒, 用自己的钥匙打开信盒, 取出信件。
我们看到:
(1) 这是一次无接触信息交换, 不需要密钥的传递过程;
(2) 这是一个两趟协议, 从而是一种非实时通信方式, 不便用于直接通信, 一般用来传递对称密钥, 所以这一协议称为密钥交换协议;
(3) 信盒的设计需要:两把锁可以并列地锁上、打开, 互不影响。
4 ECDH描述
Diffie-Hellman算法是第一个公开密钥算法, 早在1976年就发明了。其安全性源于在有限域上计算离散对数比计算指数更为困难。Diffie-Hellman算法能够用作密钥分配——会话双方A和B能用它产生秘密密钥——但是它不能用于加密或解密信息。
协议如下:
(1) A选取一个大的随机整数x并且发送给B X=gx mod n。
(2) B选取一个大的随机整数y并且发送给A Y=gy mod n。
(3) A计算k=Y x mod n。
(4) B计算k'=X y mod n。
k和k'都等于gxy mod n。
还有许多Diffie-Hellman的变形, 比如三方或多方的DiffieHellman, 扩展Diffie-Hellman算法等等, 在这里不再介绍。椭圆曲线的密钥交换协议 (ECDH) 过程描述如下:
(1) A选择一个比n小的整数nA, 这是A的私有密钥。然后A产生一个公开密钥PA=nA*G;这个公开密钥是E (a, b) 中的一个点。
(2) B以 (1) 的过程选择他的私有密钥并计算他的公开密钥PB。
(3) A产生秘密密钥K=nA*PB。B产生秘密密钥K=nB*PA。
步骤 (3) 的两个计算得到相同的结果, 因为:
nA*PB=nA* (nB*G) =nB* (nA*G) =nB*PA
vlong Random (vlong n) 用于产生随机数。
输入:椭圆曲线的模数p。
输出:p之内的随机数k;
函数ECPoint operator* (vlong k, ECPoint&P) 的功能是进行计算公开密钥和秘密密钥。
5 实验结果
我们选用
P=0X FFFFFFFFF FFFFFFFFF FFFFFFFFF 99DEF836146BC9B1 B4D22831;
作为函数vlong Random (vlong n) 的输入, 数k和P163的基点坐标
X=188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD82FF1012
Y=07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A11E794811
作为函数ECPoint operator* (vlong k, ECPoint&P) 的两个输入。运行结果如下:
第一组测试数据:
A的私钥:
Ka=0X 6FAA94 A258CCCC CC90F812;
A的公开密钥:
PA.X=0X 7F38D43 BDCE8FE3 E325A07 682E973758C37131 82D7B117;
PA.Y=0X B4837BBA 4E512EE4 C6A98031 F0434FBEC512F7E 959D6DE;
B的私钥:
Kb=0X 7344A2 CFD2CCCC CC90F812;
B的公开密钥:
PB.X=0X 67D83CF3 DD3D02C6 EB64791 1F7950FAC9C478CD CF15D268;
PB.Y=0X 89C7F1D3 21188A58 77967682 2183338E6F23BDD4 FCAFDA96;
交换密钥后得到的会话密钥为:
EXCHANGE.X=0X B75DCB1F C81AEB33 524410BAFD11BF91 5625AB6E 946E6F78;
EXCHANGE.Y=0X 599F5D8A A88022EE 74D2EDB72CF2443D 8F418AEA 5AE61C3B;
第二组测试数据:
A的私钥:
Ka=0X E1DB94 EF82CCCC CC90F812
A的公开密钥:
PA.X=0X 7508DB61 63FAF58B 5CC1F535 6D045AB922525EE1 28D2AFC3;
PA.Y=0X 8F233D80 491954B9 D4F7944A 7669163D6C727075 C9411E37;
B的私钥
Kb=0X E47677 9978CCCC CC90F812;
B的公开密钥
PB.X=0X CCC04032 4BC68B74 FD6D3F3 DC369A0C31F48E28 DCF1E368;
PB.Y=0X 281A4755 B1F10DF3 12BAD055 EB9AB98FE6FCEA68 3108692C;
交换密钥后得到的会话密钥为:
EXCHANGE.X=0X E9D7F674 4016757F 1CBD60E2F6C695F5 1EE794D3 CDD9F98E;
EXCHANGE.Y=0X EFE4A6BC 901C0414 6D63AA0D3E3F8B62 883C5C83 30CDB1A8;
第三组测试数据:
A的私钥:
Ka=0X C8A149 DCECCCCC CC90F812;
A的公开密钥:
PA.X=0X 8C94D630 615D0F8C D791763 EB99D6FF208348F4 7A6C029F;
PA.Y=0X AEBFB954 EC38EC47 6116988C 1FF9646046B54C51 C2DEA122;
B的私钥
Kb=0X CBEBDB 85E2CCCC CC90F812;
B的公开密钥
PB.X=0X 39CFA269 D7478FB2 8828AC0A AB1F24EFB9FC0DE DB4A308D;
PB.Y=0X 4E10AE13 F5389F09 BA1A0AE4 B78AC7FB33AAA718 2ED76CC1;
交换密钥后的得到的会话密钥为:
EXCHANGE.X=0X DD63CDA1 C724481D 92887CE9CE5B4A28 44C18D59 DE349291;
EXCHANGE.Y=0X 1D97D8ED 8792E0E3 1C43AF1117E457F3 28BFA61E 7709CF7A;
6 结论
椭圆曲线密码系统的主要优势是它可以用比较短的密钥达到与RSA同样安全的级别。本文讨论了椭圆曲线密钥交换协议, 通过大量实验数据测试, 椭圆曲线密码系统能高效安全地实现密钥交换。
参考文献
[1]Bruce Schneier.应用密码学.北京:机械工业出版社.2000.
[2]Wade Trappe, Lawrence C.Wasington.Introduction to Cryp-tography With Coding Theory, Beijing.Science Press.2004.
[3]赵君卫, 王保保.椭圆曲线密码体制中明文嵌入的研究.微机发展.2003.
[4]Chou-Chen Yang, Ting-Yi Chang, Min-Shiang Hwang, A new anonymous conference key distribution system based on the ellip-tic curve discrete logarithm problem, Computer Standards & Inter-face 25.2003.
[5]W.Diffle and M.Hellman.New dircrions in cryptograpny.IEEE Transaction on Information Theory.1976.
三方密钥交换协议 篇3
Internet密钥交换协议[1]是目前IPSec[2]默认使用的密钥协商协议,IKE是混合型协议,它结合了ISAKMP(Internet Security Association and Key Management)[3]所提供的认证和密钥交换框架,并使用部分Oakley[4]和部分SKEME协议。IKE提供了多种可选的工作模式和安全实施方案,所以IKE显得比较复杂,也存在一些安全漏洞[5]。IKE第一版(IKEv1)设计的复杂性和安全隐患导致其成为了IPSec推广的瓶颈,为此,IETF一直致力于IKE的改进工作,于2005年12月提出了IKE的改进版IKEv2[6]。IKEv2无疑将取代IKE 得到广泛应用,因此深入了解IKEv2的协议结构是十分必要的。
本文首先介绍了IKEv2中使用的载荷,然后分析了IKEv2用于建立IKE_SA和CHILD_SA 的几种消息交换,以及应用于IKEv2的可扩展认证协议(EAP)[7],最后总结了IKEv2的优越性。
1 IKEv2概述
IPSec在实施安全保护时需要通信的双方协商出双方的保护措施和参数,比如加密算法、认证算法、保护模式以及相关算法的密钥材料。IETF把这些协商后的参数组合起来,称为安全关联SA(security association)。IPSec 安全服务协议ESP 和AH都要使用安全关联,IKEv2协议与IKEv1一样,其主要功能是安全关联SA的建立和维护,当一个SA的协商完成时,两个对等方都在它们的安全关联数据库SADB中存储该SA参数。
IKEv2使用UDP的500端口或4500端口,交换的消息以载荷的形式传输,RFC4306定义了16种载荷,这些载荷有的保留了原来的定义,有的为新增载荷,它们为构造IKE消息定义了基本模块:
1) HDR:IKE头格式,每个IKE消息由定长的头和不定数量的载荷组成,IKE头格式主要包含发送方和接收方的IKE_SA的安全参数索引SPI(Security Parameter Index)、下一载荷标识、消息交换形式(34表示IKE_SA_INIT;35表示IKE_AUTH交换;37表示information Exchange交换);
2) 通用载荷头(Generic Payload Header):每个IKE载荷由通用载荷头开始,通用载荷头定义了载荷的边界,所以就可以联接不同的载荷;
3) SA:安全关联载荷,用于协商SA的属性;
4) KE:密钥交换载荷,主要包含D-H交换的公开参数;
5) ID:身份标识载荷;
6) CERT:证书载荷;
7) CERTREQ:证书请求载荷;
8) AUTH:认证载荷;
9) N:nonce载荷;
10) N:通知载荷,用于传送通知消息外的通知和错误消息;
11) D:删除载荷,用于通知对方某个特定的SA已从SAD中删除,是发起者对响应者的提示信息;
12) Vendor ID Payload,厂商ID载荷;
13) TS:流量选择符载荷;
14) SK{……}:加密载荷,表示{}内所有载荷用SK_e和SK_a分别提供机密性和完整性保护;
15) CP:配置载荷,用于交换两端的配置信息;
16) EAP:可扩展认证协议载荷。
2 IKEv2安全机制的主要构成
IETF将IKEv2中IKE协商过程中建立的安全关联仍叫IKE_SA,将在IKE_SA基础上建立的AH和ESP的安全关联叫CHILD_SA。所有的IKE通信都由请求/响应消息对组成,一对消息称为一次交换。其中,第一对消息称为IKE_SA_INIT交换,第二对消息称为IKE_AUTH交换,随后的IKE交换为Create_Child_SA_Exchange或Information Exchange交换,如图1所示。一般情况下,一次IKE_SA_INIT交换和IKE_AUTH交换可用来建立IKE_SA和第一个CHILD_SA,所有的IKE_SA_INIT交换必须在任何其他交换之前完成。
2.1 SA的建立
SA的建立在IKEv2中依靠初始交换和协商子SA交换完成。
2.1.1 初始交换
初始交换通常由4条消息(2次交换)组成,前两条消息被称为IKE_SA_INIT交换,其作用为协商密码算法、随机数交换、D-H交换,并建立IKE_SA,衍生出用于加密和验证后续消息所需的密钥材料;后两条消息被称为IKE_AUTN,其作用是验证IKE_SA_INIT以及交换身份标识和证书,并建立第一个CHILD_SA。IKE_AUTH用IKE_SA_INIT的消息交换产生密钥材料进行消息的加密和完整性保护。初始交换具体步骤如下:
(1) I->R:HDR,SAi1,KEi,Ni
(2) R->I:HDR,SAr1,KEr,Nr,[CERTREQ]
(3) I->R:HDR,SK{IDi,[CERT],[CERTREQ],[IDr],AUTH,SAi2,TSi,TSr}
(4) R-I:HDR,SK{IDr,[CERT,],[CERTREQ],AUTH,SAr2,TSi,TSr
SAi1代表发起者支持的密码算法,KEi载荷发送发起者的D-H值,通过KEr并在Nr中发送nonce来完成D-H交换。通过IKE_SA_INIT交换,双方生成一个SKEYSEED,SKEYSEED的计算方法如下:
SKEYSEED=prf(Ni|Nr,g^ir)
后续消息使用的所有密钥材料都源于SKEYSEED:其中SK_d为CHILD_SA衍生新密钥;SK_ai和SK_ar用于IKE_AUTH消息交换的完整性保护;SK_ei和SK_er用于IKE_AUTH的机密性保护,SK_pi和SK_pr用于生成AUTH载荷,它们的计算方法如下:
{SK_d|SK_ai|SK_ar|SK_ei|SK_er|SK_pi|SK_pr }=
prf(SKEYSEED,Ni|Nr|SPIi| SPIr)
其中SK_d、SK_ai和SK_ar、SK_ei和SK_er、SK_pi和SK_pr的值顺序地截取伪随机函数prf的生成比特。
IKE_AUTH消息的作用是验证IKE_SA_INIT以及交换身份标识和证书,并建立第一个CHILD_SA。发起者在IDi载荷中声明其身份,证明其拥有和IDi相对应的秘密,并用AUTH对前面消息的内容进行完整性保护。可以在CERT载荷中发送其证书,并在CERTREQ中发送证书验证路径。如果发送证书,则在提供的第一个证书中必须包含用于验证AUTH域的公钥。可选的IDr载荷用来明确地表明想和对方的哪个身份通信,这适应对方在同一IP地址拥有多个身份的情况。在IKE_AUTH消息中的AUTH载荷中采用以下三种认证方法:(1)RSA数字签名;(2)共享密钥消息认证;(3)DSS数字签名。
CHILD_SA的密钥材料生成方法如下:
KEYMAT=prf(SK_d,Ni|Nr)
在这里,Ni、Nr是来源于IKE_SA_INIT交换中的nonce载荷。
2.1.2 Creat_CHILD_SA交换
CREAT_ CHILD_SA消息交换可以在初始交换建立的IKE_SA基础上生成多个CHILD_SA,过程如下:
I->R:HDR,SK {[N],SA,Ni,[KEi],[TSi,TSr]}
R->I:HDR,SK {SA,Nr,[KEr],[TSi,TSr]}
Creat_CHILD_SA消息交换包含一次可选的Diffie-Hellman交换,其密钥材料生成方法如下:
KEYMAT=prf(SK_d,g^ir (new)|Ni|Nr)
其中g^ir(new)为消息交换中可选的Diffie-Hellman交换的公钥值,CHILD_SA中需要的密钥,可以根据大小按顺序由KEYMAT获得。
2.2 SA的重协商
IKE、ESP、AH 安全关联的秘密密钥应该具有一定的生命周期,如果一个安全关联一旦过期,那么这个安全关联必须停止使用,如果需要,双方可以协商建立一个新的安全关联。重建安全关联以替代已过期的安全关联,称为“重协商”,为简化IPSec的实施,SA的重协商有时并不需要建立一个新的IKE_SA,而是从一个现存的IKE_SA基础上协商一个新SA,新IKE_SA的SKEYSEED计算公式如下:
SKEYSEED=prf(SK_d(old),[g^ir(new)]|Ni|Nr)
其中,SK_d (old)是原IKE_SA中生成的密钥,新的IKE_SA一旦建立,必须将计数器重新计为0。
2.3 EAP
IKEv2除了使用公钥认证和共享密钥认证,IKEv2还支持EAP,EAP是PPP认证中的一个通用协议,支持多种认证机制,允许使用一个“后端”服务器来实现各种认证机制,认证者只需传送认证消息,EAP协议本身具有良好的可扩展性,这使得在添加新的认证机制时不会影响现有协议的继续使用。EAP认证可以是非对称的,常用于服务器对主机的认证,扩展认证协议的请求/应答包中的类型域规定了EAP的各种类型,最初提供以下几种类型:
1) Identity—用来查询对方身份;
2) Notification—由认证者用来向对方传递一条可显示的消息;
3) Nak (Response Only)—仅对应答包有效,作为不接受请求认证类型时的响应;
4) MD5-Challenge:类似于PPP CHAP协议,包含质询消息;
5) One-Time Password(OTP):请求包中含有一个OTP质询消息,应答类型为OTP或NAK;
6) Generic Token Card:用于要求用户输入各种类型的令牌卡。
扩展认证为IKEv2提供了一种附加的IKE_AUTH交换,其交换过程描述如下:
I->R:HDR,SAi1,KEi,Ni;
R->I:HDR,SAr1,KEr,Nr,[CERTREQ];
I->R:HDR,SK {IDi,[CERTREQ,] [IDr,] SAi2,TSi,TSr};
R-I:HDR,SK {IDr,[CERT,] AUTH,EAP };
I->R:HDR,SK {EAP};
R->I:HDR,SK {EAP (success)};
I->R:HDR,SK {AUTH};
R->I:HDR,SK {AUTH,SAr2,TSi,TSr };
2.4 Information Exchange交换
通信双方在密钥协商期间需要传送控制信息,告知对方发生的错误或通知某些事件。为了完成这些操作,IKEv2定义了信息交换,信息交换中的消息可选的多个通知载荷、删除载荷或配置载荷。同第一版协议不同的是,对方收到信息请求后必须作出响应(否则发送者将假定消息在网络中已丢失,并重复发送该消息),新版协议规定通信节点必须拒绝一切半开放的连接。这类交换的消息也可以不含任何的载荷,比如一方在探寻对方是否仍在网络中处于存活状态时,就可以发送空消息。需要注意的是,消息交换必须经过初始化交换才能进行,并且消息的内容也是经过加密的。
I->R:HDR,SK{[N],[D],[CP]…}
R->I:HDR,SK{[N],[D],[CP]…}
在IKEv2中,发起方对等待时间到达后消息的重传负责,响应方则不必主动重传消息,除非收到对方的一个重传请求。这样发起方必须能够记住每个请求,直到收到请求对应的响应消息为止,在未能确认对方身份的情况下,新协议允许响应者不对发起者的消息作出响应,从而也在一定程度上减少了不必要的通信损耗。
3 IKEv2相对IKEv1的改进
在安全性[8]上为了防御来自网络的拒绝服务(DoS)攻击,IKEv2规定通信双方任何一端不能通过任何路由信息(ICMP消息)或未加密保护的IKE消息(报错消息)来判断另一方是否已经无法通信。它只能通过以下两种情况来判断对方是否失败:(1)重复地尝试联系对方,直到规定的应答时间到期;(2)接收到受加密保护的INITIAL_CONTACT通知消息,它包含了与以前同样的身份认证。由于建立IKE_SA的头两条消息没有加密保护,这样攻击者可以在真正的响应方之前,通过响应发起方的请求,达到中断此次协商的企图。为了阻止这类事件的发生,发起方允许多个响应方响应第一条消息,并把所有的响应方视为合法,发起方发送一些消息后,若收到一个有效的加密保护响应消息,就可以丢弃其他所有无效的半开放连接。一旦收到一个有效的加密响应消息,那么所有接下来的响应在没有有效加密的情况下都会被忽略。
此外,IKEv2明确提出了对NAT的支持,通过NAT建立IPSec连接会带来一些问题,如在传输模式中,IP地址的改变会导致校验和失败,而NAT因校验和加密而不能进行校验;即使在隧道模式中,由于NAT中对AH和ESP数据包的透明地址翻译需要特殊的规则,而这一规则本质上是启发式的、不可靠的,所以会产生路由问题,鉴于这种情况,IKEv2用UDP封装的IKE、ESP、AH数据包来协商。
4 结束语
IKEv2相对IKEv1做了很大改进,修补了原协议中的安全漏洞;在协议结构上把IKE协议定义在一个文件中,替代了RFC2407、2408、2409,使协议结构更加完整、简洁;同时协商过程中消息数量得到减少,提高了协商效率;在身份鉴别方式上添加了扩展认证协议(EAP),增加了身份鉴别的可选方式,扩展了IPSec的应用范围。目前由于IKEv2颁布和实施的时间不长,其安全性还有待进一步研究。
参考文献
[1]Harkins D,Carrel D.The Internet key exchange(IKE)[S].RFC2409,1998.
[2]洪帆,陈卓.IPSec安全机制的体系结构与应用研究.小型微型计算机系统,2002,23(8):946-949.
[3]Orman H.The Oakley key determination of interpretation for ISAKMP[S].RFC2407,1998.
[4]Orman H.The Oakley key determination of interpretation for ISAKMP[S].RFC2407,1998.
[5]Zhou Jianging.Futher analysis of the Internet Key Exchange Protocol[J].Computer Communication,2000(11):1602-1612.
[6]Kaufman C.Internet Key Exchange(IKEv2)Protocol[S].RFC4306,2005,12.
三方密钥交换协议 篇4
随着网络技术体制Everything-over-IP的发展以及向IPv6的加速过渡, IPSec[1]作为IP层主流加密标准及IPv6必选安全功能, 受到广泛关注。密钥协商是IPSec的核心功能, 是建立安全隧道的重要步骤, 因此IETF为IP-Sec专门制定了互联网密钥交换协议IKE[2]。IKE的目标是在不可信的网络环境下完成通信双方的身份认证、策略协商以及会话密钥交换, 但在协议设计中过于追求理想化和通用化, 增加了协议自身的复杂性, 阻碍了IPSec的大规模应用。IKE有3大缺陷: (1) 消息回合数多, 协商效率低, 易受DoS攻击; (2) 协议组合过多, 描述复杂, 可理解性和互操作性差; (3) 可选项冗余, 需频繁协商选择。因此, IKE安全和效率方面的优化研究成为IPSec领域的热点。
当前密钥交换协议研究方向有: (1) 以原有IKE为基础进行修改, 典型代表是IKEv2[3]; (2) 抛开IKE设计全新的协议, 典型代表是快速密钥交换协议JFK[4]。IKEv2是IETF IPSec工作组推出的IKE升级版, 保留了IKE的大部分特性, 包括两阶段协商、身份隐藏、前向安全等, 同时通过减少主模式消息来回次数、增加无状态Cookie等机制提升协议的安全性和高效性。JFK是一种全新的协议, 放弃了服务协商, 响应者有权设置自己的服务要求, 任何由响应者提到的原始机密都是可以接受的。
在IKEv2和JFK的基础上, 研究人员提出了大量的优化改进方案。本文对IKEv2和JFK协议的安全和效率进行综合分析, 针对IKEv2和JFK协议中抗DoS攻击与完美前向安全难以共存的问题, 结合轻量化、简洁化的密钥协商需求, 提出一种轻量级的密钥交换协议LKE (Lightweight Key Exchange) , 同时具备抗DoS攻击和完美前向安全两种特性, 减少了报文交互数量及公钥运算量, 从而实现密钥协商过程安全和提升效率。
1 IKEv2和JFK协议及缺陷分析
1.1 IKEv2协议介绍
IKEv2是IETF IPSec工作组于2004年5月发布的最新版IKE协议草案, 保留了IKEv1的基本功能, 同时大幅精简了原有协议, 其协议交互过程如表1所示[3]。
1.2 JFK协议
JFK协议是专为下一代网络所设计的密钥交换协议, 相对于IPSec中标准的IKEv2协议, JFK将其两个阶段的思想优化为一个阶段, 整个密钥交换过程包括简单的2次交换、4条消息, 协议实现更为简单, 安全性及效率更高。JFK协议的实现基于Diffie-Hellman交换, 并引入无状态连接思想, 在一个规定的时间间隔内, 为所有会话分配同一个Diffie-Hellman指数, 在时间间隔到达后, 重新计算指数值并用于之后的通信, 从而实现阶段性前向安全。
根据通信实体保护策略的不同, JFK分为JFKi和JFKr两种类型。其中JFKi仅提供对发起端的身份信息保护, 而JFKr同时对发起端和响应端提供保护机制[4]。
JFKi协议两个来回中包含4条消息, 见表2。
协议交换中所需密钥Ke、Ka和Kir的计算过程如下:
Ke=Hgir{NI, NR, 1}:用作消息加密的共享密钥;
Ka=Hgir{NI, NR, 2}:用作消息完整性验证的共享密钥;
Kir=Hgir{NI, NR, 0}:传递给IPSec等应用的共享密钥。
JFKr协议消息交换如表3所示。
JFKr协议的交换方法和JFKi协议基本一样, 只是提供的身份保护机制不同, 加密和认证密钥的生成方法均和JFKi一致。在消息3和消息4中, 双方的身份通过Ke和Ka进行加密和认证, 从而防止了被动攻击, 另外接收端的身份可以防止主动攻击。
1.3 IKEv2和JFK协议缺陷分析
根据有关研究成果及笔者分析, 两种协议存在的主要安全缺陷有:
(1) 抗DoS攻击与完美前向安全难以两全。完美前向安全是指密钥信息的泄露不影响之前会话中已加密信息的机密性[11]。通常完美前向安全是通过密钥单向演进[11]、每次协商采用不同随机数以及密钥用后立即销毁等方式实现的。
IKEv2通过无状态Cookie机制实现一定程度的抗DoS攻击能力, 其基本思想是将Cookie值与发起者IP地址绑定, 并通过第一轮报文交互验证Cookie中显示的IP地址与发起者IP的一致性, 排除伪造大量报文发起的DoS攻击。但对于分布式DoS攻击, 由于攻击者控制的大量僵尸主机拥有真实IP地址, 能够通过一致性验证, 使得Cookie抗攻击机制失效。
JFK为提升抗DoS攻击能力, 在一定的时间间隔内使用同一DH指数进行运算, 从而大量节省DH指数运算所需的计算资源。但DH指数重用使得前向安全性只在这个时间间隔内存在, 这个时间间隔被称为前向安全区间[9]。
(2) IKEv2报文来回数量较多、计算量较大, 整体效率较低。
(3) JFKi对响应者身份信息缺乏保护[10]。
(4) JFK取消了算法套件协商过程, 增大了协商失败的可能性。JFK协议取消了加密和认证算法的协商, 由Responder指定使用加密和认证算法, 如果Initiator恰好不支持Responder所提出的加密或认证要求, 通信将被迫中断。
2 LKE协议设计
2.1 设计目标
LKE的总体设计目标是在客户端/服务器架构下, 针对一对多通信的协商特点, 提出高安全、高性能的专用密钥交换协议, 具体设计目标如下: (1) 提高服务器端抗DoS攻击及分布式DoS攻击的能力; (2) 完美前向安全, 防止服务器端某一点被攻破造成大范围安全影响; (3) 解决IKEv2与JFK之间的抗DoS攻击与PFS无法共存的问题; (4) 减少协议全过程报文交互数量, 保持协议简单性, 降低协议处理导致的性能负担; (5) 减少协议全过程的公钥算法使用, 降低计算资源消耗; (6) 双方身份认证及身份隐藏。
2.2 符号说明
见表4。
2.3 协议设计
LKE协议的基础数学框架与IKEv2及JFK相同, 仍采用Diffie-Hellman模型。借鉴了IKEv2两阶段交换的思想, 同时将第二阶段的报文数量压缩为2个, 使得总的报文数量与JFK相同, 为4个。因此, 报文3、4是协议的重点, 以下依次介绍4个报文的内容及双方收到报文后的操作。
报文1中, SAi’包含发起者支持的一组用于密钥协商阶段的算法, 发起密钥协商过程。
报文2中, 信息内容根据作用分为3类: (1) 从SAi’中选定一组算法组SAr’; (2) 用于生成临时密钥的密钥材料, 包括Diffie-Hellman指数gr’和nonce值Nr’ (也用于puzzle计算) , 两者均为本地生成的随机数; (3) puzzle计算的参数Nr’、k和Y, 该机制可提供抗DoS攻击能力, 需在本地存储g、r、Nr’、k、Y等参数。在一段时间内, 报文2中的Nr’、k、Y可在与多个发起者的协商中重复使用, 其中k、Y可重用是因为Puzzle函数中的IDi和Ni’使每个发起者的X不同;Nr’可重用则是基于gr’保证不同发起者的密钥不同。
发起者收到报文2后进行Puzzle计算, 通过穷举计算得到Puzzle解答X的值, 构造并返回报文3。报文3中的信息根据作用可分为6类: (1) 密钥材料, 包括用于生成临时密钥的gi’和Ni’、用于生成工作密钥的gi和Ni; (2) Ppuzzle的解答X, Ni’、Nr’、IDi等信息也将参加Puzzle计算; (3) 发起者身份信息, 包括IDi、CERTi; (4) 用于IPSec参数协商的SAi; (5) 用于防止消息重复攻击的HMAC值; (6) 对以上所有信息的哈希值做数字签名SIGi{H{All}}, 用于发起者身份认证及报文3完整性保护。报文3的信息中除了gi、Ni’、X及数字签名, 均以临时密钥K_ir进行加密保护, K_ir=H{gi’r’|Ni’|Nr’|0}。
响应者收到报文3后首先进行Puzzle值验证, 验证成功后通过数字签名对发起者进行身份认证, 身份认证完成后构造K_ir, 解密报文3内容, 构造报文4。报文4中的信息根据作用可分为5类: (1) 用于IPSec参数协商的SAi; (2) 用于工作密钥协商的gr和Nr; (3) 响应者身份信息, 包括IDr、CERTr; (4) 用于防止消息重放攻击的HMAC值; (5) 对以上所有信息的哈希值做数字签名SIGr{H{All}}, 用于响应者身份认证及报文4完整性保护。报文4中的信息除了数字签名, 均以K_ir为密钥进行加密保护。
发起者收到报文4后首先通过数字签名对响应者进行身份认证, 认证成功后使用临时密钥K_ir解密报文4内容, 获取工作密钥参数, 完成密钥协商和IPSec参数协商, 计算获得工作密钥WK_ir, WK_ir=H{gir|Ni|Nr|0}。
3 LKE协议分析与仿真
3.1 安全及效率分析
3.1.1 抗DoS攻击
抗DoS攻击能力的提升体现在两个方面: (1) 在响应者的第一个报文中不进行公钥计算, LKE通过沿用JFK重用DH指数机制, 减少生成报文2时由于DH计算带来的资源消耗; (2) 增加发起者计算量, LKE采用Puzzle机制抗DoS攻击。
Puzzle是一种适用于客户端/服务器架构的抗DoS攻击机制, 其基本思想是发起者 (客户端) 需消耗较多资源计算Puzzle解答, 响应者 (服务器端) 只需较少资源即可对Puzzle解答的正确性进行验证。只有确认Puzzle解答正确后, 响应者才会开始执行签名验证、数字签名等消耗资源较高的公钥计算, 从而防止针对响应者计算资源的DoS攻击。
LKE协议中采用经典的Puzzle函数, H{IDi, Ni’, Nr’, X}=000…000Y。其中000…000Y中0的位数 (k值) 及Y的值由响应者指定, Ni’和Nr’可保证解答的新鲜性, 防止重放过去或其它的Puzzle解答, IDi参与计算可以将同一Nr’用于与多个发起者Puzzle。发起者计算Puzzle解答时, 由于哈希函数的不可逆性, 只能通过X的穷举来寻找Puzzle解答, 这样会消耗较多资源。Puzzle对发起者的计算资源消耗量可通过k值来调整, k值越大, 消耗量越大。响应者验证Puzzle解答时, 只需进行一次哈希计算即可。
在Puzzle机制下, 大量伪造协商报文的攻击者无法为每个Puzzle给出正确的解答, 从而使DoS攻击失效。对于攻击者操纵大量僵尸主机发起的分布式DoS攻击, Puzzle机制可延缓各僵尸主机对响应者的攻击, 降低DDoS攻击的强度, 为安全事件的应急响应赢得宝贵的时间。
3.1.2 完美前向安全
为避免重用DH指数造成前向安全性减弱, LKE采用两轮异步DH交换机制。在报文1和2中进行第一次DH交换, 用于生成临时密钥, 保护报文3、4。在报文3、4中进行第二次DH交换, 用于生成工作密钥, 保护正式的通信数据流。其中响应者在第一次交换中采用重复的DH值, 在第二次交换中采用全新的DH值。因此, 尽管临时密钥只具备阶段性前向安全特性, 但其影响范围只限于报文3、4, 后续前向安全性将不受影响, 每次会话的工作密钥因为采用全新的DH值而具备了完美前向安全性, 从而达到兼顾抗DoS攻击和完美前向安全的目标。
3.1.3 双向身份认证
LKE通过数字签名验证的方式实现双方身份认证。考虑到防DoS攻击等问题, 双方签名及其验证在报文3和报文4中进行, 对各自报文中全部信息的哈希值进行私钥签名。先哈希再签名的好处是可以减少签名及验证过程中的公钥计算量, 符合LKE轻量化的设计思想。
3.1.4 身份隐藏
保证参与协商双方身份私密性的最直接办法就是为报文中的身份信息提供加密保护。LKE协议中, 发起者和响应者的身份信息分别在报文3和报文4中以密文形式交换, 但由于报文2没有经过加密或认证, 攻击者有可能伪装成响应者与其交换密钥参数, 形成共同的K_ir。尽管在收到报文4后发起者通过身份验证能够发现攻击者的存在, 但其身份信息已经泄露。解决这一问题的办法是发起者验证响应者身份后再发送身份信息, 可通过在报文2中增加数字签名实现, 但这种解决方案违背抗DoS攻击的设计目标。另一种方案是增加报文5用于发送身份信息, 但这种方案违背减少报文数量的设计目标。可以考虑设计一个包含5个报文的LKE协议变种, 用于网络条件较好的环境。
3.1.5 消息重放攻击
消息重放攻击主要包括两类, 分别是本轮协商内的消息重放和本轮协商外的消息重放。本轮内的重放攻击, 即攻击者截获协商报文并原样发送给对方, 从而伪装成协商的另一方。LKE协议中4个报文的不对称性使其具备天然抵抗这类攻击的能力。本轮外的重放攻击, 即攻击者利用截获的真实报文, 在其它轮次的协商过程中通过重放伪装为合法的参与者。LKE将双方在本轮协商中交换的大量参数集中计算HMAC值, 并在报文3和报文4中交换, 以此实现本轮协商4个报文的绑定, 防止本轮外的重放攻击。
3.1.6 协议效率分析
在报文数量上, LKE通过两个来回、4个报文完成协商, 少于IKEv2的6个报文, 与JFK报文数量相同。
在计算量上, LKE只在报文3、4中进行公钥运算, 用于数字签名的生成及验证, 且签名运算的对象是整个报文的哈希值, 通常为128bit或256bit。对于采用证书认证的协议, 已经达到了公钥运算量的最低值, 明显低于IKEv2及JFK, 这一优化有助于降低计算资源消耗。
在时间消耗上, 协议的时间消耗量与报文数量及计算量呈正相关关系, 而LKE的报文数量与计算量均有所优化, 因此在时间消耗上将优于IKEv2及JFK。这一优化有助于加快大规模节点两两协商时的协议收敛速度。
在存储空间消耗上, LKE的优化体现在对存储空间的占用时间较短。在IKEv2及JFK中, 发起者必须在发出报文1时就为这次协商分配内存, 用于存储已发出的Diffie-Hellman指数、Nonce值等。LKE的报文1中不包含协商参数, 可在收到报文2时再为此次协商分配内存空间, 因此对内存空间的占用只持续1次报文来回的时间。IKEv2的内存空间占用时间为3次报文来回, JFK的内存空间占用时间为2次报文来回, 这一优化有助于降低遭受内存资源耗尽的DoS攻击风险。
3.2 协议性能仿真评估
采取仿真试验分别对IKEv2、JFK和LKE三种协议在不同的网络规模和链路环境下, 与网内全部客户端完成密钥交换所需收敛时间进行对比, 验证LKE协议相比于IKEv2和JFK协议的轻量级优势以及对低带宽无线网络环境的适应性。仿真主机处理器采用Intel Core 2四核2.5GHz, 内存为8GB, 操作系统为Linux 2.6.34, 仿真软件为Matlab。下文两组样点的仿真值均是对连续25次试验结果取的平均值。
图1反映了IKEv2、JFK和LKE三种密钥交换协议在不同带宽的链路环境 (客户端数量固定为128) 中的收敛时间, 即服务器端与全部128个客户端完成密钥协商所需的总时间。仿真试验中选取了7种不同的网络环境, 包括GPRS的85.6kbps链路、IS-95的115.2kbps链路、EDGE的236.8kbps链路、WCDMA的384kbps链路和2Mbps链路、CDMA 2000的3.1Mbps链路以及100Mbps链路。由仿真结果可以看出, 随着链路带宽的不断提升, 密钥交换所依赖的带宽资源逐渐充足, 消息的差错率下降, 因此3种协议的密钥协商时间随之减少。但处于384kbps以下的低带宽链路环境时, LKE协议的收敛时间相比于IKEV2和JFK平均减少了20%和10%;而处于2Mbps以上的高带宽链路环境时, LKE协议的收敛时间相比于IKEV2和JFK平均减少了14%和8%。这种现象说明, 相比于资源充足高带宽链路环境, LKE所具有的少报文、低数据的轻量级特性能够更好地适应无线链路资源受限的低带宽通信环境。
图2是在网络中客户端数量不断增加的情况下, IKEv2、JFK和LKE三种协议收敛时间的变化情况。其中无线链路带宽固定为100Mbps, 客户端数量由64递增为128、256、512、1024、2048个。仿真结果表明, 3种协议收敛时间的增加程度基本呈线性增长趋势, 这是由客户端/服务器的网络模式所决定的。而LKE由于采用了轻量级密钥交换的设计思想, 与IKEv2和JFK相比, 在相同收敛时间情况下, 其所能容纳的客户端数量明显增多。例如在收敛时间同为100s时, LKE模式下的客户端数量相比于其它两种协议分别增加了87%和68%。
4 结语
为了满足IPSec大规模应用对密钥协商协议安全性和高效性的要求, 本文分析了IKEv2和JFK两种现有的主流密钥协商协议, 梳理出了这两种协议在抗DoS攻击、前向安全、身份隐藏、交互复杂度、计算量等方面的缺陷, 针对性地提出了一种轻量级密钥交换协议LKE。该协议减少了报文交互数量及公钥运算量, 并同时具备抗DoS攻击、完美前向安全、双向身份认证、身份隐藏、抗消息重放攻击等安全特性。仿真实验证明, 相比IKEv2和JFK, LKE协议能够更好地适应无线链路资源受限的低带宽通信环境。
摘要:在IPSec大规模部署应用下, 分析了IKEv2和JFK两种现有协议安全及性能缺陷, 提出了一种轻量级密钥交换协议LKE, 该协议能有效减少报文交互数量, 降低计算资源开销。通过经典Puzzle机制和两轮异步DiffieHellman交换, 解决了抗DoS攻击与完美前向安全特性难以共存的问题。仿真结果表明, LKE对低带宽通信环境具有较强的适应性, 在低于384kbps的无线链路条件下, LKE协议的收敛时间相比IKEv2和JFK分别减少了20%和10%。
关键词:密钥交换,IKEv2,JFK,拒绝服务攻击,完美前向安全
参考文献
[1]IPSec architecture[EB/OL].http://www.ietf.org/rfc/rfc2401.txt.
[2]HOSSEIN HADDAD, MEHDI BERENJKOUB, SAEED GAZOR.A proposed protocol for internet key exchange (IKE) [C].CCECE2004-CCGEI 2004, Niagara Falls, 2004.
[3]IKEv2[EB/OL].http://www.ietf.org/rfc/rfc4306.txt.
[4]冯雁, 李阳, 徐梓杰, 等.JFK协议的研究与分析[J].北京电子科技学院学报, 2012 (2) :15-20.
[5]高翔, 李亚敏.IKEv2协议安全性分析与改进[J].计算机应用, 2005, 25 (3) :563-572.
[6]朱晓薇, 周海刚, 刘军.针对中间人攻击的IKEv2形式化分析与改进[J].计算机工程与应用, 2012 (2) :59-62.
[7]唐佳佳, 李学哲, 陈国新.IKEv2中混合认证的研究与扩展设计[J].南通职业大学学报, 2009, 23 (2) :82-85.
[8]王琳琳, 何国良.IKEv2协议分析与安全性研究[J].技术前沿, 2008, 10 (8) :65-69.
[9]黄欣.JFK协议的研究及改进[D].南昌:南昌大学, 2009.
[10]邓阳, 魏祖宽.JFKi协议的分析及漏洞修正[J].计算机应用, 2007 (27) :264-270.