杨霄彩
广州大学华软软件学院 广东 510990
随着无线网络技术的发展,电子商务的移动模式被争相引入各行业,Web服务在新的平台上获得一个更广阔的发展空间;另一方面,与传统网络不同,无线链路的开放性以及客户端设备计算能力弱、低存储、带宽窄等特点制约了Web服务的广泛应用和创新,因此,极大的商务应用潜力对无线网络中Web服务的安全与效率提出了更高的要求。
Web服务的安全问题主要在于确定用户的身份以及确保数据的机密性和完整性。目前,SSL(Secure Socket Layer)和TLS(Transport Layer Security)被用来提供传输层的Web服务安全;网络层的IPSec对于Web服务安全来说,也是一个很重要的标准;因为无法信任中间节点对消息的获得和处理,IBM和Microsoft等公司在Web服务安全白皮书里给出了一整套安全规范,其中,基于应用层的 WS-Security(Web服务安全)网络传输协议是这些规范的核心,其基本原理是将所有安全信息保存在消息的SOAP部分中,嵌入身份验证、消息加密及消息数字签名等安全机制,为Web服务安全性提供了端到端的解决方案。
而要高效地实现Web服务的安全机制,最重要的就是让服务请求方和服务提供方能够共享会话密钥(对称密钥)。在无线网络的安全机制中,密钥的安全性是所有安全的基础。因此,两个或多个实体协商建立会话密钥成为无线网络安全研究的热点。
最初,Bellovin和Merritt首先提出能抵抗字典攻击的基于口令密钥协商协议;Bellare等提出了基于口令密钥协商的一种理论模型;Katz等提出标准模型下可证安全的基于口令认证密钥协商协议。
近几年,研究者从不同角度提出各类基于口令的密钥协商改进方案。在文献[8]等的基础上,张学英与杨晋吉在文献[10]中提出了一种无线环境下的Web服务身份认证密钥协商协议(以下简称Z-Y协议),并证明了协议具有口令私密性、通信双方认证性和私钥的秘密性。本文将证明此协议虽提高了效率但因无法抵御中间人攻击和重放攻击而存在严重的安全问题,并指出导致这种安全缺陷的原因。本文在此协议基础上,仍以Web服务中预存口令为前提提出一种改进的密钥协商协议方案,并证明此方案与原协议具有相同的效率以及更高的安全性。
Z-Y协议由用户和服务器两个实体经过三轮会话组成,即会话实体用户(A)和服务器(B)之间传递三次信息流:
① 第1个信息流:A→B。A输入自己的口令p,通过单向函数h(),将用户的标识IA和口令p进行哈希计算从而得到π,即π=h(p,IA)。同时A选择一个随机数,计算m=gx,然后将π和m这两个值发送给B。
② 第2个信息流:B→A。服务器端首先从数据库中查找用户注册时的口令 p~,并计算 π~=h(p~,IA),判断 π~是否与所接收到的π相等,若相等,则计算:
B 先选择一个随机数 y,计算 μ=gy,σ=(m)y,K1=H1(IA, IB,m, μ, σ, π),将 K1和 μ 发送给 A。
若不相等,B则放弃此次会话。
③ 第3个信息流:A→B。用户A利用所接收到的μ,计算 σ=(μ)x,计算 H1(IA, IB, m, μ, σ, π),并判断其值与所接收到的K1是否相等,若相等,则表明A认证了B,说明B是合法的服务端,从而 A 开始计算 K2=H2(IA, IB, m, μ, σ, π),并将K2发送给B。
若不相等,A则放弃此次会话。
④ B 利用 H2函数进行计算 H2(IA, IB, m, μ, σ, π),判断其值与所接收到的K2是否相等,若不相等,则放弃此次会话;若相等,则表示B对A进行了验证,说明A是合法的用户。
⑤ 最后,A 和 B 都计算 K= H3(IA, IB, m, μ, σ, π),协商得出此次会话的密钥,从而进行之后的信息通信或商业事务处理。
Z-Y证明其密钥协商协议具有口令的私密性、通信双方的认证性和会话密钥的私密性等安全属性,并没有提出其协议可以抵抗中间人攻击和重放攻击。
中间人攻击(Man-in-the-middle, MITM)需要达成以下条件:攻击程式负责在两受害者中间“转送”流量,并可以控制整个流量。本章以攻击者已成功控制一台虚拟放置于网络连接中两台通信计算机之间的计算机为前提,证明Z-Y协议存在安全缺陷,使攻击者通过“会话劫持”可掌握两受害实体进行通信的会话密钥,从而获得双方所有通信内容。
一般性地,将实施中间人攻击者设为M。A、B的协商过程受到M攻击的情况描述如下:
① 第1个信息流:A→B。A将π和m这两个值发送给B被M截获,M用自己的随机数x'替换x,重新计算m'=gx',将A的π和修改后的m'发送给B。
② 第2个信息流:B→A。B判断π~与所接收到的π相等,分别计算 μ=gy,σ=(m')y,K1=H1(IA, IB, m', μ, σ, π),将K1和μ发送给A被M截获,M用自己的随机数y'替换y,重新计算μ'=gy';并用m计算σ'=(m)y';因为IA、IB为实体标识因此 M 可轻易获得,从而可计算 K'1=H1(IA, IB, m, μ', σ', π),然后将μ'与K'1发送给A。
③ 第3个信息流:A→B。用户A通过判断σ'、K'1认证了 B,再计算 K2=H2(IA, IB, m, μ', σ', π),将 K2发送给 B 时被M 截获,M 用 x'重新计算 σ=(μ)x',K'2=H2(IA, IB, m', μ, σ, π),将K'2发送给B。
④ B判断K'2通过,接受A是合法用户。
⑤ 最后,M与A达成共同会话密钥KAM= H3(IA, IB, m, μ',σ', π),M 与 B 达成共同会话密钥 KBM= H3(IA, IB, m', μ, σ, π),从而作为中间人可获得A与B之间所有用会话密钥加密的内容,而A与B无法得知。
攻击过程可由图1清楚看出。
图1 在Z-Y协议下实施中间人攻击
从上述分析可以得出,采用Z-Y协议产生会话密钥无法抵抗中间人的恶意攻击,协议存在一定的安全缺陷。主要原因是协议过程传输的用户A口令与密钥生成选取参数形式一致,攻击者获得明文后,无需破解直接使用,导致最终生成的会话密钥被攻击者掌握。
Z-Y协议是基于挑战/应答方式的协议。当攻击者以用户身份用监听获得的一次参数π连同用自己随机数x'计算的m'发起新一轮协商欺骗服务方时,服务器端以新的μ应答,而后攻击者获得最后验证所需的所有参数(IA, IB, m', μ, σ, π),其中σ=(μ)x'。因此,服务器端无法发觉是重放攻击,接受攻击者为合法用户。导致这一安全缺陷的主要原因是Z-Y协议密钥协商全过程没有鉴别重放攻击的机制。
① 第1个信息流:A→B。
A选择随机数x,计算:
m=gx
π=h(p,m,IA)
将m和π发送给B。
② 第2个信息流:B→A。
B根据用户标识从数据库中查找用户注册时的口令p~,计算:
π~=h(p~,m,IA)
判断π~是否与所接收到的π相等,若不相等,B则放弃此次会话;若相等,则选择一个随机数y,计算:
μ=gy
σ=(m)y
K1=H1(IA, IB, m, μ, σ, p)
将μ和K1发送给A。
③ 第3个信息流:A→B。
A计算:
σ=(μ)x
K1~=H1(IA, IB, m, μ, σ, p)
判断K1~与所接收到的K1是否相等,若不相等,A则放弃此次会话;若相等,则表明A认证了B,说明B是合法的服务端,从而A计算:
K2=H2(IA, IB, m, μ, σ, p)
将K2发送给B。
④ B计算:
K2~=H2(IA, IB, m, μ, σ, p),判断其值与所接收到的 K2是否相等,若不相等,则放弃此次会话;若相等,则表示B对A进行了验证,说明A是合法的用户。
⑤ 最后,A和B均计算K= H3(IA, IB, m, μ, σ, p),作为此次会话的密钥。
改进方案在具有与Z-Y协议相同安全属性的同时,可以有效抵抗中间人攻击和重放攻击。
① 第1个信息流:A→B。A将m和π发送给B被M截获,M 用自己的随机数 x'替换 x,重新计算 m'=gx',但因为M无法得知A的口令p,所以不能重构π,为了避免暴露自己,将没有修改的m和π发送给B。
② 第2个信息流:B→A。M获得B发出的μ和K1,可以伪造μ和σ,但因p未知无法构造K1。
③ 第3个信息流:A→B。M因参数σ和p均未知无法构造K2,A认证B为合法服务端。
④ B验证A是合法的用户。
⑤ 最后,A和B都计算K建立共同的会话密钥,M因无法获得生成密钥所需的全部参数而无法获得A和B的会话密钥。
攻击者监听获得一次参数(m,π),因m与π绑定,因此无法修改直接发送给服务器,服务器计算μ、σ和K1,并将(μ,K1)发给攻击者,在指数运算足够安全的前提下,攻击者不能破译m获得x也就无法计算σ,不能生成正确的K2供服务器端验证,重放攻击不成功。
改进方案与Z-Y协议同样采用3次会话,用户A和服务器B分别进行2次指数运算,为进行验证和生成密钥各进行4次哈希计算,没有采用运算代价较大的ECC等加密解密运算。
Web服务作为一种炙手可热的技术,在无线网络环境中的应用前景可观。本文借鉴前人对密钥协商协议的研究,指出Z-Y所提出的无线环境下Web服务身份认证密钥协商协议的安全缺陷,提出了一种改进方案,并证明改进方案不仅具有原协议较高的效率和基本安全属性,而且能够有效地抵抗中间人攻击和重放攻击,弥补了原协议安全性能的不足。
[1] CHAN H W, IGOR D V, PERR I A, et a1. On the distribution and revocation of cryptographic keys in sensor networks [J].IEEE Transactions on Dependable and Secure Computing.2005.
[2] Bellovin S and Merritt M. Encrypted key exchange: passwordbased protocol secure against dictionary attacks[C].Proceedings of the 1992 Conference IEEE computer society symp.on Research in security and privacy, Oakland.USA.1992.
[3] Bellare M, Pointcheval D, and Rogaway P. Authenticated key exchange secure against dictionary attacks[C]. Proceedings of EUROCRYPT 2000, Bruges, Belgium.LNCS 1807.
[4] Katz J,Ostrovsky R,and Yung M. Efficient passwordauthentication key exchange using humanmemorable passwords[C].Proceedings of EUROCRYPT 2001, Innsbruck, Austria.LNCS 2005.
[5] 李莉,薛锐,张焕国等.基于口令认证的密钥交换协议的安全性分析[J].电子学报.2005.
[6] 殷胤,李宝.标准模型下可证安全的加密密钥协商协议[J].软件学报.2007.
[7] Feng Deng guo and Chen Wei dong. Modular approach to the design and analysis of password-based security protocols[J].Science in China Series F.2007.
[8] 师鸣若,姜中华.一种无线认证密钥协商协议[J].计算机工程.2009.
[9] 王莺洁,罗为,徐晓飞.基于身份认证的无线安全密钥交换[J].通信技术.2009.
[10] 张学英,杨晋吉.无线环境下的 Web服务身份认证密钥协商协议[J].计算机应用.2011.