密钥协商

2024-11-05

密钥协商(精选7篇)

密钥协商 篇1

2008年4月1日起, 中国移动在八大城市正式启动TD社会化业务测试和试商用工作。这表示在将来的不久, 3G将会正式投入试用。那么3G通信中的安全机制必将受到人们越来越多的重视。现有的移动通信系统使用的都是对称密钥加密机制。在对称加密系统中, 加密和解密共用一个密钥。对称密钥加密的优点就是加密解密速度快, 所以适用于移动终端系统中。但是, 由于加解密双方共同一个密钥, 并且这个密钥很有可能泄漏或被盗取, 因此3G移动通信在安全性上存在漏洞。下面先了解一下3G的认证协议。

1 3G的认证与密钥分发协议

在用户接入网络时, 需要验证用户标识的正确性, 这就是对用户进行认证。并同时完成上下文的分配、设置加密和加密算法、用户对网络的认证等功能。

在GSM中, 身份认证是单向的, 基站能够验证用户的身份是否合法, 而用户无法确认他连接的服务网络是否可靠。3G AKA协议借鉴了GSM身份认证的询问——应答机制, 结合ISO/IEC 9798-4基于“知识证明”和使用顺序号的一次性密钥建立协议, 实现了双向认证, 并确保通信双方的认证信息和密钥是非重用的。

1.1 协议过程

有三个实体参与3G认证与密钥分配协议过程:MS (移动台) 、VLR/SGSN (访问位置寄存器/支持GPRS服务节点和HE/HLR (归属环境/归属位置寄存器) , AV是认证向量, IMSI是用户永久身份标识。具体步骤如下:

(1) 当MS第一次入网或由于某种原因VLR/SGSN需要MS的永久身份认证时, MS向VLR/SGSN发送用户永久身份标识 (IMSI) , 请求注册。在平时的认证中这一步骤并不存在。

(2) VLR/SGSN把IMSI转发到HE/HLR, 申请认证向量 (AV) 以对MS进行认证。

(3) HE/HLR生成n组AV发送给VLR/SGSN。

其中, AV=n (RAND||XRES||CK||IK||AUTN) , 这5个参数分别为随机数 (RAND) 、期望响应值 (XRES) 、加密密钥 (CK) 、完整性密钥 (Ⅸ) 和认证令牌 (AUTN) 。它们由如下的方法产生:

RAND由f0产生

XRES=f2k (RAND)

CK=f3k (RAND)

IK=f4k (RAND)

AUTN=SQN+ (AAK||AMF||MAC

其中, SQN是序列号;AK是匿名密钥, 用于隐藏SQN;AMF是认证管理域;MAC是消息认证码。

AK=f5k (RAND)

MAC=flk (SQN||RAND||AMF)

f0~f5是3G安全结构定义的密码算法。f0算法只用在认证中产生随机数, f1算法用于产生消息认证码, f2算法用于在消息认证中计算期望响应值, f3算法用于产生加密密钥, f4算法用于产生完整性密钥, f5算法用于产生匿名密钥。K是MS和HE/HLR之间共享的密钥。

(4) VLR/SGSN接收到认证向量后, 将其中的RAND和AUTN发送给MS进行认证。

(5) MS收到RAND和AUTN后, 计算期望消息认证码 (XMAC) 的值 (XMAC=f1K (SQN||RAND||AMF) ) , 并把计算结果和AUTN中的MAC比较, 如不等, 则发送拒绝认证消息, 放弃该过程。如果二者相等, MS验证SQN是否在正确的范围内, 若不在正确的范围内, 则MS向VLR/SGSN发送同步失败消息, 并放弃该过程。若上面的两项验证都通过, 则MS分别计算响应值 (RES, RES=f2k (RAND) ) 以及CK、IK的值, 并将RES发送给VLR/SGSN。

最后, VLR/SGSN收到应答信息后, 比较RES和XRES, 相等则认证成功, 否则认证失败。

1.2 安全性分析

该协议通过MS和HE/HLR共享的密钥K, 实现了以下目标。

(1) MS和HE/HLR之间的相互认证。

VLR/SGSN接收到来自HE/HLR的认证向量中包括了期望MS产生应答的XRES (XRES=f2k (RAND) ) , 如果MS是合法用户, 则RES=XRES。而MS对HE/HLR的认证是通过MAC实现的。MS接收到VLR/SGSN发过来的MAC, 计算XMAC=f1k (SQN, RAND, AMF) , 如果MAC=XMAC, 则认证成功。

(2) MS和VLR/SGSN之间的密钥分配。

VLR/SGSN接收到来自HE/HLR的认证向量中包含的CK1和IK1, 合法用户接收到正确的RAND之后, 在MS中计算得到CK2=f3k (RAND) 和IK2=f4k (RAND) , 并且CK1=CK2, IK1=IK2。由于通信中的密钥并没有在空中传输, 确保了密钥的安全。

1.3 可能的攻击

通过上面的分析可以发现, 3G安全机制完全建立在MS和HE/HLR之间共享密钥K的基础之上, 若该密钥K泄漏, 那么通信中的安全将无从谈起, 攻击者可以轻而易举地在空中截获RAND, 并用相关算法取得相互认证且计算出CK和IK, 从而通信中的所有数据都可以被攻击者截获。由于这个密钥K是长期不变的, 所以一旦泄漏, 将对用户和网络运营商造成不可估量的损失。

2 3G认证协议的一种改进

对上面3G认证和密钥分配协议提出一个改进办法。认证和密钥分配过程如下:

其中, {……}K表示单钥精密计运算, RI为一个由MS产生的随机数。

在上述改进方案中, VLR/SGSN收到移动用户的注册请求中包括了MS对随机数RI用与HE/HLR共享的密钥加密后的信息。VLR/SGSN向用户的HE/HLR发送该用户的永久用户身份标识以及收到的加密消息, 请求该用户进行认证。

HE/HLR收到VLR/SGSN的认证请求后, 出计算认证向量AV外, 还将{RI}K解密, 再用与VLR/SGSN共享的密钥KHV重新加密, 与认证向量一同发送给VLR/SGSN。

VLR/SGSN接收到{AV, RI}KHV后, 对加密消息解密恢复出RI, 并将RI连同RAND||AUTN发送给MS, 请求用户产生认证数据。

MS接到认证请求后, 首先验证随机数RI的正确性, 正确则产生应答消息RES, 否则放弃该过程。

VLR/SGSN接收到来自MS的RES后, 将RES与认证向量AV中的XRES进行比较, 相同则认证成功, 否则认证失败。

3 结语

3G认证和密钥协商在整个3G安全体系结构中有着重要的地位, 相信在未来的不久, 随着我国3G的全面应用, 3G的规范会更加完善, 必将出现近乎完美的安全解决方案。

参考文献

[1]Bruce Schneier.应用密码学[M].北京:机械工业出版社, 2000.15-47.

[2]张鹏.第三代移动通信接入认证研究[D].重庆:西南交通大学硕士学位论文, 2004.

[3]袁亚飞, 廉玉忠.3G认证与密钥分发协议逻辑化分析[J].信息工程大学学报, 2004.

认证和密钥协商协议的分析与比较 篇2

关键词:网络安全,安全认证,身份认证,密钥协商

1 引言

随着网络时代的到来,人们可以通过网络得到需要的信息。由于网络的开放性,网络人们带来便利的同时,也正面临着许多安全威胁,如计算机病毒、人为的恶意攻击、网络软件的漏洞和“后门”、非授权访问等。因此,网络安全越来越受到重视。毫无疑问,对于用户和网络运营商来说,通过认证密钥协商协议来确认网络和用户的身份,已成为这种环境中的一个基本安全问题,如果身份认证和密钥协商协议出现安全漏洞,整个会话就没有安全性可言,而且还会危及随后会话的安全性[1]。

介绍了几个经典的网络安全认证和密钥协商协议,并对他们进行了比较研究,指出了它们各自的特点。在此基础上,对认证和密钥协商协议的若干热点研究方向进行了归纳和展望。

2 认证协议

在实际中已经有许多用于认证和认证的密钥建立的协议,例如,采用单向函数的认证协议;字典攻击和掺杂;SKEY认证程序;采用双钥体制的认证;采用连锁协议的双向认证;SKID身份识别协议和消息认证。而认证协议又可以分为单向认证协议和双向认证协议,单向认证协议是指协议仅能完成两个实体中的一方对另一方的认证,而双向认证协议则可实现两个通信实体间的相互认证。

2.1 单向认证协议

在现实生活中,存在许多单向认证的例子。在计算机网络中,常常假设网管中心的认证服务器是可以信赖的。用户终端无需对认证服务器的身份进行认证,而认证服务器却需要对每个用户进行身份认证。在移动通信网络中,要求基站的访问网络地址寄存器(Visited Location Register,VLR)对漫游用户的身份进行认证,而漫游用户无需对基站的身份进行验证。

2.2 双向认证协议

当网络中的两个通信实体彼此互不信赖时,就必须采用双向认证协议。通信双方通过执行双方认证协议,建立彼此间的信任。

3 认证的密钥交换协议

认证的密钥交换协议将认证和密钥交换结合在一起,用于解决计算机中普遍存在的一个问题:A和B时网络中的两个用户,他们将通过网络进行安全通信。那么A和B如何才能做到在密钥交换的同时,确信正在和自己通信的另一方不是别人?单纯的密钥交换协议有时还不足以保证安全地建立密钥,与认证结合能可靠的确认双方的身份,实现安全密钥的建立,使参与双方(和多方)确信没有其他人可以共享该秘密。

密钥认证分为3种。

(1)隐式(Implicit)密钥认证:若参与者确信可能与他共享一个密钥的参与的身份时,第二个参与者无需采取任何行动。

(2)密钥确证:一个参与者确信第二个可能未经识别的参与者确实具有某个特定密钥。

(3)显式(Explicit)密钥认证:已经识别的参与者具有给定的密钥,具有隐式和密钥确证双重特征。

密钥认证的中心问题是对第二参与者的识别,不是对密钥体制的识别。而密钥认证则恰好相反,是对密钥值的认证,密钥认证通常包含从第二参与者送来的信息,其中含有证据,稍后可证明密钥的所有者。事实上密钥的所有者可通过多种方式,如生成密钥本身的一个单向杂凑值、采用密钥控制的杂凑函数以及采用密钥加密一个已知量等来证明。这些技术可能会泄漏有关密钥本身的信息,而用零知识证明技术可以证明密钥的所有者但不会泄漏有关密钥的任何消息。认证密钥交换协议可分为如下几类:基于单钥体制的密钥交换、基于双钥体制的密钥交换和混合体制的密钥交换。

3.1 基于单钥体制的密钥交换

基于单钥体制的密钥交换协议均借助于密钥分配中心T。在一个具有n个节点的网络中,为实现任意结点之间的保密通信,每个节点都只需保存一个与密钥分配中心T共享的主密钥,密钥分配中心T也只需要保存对应n个节点的n个主密钥,网络需要n个主密钥。该类协议有:Needham-Schroeder协议、Otway-Rees协议[2]、Kerberos协议、Yahlom协议[3]、大嘴青蛙协议[4]等。

Kerberos认证协议是从是Needham-Schroeder 协议演变而来的。是由美国麻省理工学院(MIT)首先提出并实现的,是该校Athena计划的一部分。总的来说,Kerberos是一种基于私钥密码体制的,需要可信任的第三方作为认证服务器的网络认证系统。它允许网络上进行通讯的实体互相证明彼此的身份,并且能够阻止旁听和重放等手段的攻击。不仅如此,它还能够提供对通讯数据保密性和完整性的保护。Kerberos从提出到今天,共经历了五个版本的发展。Kerberos V5现在成为IETF的标准。

密钥分配中心保存有网络中所有节点的主密钥且任意两个节点进行通信都必须通过密钥分配中心T来交换会话密钥,所以单钥体制有如下缺点。

(1)密钥分配中心T是可信任的,并且应保护它免受破坏。入侵者一旦入侵密钥分配中心,网络中所有节点的安全都将受到严重威胁;

(2)当大容量网络中的节点频繁通信时,密钥分配中心会成为系统瓶颈。一旦密钥分配中心受到攻击崩溃,则整个网络中的保密通信将会中断。

3.2 基于双钥体制的密钥交换协议

基于双钥体制的密钥交换有NSPK协议等,其基本形式如下所示。

1.A→B∶{Na,A}KB

2.B→A∶{Na,Nb}KA

3.A→B∶{Nb,}KB

协议假定双方都知道对方的公开密钥。A首先生成临时值Na,与其标识符级连,用B的公开钥加密后发送给B。B生成临时值Nb,与Na 级连后用A的公开钥加密后发送给A。因此,B通过证明B能读第1条消息从而响应了发起者的请求。最后,A返回用B的公开钥加密的Nb。该协议的目标是,双方可以共享值Na与Nb,每一方都将这些值与对方相结合,没有第三方可以掌握它们。例如,这个协议可以用于以下场合,即这两个值一起散列后,生成一个共享的对称密钥,作为一次会话密钥应用。

基于双钥体制的密钥交换协议密钥管理简单,可升级性好,但计算复杂性太高。因此密钥交换协议中一般不单独采用双钥体制,而是采用单钥体制和基于双钥体制的混合体制,混合体制密钥管理简单,可升级并且有较高的效率,但是协议的安全分析比较复杂。

3.3 混合体制的密钥交换

双钥体制的密钥协议最先由Diffie-Hellman[5]于1976年提出。随后人们提出了许多协议,DASS协议是其中之一,是由DEC公司开发的,其目的也是为了提供双向认证和密钥交换。DASS协议即采用了双钥体制又采用了单钥体制。还有Denning-Sacco协议、Woo-Lam协议、EKE协议等。同时人们对强口令认证(Strong Password Authentication)密钥交换方法也给予了特别的关注。下面介绍两个基本的混合体制的密钥交换协议:

3.3.1 EKE协议[6]

加密密钥交换(Encrypted Key Exchange,EXE)是由S.Bellovin和M.Merritt于1992年提出的。协议即采用了单钥体制,又采用了双钥体制。它的目的是为记孙继网络上的用户提供安全性和认证业务。这个协议的新颖之处是:采用共享密钥来加密随机生成的公钥。通过运行这个协议,两个用户可以实现相互认证,并共享一个会话密钥K。

3.3.2 PAK协议[7]

PAK协议是V.Boyko,P.MacKenzie&S.patel于2000年提出的,该协议是第一个针对主动攻击者和被动攻击者提出的,经正式安全性证明的并且是基于Diffie-Hellman口令密钥交换协议,并且提供了显式的双向认证。

4 密钥交换协议的展望

目前人们对认证的密钥交换协议的研究重点在4个方面。

1)安全性分析。

可证明安全的认证的密钥交换协议已经提出10多年,但还不够成熟,每年都有新的安全模型和证明技术出现,这方面是目前研究的一个热点。

2)基于口令的认证密钥交换协议。

