项顺伯,赵晶英,柯文德
(1.广东石油化工学院 计算机与电子信息学院,广东 茂名525000;2.广东石油化工学院 机电工程学院,广东 茂名525000)
两方口令认证密钥交换协议是服务器以用户的口令或口令验证值为认证信息去证实用户的身份,从而在两者间建立一个安全的会话密钥.两方口令认证密钥交换协议存在诸多针对口令的攻击,如服务器泄漏伪装攻击、字典攻击等.因此,设计一个安全的口令认证密钥交换协议是研究的难题.以口令验证值为内容的口令认证密钥交换协议是近年来的研究热点.阈下信道的概念是由Simmons首次提出的[1],它是指在基于公钥密码机制的数字签名、认证等密码体制中建立起的一种隐秘信道,除发送者和指定的接收者外,任何人都不知道传输的密码数据内容中是否存在阈下信息[2].自从阈下信道提出后,学者对其进行了相关的研究.杨建萍等[3]基于阈下信道问题提出一种口令认证方案.Lee等[4]提出一种两方口令认证密钥交换协议PAKA-X,该协议基于口令验证值问题,能抵御服务器泄漏伪装攻击.Kwon[5]提出一种一轮的基于验证值的口令认证密钥交换协议,并在理想哈希模型下证明了协议的安全性,该协议适用于传输层安全(TLS)的协议.粟栗等[6]提出一种改进的签密方案,利用该方案设计了一个门限阈下信道方案.谭示崇等[7]提出一种改进的PAKA-X协议,但改进的协议实现过程复杂,计算量大.李文敏等[8]提出一种基于验证值的三方口令认证密钥交换协议.Pointcheval等[9]综述了口令认证密钥交换协议的通用构造方法.Fujioka等[10]提出口令认证密钥交换协议的GC协议的通用结构,在CK+模型下证明其安全性.HUANG等[11]提出了应用于ad hoc网络的带有匿名门限阈下信道的多签名方案.张应辉等[12]研究了EDL签名中的阈下信道封闭协议问题.张兴爱等[13]研究了广播多重签名方案中阈下信道的封闭协议问题.本文基于阈下信道问题,以用户的口令明文作为阈下信息,提出一种基于阈下信道的两方口令认证密钥交换协议.
基于阈下信道的两方口令认证密钥交换协议,简称PAKE.协议中,用户U和服务器S组成一个系统,其交互流程图,如图1所示.协议由以下3个方面组成[3,5,9-10].
系统选择大素数p,q,满足q|p-1,g是Zq*的生成元,其阶为q;系统选择1个无碰撞的单向哈希函数H∶(0,1)*-(0,1)1,公开参数p,q,g,H,l.用户U选择xU∈RZp*作为其私钥,计算公钥yU=gxUmodp,用户U的身份标识符为IDU,U公开参数yU和IDU.
身份标识符为IDS的服务器S选择私钥xS∈RZ*p,其公钥yS=gxSmodp,S公开参数yS和IDS.pw为用户U的口令明文,U计算口令pw的验证值v=gH(IDU‖IDS‖pw),并通过秘密信道把v传给服务器S保存.
图1 PAKE的交互流程图Fig.1 Interactive flow chart of PAKE
用户U选择a∈RZ*q,计算c=gamodp和t=yaSmodp,计算r=pw·g-tmodp,s=a-xU·rmodp,则含有阈下信息的签名为(c,r,s),用户U向服务器S发送信息(c,r,s,IDU,IDS).
服务器S收到用户U的签名消息后进行阈下信息的恢复,服务器通过其私钥xS计算t′=cxSmodp,再计算用户的口令明文rpw=r·gt′modp即可恢复出阈下信息.
服务器S通过恢复出的pw计算v′=gH(IDU‖IDS‖pw),比较v和v′,若v≠v′,终止协议的执行;否则实现对用户身份的验证.在证实用户的身份后,服务器S选择b∈RZ*q,计算d=gbmodp,e=gabmodp,v″=H(IDU‖IDS‖v‖d),S向用户U发送消息(d,v″,IDU,IDS),并计算与用户U的会话密钥KSU=H(IDU‖IDS‖v‖e).
用户U收到消息后,首先计算v‴=H(IDU‖IDS‖v‖d),如果v″≠v‴,终止协议的执行;否则,计算f=gbamodp,并将计算出的KSU=H(IDU‖IDS‖v‖f)作为其与服务器的会话密钥.明显,e=gbamodp=f,所以,用户和服务器计算出的会话密钥是一致的.
2.1.1 含有阈下信息签名的不可伪造性 因为只有合法用户才拥有自己的口令明文,攻击者没有用户的口令明文,无法伪造有效的签名.假设攻击者随机选择一个口令pw′,与用户的口令pw相比,pw′≠pw,攻击者选择a∈RZ*q,计算c′=gamodp,t=yaSmodp,r′=pw′·g-tmodp,接着计算s′=k-xU·r′modp,则含有阈下信息的伪造签名为(c′,r′,s′).
服务器S收到含有阈下信息的签名消息后计算t′=c′sS,然后计算出阈下信息,用户的口令pw′=r′·g-t′modp,接着服务器S计算v′=H(IDU‖IDS‖pw′).通过比较发现v≠v′,证实用户的身份失败,从而终止协议的执行.因此,攻击者无法针对合法用户伪造出有效的签名.
2.1.2 含有阈下信息签名的公开可验证性 PAKE中,任何人都可以通过获得的公开信息去计算c=gs·yrUmodp,以实现签名有效性的验证.因为gs·yrUmodp=gk-xUr·gxUrmodp=gamodp=c,所以协议中阈下信息的签名具有公开可验证性.
PAKE中,前向安全性是指在某次会话过程中,即使攻击者知道了用户的口令明文pw,也无法计算该次会话之前的会话密钥.因为每次会话中,服务器和用户分别选择的随机数a和b都不完全相同,又因为离散对数困难问题,攻击者无法从c=gamodp和d=gbmodp中分别计算出a和b,于是攻击者无法计算出e=gabmodp和f=gbamodp,从而攻击者无法计算出最终的会话密钥KUS.所以,文中的PAKE是前向安全的.
字典攻击是指攻击者针对用户的口令发起的攻击,通过猜测和分析去获得用户的口令明文,字典攻击可分为在线字典攻击和离线字典攻击两种.在线字典攻击是指攻击者随机选择一个口令,通过截获的公开信息伪装成合法用户与服务器会话,通过多次试探,从而猜测出用户的口令.离线字典攻击是指攻击者通过分析截获的公开会话信息,从中分析计算出用户的口令明文.
2.3.1 抵御在线字典攻击 假设攻击者随机1个口令pw′≠pw,通过截获用户的公开信息(c,r,s,IDU,IDS),伪造出另一组含有阈下信息的签名(c,r′,s′,IDU,IDS).其中:r′=pw′·g-tmodp;s′=kxU·r′modp.服务器收到该签名信息后,通过计算恢复出阈下信息,即用户口令明文pw′.接着,服务器计算用户口令验证值v′=H(IDU‖IDS‖pw′),通过比较发现v′≠v,服务器认为用户身份信息不安全,从而终止协议的执行,攻击者的在线字典攻击无法成功.事实上,如果攻击者尝试该类攻击,就陷入了签名的伪造性.前文已经分析过,文中PAKE签名是不可伪造的,所以,文中的PAKE是能抵御在线字典攻击的[8].
2.3.2 抵御离线字典攻击 文中的PAKE中,攻击者无法实施离线字典攻击,因为用户和服务器会话过程中,仅r=pw·g-tmodp和v″=H(IDU‖IDS‖pw‖d)含有用户的口令明文.由于r是阈下信息,攻击者无计可施,又因哈希函数的特性,攻击者无法选择pw′,使得v″=H(IDU‖IDS‖pw‖d)=H(IDU‖IDS‖pw′‖d).因此,PAKE能抵御离线字典攻击.
抵御服务器泄漏伪装攻击是指服务器遭受攻击或恶意泄漏后,用户的口令验证值泄漏给攻击者,攻击者伪装成合法用户去登录服务器.PAKE协议中,假设服务器存储的用户口令验证值v=H(IDU‖IDS‖pw)泄漏给攻击者,由于哈希函数的特性,攻击者无法获得正确的口令明文,如果攻击者伪装成合法用户去登录服务器,必然随机选择一个口令pw′≠pw,然后伪造一个含有阈下信息的签名(c′,r′,s′).前文已经分析过,PAKE中的签名不可伪造,于是攻击者的伪装是不成功的.因此,文中的PAKE能抵御服务器泄漏伪装攻击.
所提出的PAKE中,协议的主要计算体现在指数运算、点乘运算和哈希运算等上.用户签名的产生需要3次指数运算,2次点乘运算,服务器恢复阈下信息需要2次指数运算和1次点乘运算,省去了签名验证的大量运算.建立会话密钥时,服务器只需2次指数运算和3次哈希函数的运算,用户仅需1次点乘运算和2次哈希运算.
文献[5]的协议用了9次指数运算,3次哈希运算,3次点乘运算,3次除运算,与文中的PAKE相比,计算量稍大一些.文献[7]改进的协议中,指数运算有9次,哈希运算有10次,尽管没有使用点乘运算,但用了4次异或运算.与文献[7]的协议相比,文中协议计算量小,因而效率更高.
设计一个基于阈下信道问题的两方口令认证的密钥交换协议.协议利用服务器存储用户口令的验证值,用户发送含有口令阈下信息的签名给服务器,服务器验证签名并通过恢复出的阈下信息实现对用户身份的认证.通过分析可知:文中的协议避免了一些针对口令认证密钥交换协议的攻击,如服务器泄漏伪装攻击、字典攻击等;同时,与其他协议比较,文中的协议所需计算量小,效率更好.文中的协议可以用于现有的用户端/服务器(U/S)的环境中,从而实现服务器对用户的身份认证及认证后的交互过程.
[1]SIMMONS G J.The prisoner′s problem and the subliminal channel[C]∥Proceedings IEEE Workshop Communica-tions Security CRYPTO.New York:[s.n.],1983:51-67.
[2]SIMMONS G J.The history of subliminal channels[J].IEEE Journal on Selected Areas in Communication,1998,16(4):452-462.
[3]杨建萍,周贤伟,杨军.基于阈下信道技术的身份认证机制研究[J].微电子学与计算机,2004,21(12):195-197.
[4]LEE S W,KIM W H,KIM H S,et al.Efficient password-based authenticated key agreement protocol[C]∥International Conference on Computer Science and Applications.Perugia:Springer-Verlag,2004:617-626.
[5]KWON J O,SAKURAI K,LEE D H.One-round protocol for two-party verifier-based password-authenticated key exchange[C]∥Communications and Multimedia Security.Heraklion:[s.n.],2006:87-96.
[6]粟栗,崔国华,李俊,等.基于签密的分布式安全门限阈下信道方案[J].小型微型计算机系统,2007,28(12):2153-2157.
[7]谭示崇,张宁,王育民.新的口令认证密钥协商协议[J].电子科技大学学报,2008,37(1):17-19.
[8]李文敏,温巧燕,张华.基于验证元的三方口令认证密钥交换协议[J].通信学报,2008,29(10):150-152.
[9]POINTCHEVAL D.Password-based authenticated key exchange[C]∥Proceedings of 15th IACR International Conference on Practice and Theory of Public-Key Cryptography.Darmstadt:Springer-Verlag,2012:390-397.
[10]FUJIOKA A,SUZUKI K,XAGAWA K,et al.Strongly secure authenticated key exchange from factoring,codes,and lattices[C]∥Proceedings of 15th IACR International Conference on Practice and Theory of Public-Key Cryptography.Darmstadt:Springer-Verlag,2012:467-484.
[11]HUANG Zhen-jie,CHEN Dan,WANG Yu-min.Multi-signature with anonymous threshold subliminal channel for ad-hoc environments[C]∥19th International Conference on Advanced Information Networking and Applications.Tamshui:IEEE Press,2005:67-71.
[12]张应辉,马华,王保仓.EDL签名中可证明安全的阈下信道封闭协议[J].计算机科学,2010,37(9):72-74.
[13]张兴爱,张应辉,史来婧.广播多重签名方案中阈下信道的封闭协议[J].计算机工程,2011,37(22):102-104.