这类协议有广泛的应用前景,才存在一些已证明安全的协议。

3)认证密钥交换协议在无线环境中的应用。

由于无线环境中移动设备计算能力和存储容量的有限性,对这类协议的研究正在进行中。

4)对于用户匿名性的关注。

近年来,随着人们对个人隐私的重视,已有一些无线网络的匿名认证协议,但仍需要这方面的继续研究。

5 结论

以上分析比较了几种常见的认证协议,从目前的发展来看,Kerberos实现起来较为繁琐,用户方和服务器方共享一个秘密信息,以加密的方式传送该秘密信息,服务器方保存所有用户的秘密信息以备进行认证,两者都适用于系统对用户的单向认证。随着人们对无线网络需要的迅速发展,系统与系统之间的双向认证,公钥认证显得越发重要,而要安全正确地使用公钥认证,就必须大力加强公钥基础设施建设,注意保护信息的真实性和对用户身份信息。

参考文献

[1]Needham R,Schroeder M.Using encryption for authenti-cation in large networks of computers.Communications ofthe ACM,1978,21(12):993-999.

[2]Otway D,Rees O.Efficient and timely mutual authenti-cation.Operating Systems Review,1987,21(1):8-10.

[3]Burrows M,Abadi M,Needham R.A logic of authenti-cation.In:Proceedings of the Royal Society of LondonA,Vol 426.1989.233-271.

[4]Miller SP,Neuman C,Schiller JI,Saltzer JH.Kerberosauthentication and authorization system.Project AthenaTechnical Plan Section E.2.1,MIT,1987.

[5]Diffie W,Hellman ME.New directions in cryptography.IEEE Transactions on Information Theory,1976,IT-22(6):644-654.

[6]Bellovin,S.M.and Merritt,M.,Encrypted key exchange:password-based protocols secure against directionary at-tacks.Proceeding of the 1992 IEEE Computer SocietyConference on Research in Security and Privacy,1992.

密钥协商 篇3

关键词:三方密钥,协商协议,身份认证,中间人攻击,离散对数问题

0引言

计算机技术的发展加快了社会信息化步伐,人们对计算机和网络的依赖也越来越强。网络与人们的生活息息相关,而如何在开放的网络中保护用户的隐私、实现安全通信是信息安全领域重点研究课题。

为保证信息安全传输,一个重要的方法就是采用密码技术,用密钥来进行加密、解密。通信双方如何在公开的信道上协商出共同的密钥是密钥协商协议所要解决的关键问题。密钥协商协议允许通信双方或多方在公开的信道上通过交换信息共同建立一个会话密钥,为安全通信创设先行条件。密钥协商协议是密码学中的研究热点,各种协议陆续推出[1,2,3,4]。其中,很多协议存在不足。因此,对现有协议进行改进,设计出更为安全、适合多方的密钥协商协议具有重要意义。

1976年,Diffie和Hellman[5]首次提出了公钥密码学的概念,同时提出了第一个密钥协商协议,即Diffie-Hellman协议。在Diffie-Hellman协议中,没有身份 认证,容易受到中间人攻 击。1984年,Shamir[6]最早提出 了基于身份的密码学概念,在该体制下,终端用户可以任意选取一个身份字符串作为自己的公钥,存在一个可信的密钥生成中心(KGC),秘密持有一个主私钥,将主私钥和用户身份结合生成用户私钥。通过对用户身份进行认证,可以有效抵抗中间人攻击。2009年,Hlbl等[7]提出了一个基于身份认证的密钥协商协议,该协议能够抵抗Tseng[8]协议中提出的攻击,其通信参与者是双方。本文在此基础上进行扩展,将参与者由双方扩展到三方,提出一种基于身份认证的三方密钥协商协议。

1基于身份认证的密钥协商协议

Hlbl等提出了一种基于身份认证的密钥协商协议,协议包括3个阶段:系统建立、私钥生成和密钥协商阶段。

(1)系统建立。在此阶段,密钥生成中心KGC选择一个大素数p,一个生成元g∈Zp*,一个单向Hash函数h,一个随机整数xs ∈Zp*,计算ys=gxs。KGC将系统公共参数设置为{g,h,p,ys},主私钥设置为xs。

(2)私钥生成。对于每一个用户,KGC首先计算Ii=h(IDi),其中,IDi是用户i的身份。然后,KGC选择一个随机数ki ∈Zp*,计算用户的公钥ui=gki(modp)和用户的私钥vi=Iiki+xsui(modp-1)。为方便起见,在以下的运算中省略“modp”。

(3)密钥协商。1A选择一个随机数rA ∈Zp*,计算tA =grA,将 {uA,tA,IDA}发送给B。类似地,B选择一个随机数rB ∈Zp*,计算tB= grB,将 {uB,tB,IDB}发送给A;2A计算IB=h(IDB),xA=uIBB·ysuB=gkBIB·gxsuB=gvB和密钥KAB= (xA·tB)vA+rA=g(rA+vA)(rB+vB),类似地,B计算IA=h(IDA),xB=uIAA·ysuA=gkAIA·gxsuA=gvA和密钥KBA= (xB·tA)vB+rB=g(rA+vA)(rB+vB),经过该协议,A和B共享密钥K = KAB= KBA =g(rA+vA)(rB+vB)。

2基于身份认证的三方密钥协商协议

对Hlbl协议,在密钥交换阶段,增加信息交换次数,参与者由原来的双方扩展到三方。系统建立阶段和私钥生成阶段保持不变。密钥协商阶段描述:

(1)A选择一个随机数rA ∈Zp*,计算tA= grA,将{uA,tA,IDA}发送给B。类似地,B选择一个随机数rB ∈Zp*,计算tB=grB,将 {uB,tB,IDB}发送给C;C选择一个随机数rC ∈Zp*,计算tC= grC,将 {uC,tC,IDC}发送给A。

(3)A将KAC发送给B;B将KBA发送给C;C将KCB发送给A。

3结语

密钥协商 篇4

1 SIP概述及常见安全威胁

1.1 SIP概述

SIP的网络体系结构采用的是C/S的控制方式。发出呼叫请求方为客户, 接收和处理请求方成为服务器。用户代理和网络服务器是SIP的两个主要的结构元素。SIP的用户代理根据各自在会话中扮演不同的角色可以分为用户代理服务器 (UAS) 和用户代理客户机 (UAC) , 前者响应呼叫请求, 后者发起呼叫请求。SIP网络服务器的主要功能是用户定位和名字解析。分为注册服务器、代理服务器和重定向服务器。

1.2 SIP常见安全威胁

(1) 注册劫持。SIP注册机制就是用户终端向注册服务器登记终端用户联系地址。注册服务器通过查看注册消息中的From字段来决定该消息是否有权限改动相应的注册用户的注册地址。由于From字段可以被用户随意修改, 这就为恶意注册留了后门。

(2) 服务器伪装。攻击者通过服务器伪装而达到攻击的目的。攻击者只需要将伪造的应答消息的From字段改成正确的响应服务器就可以达到伪造服务器的目的。防止服务器伪装需要用户能有效的对服务器身份进行认证。

(3) 篡改消息体。用户认为代理服务器在路由请求时不检查或修改消息体, 但恶意的代理服务器就会修改消息体, 甚至会修改会话中的协商密钥, 改变安全特性, 发起拦截式攻击, 目前大部分的SIP消息的内容都在可随意修改之列。

(4) 请求欺骗。会话终止、注册取消和伪装邀请是三种典型的请求欺骗。攻击者常伪装成合法用户发送CANCEL, BYE和INVITE等请求消息对会话进行攻击。这需要会发初始参数通过加密后传输, 防止攻击者截获后伪造出相应的欺骗请求。

(5) DoS攻击。DoS (Denial of Service, 拒绝服务) 是指通过向指定的网络接口发送大量的信息而使系统破坏或暂时不可用。SIP主机有时还可能起到放大DoS攻击的作用。多点传送也增加了拒绝服务攻击的可能性。

通过以上分析可见大部分安全威胁都是由于身份认证和加密问题没很好解决而产生的。

2 现有安全机制及缺陷

目前SIP的常用安全机制主要有以下几种:

(1) HTTP摘要鉴权机制。HTTP摘要鉴权机制提供了对消息中的请求方法和Request-URI的完整性保护, 但是并没有对所有用户希望提供加密的头域进行保护。它也只能提供服务器对客户端的认证, 无法提供客户对服务器的认证, 容易受到伪装服务器攻击。

(2) S/MIME。S/MIME能够很好的实现端到端的安全性保护。然而缺少广泛的公共密钥机构是它使用的一个最大限制。如果使用自签名证书, 其密钥交换机制就很容易遭受中间人攻击, 攻击者可以悄悄截获S/MIME包体并修改内容。

(3) IPSec和TLS。SIP协议理论上可以通过底层的安全机制来保证其安全。但IPSec网络实施过于复杂, 实现代价过高。TLS最大的问题是仅能应用于面向连接的协议之上, 并且只允许SIP实体到相邻的认证服务器的连接。

(4) 基于证书的安全机制。该机制提供用户身份认证与消息加密, 能够很好的保证SIP协议的安全性。因为证书的存储需要占用较大的空间, 证书的查询与运算需要占用大量的运算资源与网络带宽, 因此对终端要求较高。而且全球缺少统一的证书机构使得交叉认证与互操作问题难以得到解决。

通过对现有SIP安全机制的分析可以发现, SIP的安全问题一直没有得到彻底的解决, 特别是在用户的身份认证方面存在很大的缺陷。

3 一种基于身份的SIP认证与密钥协商机制

3.1 基本理论

3.1.1 基于身份的密码系统

基于身份的密码算法是一门新兴的且正在发展中的公钥密码算法, 它的设计思想最早是由以色列密码学家Adi Shamir于1984年所提出的。这种密码算法的设计目标是让通信双方在不需要交换公私密钥, 不需要保存密钥目录, 且不需要第三方提供认证服务的情况下, 保证信息交换的安全性并可以验证相互之间的签名。一个可用的基于身份的加密系统一直是一个重要但悬而未决的问题。直到2001年, 第一个真正实用的基于身份加密方案由美国密码学家Boneh和Franklin利用椭圆曲线上的双线性映射Weil配对设计出来。

3.1.2 椭圆曲线上的双线性配对映射

下面是双线性配对的基本定义及符号参数定义:

p和q为两个大素数, E (Fp) :有限域为Fp的椭圆曲线,

G1:序数为大素数q的加法群, 其中G1为E (Fp) 中点集合的子群。

G2:序同为q的乘法群, 有限域为F*Pm。

双线性对ê:G1×G1→G2是满足以下条件的映射:

(1) 双线性:存在P, Q, R, ∈G1, 且任意a, b∈Z,

则有:

(2) 非退化性:P是G1的生成元, ê (P, P) ∈Fp*, 且ê (P, P) ≠1G, 1G为G2的单位元;

(3) 可计算性:P存在P, Q∈G1存在一个有效的算法计算出。

3.2 基于身份的签名认证与密钥协商算法

3.2.1 签名认证算法

基于身份的签名认证方案由系统参数建立、用户密钥生成、签名及验证四个算法组成, 具体如下:

(1) 系统初始化:PKG选择随机s∈Zq*为系统主密钥, 则系统公钥Ppub=sP, 然后选择hash函数H1:G2→{0, 1}n, hash函数H2:{0, 1}*→G1, 主密钥s由PKG保存, 并公开参数

(2) 用户密钥生成算法:PKG根据用户身份标识ID, 生成用户私钥dID=sQID, 用户公钥为QID=H2 (ID) ;

(3) 签名算法:使用私钥dID对消息m∈{0, 1}*签名:选择随机数r∈Zq*, 计算T=rQID, V= (H1 (m, T) +r) ·dID。输出签名σ= (T, V) ;

(4) 认证算法:确认签名σ= (T, V) 的真伪, 接收者需要执行计算v=ê (T+H1 (m, T) QID, Ppub) 与t=ê (V, P) , 若t=v则接受签名, 否则拒绝。

3.2.2 密钥协商算法

参照文献[7]中的IBAKA机制在方案中增加了如下密钥协商算法:

(1) 设UA随机选择a∈Zq*, 计算TUA=aQUA并发生给Server。

(2) Server随机选择b∈Zq*, 计算Tserver=bQserver并发生给UA。

(3) UA计算

由双线性对性质可得KUS=KSU=ê (QUA, Qserver) s (a+b)

最终的共享密钥定义为K=kdf (KUS) =kdf (KSU) , kdf是一个密钥提取函数, 可以定义为一个hash函数, 即:

通过该算法可以得到固定长度的会话密钥。

3.3 SIP认证与密钥协商实现流程

基于身份的认证与密钥协商流程分三个主要步骤实现, 具体实施流程如下:

设定用户UA身份ID为sip:User@realm.com;

服务器Server身份ID为sip:Server@realm.com;

由PKG生成用户私钥为:dUA;服务器私钥为:dserver

第一步:UA发送请求 (以REGISTER为例) 。UA运行签名算法, 将请求消息用其私钥dUA进行签名, 附在请求消息的Authorization头域中发送。消息应包含以下信息:realm (安全域标识) , opaque (此次会话标识) , current time (时间戳) , Sign (M) 。

第二步:Server验证请求消息并响应。Server查询用户名是否在合法的名单之中, 如非法, 则丢弃该消息。Server运行认证算法使用UA的公钥QUA来验证UA的请求, 验证通过则继续响应, 否则认证失败。通过认证则Server响应UA, 首先运行签名算法, 将响应消息由其私钥dserver进行签名, 然后附在200 OK响应消息后发送。通过该步认证Server能实现对用户的身份认证。

第三步:UA验证Server响应。UA使用Server的公钥Qserver来验证Server的响应, 运行认证算法进行认证。验证通过则发送响应消息ACK, 否则认证失败, 结束本轮认证流程。通过该步骤实现用户对服务器的认证。

若需要进行会话密钥协商, 则在第2、3步运行上文提出的密钥协商算法。

下图为用户与服务器间的认证与密钥协商简图:

3.4 安全性及效率分析

3.4.1 安全性分析

本文使用的数字签名算法, 在点乘与双线性对的运算步骤上完全一致, 因而在DLP和CDHP难解的假设下, 难以伪造签名。消息经过会话双方用各自的私钥进行签名, 真实性, 完整性和不可否认性有较好的保证。在签名消息中由于含有随机数、时间戳以及会话标识, 能有效的防止注册欺骗、篡改消息体、冒充服务器等攻击。由于方案中服务器首先对客户端进行了身份认证, 可以在一定程度上防止对服务器的DoS攻击。

由于攻击者虽然能够截获密钥协商参数TUA和Tserver, 但攻击者不能获取双方各自随机生成的随机数, 无法计算出会话密钥。该密钥协商的参数是在认证过程中交互的, 签名认证算法确保了其真实性, 因此攻击者不能发起中间人攻击。

3.4.2 效率分析

在各种认证方案中, 签名与验证算法的运算类型决定了方案的效率。HTTP摘要方案的计算复杂性主要取决于选取的加密函数F。基于证书的方案中常使用ECC、RSA等公钥密码算法进行签名与验证, 需要进行运算量较大的指数运算。本文的方案中不需要进行指数运算。通信量与计算复杂度较小。

本文算法中的参数T既用于签名认证也用于协商密钥, 只需在双方互换签名后运行密钥协商算法即可实现。若仅需要进行认证, 则不用运行密钥协商算法, 提高了方案的灵活性。

4 结语

本文对SIP的安全威胁进行了研究分析, 提出了一种基于身份的认证与密钥协商方案。使用3次交互实现了双向认证和密钥协商, 方案不需要使用公钥证书, 减少了用户的计算量和通信带宽开销, 在不影响系统性能的同时提高了SIP的安全性能。

参考文献

[1]IETF RFC3261, SIP:Session Initiation Protocol[S], 2002.

[2]刘华, 王琨.基于PKI的SIP协议安全的研究[J].电子科技, 2005 (2) :37-40.

[3]庞红玲, 安可, 戎锋洪.基于身份加密系统的SIP认证机制[J].信息安全与通信保密, 2007, 23 (5) :133-135.

[4]吕武玲, 黎忠文.SIP中基于身份认证的安全机制研究[J].计算机技术与发展, 2009, 19 (2) :158-161.

[5]牟明朗, 王伟.基于身份密码的轻量级SIP安全方案[J].计算机应用, 2011, 31 (5) :1306-1308.

[6]Chen L, Kudla C.Identity based authenticated key agreement form pairings[C]//Proceedings of CSFW03.Piscataway, NJ:IEEE Service Center, 2003:219-233.

密钥协商 篇5

组播[1]提供了一种发送者可以同时发送信息到多个接收者的高效通信机制, 其通过在路由器上合并重复信息的传输, 从而有效地节约了带宽, 降低了服务器的负担。可广泛地应用于多媒体远程教育、分布式系统、网络视频会议等。与传统的单播通信方式相比, 组播需要在安全性方面作更多的考虑, 由此提出了安全组播的概念。安全组播的一个主要难点是如何确保只有合法的组注册用户才能接收到组播通信数据。其中, 为动态安全组播设计高效的密钥协商方案又是最具挑战性的问题。

椭圆曲线密码体制ECC (Elliptic Curve Cryptosystem) 自1987 年提出以来便引起了广泛的研究兴趣。迄今的研究表明, 非奇异的 ECC 是安全强度最大的安全机制[2], 可以较小的计算和通信代价达到较高的安全性要求, 特别适合对时延要求比较高的实时安全组播应用。1984年, Shamir 首次提出了ID-PKC (Identity-base Public Key Cryptography) [3]的思想, 其优点在于可以避免传统公钥密码体制中使用证书带来的种种弊端, 如系统成本太高、证书处理过于繁琐等。2001年, Boneh 和 Franklin 提出了第一个实用的基于身份的加密方案[4]。此后, ID-PKC 成为一个研究热点, 并出现了大量基于身份的密码方案。

对于视频点播这类有着大量组成员的大规模组播应用, 若采用集中式的组播体系结构, 无疑会大大降低组播效率。为此我们采用子组划分、分层管理的思想, 将有限域 ECC 应用到子组的组密钥协商方案中, 而具体的子组间组播通信过程则在ID-PKC框架内完成。通过引入多个KGCs, 既实现了各个子组高效、快速地密钥协商, 减轻了单个KGC的工作负担, 又较好地解决了不经过 KGCs 而实现组内成员保密通信的问题。需要注意的是, 本文中的KGC的作用需重新定义, 其在子组会话密钥协商阶段相当于子组成员的联络者, 仅负责有关密钥消息的转发和广播。本方案所适用的动态安全组播应用的体系结构如图 1 所示。

1 预备知识

1.1 GF (p) 上的椭圆曲线群Ep (a, b)

GF (p) 是一个特征p≠2, 3的有限域, ∃a, bGF (p) 满足4a3+27b2≠0, p∈ (2k, 2k+1) , 且p为一个大素数。取方程E:y2=x3+ax+b, 则:

Ep (a, b) ={ (x, y) |y2=x3+ax+b (modp) }∪O

按照如下定义组成一个Abel 群:

1) 零元:设OEp (a, b) 零元;

2) 逆元:∀ (x, y) ∈Ep (a, b) , ∃ (x, -y) ∈Ep (a, b) , 点R (x, y) 的逆元为-R (x, -y) ;

3) 加法:∀M, QEp (a, b) , 且M, QO, ∃REp (a, b) , 使得R=M+Q, 且M-M=O;

4) 数乘:kZ, 则k×M=M+M+…+M (kM相加) 。

由上述定义, O的几何意义是一条直线与椭圆曲线EC 相交时三个交点的和, 从而可以推出加法的计算公式。对于给定的ECC系统, 需确定一个产生器G, 使得nG=O的最小n足够大。由于Ep (a, b) 是Abel 群, 对群内元素的加法封闭, 即∀kZ, ∃M=kGEp (a, b) , 同时kG= (kmodn) G, 说明Ep (a, b) 是有限的Abel 群, n为循环周期。记#Ep (a, b) 为群的阶, 即群内点的总数, 确定#Ep (a, b) 很困难, 但由Hasse定理可以证明p+1-p#Ep (a, b) p+1+p

1.2 双线性映射

G1、G2都是阶为素数q的循环群, G1的运算记为加法, G2的运算记为乘法。一个双线性映射 (Bilinear Maps) e^:GG1→G2是满足如下三条性质的映射:

1) 双线性:对于所有的P, QG1, 以及a, bZq*, e^ (aΡ, bQ) =e^ (Ρ, Q) ab;

2) 非退化性:若PG1的一个生成元, e^ (Ρ, Ρ) 1G2;

3) 可计算性:存在一个有效的算法来计算e^ (P, Q) 。

1.3 计算复杂性假设

定理1 在Ep (a, b) 上任选一点MO, 必有Q=k×MEp (a, b) , k∈ (0, p) 。

定义1 椭圆曲线离散对数问题 (ECDLP) :给定点MQ, 计算k, 使得Q=k×MEp (a, b) , k∈ (0, p) 。

定义2 计算Diffie-Hellman问题 (CDHP) :给定加法循环群G1, G1的一个生成元P和随机的aP, bPG1 (a, b未知) , 计算abP

定义3 双线性Diffie-Hellman问题 (BDHP) :G1, G2, Pe^如前面所定义, 给定 (P, aP, bP) , 其中a, bZq*, 计算e^ (P, P) ab

复杂性假设:ECDLP、CDHP和BDHP都是困难问题, 即不存在一个多项式时间算法能以不可忽略的概率解决其中任何一个问题。

已有的研究表明, 除超奇异椭圆曲线和异常曲线外, ECC的求解算法都是指数时间算法[5], 与其它一些加密算法如RSA相比, 在同等安全强度下只需小得多的密钥长度, 例如139位ECC相当于1024位RSA。安全强度越大, ECC的优点越突出。在选择椭圆曲线时, 对于∀B∈ (1, log2p) , 只要生成元G的阶满足 (pB-1) modn≠0, 就可以避免针对超奇异椭圆曲线的MOV攻击。而通过检查#Ep (a, b) ≠p可判断是否为异常曲线, 若不是则可避免Smart-Satoh-Araki攻击。目前最有效地攻击算法是文献[6]提出的并行算法Pollard rho, 但其为指数时间算法。

2 基于ECC的子组密钥协商方案

2.1 变量标记说明及系统初始化过程Psetup

本方案涉及到如下一些变量标记。

SGID:子组的身份标识;QID:子组的身份标识的Hash值;PpubID:子组的公钥参数;DID:子组的私钥;U={U1, U2, …, Ut}为子组成员的集合;Ui:子组中的第i个成员, i∈{1, 2, …, t ≤ T};IDi:Ui的身份标识;Pi:Ui的公钥;KGCv:第v个KGC;sv:KGCv的主密钥;l:组播消息及会话密钥的bit长度;K:协商出的子组会话密钥。

选定Ep (a, b) 的系统参数{p, a, b, n, G}。给定系统安全参数1k (k=|q|) , KGCs运行双线性Diffie-Hellman参数生成算法ΙΓ, 生成如前定义的G1, G2, 以及一个双线性映射e^:GG1→G2, G1是阶为素数q的循环加法群, G2是与G1相关的阶同为q的乘法群, 选择G1的生成元为P。定义一组Hash函数:H1:{0, 1}*→G1*, H2:{0, 1}lZq*, H3:{0, 1}l×{0, 1}lZq*, H5:G2→{0, 1}l。KGCs发布系统的公共参数为params={p, a, b, n, G, G1, G2, e^, Ρ, Η1, Η2, Η3, Η4, Η5l}。组播消息明文空间为M = {0, 1}l, 密文空间为Χ = G1×{0, 1}l

2.2 组播成员注册及子组密钥协商过程Pinit

希望加入组播组的用户向KGCs注册成为组的合法成员。KGCs按照组成员所在的地理位置将整个大的组播组划分为多个子组, 为保证通信效率及控制密钥协商计算量, 各个子组的成员数应控制在T (T的大小由组播应用类型及实际网络性能确定) 以内。对于一个子组, KGCs随机选取一个KGC (设为KGCv) 负责其子组成员的注册及密钥协商工作。用户UiKGCv端注册成功后, KGCv为其分配身份标识IDi, 并将IDi通过秘密信道发送给组成员。此秘密信道是在组成员注册时与KGCs建立的。各个子组用户Ui (i=1, 2, …, t) 随机选择αiGF (p) 作为各自的私钥, 并计算各自的公钥Pi=αiG。定义Ki, j= (∏ijαk) G, ikj;Ki, jr= (∏ijαkαr) G, ikrj

以一个子组为例, 其子组的初始会话密钥协商步骤描述如下:

Step 1U1将{α1G}通过秘密信道传送给KGCv

Step 2 对于1≤it-2, KGCv将从Ui接收到的信息通过秘密信道传送给Ui+1, Ui+1在接收到的信息中的每一项中嵌入自己的私钥信息, 并连同其所接收到信息的最后一项通过秘密信道返回给KGCv

例如, U2接收到{α1G}后, 即计算α2 (α1G) =α2α1G, 并将{α2α1G}∪{α1G}={α2α1G, α1G}发送给KGCv, 采用上面定义的变量, 又可表示为{K1, 2, K1, 1}。

Step 3KGCv在收到Ut-1发来的信息后, 将除K1, t-1以外的信息发送给UtUt同样在接收到的信息的每项中嵌入自己的私钥信息, 并返回给KGCv

Step 4KGCv将接收到的K1, t-1、K2, t以及K1, tk (2≤kt-1) 在子组中广播, 各用户计算最终协商出的子组会话密钥K。其中, U1计算K=α1K2, t, Ut计算K=αtK1, t-1, Uk计算K=αkK1, tk (2≤kt-1) , 显见, K = (∏1tαi ) G (1≤it) 。

关于密钥协商过程的几点说明:

1) 此处在Step 1中由U1发起子组会话密钥的协商过程, 实际运行时是所有当前子组用户排列成一个环, 任何一个合法子组都可以发起协商过程, 如Ui首先将{αiG}通过秘密信道发送给KGCv, KGCv再转发给环中的下一位用户Ui (modt) , 接下来的过程和上面类似。

2) Step 3中KGCv转发信息给用户Ut时要除去K1, t-1的目的在于, 不让Ut能提前计算出子组会话密钥K, 从而保证了所有子组成员可以同时计算出K的公平性。

3) 子组密钥协商完成后, 子组中应确定某一个成员应将协商出的会话密钥K返回给KGCv, 以便KGCv计算并及时发布子组的公钥参数, 为后续的组播通信过程作好准备。

2.3 组播通信过程Pcomm

1) 发送者在组内

假定子组的身份标识为SGA, 则QA=H1 (SGA) 。采用文献[4]中的安全性要求更高的基于身份的加密方案FullIdent。则子组SGA的公钥参数PpubA=H2 (K) P, 私钥DA=H2 (K) QA, 其中K为子组SGA中成员协商出的会话密钥, PG1的生成元。KGCs处公开所有子组的身份标识以及对应的公钥。

则子组SGB中的某个成员给子组SGA发送消息的过程为, 从KGCs处公布的信息中获得QAPpubA, 然后随机选择σ∈{0, 1}l, 计算r=H3 (σ, M) 。对于M ∈ Ν, 加密后的密文为:

C=<U, V, W>=<rΡ, σΗ5 (e^ (QA, ΡpubA) r) , ΜΗ4 (σ) >

子组SGA中成员解密过程如下:

(1) 首先计算VH5 (e^ (DA, U) ) :

VΗ5 (e^ (DA, U) ) =VΗ5 (e^ (Κ11QA, rΡ) ) =VΗ5 (e^ (QA, Κ11Ρ) r) =VΗ5 (e^ (QA, ΡpubA) r) =σ

(2) 再计算WH4 (σ′) =M′。

(3) 最后令r′=H3 (σ′, M′) , 若UrP, 则拒绝接受此密文;否则, M′即为解密后的明文。

2) 发送者在组外

以上通信过程考虑的是组内成员相互通信的应用场景, 如视频电话会议。实际上, 对于发送者在组外的一般意义的组播应用, 如视频点播, 此方案同样适合。具体过程是, 外部发送者首先将会话密钥通过上述方案加密发送给各子组, 从而所有的合法组成员便可解密获得会话密钥, 然后发送者用会话密钥加密真正的组播通信数据, 发送到组播组。

2.4 新成员加入过程Pjoin

假设有m个新用户Ujoin={Ut+1, Ut+2, …, Ut+m} (t+mT) 要求加入子组SGA, 新的组播组记为U=U+Ujoin={U1, U2, …, Ut, Ut+1, Ut+2, …, Ut+m}, 则KGCv需要更新子组的会话密钥, 具体过程为:Ui (1≤it) 随机选择新的αi′∈GF (p) 作为各自的私钥, 并计算各自的公钥Pi′=αiG;Ujoin中各新成员随机选择αjGF (p) 作为各自的私钥, 并计算各自的公钥Pj=αjG;重复子组密钥协商过程Pinit, 更新后的子组会话密钥为K′= (∏1tαi′) (∏t+1t+mαj) G (1≤it, t+1≤jt+m) 。

2.5 组成员退出过程Pleave

假设有m个子组成员Uleave={Ut+1, Ut+2, …, Ut+m}要求同时退出子组SGA, 新的组播组记为U=U-Uleave={U1, U2, …, Ut}, 则KGCv同样需要更新子组的会话密钥, 具体过程为:Ui (1≤i≤t) 随机选择新的αi*∈GF (p) 作为各自的私钥, 并计算各自的公钥Pi*i*G;重复子组密钥协商过程Pinit更新后的子组会话密钥为K* = (∏1tαi*) G (1≤i≤t) 。

3 安全性及计算与通信代价分析

3.1 安全性分析

由1.3节的分析可知, 本密钥协商方案是安全的, 能够抵抗子组内用户的合谋攻击, 即任意 (t-1) 个用户不能恢复出子组会话密钥K, 也无法获得某个组成员的私钥信息αi

从密钥协商安全性要求的角度来看, 本方案同样满足其要求:

1) 前向安全。对于新加入子组的用户, 由于原来的子组用户更新了αi, 故其无法计算出加入前的会话密钥, 也就不能解密组之前的通信数据, 从而保证了前向安全。

2) 后向安全。对于已经退出子组的用户, 由于留在组内的子组用户更新了αi, 故其也无法计算退出后的会话密钥, 同样不能解密组之后的通信数据, 从而保证了后向安全。

3.2 计算与通信代价分析

从上述过程可知, 在整个安全组播生命期内, KGCs需要负责系统初始化、成员注册、密钥协商阶段子组成员的联络以及运行过程中组成员动态变化时公共信息的更新。具体地说, 其需要维护并发布下表, 即各子组公钥信息表。如表1所示。

表中, t指子组SGID当前的成员数, tT

PinitPjoin以及Pleave的计算量分别为 ( (t+3) /2-1) 次、 ( (t+m+3) /2-1) 次及 ( (t+3) /2-1) 次数乘运算。

PinitPjoin以及Pleave的通信量分别为 (2t-1) 次单播和1次广播、 (2 (t+m) -3) 次单播和1次广播以及 (2t-1) 次单播和1次广播。

当某个成员需要与h个子组进行通信时, 其需要将欲发送的消息分别用各子组的公钥进行加密后连接起来广播出去, 消息总长度大约为2hl

4 结束语

本文提出了一个应用椭圆曲线密码体制进行密钥协商而在基于身份的公钥系统内进行组通信的全新安全组播方案, 实现了任意多个子组之间的保密通信, 而无需经过KGCs的转发, 避免了转发延迟, 具有较高的灵活性。使用一组并行工作的KGCs, 也大大降低了单个KGC的工作负担, 避免了单点故障的产生, 提高了组播系统的健壮性。ECC是一种高效的密码体制, 在同等安全强度下需要的密钥长度比其它密码体制要小得多, 计算代价较小, 特别适合对时延要求比较高的实时动态安全组播应用, 如视频点播。本方案满足密钥协商的前向安全和后向安全要求, 且能抵抗子组成员的合谋攻击。我们下一步的工作将考虑如何平衡子组各成员在密钥协商的计算负担, 以期构造一个更高效、更安全的密钥协商方案。

摘要:设计高效的密钥协商方案是动态安全组播的难点。提出一个应用椭圆曲线密码体制进行密钥协商而在基于身份的公钥系统内进行组通信的全新安全组播方案。具体地分析了子组成员的密钥协商和子组间的通信过程, 以及组成员动态变化时密钥的更新过程, 结果表明, 该方案在降低计算和通信代价方面取得了较好的效果, 且满足密钥协商的安全要求。

关键词:安全组播,密钥协商,椭圆曲线密码体制,基于身份的公钥密码系统

参考文献

[1] Deering S.Host Extensions for IP Multicasting[S].RFC 1112, IETF, 989.

[2] Zhang Fangguo, Wang Yumin.Study and Advance of Hyper-elliptic Curves Cryptosystems[J].Acta Electronica Sinica, 2002, 30 (1) :126-131.

[3] Shamir A.Identity-based Cryptosystems and Signature Schemes[C]//In:Advances in Cryptology- CRYPTO'84.Berlin:Springer-Verlag, 1984:47-53.

[4] Boneh D, Franklin M.Identity-Based Encryption from the Weil Pairing[C]//In:Advances in Cryptology-CRYPTO '01, LNCS 2139.2001:213-229.

[5]Sun M, Su C, et al.Design of A Scalable RSA and ECC Crypto-proces-sor[C]//In:Proceedings of the ASP-DAC.2003:495-498.

密钥协商 篇6

两方认证密钥协商协议是一种重要的密码原语。在开放网络环境下,通信的两方实体通过交换信息来生成一个共享的密钥。1976年,Diffie和Hellman[1]首次提出了一个两方密钥协商协议。该协议基于传统的公钥密码体制,提供了无身份识别要求的、包含两个消息交换的两方密钥协商方法。但传统的公钥证书密码体制存在复杂的证书管理问题。1984年,Shamir[2]提出了基于身份的密码体制。然而,基于身份的密钥协商协议存在密钥分发和密钥托管问题。

在2003年亚密会上,Al-Riyami和Paterson[3]首次提出了无证书密码体制的概念。它简化了传统公钥密码体制中复杂的证书管理过程并克服了基于身份的密码体制中固有的密钥托管问题。在文献[3] 中,Al-Riyami和Paterson提出了第一个无证书两方认证密钥协商协议。但是,他们没有对该协议的安全性进行证明。为了提高安全性,Swanson[4]形式化定义了无证书两方认证密钥协商协议的安全模型, 并对一些无证书两方认证密钥协商协议进行了安全性分析。基于Swanson的安全模型,Lippold[5]等人提出了一个更强安全模型,并构造了首个基于双线性对的可证明安全的无证书两方认证密钥协商协议。但该协议使用了10次双线性对运算及5次指数运算,具有较高的计算复杂度。随后,一些较为高效的基于双线性对的无证书两方认证密钥协商协议被相继提出[6,7,8]。尽管双线性对是密码学中的一个非常重要的数学工具,但相对于其它常用的密码运算,其缺点在于高昂的计算开销。因此,近年来不依赖于双线性对运算的无证书两方认证密钥协商协议成为了一个研究热点[9,10,11]。

最近,Kim等人[12]提出了一个新的基于e CK模型[13]的高效的无双线性对的无证书两方认证密钥协商协议,并基于GDH困难性问题在随机预言模型下给出了协议的安全性证明。然而,分析发现该协议在公钥替换攻击下不满足基本伪装攻击安全性, 即一个攻击者能通过公钥替换攻击成功模仿通信实体中的任何一方与另一方进行密钥协商。为了克服该协议存在的安全性缺陷,通过适当修改协议的部分密钥生成算法和密钥协商算法,提出了一个改进的无证书两方认证密钥协商协议。分析表明,改进后的协议能够有效抵抗公钥替换攻击。

1 预备知识

1. 1 无证书两方认证密钥协商协议及其安全属性

一个无证书两方认证密钥协商协议由六个算法组成[3,5,7,8,10,12,14]: 系统建立算法( Setup) 、部分密钥生成算法( Partial-Key-Extract) 、秘密值设置算法 ( Set-Secret-Value ) 、私钥设置 算法 ( Set-PrivateKey) 、公钥设置算法( Set-Public-Key) 和密钥协商算法( Key-Agreement) 。这些算法分别定义如下:

系统建立算法( Setup) : 输入系统安全参数k , 生成系统公开参数params和系统主密钥s。

部分密钥生成算法( Partial-Key-Extract) : 输入系统公开参数params和用户的身份IDi,生成用户的部分密钥Di。

秘密值设置算法( Set-Secret-Value) : 输入系统公开参数params和用户的身份IDi,生成用户秘密值xi。

私钥设置算法( Set-Private-Key) : 输入系统公开参数params、用户的身份IDi、用户的秘密值xi以及用户的部分密钥Di,生成用户的私钥Si。

公钥设置算法( Set-Public-Key) : 输入系统公开参数params、用户的身份IDi以及用户的秘密值xi,生成用户的公钥Pi。

密钥协商算法( Key-Agreement) : 输入系统公开参数params、用户i的身份IDi、私钥Si和公钥Pi、用户j的身份IDj、私钥Sj和公钥Pj,生成用户i和用户j的会话密钥SKij= SKji= SK。

无证书两方认证密钥协商协议的安全模型包含两类不同的敌手A1和A2 [3]。第一类敌手A1模拟外部攻击者,可以替换任意用户的公钥,但不拥有密钥生成中心( KGC) 的主密钥且不能询问目标用户的部分私钥。第二类敌手A2模拟恶意的KGC,拥有系统的主密钥,但不能替换用户的公钥且不能询问目标用户的秘密值和私钥。具体定义详见文献[10,12]。

一个具有良好安全性的无证书两方认证密钥协商协议应至少具备以下安全属性[4,5,8,14,15]:

( 1) 前向安全性: 即使协议参与一方私钥的泄露,攻击者也不能有效计算出旧的会话密钥。

( 2) 完美前向安全性: 即使协议参与两方私钥的泄露,攻击者也不能有效计算出旧的会话密钥。

( 3) 已知会话密钥安全性: 旧的会话密钥的泄露不会影响到其他会话密钥的安全性。

( 4) 抗基本伪装攻击: 一个攻击者如果不知道协议中参与一方的私钥就不能够成功模仿该参与方与另一方成功进行密钥协商。

( 5) 抗密钥泄露伪装: 协议参与一方长期私钥的泄露使得攻击者能够伪装成该参与方,但是不能伪装成其他参与方与该参与方成功进行密钥协商。

( 6) 抗未知密钥共享: 协议参与一方不能被强迫与一个攻击者实现共享会话密钥,而实际上该参与方却认 为他是在 和另一个 参与方完 成密钥协商。

( 7) 抗临时秘密泄露: 一个攻击者即使获得了协议参与方的临时秘密信息也不能够获得相应的会话密钥。

1. 2 数学难题

假设G是一个大素数q阶加法循环群,P是群G的生成元,则群G上的CDH问题定义如下:

定义1CDH问题 ( Computational Diffie-Hellman Problem) : 对于任意的a,b∈Zq* ,给定( P,a P, b P) ∈G3,计算ab P是困难的。

2 Kim 等人的无证书认证密钥协商协 议回顾

Kim等人提出的无证书两方认证密钥协商协议[12]包括如下六个多项式算法:

系统建立算法( Setup) : 假设p和q是两个大素数且满足q | p - 1,G是素数域椭圆曲线E /Fp上的一个阶为q的加法循环群,且生成元为P。KGC随机选择s∈Zq* 作为其主密钥,计算Ppub= s·P; 选择两个哈希函数H1: { 0,1}*→Zq* 和H2: { 0,1}*× { 0,1}*×G×G×G×G→Zq* 。KGC将params = { Fp,E /Fp,G,P,Ppub,H1,H2} 作为系统公开参数,保密主密钥msk = s。

部分密钥生成算法( Partial-Key-Extract) : KGC随机选择ri∈Zq* ,计算Ri= ri·P和si= ri+ s·H1( IDi,Ri) ( modq) ,并通过安全通道把用户IDi的部分密钥Di= ( si,Ri) 发送给用户。

用户IDi通过判断等式si·P = Ri+ H1( IDi,Ri) ·Ppub是否成立来验证部分密钥Di= ( si,Ri) 是否有效。

秘密值设置算法( Set-Secret-Value) : 用户IDi随机选择xi∈Zq* 作为自己的秘密值。

私钥设置算法( Set-Private-Key) : 用户IDi将自己的私钥设置为Si= ( xi,si,Ri) 。

公钥设置算法( Set-Public-Key) : 用户IDi计算Pi= xi·P,并将自己的公钥设置为Pi。

密钥协商算法( Key-Agreement) : 对于任意两个通信实体Alice和Bob,Alice随机选择tA∈Zq* ,计算TA= tA·P,发送消息M1= ( IDA,RA,TA) 给Bob。Bob随机选择tB∈Zq* ,计算TB= tB·P,发送消息M2= ( IDB,RB,TB) 给Alice。

Alice收到来自Bob的消息M2= ( IDB,RB,TB) 后,首先依次计算uA= xA+ sA+ tA,WB= RB+ H1( IDB,RB) ·Ppub,K1 AB= uA·( PB+ WB) ,K2 AB= uA· ( TB+ WB) ,进而计算 并获得会 话密钥SKAB= H2( IDA‖IDB‖TA‖TB‖K1 AB‖K2 AB) 。

Bob收到来自Alice的消息M1= ( IDA,RA,TA) 后,首先依次计算WA= PA+ RA+ H1( IDA,RA) ·Ppub+ TA,K1 BA= ( xB+ sB) ·WA,K2 BA= ( tB+ sB) ·WA,进而计算并获得会话密钥SKBA= H2( IDA‖IDB‖TA‖TB‖K1 BA‖K2 BA) 。

3 安全性分析及攻击

本节将展示Kim等人的无证书两方认证密钥协商协议在公钥替换攻击下不具备抗基本伪装安全性。

假定一个第一类的敌手Eve模仿一个身份为IDA、公钥为PA并且私钥为SA= ( xA,sA,RA) 的通信实体Alice与一个身份为IDB、公钥为PB并且私钥为SB= ( xB,sB,RB) 的实体Bob进行密钥协商。由于敌手Eve可以知道 < PA,RA,IDA,H1,H2,Ppub,PB, RB,IDB> ,因此敌手Eve很容易通过下列步骤成功模仿Alice与另一方Bob协商产生会话密钥:

步骤1: Eve随机选择x* A∈Zq* ,计算P* A= x* A·P - RA- H1( IDA,RA) ·Ppub并用公钥P* A替换Alice的原有公钥PA。

步骤2: Eve随机选择t* A∈Zq* ,计算T* A= t* A·P。

步骤3: Eve发送M1* = ( IDA,RA,T* A) 给Bob。

步骤4: 收到M1* 后,Bob随机选择tB∈Zq* ,计算TB= tB·P ,W* A= P* A+ RA+ H1( IDA,RA) ·Ppub+ T* A,K1B* A= ( xB+ sB) ·W* A,K2B* A= ( tB+ sB) ·W* A, SK* BA= H2( IDA‖IDB‖T* A‖TB‖K1B* A‖K2B* A) ,并发送消息M2= ( IDB,RB,TB) 给Eve。

由于

因此SK* BA= SK* AB。可见,Eve成功模仿Alice与Bob协商产生了相同的会话密钥。

4 改进协议

由上述攻击可以看出,在Kim等人的协议中, 由于用户i的公钥Pi与Ri+ H1( IDi,Ri) ·Ppub没有任何关联,因此一个攻击者能够通过使用P* A= x* A·P - RA- H1( IDA,RA) ·Ppub替换用户A的公钥PA来移除WA= PA+ RA+ H1( IDA,RA) ·Ppub+ TA中的RA+ H1( IDA,RA) ·Ppub,从而获得模仿攻击的成功。为了克服Kim等人的协议中存在的这一安全性缺陷,本节通过改进部分密钥生成算法( PartialPrivate-Key-Extract) 和密钥协 商算法 ( Key-Agreement) 来增强协议的安全性。

改进后的部分密钥 生成算法 ( Partial-PrivateKey-Extract) 和密钥协商算法 ( Key-Agreement) 描述如下:

部分密钥 生成算法 ( Partial-Private-Key-Extract) : 输入主密钥s,用户身份IDi,用户公钥Pi,系统参数params ,输出用户的部分密钥Di= ( si, Ri) 。对于任意用户IDi,KGC执行该算法如下:

( 1) KGC随机选择ri∈Zq* ,计算Ri= ri·P。

( 2 ) KGC计算si= ri+ s·H1( IDi,Ri, Pi) ( modq) 并通过安全通道把用户IDi的部分密钥Di= ( si,Ri) 发送给用户。

用户IDi通过判断等式si·P = Ri+ H1( IDi,Ri, Pi) ·Ppub是否成立来验证KGC发送给自己的部分密钥是否有效。

密钥协商算法( Key-Agreement) : 对于任意两个通信实体Alice和Bob,Alice随机选择tA∈Zq* ,计算TA= tA·P ,发送消息M1= ( IDA,RA,TA) 给Bob。Bob随机选择tB∈Zq* ,计算TB= tB·P ,发送消息M2= ( IDB,RB,TB) 给Alice。

收到来自Alice的消息M1后,Bob首先依次计算WA= PA+ RA+ H1( IDA,RA,PA) ·Ppub+ TA,K1 BA= ( xB+ sB) ·WA,K2 BA= ( tB+ sB) ·WA,进而计算并获得会话密钥SKBA= H2( IDA‖IDB‖TA‖TB‖K1 BA‖K2 BA) 。

不难验证SKAB= SKBA,因此改进协议是正确的。

在Kim等人的协议中,用户i的公钥Pi与Ri+ H1( IDi,Ri) ·Ppub没有任何关联,因此该协议存在公钥替换攻击的问题。通过修改部分密钥生成算法和密钥协商算法,把用户的公钥Pi作为哈希函数H1的输入,使得哈希值H1( IDi,Ri,Pi) 随着用户的公钥Pi 的变化而变化,进而使得在密钥协商算法中的Wi值也随着哈希值H1( IDi,Ri,Pi) 的变化而变化,这样就克服了Kim等人的协议存在的安全性缺陷。因此, 改进后的协议能够有效抵抗上述的公钥替换攻击。

5 改进协议的安全性与性能分析

5. 1 安全性分析

按照上文提出的无证书两方认证密钥协商协议所应具备的一些安全属性进行了逐一分析。分析表明,改进协议满足全部安全性要求,同时能够有效抵抗公钥替换攻击。

前向安全性和完美前向安全性。改进协议满足完美前向安全性,因为即使攻击者拥有了协议的两个参与方的私钥可以计算WA、WB以及K1 BA,但在不掌握协议的两个参与方的临时秘密信息tA和tB的情况下无法有效计算K2 AB或K2 BA。易见,计算K2 AB或K2 BA 面临CDH困难性问题。

已知会话密钥安全性。改进协议的每次会话密钥协商的实例中,tA∈Zq* 和tB∈Zq* 是用户Alice和Bob分别随机选取的临时秘密密钥,即使是参与方Alice和Bob多次执行协议,协议执行结果所生成的最终共享会话密钥也会不同。

抗基本伪装攻击。改进协议克服了公钥替换攻击的安全性弱点,在攻击者不知道协议参与方Alice的私钥SA= ( xA,sA,RA) 的情况下,就不能够伪装Alice与另一方进行成功的密钥协商。

抗密钥泄露伪装。改进协议能够有效抵抗密钥泄露伪装攻击。考虑攻击者试图通过持有参与方Bob的长期私钥信息而声称是参与方Alice和Bob进行会话的情况。首先在不替换Bob的公钥的情况下,Bob在计算WA时会发现攻击者冒用自己的公钥。如果攻击者试图通过替换参与方Bob的公钥达到伪装的目的,那么他在不知道Alice的私钥的情况下无法计算出uA。

抗未知密钥共享。假设攻击者Eve试图使得Alice相信正在和Bob建立共享会话密钥,而Bob却认为会话密钥的建立是与Eve完成的,那么攻击者Eve必须强迫Alice和Bob共享相同的秘密才能使得攻击成功,然而Alice和Bob永远不会共享一个相同的会话密钥,因为两方都是用对方真实的身份信息参与到共享会话密钥产生过程中的。

抗临时信息泄露。改进协议的攻击者即使获取了在任何一次会话中用于会话密钥建立的两方临时密钥信息tA和tB,并有效计算TA和TB,但在不掌握两个参与方私钥的情况下无法有效计算出最终的会话密钥。

5. 2 性能分析

无证书两方认证密钥协商协议的性能可以通过通信代价和计算代价来衡量。由于改进协议和文献 [12]中的协议都需要2轮通信且交互信息相同,因此通信代价相同。对于计算代价,由于改进协议只是在文献[12]协议的基础上在随机预言H1的输入中多了一个参数Pi,计算代价几乎与文献[12]中的协议相同。因此,改进协议和文献[12]中的协议具有相同的性能。由于文献[12]对协议的性能进行了具体分析,改进协议的性能可参见文献[12], 这里不再赘述。

6 结束语

本文回顾了Kim等人的无证书两方认证密钥协商协议,指出了该协议在公钥替换攻击下不满足基本伪装攻击安全性,并给出了一个具体的攻击。基于上述无证书两方认证密钥协商协议,通过改进部分密钥生成算法和密钥协商算法,提出了一个抗公钥替换攻击的无证书两方认证密钥协商协议。与原协议相比,改进后的协议具有更强的安全性。

摘要:分析了Kim等人提出的不依赖于双线性对运算的无证书两方认证密钥协商协议,指出该协议在公钥替换攻击下不满足基本伪装攻击安全性,并给出了一个具体攻击。针对该协议存在的安全性缺陷,提出了一个改进的无证书两方认证密钥协商协议。分析表明,所提出的改进协议能够有效地抵抗公钥替换攻击并满足一些必要的安全属性。

密钥协商 篇7

国家电网公司《“十二五”电力营销发展规划》中智能用电体系建设要求:在“十二五”期间,采集覆盖率达到100%,安装智能电能表2.2亿只,完成10 107个智能小区建设,智能用电依赖的通信网络覆盖到千家万户。在智能电网的电力营销过程中,用电信息采集系统是营销业务应用的核心业务系统[1]。它的采集信息量巨大、覆盖面广,而且其采集、传输、存储、处理和使用的客户信息、用电信息以及电费信息等不仅是电力行业的核心数据资料,还涉及社会生活的各个层面[2],具有较高的保密性,信息的非法使用和泄漏将可能带来不可挽回的损失。因此,用电信息安全防护的要求也需要提升到更高的层次[3]。传统的信息安全防护策略和安全防护技术已不能适应用电信息采集系统业务发展的需求,主站与采集终端以及直接通信的智能电能表之间重要电力信息(参数设置、控制指令、用电信息等)的传输应有身份认证和密钥协商及加密措施[4],以达到国家信息系统建设的安全防护总体要求,为营销业务应用系统提供准确、可靠、有效、实时的基础数据。故利用国家电网公司建设的证书认证中心,基于数字证书[5],结合对称密码与公钥密码体制,设计一套安全性高、通信交互次数少、存储量及计算量开销小的认证密钥协商协议[6]是确保用电信息采集系统安全稳定运行,业务数据安全可靠,用户用电信息安全实时传输的重要途径。

2002年,文献[7]提出将安全套接层(SSL)协议应用于电力系统以加强网络应用的安全性,但SSL协议的计算量开销较大且通信交互次数多,并且已被指出容易遭受加密密钥穷举攻击、丢弃更改密钥规范消息攻击等[8,9]。2003年中国推出了自己的无线局域网国家标准GB 15629.11[10],标准包含无线认证和保密基础设施无线局域网鉴别和保密基础结构(WAPI)机制,但该协议在认证环节缺乏私钥验证,密钥协商环节不具备前向安全性等安全属性,不能抵抗重放攻击及密钥非同步等攻击。2004年,IEEE批准IEEE P802.11i安全规范[11],由于访问接入点(AP)端发送的“EAP-Success”消息为明文传送,很容易被攻击者伪造进行中间人攻击。2007年,文献[12]提出了基于口令的模块化认证协议,但是由于协议在通信及计算上的开销都较大,不适用于电力系统。2010年,文献[13]利用错误检查和纠正(ECC)算法提出了基于口令的认证密钥协商协议,2011年文献[14]指出文献[13]提出的协议并不能抵抗离线口令穷举攻击。以上协议由于通信计算量开销过大或抗攻击能力不够导致其并不适用于用电信息采集系统。

综上所述,本文基于证书认证及参数保护密钥动态协商机制,提出了一种适用于用电信息采集系统的轻量级认证密钥协商协议,结合BAN逻辑形式化分析和非形式化分析方法对协议进行分析,从多个方面证明了协议的安全性。

1 应用场景分析

用电信息采集系统构建在复杂的网络应用环境中,主要完成对客户的监控和数据采集等功能。目前,在系统的主站层与终端设备层通信方式中,光纤专网可以认为是可信通道,主站侧不需采取特别的安全措施。230 MHz无线专网采用专用设备不加载通信协议,对主站系统带来的风险主要是信息伪造,不存在非法入侵等安全风险,也视为安全通道。通用分组无线业务(GPRS)/码分多址(CDMA)等无线公网是公共IP网络,完全开放的信道很容易遭到恶意者的攻击和破坏,给主站层与终端设备的通信带来很大的安全风险,需重点防护。用电信息采集系统逻辑框图如图1所示。

2 协议描述

协议中的符号定义:Ka和Kb分别为A方和B方的公钥;Ka-1和Kb-1分别为A方和B方的私钥;Rot(x,y)为x循环左移f(y)位;表示按位进行异或运算;∨表示按位或运算;‖为连接符;Ks,o1和Ks,o2为旧参数保护密钥,简称旧参保密钥;Ks,n1和Ks,n2为新参数保护密钥,简称新参保密钥;Ks,A和Ks,B分别为A方和B方的加密密钥;Km,A和Km,B分别为A方和B方的MAC密钥;VI,A和VI,B分别为A方和B方的初始向量;[nA]Ks,n1表示使用密钥Ks,n1加密随机数nA;[nB]Ks,n2表示使用密钥Ks,n2加密随机数nB。

Mixbits(x,y)算法描述为:

本文提出的轻量级认证密钥协商协议如图2所示。协议包含了身份认证、密钥协商和密钥更新3个阶段,通信实体双方事先共享旧参保密钥Ks,o1和Ks,o2及新参保密钥Ks,n1和Ks,n2,在正常情况下协议使用新参保密钥保护重要参数的交换,当双方实体身份认证或密钥协商失败时,A方启用旧参保密钥,令Ks,n1=Ks,o1,Ks,n2=Ks,o2,重新发送Hello消息挑起会话。

现将协议的具体通信过程描述如下。

1)A方向B方发送Hello消息挑起会话,生成32B的随机数nA,并用参保密钥Ks,n1加密,在Hello消息之后附上A方的数字证书及[nA]Ks,n1,计算消息摘要并用A方的私钥加密生成数字签名。

2)B方在收到A方的Hello消息后,检查数字证书的有效性,进行身份认证,提取出A方的公钥,验证A方的数字签名,检查消息的完整性,并证明其确实为此次会话的持有者。

3)B方使用参保密钥Ks,n1解密得到随机数nA,然后生成32B的随机数nB,计算α,Ks,new,KAB,发送消息Certificate B‖[nB]Ks,n2‖α‖[H2]Kb-1给A方,其中[H2]Kb-1为使用B方的私钥加密该消息前面几个部分的消息摘要生成的数字签名。

4)A方收到消息后,首先检查证书的有效性,对B方进行身份认证,若证书中的身份信息与B方的身份吻合,则提取出公钥验证B方的数字签名,检查信息的完整性,并证明B方确实为此次会话的持有者。

5)若A方在第4步检查信息的完整性通过,则用参保密钥解密得到nB,计算Ks,new,利用nA,nB,Ks,new计算α值并与接收到的α值相比较,若相等,则计算共享密钥组KAB,并更新密钥。使用新的MAC密钥与初始向量对α计算MAC值,发送给B方。若比较α失败则发送警报消息,并令Ks,n1=Ks,o1,Ks,n2=Ks,o2,使用旧参保密钥作为参保密钥重新开始新一轮协议。

6)B方计算并比较MAC(α),若一致,则更新所有密钥(其中,(Ks,new)0~15和(Ks,new)16~31分别表示Ks,new的第1位至第16位和第17位至第32位;(KAB)0~15和(KAB)16~31分别表示KAB的第1位至第16位和第17位至第32位,其他的以此类推)。至此,身份认证及密钥协商阶段结束,之后可以开始使用协商好的密钥加密用电信息数据,进行安全通信。若MAC(α)值不一致,则发送警报消息,不更新密钥。

3 协议的安全性分析

3.1 协议的BAN逻辑形式化分析

BAN逻辑是基于知识和信仰的形式逻辑分析方法,它通过认证协议运行过程中消息的接收和发送来从最初的信仰逐渐发展为协议运行要达到的目标主体的最终信仰。本文利用BAN逻辑[15]来对提出的协议进行形式化分析,证明其安全性,分析过程严格按照BAN逻辑要求的分析步骤进行。

1)协议的认证目的

一级信仰:

二级信仰:

2)协议的描述

3)将协议理想化

消息1:

消息2:

消息3:

4)初始化假设

5)逻辑推理

由消息1可得:

由式(1),应用接收规则,得到:

由式(2)和假设(5),应用消息含义中的共享密钥规则得到:

由式(3)和假设(3),应用临时值验证规则,可得:

由式(4)和假设(7),应用仲裁规则,可得:

由式(5)和假设(10),应用信仰规则,得到B|≡(nA,nB),即

由消息2可得:

由式(7),应用接收规则,得到

由式(8)和假设(6),应用消息含义中的共享密钥规则,得到:

由式(9)和假设(4),应用临时值验证规则,得到:

由式(10)和假设(8),应用仲裁规则,得到:

由式(11)和假设(9),应用信仰规则,得到A|≡(nA,nB),即

由式(12)和假设(2),应用消息含义中的公钥规则,得到:

由式(13),应用发送规则,得到A|≡B|~(nA,nB),即

由假设(4),应用新鲜性规则,得到A|≡#(nA,nB),即

由式(14)和式(15),应用临时值验证规则,可得:

由消息3可得:

由式(6)和式(17),应用消息含义中的共享密钥规则,可得:

由假设(3),应用新鲜性规则,得到B|≡#(nA,nB),即

由式(18)和式(19),应用临时值验证规则,可得:

由以上分析可知该协议符合最终的目标,达到认证的目的,即一级信仰(式(6)和式(12))和二级信仰(式(16)和式(20))。若攻击者实施重放攻击,则A方和B方在验证参数的正确性时就会发现,因此在以上分析中假设(3)和假设(4)是成立的。

3.2 协议的非形式化分析

由于BAN逻辑本身的一些缺陷,可能无法探测针对协议的某些攻击及协议的一些安全属性,因此本文结合非形式化分析方法,从攻击及保密性方面对协议进行进一步分析。

3.2.1 双向实体认证

A方和B方首先通过发送数字证书以及对发送信息的数字签名来实现身份认证。由于数字证书中所包含的身份信息有CA权威第三方的签名,用户首先可以通过检查身份信息来进行第一重身份认证,之后B方可以提取出证书中A方的公钥信息验证A方的签名,从而证明A方确实为会话持有者。同理,B方也是一样。由于A方与B方均有共享新旧参保密钥,所以在交换随机数的同时可以起到第二重身份认证的作用。经过两重身份认证之后即可实现用户间的双向实体认证。

3.2.2 密钥协商

A方和B方之间的密钥组及参保密钥是由nA和nB这2个参数经过相关计算生成的,其中nA由A方随机生成,而nB由B方随机生成,nA和nB分别在参保密钥Ks,n1,Ks,n2的保护下加密传输,并且利用进行参数的正确性确认,只有A方和B方可以计算得到,最后B方通过A方发送的MAC(α)值进行密钥的一致性确认,故最终的密钥组及保护密钥只有A方和B方可以获得。

3.2.3 完美的向前保密性

在密钥组及参保密钥的协商及更新过程中,攻击者即使掌握了双方当前的会话密钥,也不会对下次的密钥协商造成威胁。因为参与每次会话密钥组计算的2个随机数都是重新生成的,并且分别由2个不同的参保密钥加密传输,只有同时持有2个参保密钥的用户才能得到,而且攻击者并不能从当前的会话密钥推导出新协商的参保密钥,因此下次的密钥协商并不会受到影响。除此之外,即使协议参与者的长期私钥泄漏,也不会导致旧会话密钥的泄露,因此本协议具有完美的向前保密性性质。

3.2.4 抗重放攻击

当攻击者在协议中重放前2条消息时,A方在计算nB并比较α的正确性时就会发现遭受攻击。当攻击者重放第3条消息时,由于MAC(α)值是用新协商好的MAC密钥及初始向量计算出来的,所以当B方在比较MAC(α)值时就会发现遭受攻击。

3.2.5 抗非同步攻击

由于通信双方实体事先共享2对新旧参数保护密钥,当在前2轮遭受攻击时,A方和B方均可以令Ks,n1=Ks,o1,Ks,n2=Ks,o2,使用旧参保密钥作为参保密钥重新发送Hello消息挑起新一轮协议。若在第3轮遭受攻击,B方验证MAC(α)值失败,则不更新密钥并发出警报消息,由于此时A方已更新密钥,其中Ks,o1=Ks,n1;Ks,o2=Ks,n2;Ks,n1=(Ks,new)0~15;Ks,n1=(Ks,new)16~31,收到警报消息后令Ks,n1=Ks,o1,Ks,n2=Ks,o2,这里A方的Ks,n1和Ks,n2恰好与B方的Ks,n1和Ks,n2相对应,A方可以重新发送Hello消息挑起新一轮协议。因此,非同步攻击对于本协议来说不能奏效。

4 协议的性能比较

本文协议与其他同类协议的性能比较如表1所示,WAPI协议的认证环节与密钥协商阶段是分开的,在认证环节缺乏私钥认证,密钥协商阶段缺乏密钥确认过程,如果考虑私钥认证以及密钥确认,协议的交互轮数将会更多。由表1可以看出,本文所提的轻量级认证密钥协商协议在性能上明显优于EAP-TLS和WAPI协议,更适用于用电信息采集系统,为电力数据的安全高效实时传输提供保障。

注:(1)计算性能所述各项均指会话发起方的计算量;(2)公钥加/解密下的2(1/1)表示一共进行了2次该类型运算,包括1次加密运算和1次解密运算,其他的以此类推。

5 结语

该文提出了一种轻量级认证密钥协商协议,协议基于证书认证及参保密钥动态协商机制,结合数字证书与共享动态参保密钥对用户身份进行双重认证,用户通过交换证书及私钥签名证明会话持有及私钥拥有性,进行第一重认证,通过共享参保密钥进行第二重认证。协议利用用户上次会话协商好的参保密钥保护重要参数的交换,会话密钥组的计算及参数的正确性确认均采用简单的位运算,并通过MAC运算完成密钥更新的确认。通过BAN逻辑形式化分析,并结合非形式化分析方法对BAN逻辑可能无法探测的攻击和安全属性进行补充,从多个方面证明了协议的安全性,最后对所提协议进行性能分析和对比。与现有同类协议相比,本协议安全性较高,通信开销小,计算量较低,为用电信息采集系统中通信双方的身份认证与密钥协商提供了高效安全的解决方案,可应用于付费购电信息的安全传递,以保证用户购电充值或控制指令等信息的安全传输,提高电力系统的安全性。

摘要:用电信息采集系统信息量巨大、覆盖面广,而传统的认证密钥协商协议计算量开销大、通信交互次数多,无法满足其高实时、低成本的现实需求。为了实现电力数据的安全高效传输,文中基于证书认证及新旧参数保护密钥动态协商机制,提出了一种轻量级认证密钥协商协议,结合BAN逻辑形式化分析和非形式化分析方法对协议进行分析,证明协议在达到一级信仰和二级信仰的同时具有双向实体认证、完美的向前保密性等安全属性。该协议能够抵抗多种攻击,在保证安全的情况下实时高效地完成身份认证及密钥协商,适用于用电信息采集系统对密钥应用的需求。

上一篇:当前校园网络德育建设论文下一篇:北京大学生